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