Apple II User Manual

Page of 257
F796: 20 19 F7  181           JSR   STAT2      ;PUSH LOW PC BYTE VIA R12
F799: A5 1F     182           LDA   R15H
F79B: 20 19 F7  183           JSR   STAT2      ;PUSH HIGH-ORDER PC BYTE
F79E: 18        184  BR       CLC
F79F: B0 0E     185  BNC      BCS   BNC2       ;NO CARRY TEST
F7A1: B1 1E     186  BR1      LDA   (R15L),Y   ;DISPLACEMENT BYTE
F7A3: 10 01     187           BPL   BR2
F7A5: 88        188           DEY
F7A6: 65 1E     189  BR2      ADC   R15L       ;ADD TO PC
F7A8: 85 1E     190           STA   R15L
F7AA: 98        191           TYA
F7AB: 65 1F     192           ADC   R15H
F7AD: 85 1F     193           STA   R15H
F7AF: 60        194  BNC2     RTS
F7B0: B0 EC     195  BC       BCS   BR
F7B2: 60        196           RTS
F7B3: 0A        197  BP       ASL              ;DOUBLE RESULT-REG INDEX
F7B4: AA        198           TAX              ;TO X REG FOR INDEXING
F7B5: B5 01     199           LDA   R0H,X      ;TEST FOR PLUS
F7B7: 10 E8     200           BPL   BR1        ;BRANCH IF SO
F7B9: 60        201           RTS
F7BA: 0A        202  BM       ASL              ;DOUBLE RESULT-REG INDEX
F7BB: AA        203           TAX
F7BC: B5 01     204           LDA   R0H,X      ;TEST FOR MINUS
F7BE: 30 E1     205           BMI   BR1
F7C0: 60        206           RTS
F7C1: 0A        207  BZ       ASL              ;DOUBLE RESULT-REG INDEX
F7C2: AA        208           TAX
F7C3: B5 00     209           LDA   R0L,X      ;TEST FOR ZERO
F7C5: 15 01     210           ORA   R0H,X      ;(BOTH BYTES)
F7C7: F0 D8     211           BEQ   BR1        ;BRANCH IF SO
F7C9: 60        212           RTS
F7CA: 0A        213  BNZ      ASL              ;DOUBLE RESULT-REG INDEX
F7CB: AA        214           TAX
F7CC: B5 00     215           LDA   R0L,X      ;TEST FOR NON-ZERO
F7CE: 15 01     216           ORA   R0H,X      ;(BOTH BYTES)
F7D0: D0 CF     217           BNE   BR1        ;BRANCH IF SO
F7D2: 60        218           RTS
F7D3: 0A        219  BM1      ASL              ;DOUBLE RESULT-REG INDEX
F7D4: AA        220           TAX
F7D5: B5 00     221           LDA   R0L,X      ;CHECK BOTH BYTES
F7D7: 35 01     222           AND   R0H,X      ;FOR $FF (MINUS 1)
F7D9: 49 FF     223           EOR   #$FF
F7DB: F0 C4     224           BEQ   BR1        ;BRANCH IF SO
F7DD: 60        225           RTS
F7DE: 0A        226  BNM1     ASL              ;DOUBLE RESULT-REG INDEX
F7DF: AA        227           TAX
F7E0: B5 00     228           LDA   R0L,X
F7E2: 35 01     229           AND   R0H,X      ;CHECK BOTH BYTES FOR NO $FF
F7E4: 49 FF     230           EOR   #$FF
F7E6: D0 B9     231           BNE   BR1        ;BRANCH IF NOT MINUS 1
F7E8: 60        232  NUL      RTS
F7E9: A2 18     233  RS       LDX   #$18       ;12*2 FOR R12 AS STACK POINTER
F7EB: 20 66 F7  234           JSR   DCR        ;DECR STACK POINTER
F7EE: A1 00     235           LDA   (R0L,X)    ;POP HIGH RETURN ADDRESS TO PC
F7F0: 85 1F     236           STA   R15H
F7F2: 20 66 F7  237           JSR   DCR        ;SAME FOR LOW-ORDER BYTE
F7F5: A1 00     238           LDA   (R0L,X)
F7F7: 85 1E     239           STA   R15L
F7F9: 60        240           RTS
F7FA: 4C C7 F6  241  RTN      JMP   RTNZ