Apple II User Manual

Page of 257
2225   8F56 8E 38 A6    OUTCHT STX SCR8        ;PRESERVE X
2226   8F59 8C 39 A6           STY SCR9        ;DITTO Y
2227   8F5C 85 FC              STA CHAR
2228   8F5E A9 FF              LDA #$FF        ;USE FF W/SHIFTS TO COUNT BITS
2229   8F60 48          KIMBIT PHA             ;SAVE BIT CTR
2230   8F61 AD 02 A4           LDA TPOUT       ;GET CURRENT OUTPUT LEVEL
2231   8F64 46 FC              LSR CHAR        ;GET DATA BIT IN CARRY
2232   8F66 A2 12              LDX #18         ;ASSUME 'ONE'
2233   8F68 B0 02              BCS HF
2234   8F6A A2 24              LDX #36         ;BIT IS ZERO
2235   8F6C A0 19       HF     LDY #25
2236   8F6E 49 08              EOR #TPBIT      ;INVERT OUTPUT
2237   8F70 8D 02 A4           STA TPOUT
2238   8F73 88          HFP1   DEY             ;PAUSE FOR 138 USEC
2239   8F74 D0 FD              BNE HFP1
2240   8F76 CA                 DEX             ;COUNT HALF CYCS OF HF
2241   8F77 D0 F3              BNE HF
2242   8F79 A2 18              LDX #24         ;ASSUME BIT IS ONE
2243   8F7B B0 02              BCS LF20
2244   8F7D A2 0C              LDX #12         ;BIT IS ZERO
2245   8F7F A0 27       LF20   LDY #39
2246   8F81 49 08              EOR #TPBIT      ;INVERT OUTPUT
2247   8F83 8D 02 A4           STA TPOUT
2248   8F86 88          LFP1   DEY             ;PAUSE FOR 208 USEC
2249   8F87 D0 FD              BNE LFP1
2250   8F89 CA                 DEX             ;COUNT HALF CYCS
2251   8F8A D0 F3              BNE LF20
2252   8F8C 68                 PLA             ;RESTORE BIT CTR
2253   8F8D 0A                 ASL A           ;DECREMENT IT
2254   8F8E D0 D0              BNE KIMBIT      ;FF SHIFTED 8X = 0
2255   8F90 AE 38 A6           LDX SCR8
2256   8F93 AC 39 A6           LDY SCR9
2257   8F96 98                 TYA             ;RESTORE DATA BYTE
2258   8F97 60                 RTS
2259   8F98
2260   8F98 FF FF              .DB $FF,$FF     ;NOT USED
2261   8F9A
2262   8F9A             ; REGISTER NAME PATCH
2263   8F9A                    *=$8F9A
2264   8F9A 53                 .DB "S"
2265   8F9B 46                 .DB "F"
2266   8F9C 41                 .DB "A"
2267   8F9D 58                 .DB 'X'
2268   8F9E 59                 .DB "Y"
2269   8F9F 01                 .DB $01
2270   8FA0             ;
2271   8FA0             ;
2272   8FA0             ;***
2273   8FA0             ;*** DEFAULT TABLE
2274   8FA0             ;***
2275   8FA0                    *=$8FA0
2276   8FA0             DFTBLK =*
2277   8FA0 00 C0              .DW $C000       ;BASIC  *** JUMP TABLE
2278   8FA2 A7 8B              .DW TTY
2279   8FA4 64 8B              .DW NEWDEV
2280   8FA6 00 00              .DW $0000       ;PAGE ZERO
2281   8FA8 00 02              .DW $0200
2282   8FAA 00 03              .DW $0300
2283   8FAC 00 C8              .DW $C800
2284   8FAE 00 D0              .DW $D000
2285   8FB0 04                 .DB $04         ;TAPE DELAY (9.0 SEC)
2286   8FB1 2C                 .DB $2C         ;KIM TAPE BOUNDARY