home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / programming / atmon.lzh / atmon / atmon.asc < prev    next >
Encoding:
Text File  |  1995-01-01  |  4.9 KB  |  96 lines

  1.  
  2.                               @MON 
  3.  
  4.             BY a. fACHAT (FACHAT@GALILEO.RHEIN-NECKAR.DE)
  5. ----------------------------------------------------------------------
  6.      @MON IS COVERED BY THE gnu PUBLIC lICENSE, SEE FILE copying
  7.  
  8.  
  9. 0) pREFACE 
  10.    tHE pROGRAMM @MON IS A MACHINE LANGUAGE MONITOR. 
  11.    i HAVE WRITTEN THIS PROGRAMM SOME YEARS AGO AND i DO NOT SUPPORT 
  12.    IT ANY MORE. i DO ALSO NOT TAKE ANY WARRANTY FOR THIS PROGRAMM OR ITS
  13.    USE IN ANY FORM.  
  14.  
  15. 1) hOW TO USE
  16.    tO USE THE MONITOR YOU HAVE TO LOAD THE PROGRAMM INTO MEMORY AS
  17.    A MACHINE PROGRAMM AND SAVE IT FROM OVERWRITING BY POKING SOMETHING
  18.    TO THE BASIC END POINTER, EXCEPT IF YOU PUT IT TO $C000.
  19.    yOU CALL THE MONITOR BY TYPING "sys START-ADDRESS" IN THE basic EDITOR.
  20.    aFTER BEING CALLED FIRST, THE MONITOR CATCHES THE brk INTERRUPT POINTER
  21.    AND STARTS AFTER A BREAK WITH THE REGISTER CONTENTS IN THE MONITOR 
  22.    REGISTERS.
  23.  
  24. 2) cOMMANDS
  25.    ADR AND ADR? ARE  TWO BYTE hEX ADDRESSES, BYTE IS A hEX VALUE
  26.        m ADR1 [ADR2]         hEX+ascii DUMP FROM ADR1 (TO ADR2)
  27.        b ADR1 [ADR2]         bINARY DUMP (sPRITE FORMAT)
  28.        d ADR1 [ADR2]         aSSEMBLER LISTING
  29.        r                     sHOW INTERNAL REGISTERS
  30.    aLL DUMPS MAY BE CHANGED BY OVERWRITING. tHE m, b AND d DUMPS HAVE A 
  31.    SCREEN SCROLL FUNCTION, I.E. IF YOU MOVE THE CURSOR OF THE SCREEN TO
  32.    THE TOP OR THE BOTTOM, YOU GET THE LISTING SCROLLED.
  33.        a ADR                 aSSEMBLER FROM ADR
  34.        o ADR1 ADR2 BYTE      fILL (oCCUPY) MEMORY FROM ADR1 TO ADR2 WITH BYTE
  35.        c ADR1 ADR2 ADR3      cOMPARE MEMORY FROM ADR1 TO ADR2 WITH MEMORY 
  36.                              BEGINNING AT ADR3
  37.        t ADR1 ADR2 ADR3      tRANSFER MEMORY FROM ADR1 TO ADR2 TO MEMORY 
  38.                              STARTING AT ADR3
  39.        u ADR1 ADR2 ADR3 ADR4 ADR5 
  40.                              RECALCULATES ALL TWO-BYTE ADDRESSES IN THE
  41.                              AREA FROM ADR4 TO ADR5 THAT POINT TO THE
  42.                              MEMORY FROM ADR1 TO ADR2 TO NEW ADDRESSES
  43.                              IN MEMORY STARTING AT ADR3
  44.        g ADR                 JUMP TO ADR, SET cpu REGISTERS WITH THE
  45.                              VALUES OF THE INTERNAL rEGISTERS
  46.        i BYTE1 BYTE2         sETS OUTPUT TO dISK TO DEVICE BYTE1 AND
  47.                              OUTPUT TO PRINTER TO DEVICE BYTE2
  48.        l "FILENAME" [ADR]    lOAD fILE "FILENAME" FROM DISK DEVICE (SEE
  49.                              COMMAND "i") (TO ADR)
  50.        s "FILENAME" ADR1 ADR2
  51.                              sAVES MEMORY FROM ADR1 TO ADR2 TO A FILE,
  52.                              THE CONTENTS OF THE MEMORY IS PRECEDED BY
  53.                              THE ADR1 (LOAD ADDRESS)
  54.        #DECIMAL_NUMBER       PRINTS THE HEX, DECIMAL AND BINARY VALUES OF
  55.                              THE GIVEN DECIMAL NUMBER
  56.        $HEX_NUMBER           SEE "#"
  57.        %BINARY_NUMBER        SEE "#"
  58.        ? ADR1 OPERATOR ADR2
  59.                              PERFORMS ARITHMETIK OPERATION, VALID OPERATORS
  60.                              ARE:
  61.                                +   ADDITION
  62.                                -   SUBSTRACTION
  63.                                *   MULTIPLICATION
  64.                                /   DIVISION
  65.        t ADR                 TRACE WALK. yOU CAN CONTROL IT WITH THE FOLLOWING
  66.                              KEYS:
  67.                                f1  DON'T EXECUTE THE NEXT COMMAND
  68.                                f3  FAST EXECUTION: DON'T WAIT FOR A KEYPRESS
  69.                                f5  SLOW EXECUTION (AS f3)
  70.                                f7  ONE STEP AHEAD
  71.                                j   EXECUTE SUBROUTINE TO THE NEXT RTS
  72.                                RUN/STOP
  73.                                    AS THE NAME SAYS...
  74.                              tHE TRACE WALK IS NOT VERY RELIABLE, i DIDN'T
  75.                              KNOW ABOUT 'BAD RASTERLINES' AND SO, SO YOU
  76.                              MAY BE TRAPPED IN THE ROUTINE ITSELF. bUT,
  77.                              btw, DON'T CARE FOR "sei", THE nmi TIMER GIVES
  78.                              THE SIGNAL. 
  79.        f ADR1 ADR2 BYTE [BYTE2 [...]]
  80.        f ADR1 ADR2 "text"    SEARCH FOR TEXT OR BYTES BETWEEN ADR1 AND ADR2
  81.        fr ADR1 ADR2          SEARCH FOR RELATIVE JUMPS 
  82.        fa ADR1 ADR2 XXX      SEARCH FOR A SPECIAL ADDRESSING MODE:
  83.                              YOU GIVE THE ADRESSING MODE IN THE SAME SYNTAX
  84.                              AS IN THE ASSEMBLER, INSTEAD OF THE REAL ADDRESS
  85.                              YOU MAY REPLACE SOME OR ALL OF THE hEX DIGITS 
  86.                              BY AN ASTERIX ('*').
  87.                              EXAMPLE:
  88.                              fa a437 a500 $a32*,x
  89.                              .,a43d lda $a326,x
  90.                              .,a442 lda $a327,x
  91.                              . 
  92.                                                    
  93.        x                     EXIT THE PROGRAMM 
  94.                              tHE brk VECTOR IS BEING KEPT.
  95.  
  96.