home *** CD-ROM | disk | FTP | other *** search
-
- @MON
-
- BY a. fACHAT (FACHAT@GALILEO.RHEIN-NECKAR.DE)
- ----------------------------------------------------------------------
- @MON IS COVERED BY THE gnu PUBLIC lICENSE, SEE FILE copying
-
-
- 0) pREFACE
- tHE pROGRAMM @MON IS A MACHINE LANGUAGE MONITOR.
- i HAVE WRITTEN THIS PROGRAMM SOME YEARS AGO AND i DO NOT SUPPORT
- IT ANY MORE. i DO ALSO NOT TAKE ANY WARRANTY FOR THIS PROGRAMM OR ITS
- USE IN ANY FORM.
-
- 1) hOW TO USE
- tO USE THE MONITOR YOU HAVE TO LOAD THE PROGRAMM INTO MEMORY AS
- A MACHINE PROGRAMM AND SAVE IT FROM OVERWRITING BY POKING SOMETHING
- TO THE BASIC END POINTER, EXCEPT IF YOU PUT IT TO $C000.
- yOU CALL THE MONITOR BY TYPING "sys START-ADDRESS" IN THE basic EDITOR.
- aFTER BEING CALLED FIRST, THE MONITOR CATCHES THE brk INTERRUPT POINTER
- AND STARTS AFTER A BREAK WITH THE REGISTER CONTENTS IN THE MONITOR
- REGISTERS.
-
- 2) cOMMANDS
- ADR AND ADR? ARE TWO BYTE hEX ADDRESSES, BYTE IS A hEX VALUE
- m ADR1 [ADR2] hEX+ascii DUMP FROM ADR1 (TO ADR2)
- b ADR1 [ADR2] bINARY DUMP (sPRITE FORMAT)
- d ADR1 [ADR2] aSSEMBLER LISTING
- r sHOW INTERNAL REGISTERS
- aLL DUMPS MAY BE CHANGED BY OVERWRITING. tHE m, b AND d DUMPS HAVE A
- SCREEN SCROLL FUNCTION, I.E. IF YOU MOVE THE CURSOR OF THE SCREEN TO
- THE TOP OR THE BOTTOM, YOU GET THE LISTING SCROLLED.
- a ADR aSSEMBLER FROM ADR
- o ADR1 ADR2 BYTE fILL (oCCUPY) MEMORY FROM ADR1 TO ADR2 WITH BYTE
- c ADR1 ADR2 ADR3 cOMPARE MEMORY FROM ADR1 TO ADR2 WITH MEMORY
- BEGINNING AT ADR3
- t ADR1 ADR2 ADR3 tRANSFER MEMORY FROM ADR1 TO ADR2 TO MEMORY
- STARTING AT ADR3
- u ADR1 ADR2 ADR3 ADR4 ADR5
- RECALCULATES ALL TWO-BYTE ADDRESSES IN THE
- AREA FROM ADR4 TO ADR5 THAT POINT TO THE
- MEMORY FROM ADR1 TO ADR2 TO NEW ADDRESSES
- IN MEMORY STARTING AT ADR3
- g ADR JUMP TO ADR, SET cpu REGISTERS WITH THE
- VALUES OF THE INTERNAL rEGISTERS
- i BYTE1 BYTE2 sETS OUTPUT TO dISK TO DEVICE BYTE1 AND
- OUTPUT TO PRINTER TO DEVICE BYTE2
- l "FILENAME" [ADR] lOAD fILE "FILENAME" FROM DISK DEVICE (SEE
- COMMAND "i") (TO ADR)
- s "FILENAME" ADR1 ADR2
- sAVES MEMORY FROM ADR1 TO ADR2 TO A FILE,
- THE CONTENTS OF THE MEMORY IS PRECEDED BY
- THE ADR1 (LOAD ADDRESS)
- #DECIMAL_NUMBER PRINTS THE HEX, DECIMAL AND BINARY VALUES OF
- THE GIVEN DECIMAL NUMBER
- $HEX_NUMBER SEE "#"
- %BINARY_NUMBER SEE "#"
- ? ADR1 OPERATOR ADR2
- PERFORMS ARITHMETIK OPERATION, VALID OPERATORS
- ARE:
- + ADDITION
- - SUBSTRACTION
- * MULTIPLICATION
- / DIVISION
- t ADR TRACE WALK. yOU CAN CONTROL IT WITH THE FOLLOWING
- KEYS:
- f1 DON'T EXECUTE THE NEXT COMMAND
- f3 FAST EXECUTION: DON'T WAIT FOR A KEYPRESS
- f5 SLOW EXECUTION (AS f3)
- f7 ONE STEP AHEAD
- j EXECUTE SUBROUTINE TO THE NEXT RTS
- RUN/STOP
- AS THE NAME SAYS...
- tHE TRACE WALK IS NOT VERY RELIABLE, i DIDN'T
- KNOW ABOUT 'BAD RASTERLINES' AND SO, SO YOU
- MAY BE TRAPPED IN THE ROUTINE ITSELF. bUT,
- btw, DON'T CARE FOR "sei", THE nmi TIMER GIVES
- THE SIGNAL.
- f ADR1 ADR2 BYTE [BYTE2 [...]]
- f ADR1 ADR2 "text" SEARCH FOR TEXT OR BYTES BETWEEN ADR1 AND ADR2
- fr ADR1 ADR2 SEARCH FOR RELATIVE JUMPS
- fa ADR1 ADR2 XXX SEARCH FOR A SPECIAL ADDRESSING MODE:
- YOU GIVE THE ADRESSING MODE IN THE SAME SYNTAX
- AS IN THE ASSEMBLER, INSTEAD OF THE REAL ADDRESS
- YOU MAY REPLACE SOME OR ALL OF THE hEX DIGITS
- BY AN ASTERIX ('*').
- EXAMPLE:
- fa a437 a500 $a32*,x
- .,a43d lda $a326,x
- .,a442 lda $a327,x
- .
-
- x EXIT THE PROGRAMM
- tHE brk VECTOR IS BEING KEPT.
-
-