Apple II User Manual

Page of 257
F50D: 8A        57            TXA
F50E: 18        58            CLC
F50F: E5 3A     59            SBC   PCL        ;FORM ADDR-PC-2
F511: 85 3E     60            STA   A2L
F513: 10 01     61            BPL   REL3
F515: C8        62            INY
F516: 98        63   REL3     TYA
F517: E5 3B     64            SBC   PCH
F519: D0 6B     65   ERR3     BNE   ERR        ;ERROR IF >1-BYTE BRANCH
F51B: A4 2F     66   FINDOP   LDY   LENGTH
F51D: B9 3D 00  67   FNDOP2   LDA   A1H,Y      ;MOVE INST TO (PC)
F520: 91 3A     68            STA   (PCL),Y
F522: 88        69            DEY
F523: 10 F8     70            BPL   FNDOP2
F525: 20 1A FC  71            JSR   CURSUP
F528: 20 1A FC  72            JSR   CURSUP     ;RESTORE CURSOR
F52B: 20 D0 F8  73            JSR   INSTDSP    ;TYPE FORMATTED LINE
F52E: 20 53 F9  74            JSR   PCADJ      ;UPDATE PC
F531: 84 3B     75            STY   PCH
F533: 85 3A     76            STA   PCL
F535: 4C 95 F5  77            JMP   NXTLINE    ;GET NEXT LINE
F538: 20 BE FF  78   FAKEMON3 JSR   TOSUB      ;GO TO DELIM HANDLER
F53B: A4 34     79            LDY   YSAV       ;RESTORE Y-INDEX
F53D: 20 A7 FF  80   FAKEMON  JSR   GETNUM     ;READ PARAM
F540: 84 34     81            STY   YSAV       ;SAVE Y-INDEX
F542: A0 17     82            LDY   #$17       ;INIT DELIMITER INDEX
F544: 88        83   FAKEMON2 DEY              ;CHECK NEXT DELIM
F545: 30 4B     84            BMI   RESETZ     ;ERR IF UNRECOGNIZED DELIM
F547: D9 CC FF  85            CMP   CHRTBL,Y   ;COMPARE WITH DELIM TABLE
F54A: D0 F8     86            BNE   FAKEMON2   ;NO MATCH
F54C: C0 15     87            CPY   #$15       ;MATCH, IS IT CR?
F54E: D0 E8     88            BNE   FAKEMON3   ;NO, HANDLE IT IN MONITOR
F550: A5 31     89            LDA   MODE
F552: A0 00     90            LDY   #$0
F554: C6 34     91            DEC   YSAV
F556: 20 00 FE  92            JSR   BL1        ;HANDLE CR OUTSIDE MONITOR
F559: 4C 95 F5  93            JMP   NXTLINE
F55C: A5 3D     94   TRYNEXT  LDA   A1H        ;GET TRIAL OPCODE
F55E: 20 8E F8  95            JSR   INSDS2     ;GET FMT+LENGTH FOR OPCODE
F561: AA        96            TAX
F562: BD 00 FA  97            LDA   MNEMR,X    ;GET LOWER MNEMONIC BYTE
F565: C5 42     98            CMP   A4L        ;MATCH?
F567: D0 13     99            BNE   NEXTOP     ;NO, TRY NEXT OPCODE.
F569: BD C0 F9  100           LDA   MNEML,X    ;GET UPPER MNEMONIC BYTE
F56C: C5 43     101           CMP   A4H        ;MATCH?
F56E: D0 0C     102           BNE   NEXTOP     ;NO, TRY NEXT OPCODE
F570: A5 44     103           LDA   FMT
F572: A4 2E     104           LDY   FORMAT     ;GET TRIAL FORMAT
F574: C0 9D     105           CPY   #$9D       ;TRIAL FORMAT RELATIVE?
F576: F0 88     106           BEQ   REL        ;YES.
F578: C5 2E     107  NREL     CMP   FORMAT     ;SAME FORMAT?
F57A: F0 9F     108           BEQ   FINDOP     ;YES.
F57C: C6 3D     109  NEXTOP   DEC   A1H        ;NO, TRY NEXT OPCODE
F57E: D0 DC     110           BNE   TRYNEXT
F580: E6 44     111           INC   FMT        ;NO MORE, TRY WITH LEN=2
F582: C6 35     112           DEC   L          ;WAS L=2 ALREADY?
F584: F0 D6     113           BEQ   TRYNEXT    ;NO.
F586: A4 34     114  ERR      LDY   YSAV       ;YES, UNRECOGNIZED INST.
F588: 98        115  ERR2     TYA
F589: AA        116           TAX
F58A: 20 4A F9  117           JSR   PRBL2      ;PRINT ^ UNDER LAST READ
F58D: A9 DE     118           LDA   #$DE       ;CHAR TO INDICATE ERROR