
 1000  *SAVE S.PAGE-ZERO IN ORDER
 1010  *--------------------------------
 1020  *      SEARCH FOR PAGE ZERO REFERENCES
 1030  *      (MODIFIED BY TRACY SHAFER)
 1040  *--------------------------------
 1050  MON.A1L    .EQ $3C
 1060  MON.A1H    .EQ $3D
 1070  MON.A2L    .EQ $3E
 1080  MON.A2H    .EQ $3F
 1090  MON.PCL    .EQ $3A
 1100  MON.PCH    .EQ $3B
 1110  *--------------------------------
 1120  KEYBOARD   .EQ $C000
 1130  STROBE     .EQ $C010
 1140  *--------------------------------
 1150  MON.LIST2  .EQ $FE63
 1160  MON.INSDS  .EQ $F88C
 1170  MON.A1PC   .EQ $FE75
 1180  MON.PCADJ  .EQ $F953
 1190  MON.NXTA1  .EQ $FCBA
 1200  *--------------------------------
 1210  *      SET UP CONTROL-Y VECTOR
 1220  *--------------------------------
 1230  SETUPY LDA #$4C     'JMP' OPCODE
 1240         STA $3F8
 1250         LDA #CTRL.Y
 1260         STA $3F9
 1270         LDA /CTRL.Y
 1280         STA $3FA
 1290         RTS
 1300  *--------------------------------
 1310  PAGE.REF   .HS 00   VARIABLE TO HOLD THE CURRENT
 1320  *                   PAGE-ZERO LOCATION
 1330  *--------------------------------
 1340  *      CONTROL-Y COMES HERE
 1350  *--------------------------------
 1360  CTRL.Y
 1370         JSR MON.A1PC IF ADDRESS SPECIFIED, PUT IN PC
 1380  .1     LDY #0
 1390         LDA (MON.PCL),Y
 1400         AND #$0F
 1410         CMP #1
 1420         BEQ .3
 1430         CMP #4
 1440         BCC .6
 1450         BNE .2
 1460         LDA (MON.PCL),Y
 1470         AND #$F0
 1480         CMP #$20     BIT Z
 1490         BEQ .3
 1500         CMP #$80
 1510         BCC .6       NO
 1520         CMP #$D0
 1530         BEQ .6       NO
 1540         CMP #$F0
 1550         BEQ .6       NO
 1560         BNE .3       YES
 1570  .2     CMP #7
 1580         BCS .6
 1590  *--------------------------------
 1600  *      INSTRUCTION REFERENCES PAGE-ZERO
 1610  *--------------------------------
 1620  .3     INY
 1630         LDA (MON.PCL),Y   GET PAGE REFERENCE
 1640         DEY          RESTORE VALUE OF Y
 1650         CMP PAGE.REF   ONE WE ARE SEARCHING FOR?
 1660         BNE .6         NO, IGNORE THIS TIME
 1670         LDA #1       DISASSEMBLE THIS ONE INSTRUCTION
 1680         JSR MON.LIST2   DISASSEMBLE
 1690         LDA KEYBOARD    SEE IF KEYPRESS
 1700         BPL .7       NO
 1710         STA STROBE   YES, CLEAR IT
 1720         CMP #$8D
 1730         BEQ .5
 1740  .4     LDA KEYBOARD
 1750         BPL .4
 1760         STA STROBE
 1770         CMP #$8D
 1780         BNE .7
 1790  .5     RTS
 1800  *--------------------------------
 1810  *      DOES NOT REFERENCE PAGE-ZERO
 1820  *--------------------------------
 1830  .6     LDX #0
 1840         JSR MON.INSDS    GET LENGTH OF INSTRUCTION
 1850         JSR MON.PCADJ
 1860         STA MON.PCL
 1870         STY MON.PCH
 1880  *--------------------------------
 1890  *      TEST IF FINISHED
 1900  *--------------------------------
 1910  .7     LDA MON.PCL
 1920         CMP MON.A2L
 1930         LDA MON.PCH
 1940         SBC MON.A2H
 1950         BCC .1
 1960         LDX #1       RESTORE X-VALUE FOR MON.A1PC ABOVE
 1970         INC PAGE.REF NEXT PAGE
 1980         BNE CTRL.Y   NOT FINISHED
 1990         RTS

