1    ***************************                2    *                         *                3    *        APPLE II         *                4    *     SYSTEM MONITOR      *                5    *                         *                6    *    COPYRIGHT 1977 BY    *                7    *   APPLE COMPUTER, INC.  *                8    *                         *                9    *   ALL RIGHTS RESERVED   *                10   *                         *                11   *       S. WOZNIAK        *                12   *        A. BAUM          *                13   *                         *                14   ***************************                15   ; TITLE "APPLE II SYSTEM MONITOR"                16   LOC0     EQU   $00                17   LOC1     EQU   $01                18   WNDLFT   EQU   $20                19   WNDWDTH  EQU   $21                20   WNDTOP   EQU   $22                21   WNDBTM   EQU   $23                22   CH       EQU   $24                23   CV       EQU   $25                24   GBASL    EQU   $26                25   GBASH    EQU   $27                26   BASL     EQU   $28                27   BASH     EQU   $29                28   BAS2L    EQU   $2A                29   BAS2H    EQU   $2B                30   H2       EQU   $2C                31   LMNEM    EQU   $2C                32   RTNL     EQU   $2C                33   V2       EQU   $2D                34   RMNEM    EQU   $2D                35   RTNH     EQU   $2D                36   MASK     EQU   $2E                37   CHKSUM   EQU   $2E                38   FORMAT   EQU   $2E                39   LASTIN   EQU   $2F                40   LENGTH   EQU   $2F                41   SIGN     EQU   $2F                42   COLOR    EQU   $30                43   MODE     EQU   $31                44   INVFLG   EQU   $32                45   PROMPT   EQU   $33                46   YSAV     EQU   $34                47   YSAV1    EQU   $35                48   CSWL     EQU   $36                49   CSWH     EQU   $37                50   KSWL     EQU   $38                51   KSWH     EQU   $39                52   PCL      EQU   $3A                53   PCH      EQU   $3B                54   XQT      EQU   $3C                55   A1L      EQU   $3C                56   A1H      EQU   $3D                57   A2L      EQU   $3E                58   A2H      EQU   $3F                59   A3L      EQU   $40                60   A3H      EQU   $41                61   A4L      EQU   $42                62   A4H      EQU   $43                63   A5L      EQU   $44                64   A5H      EQU   $45                65   ACC      EQU   $45                66   XREG     EQU   $46                67   YREG     EQU   $47                68   STATUS   EQU   $48                69   SPNT     EQU   $49                70   RNDL     EQU   $4E                71   RNDH     EQU   $4F                72   ACL      EQU   $50                73   ACH      EQU   $51                74   XTNDL    EQU   $52                75   XTNDH    EQU   $53                76   AUXL     EQU   $54                77   AUXH     EQU   $55                78   PICK     EQU   $95                79   IN       EQU   $0200                80   USRADR   EQU   $03F8                81   NMI      EQU   $03FB                82   IRQLOC   EQU   $03FE                83   IOADR    EQU   $C000                84   KBD      EQU   $C000                85   KBDSTRB  EQU   $C010                86   TAPEOUT  EQU   $C020                87   SPKR     EQU   $C030                88   TXTCLR   EQU   $C050                89   TXTSET   EQU   $C051                90   MIXCLR   EQU   $C052                91   MIXSET   EQU   $C053                92   LOWSCR   EQU   $C054                93   HISCR    EQU   $C055                94   LORES    EQU   $C056                95   HIRES    EQU   $C057                96   TAPEIN   EQU   $C060                97   PADDL0   EQU   $C064                98   PTRIG    EQU   $C070                99   BASIC    EQU   $E000                100  BASIC2   EQU   $E003                101           ORG   $F800      ;ROM START ADDRESSF800: 4A        102  PLOT     LSR              ;Y-COORD/2F801: 08        103           PHP              ;SAVE LSB IN CARRYF802: 20 47 F8  104           JSR   GBASCALC   ;CALC BASE ADR IN GBASL,HF805: 28        105           PLP              ;RESTORE LSB FROM CARRYF806: A9 0F     106           LDA   #$0F       ;MASK $0F IF EVENF808: 90 02     107           BCC   RTMASKF80A: 69 E0     108           ADC   #$E0       ;MASK $F0 IF ODDF80C: 85 2E     109  RTMASK   STA   MASKF80E: B1 26     110  PLOT1    LDA   (GBASL),Y  ;DATAF810: 45 30     111           EOR   COLOR      ; EOR COLORF812: 25 2E     112           AND   MASK       ;  AND MASKF814: 51 26     113           EOR   (GBASL),Y  ;   EOR DATAF816: 91 26     114           STA   (GBASL),Y  ;    TO DATAF818: 60        115           RTSF819: 20 00 F8  116  HLINE    JSR   PLOT       ;PLOT SQUAREF81C: C4 2C     117  HLINE1   CPY   H2         ;DONE?F81E: B0 11     118           BCS   RTS1       ; YES, RETURNF820: C8        119           INY              ; NO, INC INDEX (X-COORD)F821: 20 0E F8  120           JSR   PLOT1      ;PLOT NEXT SQUAREF824: 90 F6     121           BCC   HLINE1     ;ALWAYS TAKENF826: 69 01     122  VLINEZ   ADC   #$01       ;NEXT Y-COORDF828: 48        123  VLINE    PHA              ; SAVE ON STACKF829: 20 00 F8  124           JSR   PLOT       ; PLOT SQUAREF82C: 68        125           PLAF82D: C5 2D     126           CMP   V2         ;DONE?F82F: 90 F5     127           BCC   VLINEZ     ; NO, LOOPF831: 60        128  RTS1     RTSF832: A0 2F     129  CLRSCR   LDY   #$2F       ;MAX Y, FULL SCRN CLRF834: D0 02     130           BNE   CLRSC2     ;ALWAYS TAKENF836: A0 27     131  CLRTOP   LDY   #$27       ;MAX Y, TOP SCREEN CLRF838: 84 2D     132  CLRSC2   STY   V2         ;STORE AS BOTTOM COORD                133                            ; FOR VLINE CALLSF83A: A0 27     134           LDY   #$27       ;RIGHTMOST X-COORD (COLUMN)F83C: A9 00     135  CLRSC3   LDA   #$00       ;TOP COORD FOR VLINE CALLSF83E: 85 30     136           STA   COLOR      ;CLEAR COLOR (BLACK)F840: 20 28 F8  137           JSR   VLINE      ;DRAW VLINEF843: 88        138           DEY              ;NEXT LEFTMOST X-COORDF844: 10 F6     139           BPL   CLRSC3     ;LOOP UNTIL DONEF846: 60        140           RTSF847: 48        141  GBASCALC PHA              ;FOR INPUT 000DEFGHF848: 4A        142           LSRF849: 29 03     143           AND   #$03F84B: 09 04     144           ORA   #$04       ;  GENERATE GBASH=000001FGF84D: 85 27     145           STA   GBASHF84F: 68        146           PLA              ;  AND GBASL=HDEDE000F850: 29 18     147           AND   #$18F852: 90 02     148           BCC   GBCALCF854: 69 7F     149           ADC   #$7FF856: 85 26     150  GBCALC   STA   GBASLF858: 0A        151           ASLF859: 0A        152           ASLF85A: 05 26     153           ORA   GBASLF85C: 85 26     154           STA   GBASLF85E: 60        155           RTSF85F: A5 30     156  NXTCOL   LDA   COLOR      ;INCREMENT COLOR BY 3F861: 18        157           CLCF862: 69 03     158           ADC   #$03F864: 29 0F     159  SETCOL   AND   #$0F       ;SETS COLOR=17*A MOD 16F866: 85 30     160           STA   COLORF868: 0A        161           ASL              ;BOTH HALF BYTES OF COLOR EQUALF869: 0A        162           ASLF86A: 0A        163           ASLF86B: 0A        164           ASLF86C: 05 30     165           ORA   COLORF86E: 85 30     166           STA   COLORF870: 60        167           RTSF871: 4A        168  SCRN     LSR              ;READ SCREEN Y-COORD/2F872: 08        169           PHP              ;SAVE LSB (CARRY)F873: 20 47 F8  170           JSR   GBASCALC   ;CALC BASE ADDRESSF876: B1 26     171           LDA   (GBASL),Y  ;GET BYTEF878: 28        172           PLP              ;RESTORE LSB FROM CARRYF879: 90 04     173  SCRN2    BCC   RTMSKZ     ;IF EVEN, USE LO HF87B: 4A        174           LSRF87C: 4A        175           LSRF87D: 4A        176           LSR              ;SHIFT HIGH HALF BYTE DOWNF87E: 4A        177           LSRF87F: 29 0F     178  RTMSKZ   AND   #$0F       ;MASK 4-BITSF881: 60        179           RTSF882: A6 3A     180  INSDS1   LDX   PCL        ;PRINT PCL,HF884: A4 3B     181           LDY   PCHF886: 20 96 FD  182           JSR   PRYX2F889: 20 48 F9  183           JSR   PRBLNK     ;FOLLOWED BY A BLANKF88C: A1 3A     184           LDA   (PCL,X)    ;GET OP CODEF88E: A8        185  INSDS2   TAYF88F: 4A        186           LSR              ;EVEN/ODD TESTF890: 90 09     187           BCC   IEVENF892: 6A        188           ROR              ;BIT 1 TESTF893: B0 10     189           BCS   ERR        ;XXXXXX11 INVALID OPF895: C9 A2     190           CMP   #$A2F897: F0 0C     191           BEQ   ERR        ;OPCODE $89 INVALIDF899: 29 87     192           AND   #$87       ;MASK BITSF89B: 4A        193  IEVEN    LSR              ;LSB INTO CARRY FOR L/R TESTF89C: AA        194           TAXF89D: BD 62 F9  195           LDA   FMT1,X     ;GET FORMAT INDEX BYTEF8A0: 20 79 F8  196           JSR   SCRN2      ;R/L H-BYTE ON CARRYF8A3: D0 04     197           BNE   GETFMTF8A5: A0 80     198  ERR      LDY   #$80       ;SUBSTITUTE $80 FOR INVALID OPSF8A7: A9 00     199           LDA   #$00       ;SET PRINT FORMAT INDEX TO 0F8A9: AA        200  GETFMT   TAXF8AA: BD A6 F9  201           LDA   FMT2,X     ;INDEX INTO PRINT FORMAT TABLEF8AD: 85 2E     202           STA   FORMAT     ;SAVE FOR ADR FIELD FORMATTINGF8AF: 29 03     203           AND   #$03       ;MASK FOR 2-BIT LENGTH                204                            ; (P=1 BYTE, 1=2 BYTE, 2=3 BYTE)F8B1: 85 2F     205           STA   LENGTHF8B3: 98        206           TYA              ;OPCODEF8B4: 29 8F     207           AND   #$8F       ;MASK FOR 1XXX1010 TESTF8B6: AA        208           TAX              ; SAVE ITF8B7: 98        209           TYA              ;OPCODE TO A AGAINF8B8: A0 03     210           LDY   #$03F8BA: E0 8A     211           CPX   #$8AF8BC: F0 0B     212           BEQ   MNNDX3F8BE: 4A        213  MNNDX1   LSRF8BF: 90 08     214           BCC   MNNDX3     ;FORM INDEX INTO MNEMONIC TABLEF8C1: 4A        215           LSRF8C2: 4A        216  MNNDX2   LSR              ;1) 1XXX1010->00101XXXF8C3: 09 20     217           ORA   #$20       ;2) XXXYYY01->00111XXXF8C5: 88        218           DEY              ;3) XXXYYY10->00110XXXF8C6: D0 FA     219           BNE   MNNDX2     ;4) XXXYY100->00100XXXF8C8: C8        220           INY              ;5) XXXXX000->000XXXXXF8C9: 88        221  MNNDX3   DEYF8CA: D0 F2     222           BNE   MNNDX1F8CC: 60        223           RTSF8CD: FF FF FF  224           DFB   $FF,$FF,$FFF8D0: 20 82 F8  225  INSTDSP  JSR   INSDS1     ;GEN FMT, LEN BYTESF8D3: 48        226           PHA              ;SAVE MNEMONIC TABLE INDEXF8D4: B1 3A     227  PRNTOP   LDA   (PCL),YF8D6: 20 DA FD  228           JSR   PRBYTEF8D9: A2 01     229           LDX   #$01       ;PRINT 2 BLANKSF8DB: 20 4A F9  230  PRNTBL   JSR   PRBL2F8DE: C4 2F     231           CPY   LENGTH     ;PRINT INST (1-3 BYTES)F8E0: C8        232           INY              ;IN A 12 CHR FIELDF8E1: 90 F1     233           BCC   PRNTOPF8E3: A2 03     234           LDX   #$03       ;CHAR COUNT FOR MNEMONIC PRINTF8E5: C0 04     235           CPY   #$04F8E7: 90 F2     236           BCC   PRNTBLF8E9: 68        237           PLA              ;RECOVER MNEMONIC INDEXF8EA: A8        238           TAYF8EB: B9 C0 F9  239           LDA   MNEML,YF8EE: 85 2C     240           STA   LMNEM      ;FETCH 3-CHAR MNEMONICF8F0: B9 00 FA  241           LDA   MNEMR,Y    ;  (PACKED IN 2-BYTES)F8F3: 85 2D     242           STA   RMNEMF8F5: A9 00     243  PRMN1    LDA   #$00F8F7: A0 05     244           LDY   #$05F8F9: 06 2D     245  PRMN2    ASL   RMNEM      ;SHIFT 5 BITS OFF8FB: 26 2C     246           ROL   LMNEM      ;  CHARACTER INTO AF8FD: 2A        247           ROL              ;    (CLEARS CARRY)F8FE: 88        248           DEYF8FF: D0 F8     249           BNE   PRMN2F901: 69 BF     250           ADC   #$BF       ;ADD "?" OFFSETF903: 20 ED FD  251           JSR   COUT       ;OUTPUT A CHAR OF MNEMF906: CA        252           DEXF907: D0 EC     253           BNE   PRMN1F909: 20 48 F9  254           JSR   PRBLNK     ;OUTPUT 3 BLANKSF90C: A4 2F     255           LDY   LENGTHF90E: A2 06     256           LDX   #$06       ;CNT FOR 6 FORMAT BITSF910: E0 03     257  PRADR1   CPX   #$03F912: F0 1C     258           BEQ   PRADR5     ;IF X=3 THEN ADDR.F914: 06 2E     259  PRADR2   ASL   FORMATF916: 90 0E     260           BCC   PRADR3F918: BD B3 F9  261           LDA   CHAR1-1,XF91B: 20 ED FD  262           JSR   COUTF91E: BD B9 F9  263           LDA   CHAR2-1,XF921: F0 03     264           BEQ   PRADR3F923: 20 ED FD  265           JSR   COUTF926: CA        266  PRADR3   DEXF927: D0 E7     267           BNE   PRADR1F929: 60        268           RTSF92A: 88        269  PRADR4   DEYF92B: 30 E7     270           BMI   PRADR2F92D: 20 DA FD  271           JSR   PRBYTEF930: A5 2E     272  PRADR5   LDA   FORMATF932: C9 E8     273           CMP   #$E8       ;HANDLE REL ADR MODEF934: B1 3A     274           LDA   (PCL),Y    ;SPECIAL (PRINT TARGET,F936: 90 F2     275           BCC   PRADR4     ;  NOT OFFSET)F938: 20 56 F9  276  RELADR   JSR   PCADJ3F93B: AA        277           TAX              ;PCL,PCH+OFFSET+1 TO A,YF93C: E8        278           INXF93D: D0 01     279           BNE   PRNTYX     ;+1 TO Y,XF93F: C8        280           INYF940: 98        281  PRNTYX   TYAF941: 20 DA FD  282  PRNTAX   JSR   PRBYTE     ;OUTPUT TARGET ADRF944: 8A        283  PRNTX    TXA              ;  OF BRANCH AND RETURNF945: 4C DA FD  284           JMP   PRBYTEF948: A2 03     285  PRBLNK   LDX   #$03       ;BLANK COUNTF94A: A9 A0     286  PRBL2    LDA   #$A0       ;LOAD A SPACEF94C: 20 ED FD  287  PRBL3    JSR   COUT       ;OUTPUT A BLANKF94F: CA        288           DEXF950: D0 F8     289           BNE   PRBL2      ;LOOP UNTIL COUNT=0F952: 60        290           RTSF953: 38        291  PCADJ    SEC              ;0=1-BYTE, 1=2-BYTEF954: A5 2F     292  PCADJ2   LDA   LENGTH     ;  2=3-BYTEF956: A4 3B     293  PCADJ3   LDY   PCHF958: AA        294           TAX              ;TEST DISPLACEMENT SIGNF959: 10 01     295           BPL   PCADJ4     ;  (FOR REL BRANCH)F95B: 88        296           DEY              ;EXTEND NEG BY DEC PCHF95C: 65 3A     297  PCADJ4   ADC   PCLF95E: 90 01     298           BCC   RTS2       ;PCL+LENGTH(OR DISPL)+1 TO AF960: C8        299           INY              ;  CARRY INTO Y (PCH)F961: 60        300  RTS2     RTS                301  * FMT1 BYTES:    XXXXXXY0 INSTRS                302  * IF Y=0         THEN LEFT HALF BYTE                303  * IF Y=1         THEN RIGHT HALF BYTE                304  *                   (X=INDEX)F962: 04 20 54  305  FMT1     DFB   $04,$20,$54,$30,$0DF965: 30 0DF967: 80 04 90  306           DFB   $80,$04,$90,$03,$22F96A: 03 22F96C: 54 33 0D  307           DFB   $54,$33,$0D,$80,$04F96F: 80 04F971: 90 04 20  308           DFB   $90,$04,$20,$54,$33F974: 54 33F976: 0D 80 04  309           DFB   $0D,$80,$04,$90,$04F979: 90 04F97B: 20 54 3B  310           DFB   $20,$54,$3B,$0D,$80F97E: 0D 80F980: 04 90 00  311           DFB   $04,$90,$00,$22,$44F983: 22 44F985: 33 0D C8  312           DFB   $33,$0D,$C8,$44,$00F988: 44 00F98A: 11 22 44  313           DFB   $11,$22,$44,$33,$0DF98D: 33 0DF98F: C8 44 A9  314           DFB   $C8,$44,$A9,$01,$22F992: 01 22F994: 44 33 0D  315           DFB   $44,$33,$0D,$80,$04F997: 80 04F999: 90 01 22  316           DFB   $90,$01,$22,$44,$33F99C: 44 33F99E: 0D 80 04  317           DFB   $0D,$80,$04,$90F9A1: 90F9A2: 26 31 87  318           DFB   $26,$31,$87,$9A ;$ZZXXXY01 INSTR'SF9A5: 9AF9A6: 00        319  FMT2     DFB   $00        ;ERRF9A7: 21        320           DFB   $21        ;IMMF9A8: 81        321           DFB   $81        ;Z-PAGEF9A9: 82        322           DFB   $82        ;ABSF9AA: 00        323           DFB   $00        ;IMPLIEDF9AB: 00        324           DFB   $00        ;ACCUMULATORF9AC: 59        325           DFB   $59        ;(ZPAG,X)F9AD: 4D        326           DFB   $4D        ;(ZPAG),YF9AE: 91        327           DFB   $91        ;ZPAG,XF9AF: 92        328           DFB   $92        ;ABS,XF9B0: 86        329           DFB   $86        ;ABS,YF9B1: 4A        330           DFB   $4A        ;(ABS)F9B2: 85        331           DFB   $85        ;ZPAG,YF9B3: 9D        332           DFB   $9D        ;RELATIVEF9B4: AC A9 AC  333  CHAR1    ASC   ",),#($"F9B7: A3 A8 A4F9BA: D9 00 D8  334  CHAR2    DFB   $D9,$00,$D8,$A4,$A4,$00F9BD: A4 A4 00                335  *CHAR2: "Y",0,"X$$",0                336  * MNEML IS OF FORM:                337  *  (A) XXXXX000                338  *  (B) XXXYY100                339  *  (C) 1XXX1010                340  *  (D) XXXYYY10                341  *  (E) XXXYYY01                342  *      (X=INDEX)F9C0: 1C 8A 1C  343  MNEML    DFB   $1C,$8A,$1C,$23,$5D,$8BF9C3: 23 5D 8BF9C6: 1B A1 9D  344           DFB   $1B,$A1,$9D,$8A,$1D,$23F9C9: 8A 1D 23F9CC: 9D 8B 1D  345           DFB   $9D,$8B,$1D,$A1,$00,$29F9CF: A1 00 29F9D2: 19 AE 69  346           DFB   $19,$AE,$69,$A8,$19,$23F9D5: A8 19 23F9D8: 24 53 1B  347           DFB   $24,$53,$1B,$23,$24,$53F9DB: 23 24 53F9DE: 19 A1     348           DFB   $19,$A1    ;(A) FORMAT ABOVEF9E0: 00 1A 5B  349           DFB   $00,$1A,$5B,$5B,$A5,$69F9E3: 5B A5 69F9E6: 24 24     350           DFB   $24,$24    ;(B) FORMATF9E8: AE AE A8  351           DFB   $AE,$AE,$A8,$AD,$29,$00F9EB: AD 29 00F9EE: 7C 00     352           DFB   $7C,$00    ;(C) FORMATF9F0: 15 9C 6D  353           DFB   $15,$9C,$6D,$9C,$A5,$69F9F3: 9C A5 69F9F6: 29 53     354           DFB   $29,$53    ;(D) FORMATF9F8: 84 13 34  355           DFB   $84,$13,$34,$11,$A5,$69F9FB: 11 A5 69F9FE: 23 A0     356           DFB   $23,$A0    ;(E) FORMATFA00: D8 62 5A  357  MNEMR    DFB   $D8,$62,$5A,$48,$26,$62FA03: 48 26 62FA06: 94 88 54  358           DFB   $94,$88,$54,$44,$C8,$54FA09: 44 C8 54FA0C: 68 44 E8  359           DFB   $68,$44,$E8,$94,$00,$B4FA0F: 94 00 B4FA12: 08 84 74  360           DFB   $08,$84,$74,$B4,$28,$6EFA15: B4 28 6EFA18: 74 F4 CC  361           DFB   $74,$F4,$CC,$4A,$72,$F2FA1B: 4A 72 F2FA1E: A4 8A     362           DFB   $A4,$8A    ;(A) FORMATFA20: 00 AA A2  363           DFB   $00,$AA,$A2,$A2,$74,$74FA23: A2 74 74FA26: 74 72     364           DFB   $74,$72    ;(B) FORMATFA28: 44 68 B2  365           DFB   $44,$68,$B2,$32,$B2,$00FA2B: 32 B2 00FA2E: 22 00     366           DFB   $22,$00    ;(C) FORMATFA30: 1A 1A 26  367           DFB   $1A,$1A,$26,$26,$72,$72FA33: 26 72 72FA36: 88 C8     368           DFB   $88,$C8    ;(D) FORMATFA38: C4 CA 26  369           DFB   $C4,$CA,$26,$48,$44,$44FA3B: 48 44 44FA3E: A2 C8     370           DFB   $A2,$C8    ;(E) FORMATFA40: FF FF FF  371           DFB   $FF,$FF,$FFFA43: 20 D0 F8  372  STEP     JSR   INSTDSP    ;DISASSEMBLE ONE INSTFA46: 68        373           PLA              ;  AT (PCL,H)FA47: 85 2C     374           STA   RTNL       ;ADJUST TO USERFA49: 68        375           PLA              ;  STACK. SAVEFA4A: 85 2D     376           STA   RTNH       ;  RTN ADR.FA4C: A2 08     377           LDX   #$08FA4E: BD 10 FB  378  XQINIT   LDA   INITBL-1,X ;INIT XEQ AREAFA51: 95 3C     379           STA   XQT,XFA53: CA        380           DEXFA54: D0 F8     381           BNE   XQINITFA56: A1 3A     382           LDA   (PCL,X)    ;USER OPCODE BYTEFA58: F0 42     383           BEQ   XBRK       ;SPECIAL IF BREAKFA5A: A4 2F     384           LDY   LENGTH     ;LEN FROM DISASSEMBLYFA5C: C9 20     385           CMP   #$20FA5E: F0 59     386           BEQ   XJSR       ;HANDLE JSR, RTS, JMP,FA60: C9 60     387           CMP   #$60       ;  JMP (), RTI SPECIALFA62: F0 45     388           BEQ   XRTSFA64: C9 4C     389           CMP   #$4CFA66: F0 5C     390           BEQ   XJMPFA68: C9 6C     391           CMP   #$6CFA6A: F0 59     392           BEQ   XJMPATFA6C: C9 40     393           CMP   #$40FA6E: F0 35     394           BEQ   XRTIFA70: 29 1F     395           AND   #$1FFA72: 49 14     396           EOR   #$14FA74: C9 04     397           CMP   #$04       ;COPY USER INST TO XEQ AREAFA76: F0 02     398           BEQ   XQ2        ;  WITH TRAILING NOPSFA78: B1 3A     399  XQ1      LDA   (PCL),Y    ;CHANGE REL BRANCHFA7A: 99 3C 00  400  XQ2      STA   XQT,Y      ;  DISP TO 4 FORFA7D: 88        401           DEY              ;  JMP TO BRANCH ORFA7E: 10 F8     402           BPL   XQ1        ;  NBRANCH FROM XEQ.FA80: 20 3F FF  403           JSR   RESTORE    ;RESTORE USER REG CONTENTS.FA83: 4C 3C 00  404           JMP   XQT        ;XEQ USER OP FROM RAMFA86: 85 45     405  IRQ      STA   ACC        ;  (RETURN TO NBRANCH)FA88: 68        406           PLAFA89: 48        407           PHA              ;**IRQ HANDLERFA8A: 0A        408           ASLFA8B: 0A        409           ASLFA8C: 0A        410           ASLFA8D: 30 03     411           BMI   BREAK      ;TEST FOR BREAKFA8F: 6C FE 03  412           JMP   (IRQLOC)   ;USER ROUTINE VECTOR IN RAMFA92: 28        413  BREAK    PLPFA93: 20 4C FF  414           JSR   SAV1       ;SAVE REG'S ON BREAKFA96: 68        415           PLA              ;  INCLUDING PCFA97: 85 3A     416           STA   PCLFA99: 68        417           PLAFA9A: 85 3B     418           STA   PCHFA9C: 20 82 F8  419  XBRK     JSR   INSDS1     ;PRINT USER PC.FA9F: 20 DA FA  420           JSR   RGDSP1     ;  AND REG'SFAA2: 4C 65 FF  421           JMP   MON        ;GO TO MONITORFAA5: 18        422  XRTI     CLCFAA6: 68        423           PLA              ;SIMULATE RTI BY EXPECTINGFAA7: 85 48     424           STA   STATUS     ;  STATUS FROM STACK, THEN RTSFAA9: 68        425  XRTS     PLA              ;RTS SIMULATIONFAAA: 85 3A     426           STA   PCL        ;  EXTRACT PC FROM STACKFAAC: 68        427           PLA              ;  AND UPDATE PC BY 1 (LEN=0)FAAD: 85 3B     428  PCINC2   STA   PCHFAAF: A5 2F     429  PCINC3   LDA   LENGTH     ;UPDATE PC BY LENFAB1: 20 56 F9  430           JSR   PCADJ3FAB4: 84 3B     431           STY   PCHFAB6: 18        432           CLCFAB7: 90 14     433           BCC   NEWPCLFAB9: 18        434  XJSR     CLCFABA: 20 54 F9  435           JSR   PCADJ2     ;UPDATE PC AND PUSHFABD: AA        436           TAX              ;  ONTO STACH FORFABE: 98        437           TYA              ;  JSR SIMULATEFABF: 48        438           PHAFAC0: 8A        439           TXAFAC1: 48        440           PHAFAC2: A0 02     441           LDY   #$02FAC4: 18        442  XJMP     CLCFAC5: B1 3A     443  XJMPAT   LDA   (PCL),YFAC7: AA        444           TAX              ;LOAD PC FOR JMP,FAC8: 88        445           DEY              ;  (JMP) SIMULATE.FAC9: B1 3A     446           LDA   (PCL),YFACB: 86 3B     447           STX   PCHFACD: 85 3A     448  NEWPCL   STA   PCLFACF: B0 F3     449           BCS   XJMPFAD1: A5 2D     450  RTNJMP   LDA   RTNHFAD3: 48        451           PHAFAD4: A5 2C     452           LDA   RTNLFAD6: 48        453           PHAFAD7: 20 8E FD  454  REGDSP   JSR   CROUT      ;DISPLAY USER REGFADA: A9 45     455  RGDSP1   LDA   #ACC       ;  CONTENTS WITHFADC: 85 40     456           STA   A3L        ;  LABELSFADE: A9 00     457           LDA   #ACC/256FAE0: 85 41     458           STA   A3HFAE2: A2 FB     459           LDX   #$FBFAE4: A9 A0     460  RDSP1    LDA   #$A0FAE6: 20 ED FD  461           JSR   COUTFAE9: BD 1E FA  462           LDA   RTBL-$FB,XFAEC: 20 ED FD  463           JSR   COUTFAEF: A9 BD     464           LDA   #$BDFAF1: 20 ED FD  465           JSR   COUTFAF4: B5 4A     466           LDA   ACC+5,XFAF6: 20 DA FD  467           JSR   PRBYTEFAF9: E8        468           INXFAFA: 30 E8     469           BMI   RDSP1FAFC: 60        470           RTSFAFD: 18        471  BRANCH   CLC              ;BRANCH TAKEN,FAFE: A0 01     472           LDY   #$01       ;  ADD LEN+2 TO PCFB00: B1 3A     473           LDA   (PCL),YFB02: 20 56 F9  474           JSR   PCADJ3FB05: 85 3A     475           STA   PCLFB07: 98        476           TYAFB08: 38        477           SECFB09: B0 A2     478           BCS   PCINC2FB0B: 20 4A FF  479  NBRNCH   JSR   SAVE       ;NORMAL RETURN AFTERFB0E: 38        480           SEC              ;  XEQ USER OFFB0F: B0 9E     481           BCS   PCINC3     ;GO UPDATE PCFB11: EA        482  INITBL   NOPFB12: EA        483           NOP              ;DUMMY FILL FORFB13: 4C 0B FB  484           JMP   NBRNCH     ;  XEQ AREAFB16: 4C FD FA  485           JMP   BRANCHFB19: C1        486  RTBL     DFB   $C1FB1A: D8        487           DFB   $D8FB1B: D9        488           DFB   $D9FB1C: D0        489           DFB   $D0FB1D: D3        490           DFB   $D3FB1E: AD 70 C0  491  PREAD    LDA   PTRIG      ;TRIGGER PADDLESFB21: A0 00     492           LDY   #$00       ;INIT COUNTFB23: EA        493           NOP              ;COMPENSATE FOR 1ST COUNTFB24: EA        494           NOPFB25: BD 64 C0  495  PREAD2   LDA   PADDL0,X   ;COUNT Y-REG EVERYFB28: 10 04     496           BPL   RTS2D      ;  12 USECFB2A: C8        497           INYFB2B: D0 F8     498           BNE   PREAD2     ;  EXIT AT 255 MAXFB2D: 88        499           DEYFB2E: 60        500  RTS2D    RTSFB2F: A9 00     501  INIT     LDA   #$00       ;CLR STATUS FOR DEBUGFB31: 85 48     502           STA   STATUS     ;  SOFTWAREFB33: AD 56 C0  503           LDA   LORESFB36: AD 54 C0  504           LDA   LOWSCR     ;INIT VIDEO MODEFB39: AD 51 C0  505  SETTXT   LDA   TXTSET     ;SET FOR TEXT MODEFB3C: A9 00     506           LDA   #$00       ;  FULL SCREEN WINDOWFB3E: F0 0B     507           BEQ   SETWNDFB40: AD 50 C0  508  SETGR    LDA   TXTCLR     ;SET FOR GRAPHICS MODEFB43: AD 53 C0  509           LDA   MIXSET     ;  LOWER 4 LINES ASFB46: 20 36 F8  510           JSR   CLRTOP     ;  TEXT WINDOWFB49: A9 14     511           LDA   #$14FB4B: 85 22     512  SETWND   STA   WNDTOP     ;SET FOR 40 COL WINDOWFB4D: A9 00     513           LDA   #$00       ;  TOP IN A-REG,FB4F: 85 20     514           STA   WNDLFT     ;  BTTM AT LINE 24FB51: A9 28     515           LDA   #$28FB53: 85 21     516           STA   WNDWDTHFB55: A9 18     517           LDA   #$18FB57: 85 23     518           STA   WNDBTM     ;  VTAB TO ROW 23FB59: A9 17     519           LDA   #$17FB5B: 85 25     520  TABV     STA   CV         ;VTABS TO ROW IN A-REGFB5D: 4C 22 FC  521           JMP   VTABFB60: 20 A4 FB  522  MULPM    JSR   MD1        ;ABS VAL OF AC AUXFB63: A0 10     523  MUL      LDY   #$10       ;INDEX FOR 16 BITSFB65: A5 50     524  MUL2     LDA   ACL        ;ACX * AUX + XTNDFB67: 4A        525           LSR              ; TO AC, XTNDFB68: 90 0C     526           BCC   MUL4       ;IF NO CARRY,FB6A: 18        527           CLC              ; NO PARTIAL PROD.FB6B: A2 FE     528           LDX   #$FEFB6D: B5 54     529  MUL3     LDA   XTNDL+2,X  ;ADD MPLCND (AUX)FB6F: 75 56     530           ADC   AUXL+2,X   ; TO PARTIAL PRODFB71: 95 54     531           STA   XTNDL+2,X  ; (XTND)FB73: E8        532           INXFB74: D0 F7     533           BNE   MUL3FB76: A2 03     534  MUL4     LDX   #$03FB78: 76        535  MUL5     DFB   $76FB79: 50        536           DFB   $50FB7A: CA        537           DEXFB7B: 10 FB     538           BPL   MUL5FB7D: 88        539           DEYFB7E: D0 E5     540           BNE   MUL2FB80: 60        541           RTSFB81: 20 A4 FB  542  DIVPM    JSR   MD1        ;ABS VAL OF AC, AUX.FB84: A0 10     543  DIV      LDY   #$10       ;INDEX FOR 16 BITSFB86: 06 50     544  DIV2     ASL   ACLFB88: 26 51     545           ROL   ACHFB8A: 26 52     546           ROL   XTNDL      ;XTND/AUXFB8C: 26 53     547           ROL   XTNDH      ;  TO AC.FB8E: 38        548           SECFB8F: A5 52     549           LDA   XTNDLFB91: E5 54     550           SBC   AUXL       ;MOD TO XTND.FB93: AA        551           TAXFB94: A5 53     552           LDA   XTNDHFB96: E5 55     553           SBC   AUXHFB98: 90 06     554           BCC   DIV3FB9A: 86 52     555           STX   XTNDLFB9C: 85 53     556           STA   XTNDHFB9E: E6 50     557           INC   ACLFBA0: 88        558  DIV3     DEYFBA1: D0 E3     559           BNE   DIV2FBA3: 60        560           RTSFBA4: A0 00     561  MD1      LDY   #$00       ;ABS VAL OF AC, AUXFBA6: 84 2F     562           STY   SIGN       ;  WITH RESULT SIGNFBA8: A2 54     563           LDX   #AUXL      ;  IN LSB OF SIGN.FBAA: 20 AF FB  564           JSR   MD3FBAD: A2 50     565           LDX   #ACLFBAF: B5 01     566  MD3      LDA   LOC1,X     ;X SPECIFIES AC OR AUXFBB1: 10 0D     567           BPL   MDRTSFBB3: 38        568           SECFBB4: 98        569           TYAFBB5: F5 00     570           SBC   LOC0,X     ;COMPL SPECIFIED REGFBB7: 95 00     571           STA   LOC0,X     ;  IF NEG.FBB9: 98        572           TYAFBBA: F5 01     573           SBC   LOC1,XFBBC: 95 01     574           STA   LOC1,XFBBE: E6 2F     575           INC   SIGNFBC0: 60        576  MDRTS    RTSFBC1: 48        577  BASCALC  PHA              ;CALC BASE ADR IN BASL,HFBC2: 4A        578           LSR              ;  FOR GIVEN LINE NOFBC3: 29 03     579           AND   #$03       ;  0<=LINE NO.<=$17FBC5: 09 04     580           ORA   #$04       ;ARG=000ABCDE, GENERATEFBC7: 85 29     581           STA   BASH       ;  BASH=000001CDFBC9: 68        582           PLA              ;  ANDFBCA: 29 18     583           AND   #$18       ;  BASL=EABAB000FBCC: 90 02     584           BCC   BSCLC2FBCE: 69 7F     585           ADC   #$7FFBD0: 85 28     586  BSCLC2   STA   BASLFBD2: 0A        587           ASLFBD3: 0A        588           ASLFBD4: 05 28     589           ORA   BASLFBD6: 85 28     590           STA   BASLFBD8: 60        591           RTSFBD9: C9 87     592  BELL1    CMP   #$87       ;BELL CHAR? (CNTRL-G)FBDB: D0 12     593           BNE   RTS2B      ;  NO, RETURNFBDD: A9 40     594           LDA   #$40       ;DELAY .01 SECONDSFBDF: 20 A8 FC  595           JSR   WAITFBE2: A0 C0     596           LDY   #$C0FBE4: A9 0C     597  BELL2    LDA   #$0C       ;TOGGLE SPEAKER ATFBE6: 20 A8 FC  598           JSR   WAIT       ;  1 KHZ FOR .1 SEC.FBE9: AD 30 C0  599           LDA   SPKRFBEC: 88        600           DEYFBED: D0 F5     601           BNE   BELL2FBEF: 60        602  RTS2B    RTSFBF0: A4 24     603  STOADV   LDY   CH         ;CURSOR H INDEX TO Y-REGFBF2: 91 28     604           STA   (BASL),Y   ;STORE CHAR IN LINEFBF4: E6 24     605  ADVANCE  INC   CH         ;INCREMENT CURSOR H INDEXFBF6: A5 24     606           LDA   CH         ;  (MOVE RIGHT)FBF8: C5 21     607           CMP   WNDWDTH    ;BEYOND WINDOW WIDTH?FBFA: B0 66     608           BCS   CR         ;  YES CR TO NEXT LINEFBFC: 60        609  RTS3     RTS              ;  NO,RETURNFBFD: C9 A0     610  VIDOUT   CMP   #$A0       ;CONTROL CHAR?FBFF: B0 EF     611           BCS   STOADV     ;  NO,OUTPUT IT.FC01: A8        612           TAY              ;INVERSE VIDEO?FC02: 10 EC     613           BPL   STOADV     ;  YES, OUTPUT IT.FC04: C9 8D     614           CMP   #$8D       ;CR?FC06: F0 5A     615           BEQ   CR         ;  YES.FC08: C9 8A     616           CMP   #$8A       ;LINE FEED?FC0A: F0 5A     617           BEQ   LF         ;  IF SO, DO IT.FC0C: C9 88     618           CMP   #$88       ;BACK SPACE? (CNTRL-H)FC0E: D0 C9     619           BNE   BELL1      ;  NO, CHECK FOR BELL.FC10: C6 24     620  BS       DEC   CH         ;DECREMENT CURSOR H INDEXFC12: 10 E8     621           BPL   RTS3       ;IF POS, OK. ELSE MOVE UPFC14: A5 21     622           LDA   WNDWDTH    ;SET CH TO WNDWDTH-1FC16: 85 24     623           STA   CHFC18: C6 24     624           DEC   CH         ;(RIGHTMOST SCREEN POS)FC1A: A5 22     625  UP       LDA   WNDTOP     ;CURSOR V INDEXFC1C: C5 25     626           CMP   CVFC1E: B0 0B     627           BCS   RTS4       ;IF TOP LINE THEN RETURNFC20: C6 25     628           DEC   CV         ;DEC CURSOR V-INDEXFC22: A5 25     629  VTAB     LDA   CV         ;GET CURSOR V-INDEXFC24: 20 C1 FB  630  VTABZ    JSR   BASCALC    ;GENERATE BASE ADRFC27: 65 20     631           ADC   WNDLFT     ;ADD WINDOW LEFT INDEXFC29: 85 28     632           STA   BASL       ;TO BASLFC2B: 60        633  RTS4     RTSFC2C: 49 C0     634  ESC1     EOR   #$C0       ;ESC?FC2E: F0 28     635           BEQ   HOME       ;  IF SO, DO HOME AND CLEARFC30: 69 FD     636           ADC   #$FD       ;ESC-A OR B CHECKFC32: 90 C0     637           BCC   ADVANCE    ;  A, ADVANCEFC34: F0 DA     638           BEQ   BS         ;  B, BACKSPACEFC36: 69 FD     639           ADC   #$FD       ;ESC-C OR D CHECKFC38: 90 2C     640           BCC   LF         ;  C, DOWNFC3A: F0 DE     641           BEQ   UP         ;  D, GO UPFC3C: 69 FD     642           ADC   #$FD       ;ESC-E OR F CHECKFC3E: 90 5C     643           BCC   CLREOL     ;  E, CLEAR TO END OF LINEFC40: D0 E9     644           BNE   RTS4       ;  NOT F, RETURNFC42: A4 24     645  CLREOP   LDY   CH         ;CURSOR H TO Y INDEXFC44: A5 25     646           LDA   CV         ;CURSOR V TO A-REGISTERFC46: 48        647  CLEOP1   PHA              ;SAVE CURRENT LINE ON STKFC47: 20 24 FC  648           JSR   VTABZ      ;CALC BASE ADDRESSFC4A: 20 9E FC  649           JSR   CLEOLZ     ;CLEAR TO EOL, SET CARRYFC4D: A0 00     650           LDY   #$00       ;CLEAR FROM H INDEX=0 FOR RESTFC4F: 68        651           PLA              ;INCREMENT CURRENT LINEFC50: 69 00     652           ADC   #$00       ;(CARRY IS SET)FC52: C5 23     653           CMP   WNDBTM     ;DONE TO BOTTOM OF WINDOW?FC54: 90 F0     654           BCC   CLEOP1     ;  NO, KEEP CLEARING LINESFC56: B0 CA     655           BCS   VTAB       ;  YES, TAB TO CURRENT LINEFC58: A5 22     656  HOME     LDA   WNDTOP     ;INIT CURSOR VFC5A: 85 25     657           STA   CV         ;  AND H-INDICESFC5C: A0 00     658           LDY   #$00FC5E: 84 24     659           STY   CH         ;THEN CLEAR TO END OF PAGEFC60: F0 E4     660           BEQ   CLEOP1FC62: A9 00     661  CR       LDA   #$00       ;CURSOR TO LEFT OF INDEXFC64: 85 24     662           STA   CH         ;(RET CURSOR H=0)FC66: E6 25     663  LF       INC   CV         ;INCR CURSOR V(DOWN 1 LINE)FC68: A5 25     664           LDA   CVFC6A: C5 23     665           CMP   WNDBTM     ;OFF SCREEN?FC6C: 90 B6     666           BCC   VTABZ      ;  NO, SET BASE ADDRFC6E: C6 25     667           DEC   CV         ;DECR CURSOR V (BACK TO BOTTOM)FC70: A5 22     668  SCROLL   LDA   WNDTOP     ;START AT TOP OF SCRL WNDWFC72: 48        669           PHAFC73: 20 24 FC  670           JSR   VTABZ      ;GENERATE BASE ADRFC76: A5 28     671  SCRL1    LDA   BASL       ;COPY BASL,HFC78: 85 2A     672           STA   BAS2L      ;  TO BAS2L,HFC7A: A5 29     673           LDA   BASHFC7C: 85 2B     674           STA   BAS2HFC7E: A4 21     675           LDY   WNDWDTH    ;INIT Y TO RIGHTMOST INDEXFC80: 88        676           DEY              ;  OF SCROLLING WINDOWFC81: 68        677           PLAFC82: 69 01     678           ADC   #$01       ;INCR LINE NUMBERFC84: C5 23     679           CMP   WNDBTM     ;DONE?FC86: B0 0D     680           BCS   SCRL3      ;  YES, FINISHFC88: 48        681           PHAFC89: 20 24 FC  682           JSR   VTABZ      ;FORM BASL,H (BASE ADDR)FC8C: B1 28     683  SCRL2    LDA   (BASL),Y   ;MOVE A CHR UP ON LINEFC8E: 91 2A     684           STA   (BAS2L),YFC90: 88        685           DEY              ;NEXT CHAR OF LINEFC91: 10 F9     686           BPL   SCRL2FC93: 30 E1     687           BMI   SCRL1      ;NEXT LINE (ALWAYS TAKEN)FC95: A0 00     688  SCRL3    LDY   #$00       ;CLEAR BOTTOM LINEFC97: 20 9E FC  689           JSR   CLEOLZ     ;GET BASE ADDR FOR BOTTOM LINEFC9A: B0 86     690           BCS   VTAB       ;CARRY IS SETFC9C: A4 24     691  CLREOL   LDY   CH         ;CURSOR H INDEXFC9E: A9 A0     692  CLEOLZ   LDA   #$A0FCA0: 91 28     693  CLEOL2   STA   (BASL),Y   ;STORE BLANKS FROM 'HERE'FCA2: C8        694           INY              ;  TO END OF LINES (WNDWDTH)FCA3: C4 21     695           CPY   WNDWDTHFCA5: 90 F9     696           BCC   CLEOL2FCA7: 60        697           RTSFCA8: 38        698  WAIT     SECFCA9: 48        699  WAIT2    PHAFCAA: E9 01     700  WAIT3    SBC   #$01FCAC: D0 FC     701           BNE   WAIT3      ;1.0204 USECFCAE: 68        702           PLA              ;(13+27/2*A+5/2*A*A)FCAF: E9 01     703           SBC   #$01FCB1: D0 F6     704           BNE   WAIT2FCB3: 60        705           RTSFCB4: E6 42     706  NXTA4    INC   A4L        ;INCR 2-BYTE A4FCB6: D0 02     707           BNE   NXTA1      ;  AND A1FCB8: E6 43     708           INC   A4HFCBA: A5 3C     709  NXTA1    LDA   A1L        ;INCR 2-BYTE A1.FCBC: C5 3E     710           CMP   A2LFCBE: A5 3D     711           LDA   A1H        ;  AND COMPARE TO A2FCC0: E5 3F     712           SBC   A2HFCC2: E6 3C     713           INC   A1L        ;  (CARRY SET IF >=)FCC4: D0 02     714           BNE   RTS4BFCC6: E6 3D     715           INC   A1HFCC8: 60        716  RTS4B    RTSFCC9: A0 4B     717  HEADR    LDY   #$4B       ;WRITE A*256 'LONG 1'FCCB: 20 DB FC  718           JSR   ZERDLY     ;  HALF CYCLESFCCE: D0 F9     719           BNE   HEADR      ;  (650 USEC EACH)FCD0: 69 FE     720           ADC   #$FEFCD2: B0 F5     721           BCS   HEADR      ;THEN A 'SHORT 0'FCD4: A0 21     722           LDY   #$21       ;  (400 USEC)FCD6: 20 DB FC  723  WRBIT    JSR   ZERDLY     ;WRITE TWO HALF CYCLESFCD9: C8        724           INY              ;  OF 250 USEC ('0')FCDA: C8        725           INY              ;  OR 500 USEC ('0')FCDB: 88        726  ZERDLY   DEYFCDC: D0 FD     727           BNE   ZERDLYFCDE: 90 05     728           BCC   WRTAPE     ;Y IS COUNT FORFCE0: A0 32     729           LDY   #$32       ;  TIMING LOOPFCE2: 88        730  ONEDLY   DEYFCE3: D0 FD     731           BNE   ONEDLYFCE5: AC 20 C0  732  WRTAPE   LDY   TAPEOUTFCE8: A0 2C     733           LDY   #$2CFCEA: CA        734           DEXFCEB: 60        735           RTSFCEC: A2 08     736  RDBYTE   LDX   #$08       ;8 BITS TO READFCEE: 48        737  RDBYT2   PHA              ;READ TWO TRANSITIONSFCEF: 20 FA FC  738           JSR   RD2BIT     ;  (FIND EDGE)FCF2: 68        739           PLAFCF3: 2A        740           ROL              ;NEXT BITFCF4: A0 3A     741           LDY   #$3A       ;COUNT FOR SAMPLESFCF6: CA        742           DEXFCF7: D0 F5     743           BNE   RDBYT2FCF9: 60        744           RTSFCFA: 20 FD FC  745  RD2BIT   JSR   RDBITFCFD: 88        746  RDBIT    DEY              ;DECR Y UNTILFCFE: AD 60 C0  747           LDA   TAPEIN     ; TAPE TRANSITIONFD01: 45 2F     748           EOR   LASTINFD03: 10 F8     749           BPL   RDBITFD05: 45 2F     750           EOR   LASTINFD07: 85 2F     751           STA   LASTINFD09: C0 80     752           CPY   #$80       ;SET CARRY ON YFD0B: 60        753           RTSFD0C: A4 24     754  RDKEY    LDY   CHFD0E: B1 28     755           LDA   (BASL),Y   ;SET SCREEN TO FLASHFD10: 48        756           PHAFD11: 29 3F     757           AND   #$3FFD13: 09 40     758           ORA   #$40FD15: 91 28     759           STA   (BASL),YFD17: 68        760           PLAFD18: 6C 38 00  761           JMP   (KSWL)     ;GO TO USER KEY-INFD1B: E6 4E     762  KEYIN    INC   RNDLFD1D: D0 02     763           BNE   KEYIN2     ;INCR RND NUMBERFD1F: E6 4F     764           INC   RNDHFD21: 2C 00 C0  765  KEYIN2   BIT   KBD        ;KEY DOWN?FD24: 10 F5     766           BPL   KEYIN      ;  LOOPFD26: 91 28     767           STA   (BASL),Y   ;REPLACE FLASHING SCREENFD28: AD 00 C0  768           LDA   KBD        ;GET KEYCODEFD2B: 2C 10 C0  769           BIT   KBDSTRB    ;CLR KEY STROBEFD2E: 60        770           RTSFD2F: 20 0C FD  771  ESC      JSR   RDKEY      ;GET KEYCODEFD32: 20 2C FC  772           JSR   ESC1       ;  HANDLE ESC FUNC.FD35: 20 0C FD  773  RDCHAR   JSR   RDKEY      ;READ KEYFD38: C9 9B     774           CMP   #$9B       ;ESC?FD3A: F0 F3     775           BEQ   ESC        ;  YES, DON'T RETURNFD3C: 60        776           RTSFD3D: A5 32     777  NOTCR    LDA   INVFLGFD3F: 48        778           PHAFD40: A9 FF     779           LDA   #$FFFD42: 85 32     780           STA   INVFLG     ;ECHO USER LINEFD44: BD 00 02  781           LDA   IN,X       ;  NON INVERSEFD47: 20 ED FD  782           JSR   COUTFD4A: 68        783           PLAFD4B: 85 32     784           STA   INVFLGFD4D: BD 00 02  785           LDA   IN,XFD50: C9 88     786           CMP   #$88       ;CHECK FOR EDIT KEYSFD52: F0 1D     787           BEQ   BCKSPC     ;  BS, CTRL-XFD54: C9 98     788           CMP   #$98FD56: F0 0A     789           BEQ   CANCELFD58: E0 F8     790           CPX   #$F8       ;MARGIN?FD5A: 90 03     791           BCC   NOTCR1FD5C: 20 3A FF  792           JSR   BELL       ;  YES, SOUND BELLFD5F: E8        793  NOTCR1   INX              ;ADVANCE INPUT INDEXFD60: D0 13     794           BNE   NXTCHARFD62: A9 DC     795  CANCEL   LDA   #$DC       ;BACKSLASH AFTER CANCELLED LINEFD64: 20 ED FD  796           JSR   COUTFD67: 20 8E FD  797  GETLNZ   JSR   CROUT      ;OUTPUT CRFD6A: A5 33     798  GETLN    LDA   PROMPTFD6C: 20 ED FD  799           JSR   COUT       ;OUTPUT PROMPT CHARFD6F: A2 01     800           LDX   #$01       ;INIT INPUT INDEXFD71: 8A        801  BCKSPC   TXA              ;  WILL BACKSPACE TO 0FD72: F0 F3     802           BEQ   GETLNZFD74: CA        803           DEXFD75: 20 35 FD  804  NXTCHAR  JSR   RDCHARFD78: C9 95     805           CMP   #PICK      ;USE SCREEN CHARFD7A: D0 02     806           BNE   CAPTST     ;  FOR CTRL-UFD7C: B1 28     807           LDA   (BASL),YFD7E: C9 E0     808  CAPTST   CMP   #$E0FD80: 90 02     809           BCC   ADDINP     ;CONVERT TO CAPSFD82: 29 DF     810           AND   #$DFFD84: 9D 00 02  811  ADDINP   STA   IN,X       ;ADD TO INPUT BUFFD87: C9 8D     812           CMP   #$8DFD89: D0 B2     813           BNE   NOTCRFD8B: 20 9C FC  814           JSR   CLREOL     ;CLR TO EOL IF CRFD8E: A9 8D     815  CROUT    LDA   #$8DFD90: D0 5B     816           BNE   COUTFD92: A4 3D     817  PRA1     LDY   A1H        ;PRINT CR,A1 IN HEXFD94: A6 3C     818           LDX   A1LFD96: 20 8E FD  819  PRYX2    JSR   CROUTFD99: 20 40 F9  820           JSR   PRNTYXFD9C: A0 00     821           LDY   #$00FD9E: A9 AD     822           LDA   #$AD       ;PRINT '-'FDA0: 4C ED FD  823           JMP   COUTFDA3: A5 3C     824  XAM8     LDA   A1LFDA5: 09 07     825           ORA   #$07       ;SET TO FINISH ATFDA7: 85 3E     826           STA   A2L        ;  MOD 8=7FDA9: A5 3D     827           LDA   A1HFDAB: 85 3F     828           STA   A2HFDAD: A5 3C     829  MODSCHK  LDA   A1LFDAF: 29 07     830           AND   #$07FDB1: D0 03     831           BNE   DATAOUTFDB3: 20 92 FD  832  XAM      JSR   PRA1FDB6: A9 A0     833  DATAOUT  LDA   #$A0FDB8: 20 ED FD  834           JSR   COUT       ;OUTPUT BLANKFDBB: B1 3C     835           LDA   (A1L),YFDBD: 20 DA FD  836           JSR   PRBYTE     ;OUTPUT BYTE IN HEXFDC0: 20 BA FC  837           JSR   NXTA1FDC3: 90 E8     838           BCC   MODSCHK    ;CHECK IF TIME TO,FDC5: 60        839  RTS4C    RTS              ;  PRINT ADDRFDC6: 4A        840  XAMPM    LSR              ;DETERMINE IF MONFDC7: 90 EA     841           BCC   XAM        ;  MODE IS XAMFDC9: 4A        842           LSR              ;  ADD, OR SUBFDCA: 4A        843           LSRFDCB: A5 3E     844           LDA   A2LFDCD: 90 02     845           BCC   ADDFDCF: 49 FF     846           EOR   #$FF       ;SUB: FORM 2'S COMPLEMENTFDD1: 65 3C     847  ADD      ADC   A1LFDD3: 48        848           PHAFDD4: A9 BD     849           LDA   #$BDFDD6: 20 ED FD  850           JSR   COUT       ;PRINT '=', THEN RESULTFDD9: 68        851           PLAFDDA: 48        852  PRBYTE   PHA              ;PRINT BYTE AS 2 HEXFDDB: 4A        853           LSR              ;  DIGITS, DESTROYS A-REGFDDC: 4A        854           LSRFDDD: 4A        855           LSRFDDE: 4A        856           LSRFDDF: 20 E5 FD  857           JSR   PRHEXZFDE2: 68        858           PLAFDE3: 29 0F     859  PRHEX    AND   #$0F       ;PRINT HEX DIG IN A-REGFDE5: 09 B0     860  PRHEXZ   ORA   #$B0       ;  LSB'SFDE7: C9 BA     861           CMP   #$BAFDE9: 90 02     862           BCC   COUTFDEB: 69 06     863           ADC   #$06FDED: 6C 36 00  864  COUT     JMP   (CSWL)     ;VECTOR TO USER OUTPUT ROUTINEFDF0: C9 A0     865  COUT1    CMP   #$A0FDF2: 90 02     866           BCC   COUTZ      ;DON'T OUTPUT CTRL'S INVERSEFDF4: 25 32     867           AND   INVFLG     ;MASK WITH INVERSE FLAGFDF6: 84 35     868  COUTZ    STY   YSAV1      ;SAV Y-REGFDF8: 48        869           PHA              ;SAV A-REGFDF9: 20 FD FB  870           JSR   VIDOUT     ;OUTPUT A-REG AS ASCIIFDFC: 68        871           PLA              ;RESTORE A-REGFDFD: A4 35     872           LDY   YSAV1      ;  AND Y-REGFDFF: 60        873           RTS              ;  THEN RETURNFE00: C6 34     874  BL1      DEC   YSAVFE02: F0 9F     875           BEQ   XAM8FE04: CA        876  BLANK    DEX              ;BLANK TO MONFE05: D0 16     877           BNE   SETMDZ     ;AFTER BLANKFE07: C9 BA     878           CMP   #$BA       ;DATA STORE MODE?FE09: D0 BB     879           BNE   XAMPM      ;  NO, XAM, ADD, OR SUBFE0B: 85 31     880  STOR     STA   MODE       ;KEEP IN STORE MODEFE0D: A5 3E     881           LDA   A2LFE0F: 91 40     882           STA   (A3L),Y    ;STORE AS LOW BYTE AS (A3)FE11: E6 40     883           INC   A3LFE13: D0 02     884           BNE   RTS5       ;INCR A3, RETURNFE15: E6 41     885           INC   A3HFE17: 60        886  RTS5     RTSFE18: A4 34     887  SETMODE  LDY   YSAV       ;SAVE CONVERTED ':', '+',FE1A: B9 FF 01  888           LDA   IN-1,Y     ;  '-', '.' AS MODE.FE1D: 85 31     889  SETMDZ   STA   MODEFE1F: 60        890           RTSFE20: A2 01     891  LT       LDX   #$01FE22: B5 3E     892  LT2      LDA   A2L,X      ;COPY A2 (2 BYTES) TOFE24: 95 42     893           STA   A4L,X      ;  A4 AND A5FE26: 95 44     894           STA   A5L,XFE28: CA        895           DEXFE29: 10 F7     896           BPL   LT2FE2B: 60        897           RTSFE2C: B1 3C     898  MOVE     LDA   (A1L),Y    ;MOVE (A1 TO A2) TOFE2E: 91 42     899           STA   (A4L),Y    ;  (A4)FE30: 20 B4 FC  900           JSR   NXTA4FE33: 90 F7     901           BCC   MOVEFE35: 60        902           RTSFE36: B1 3C     903  VFY      LDA   (A1L),Y    ;VERIFY (A1 TO A2) WITHFE38: D1 42     904           CMP   (A4L),Y    ;  (A4)FE3A: F0 1C     905           BEQ   VFYOKFE3C: 20 92 FD  906           JSR   PRA1FE3F: B1 3C     907           LDA   (A1L),YFE41: 20 DA FD  908           JSR   PRBYTEFE44: A9 A0     909           LDA   #$A0FE46: 20 ED FD  910           JSR   COUTFE49: A9 A8     911           LDA   #$A8FE4B: 20 ED FD  912           JSR   COUTFE4E: B1 42     913           LDA   (A4L),YFE50: 20 DA FD  914           JSR   PRBYTEFE53: A9 A9     915           LDA   #$A9FE55: 20 ED FD  916           JSR   COUTFE58: 20 B4 FC  917  VFYOK    JSR   NXTA4FE5B: 90 D9     918           BCC   VFYFE5D: 60        919           RTSFE5E: 20 75 FE  920  LIST     JSR   A1PC       ;MOVE A1 (2 BYTES) TOFE61: A9 14     921           LDA   #$14       ;  PC IF SPEC'D ANDFE63: 48        922  LIST2    PHA              ;  DISEMBLE 20 INSTRSFE64: 20 D0 F8  923           JSR   INSTDSPFE67: 20 53 F9  924           JSR   PCADJ      ;ADJUST PC EACH INSTRFE6A: 85 3A     925           STA   PCLFE6C: 84 3B     926           STY   PCHFE6E: 68        927           PLAFE6F: 38        928           SECFE70: E9 01     929           SBC   #$01       ;NEXT OF 20 INSTRSFE72: D0 EF     930           BNE   LIST2FE74: 60        931           RTSFE75: 8A        932  A1PC     TXA              ;IF USER SPEC'D ADRFE76: F0 07     933           BEQ   A1PCRTS    ;  COPY FROM A1 TO PCFE78: B5 3C     934  A1PCLP   LDA   A1L,XFE7A: 95 3A     935           STA   PCL,XFE7C: CA        936           DEXFE7D: 10 F9     937           BPL   A1PCLPFE7F: 60        938  A1PCRTS  RTSFE80: A0 3F     939  SETINV   LDY   #$3F       ;SET FOR INVERSE VIDFE82: D0 02     940           BNE   SETIFLG    ; VIA COUT1FE84: A0 FF     941  SETNORM  LDY   #$FF       ;SET FOR NORMAL VIDFE86: 84 32     942  SETIFLG  STY   INVFLGFE88: 60        943           RTSFE89: A9 00     944  SETKBD   LDA   #$00       ;SIMULATE PORT #0 INPUTFE8B: 85 3E     945  INPORT   STA   A2L        ;  SPECIFIED (KEYIN ROUTINE)FE8D: A2 38     946  INPRT    LDX   #KSWLFE8F: A0 1B     947           LDY   #KEYINFE91: D0 08     948           BNE   IOPRTFE93: A9 00     949  SETVID   LDA   #$00       ;SIMULATE PORT #0 OUTPUTFE95: 85 3E     950  OUTPORT  STA   A2L        ;  SPECIFIED (COUT1 ROUTINE)FE97: A2 36     951  OUTPRT   LDX   #CSWLFE99: A0 F0     952           LDY   #COUT1FE9B: A5 3E     953  IOPRT    LDA   A2L        ;SET RAM IN/OUT VECTORSFE9D: 29 0F     954           AND   #$0FFE9F: F0 06     955           BEQ   IOPRT1FEA1: 09 C0     956           ORA   #IOADR/256FEA3: A0 00     957           LDY   #$00FEA5: F0 02     958           BEQ   IOPRT2FEA7: A9 FD     959  IOPRT1   LDA   #COUT1/256FEA9: 94 00     960  IOPRT2   STY   LOC0,XFEAB: 95 01     961           STA   LOC1,XFEAD: 60        962           RTSFEAE: EA        963           NOPFEAF: EA        964           NOPFEB0: 4C 00 E0  965  XBASIC   JMP   BASIC      ;TO BASIC WITH SCRATCHFEB3: 4C 03 E0  966  BASCONT  JMP   BASIC2     ;CONTINUE BASICFEB6: 20 75 FE  967  GO       JSR   A1PC       ;ADR TO PC IF SPEC'DFEB9: 20 3F FF  968           JSR   RESTORE    ;RESTORE META REGSFEBC: 6C 3A 00  969           JMP   (PCL)      ;GO TO USER SUBRFEBF: 4C D7 FA  970  REGZ     JMP   REGDSP     ;TO REG DISPLAYFEC2: C6 34     971  TRACE    DEC   YSAVFEC4: 20 75 FE  972  STEPZ    JSR   A1PC       ;ADR TO PC IF SPEC'DFEC7: 4C 43 FA  973           JMP   STEP       ;TAKE ONE STEPFECA: 4C F8 03  974  USR      JMP   USRADR     ;TO USR SUBR AT USRADRFECD: A9 40     975  WRITE    LDA   #$40FECF: 20 C9 FC  976           JSR   HEADR      ;WRITE 10-SEC HEADERFED2: A0 27     977           LDY   #$27FED4: A2 00     978  WR1      LDX   #$00FED6: 41 3C     979           EOR   (A1L,X)FED8: 48        980           PHAFED9: A1 3C     981           LDA   (A1L,X)FEDB: 20 ED FE  982           JSR   WRBYTEFEDE: 20 BA FC  983           JSR   NXTA1FEE1: A0 1D     984           LDY   #$1DFEE3: 68        985           PLAFEE4: 90 EE     986           BCC   WR1FEE6: A0 22     987           LDY   #$22FEE8: 20 ED FE  988           JSR   WRBYTEFEEB: F0 4D     989           BEQ   BELLFEED: A2 10     990  WRBYTE   LDX   #$10FEEF: 0A        991  WRBYT2   ASLFEF0: 20 D6 FC  992           JSR   WRBITFEF3: D0 FA     993           BNE   WRBYT2FEF5: 60        994           RTSFEF6: 20 00 FE  995  CRMON    JSR   BL1        ;HANDLE A CR AS BLANKFEF9: 68        996           PLA              ;  THEN POP STACKFEFA: 68        997           PLA              ;  AND RTN TO MONFEFB: D0 6C     998           BNE   MONZFEFD: 20 FA FC  999  READ     JSR   RD2BIT     ;FIND TAPEIN EDGEFF00: A9 16     1000          LDA   #$16FF02: 20 C9 FC  1001          JSR   HEADR      ;DELAY 3.5 SECONDSFF05: 85 2E     1002          STA   CHKSUM     ;INIT CHKSUM=$FFFF07: 20 FA FC  1003          JSR   RD2BIT     ;FIND TAPEIN EDGEFF0A: A0 24     1004 RD2      LDY   #$24       ;LOOK FOR SYNC BITFF0C: 20 FD FC  1005          JSR   RDBIT      ;  (SHORT 0)FF0F: B0 F9     1006          BCS   RD2        ;  LOOP UNTIL FOUNDFF11: 20 FD FC  1007          JSR   RDBIT      ;SKIP SECOND SYNC H-CYCLEFF14: A0 3B     1008          LDY   #$3B       ;INDEX FOR 0/1 TESTFF16: 20 EC FC  1009 RD3      JSR   RDBYTE     ;READ A BYTEFF19: 81 3C     1010          STA   (A1L,X)    ;STORE AT (A1)FF1B: 45 2E     1011          EOR   CHKSUMFF1D: 85 2E     1012          STA   CHKSUM     ;UPDATE RUNNING CHKSUMFF1F: 20 BA FC  1013          JSR   NXTA1      ;INC A1, COMPARE TO A2FF22: A0 35     1014          LDY   #$35       ;COMPENSATE 0/1 INDEXFF24: 90 F0     1015          BCC   RD3        ;LOOP UNTIL DONEFF26: 20 EC FC  1016          JSR   RDBYTE     ;READ CHKSUM BYTEFF29: C5 2E     1017          CMP   CHKSUMFF2B: F0 0D     1018          BEQ   BELL       ;GOOD, SOUND BELL AND RETURNFF2D: A9 C5     1019 PRERR    LDA   #$C5FF2F: 20 ED FD  1020          JSR   COUT       ;PRINT "ERR", THEN BELLFF32: A9 D2     1021          LDA   #$D2FF34: 20 ED FD  1022          JSR   COUTFF37: 20 ED FD  1023          JSR   COUTFF3A: A9 87     1024 BELL     LDA   #$87       ;OUTPUT BELL AND RETURNFF3C: 4C ED FD  1025          JMP   COUTFF3F: A5 48     1026 RESTORE  LDA   STATUS     ;RESTORE 6502 REG CONTENTSFF41: 48        1027          PHA              ;  USED BY DEBUG SOFTWAREFF42: A5 45     1028          LDA   ACCFF44: A6 46     1029 RESTR1   LDX   XREGFF46: A4 47     1030          LDY   YREGFF48: 28        1031          PLPFF49: 60        1032          RTSFF4A: 85 45     1033 SAVE     STA   ACC        ;SAVE 6502 REG CONTENTSFF4C: 86 46     1034 SAV1     STX   XREGFF4E: 84 47     1035          STY   YREGFF50: 08        1036          PHPFF51: 68        1037          PLAFF52: 85 48     1038          STA   STATUSFF54: BA        1039          TSXFF55: 86 49     1040          STX   SPNTFF57: D8        1041          CLDFF58: 60        1042          RTSFF59: 20 84 FE  1043 RESET    JSR   SETNORM    ;SET SCREEN MODEFF5C: 20 2F FB  1044          JSR   INIT       ;  AND INIT KBD/SCREENFF5F: 20 93 FE  1045          JSR   SETVID     ;  AS I/O DEV'SFF62: 20 89 FE  1046          JSR   SETKBDFF65: D8        1047 MON      CLD              ;MUST SET HEX MODE!FF66: 20 3A FF  1048          JSR   BELLFF69: A9 AA     1049 MONZ     LDA   #$AA       ;'*' PROMPT FOR MONFF6B: 85 33     1050          STA   PROMPTFF6D: 20 67 FD  1051          JSR   GETLNZ     ;READ A LINEFF70: 20 C7 FF  1052          JSR   ZMODE      ;CLEAR MON MODE, SCAN IDXFF73: 20 A7 FF  1053 NXTITM   JSR   GETNUM     ;GET ITEM, NON-HEXFF76: 84 34     1054          STY   YSAV       ;  CHAR IN A-REGFF78: A0 17     1055          LDY   #$17       ;  X-REG=0 IF NO HEX INPUTFF7A: 88        1056 CHRSRCH  DEYFF7B: 30 E8     1057          BMI   MON        ;NOT FOUND, GO TO MONFF7D: D9 CC FF  1058          CMP   CHRTBL,Y   ;FIND CMND CHAR IN TELFF80: D0 F8     1059          BNE   CHRSRCHFF82: 20 BE FF  1060          JSR   TOSUB      ;FOUND, CALL CORRESPONDINGFF85: A4 34     1061          LDY   YSAV       ;  SUBROUTINEFF87: 4C 73 FF  1062          JMP   NXTITMFF8A: A2 03     1063 DIG      LDX   #$03FF8C: 0A        1064          ASLFF8D: 0A        1065          ASL              ;GOT HEX DIG,FF8E: 0A        1066          ASL              ;  SHIFT INTO A2FF8F: 0A        1067          ASLFF90: 0A        1068 NXTBIT   ASLFF91: 26 3E     1069          ROL   A2LFF93: 26 3F     1070          ROL   A2HFF95: CA        1071          DEX              ;LEAVE X=$FF IF DIGFF96: 10 F8     1072          BPL   NXTBITFF98: A5 31     1073 NXTBAS   LDA   MODEFF9A: D0 06     1074          BNE   NXTBS2     ;IF MODE IS ZEROFF9C: B5 3F     1075          LDA   A2H,X      ; THEN COPY A2 TOFF9E: 95 3D     1076          STA   A1H,X      ; A1 AND A3FFA0: 95 41     1077          STA   A3H,XFFA2: E8        1078 NXTBS2   INXFFA3: F0 F3     1079          BEQ   NXTBASFFA5: D0 06     1080          BNE   NXTCHRFFA7: A2 00     1081 GETNUM   LDX   #$00       ;CLEAR A2FFA9: 86 3E     1082          STX   A2LFFAB: 86 3F     1083          STX   A2HFFAD: B9 00 02  1084 NXTCHR   LDA   IN,Y       ;GET CHARFFB0: C8        1085          INYFFB1: 49 B0     1086          EOR   #$B0FFB3: C9 0A     1087          CMP   #$0AFFB5: 90 D3     1088          BCC   DIG        ;IF HEX DIG, THENFFB7: 69 88     1089          ADC   #$88FFB9: C9 FA     1090          CMP   #$FAFFBB: B0 CD     1091          BCS   DIGFFBD: 60        1092          RTSFFBE: A9 FE     1093 TOSUB    LDA   #GO/256    ;PUSH HIGH-ORDERFFC0: 48        1094          PHA              ;  SUBR ADR ON STKFFC1: B9 E3 FF  1095          LDA   SUBTBL,Y   ;PUSH LOW-ORDERFFC4: 48        1096          PHA              ;  SUBR ADR ON STKFFC5: A5 31     1097          LDA   MODEFFC7: A0 00     1098 ZMODE    LDY   #$00       ;CLR MODE, OLD MODEFFC9: 84 31     1099          STY   MODE       ;  TO A-REGFFCB: 60        1100          RTS              ; GO TO SUBR VIA RTSFFCC: BC        1101 CHRTBL   DFB   $BC        ;F("CTRL-C")FFCD: B2        1102          DFB   $B2        ;F("CTRL-Y")FFCE: BE        1103          DFB   $BE        ;F("CTRL-E")FFCF: ED        1104          DFB   $ED        ;F("T")FFD0: EF        1105          DFB   $EF        ;F("V")FFD1: C4        1106          DFB   $C4        ;F("CTRL-K")FFD2: EC        1107          DFB   $EC        ;F("S")FFD3: A9        1108          DFB   $A9        ;F("CTRL-P")FFD4: BB        1109          DFB   $BB        ;F("CTRL-B")FFD5: A6        1110          DFB   $A6        ;F("-")FFD6: A4        1111          DFB   $A4        ;F("+")FFD7: 06        1112          DFB   $06        ;F("M") (F=EX-OR $B0+$89)FFD8: 95        1113          DFB   $95        ;F("<")FFD9: 07        1114          DFB   $07        ;F("N")FFDA: 02        1115          DFB   $02        ;F("I")FFDB: 05        1116          DFB   $05        ;F("L")FFDC: F0        1117          DFB   $F0        ;F("W")FFDD: 00        1118          DFB   $00        ;F("G")FFDE: EB        1119          DFB   $EB        ;F("R")FFDF: 93        1120          DFB   $93        ;F(":")FFE0: A7        1121          DFB   $A7        ;F(".")FFE1: C6        1122          DFB   $C6        ;F("CR")FFE2: 99        1123          DFB   $99        ;F(BLANK)FFE3: B2        1124 SUBTBL   DFB   BASCONT-1FFE4: C9        1125          DFB   USR-1FFE5: BE        1126          DFB   REGZ-1FFE6: C1        1127          DFB   TRACE-1FFE7: 35        1128          DFB   VFY-1FFE8: 8C        1129          DFB   INPRT-1FFE9: C3        1130          DFB   STEPZ-1FFEA: 96        1131          DFB   OUTPRT-1FFEB: AF        1132          DFB   XBASIC-1FFEC: 17        1133          DFB   SETMODE-1FFED: 17        1134          DFB   SETMODE-1FFEE: 2B        1135          DFB   MOVE-1FFEF: 1F        1136          DFB   LT-1FFF0: 83        1137          DFB   SETNORM-1FFF1: 7F        1138          DFB   SETINV-1FFF2: 5D        1139          DFB   LIST-1FFF3: CC        1140          DFB   WRITE-1FFF4: B5        1141          DFB   GO-1FFF5: FC        1142          DFB   READ-1FFF6: 17        1143          DFB   SETMODE-1FFF7: 17        1144          DFB   SETMODE-1FFF8: F5        1145          DFB   CRMON-1FFF9: 03        1146          DFB   BLANK-1FFFA: FB        1147          DFB   NMI        ;NMI VECTORFFFB: 03        1148          DFB   NMI/256FFFC: 59        1149          DFB   RESET      ;RESET VECTORFFFD: FF        1150          DFB   RESET/256FFFE: 86        1151          DFB   IRQ        ;IRQ VECTORFFFF: FA        1152          DFB   IRQ/256                1153 XQTNZ    EQU   $3C###ð _____________________ Apple-II Computer Information _____________________ ð_______________________________________________________________________________APPLE II SYSTEM MONITOR  ---  Apple Computer  ---  1977  ---  22 of 22_______________________________________________________________________________