Apple II User Manual

Page of 257
2163   8F01 E6 FE              INC BUFADL      ;BUMP BUFFER ADDR
2164   8F03 D0 C9              BNE DUMPT2
2165   8F05 E6 FF              INC BUFADH      ;CARRY
2166   8F07 4C CE 8E           JMP DUMPT2
2167   8F0A 24 FD       OUTCTX BIT MODE        ;HS OR KIM?
2168   8F0C 10 48              BPL OUTCHT      ;KIM
2169   8F0E
2170   8F0E             ;  OUTBTH - NO CLOCK
2171   8F0E             ; A,X DESTROYED
2172   8F0E             ; MUST RESIDE ON ONE PAGE - TIMING CRITICAL
2173   8F0E A2 09       OUTBTH LDX #9          ;8 BITS + START BIT
2174   8F10 8C 39 A6           STY SCR9
2175   8F13 85 FC              STA CHAR
2176   8F15 AD 02 A4           LDA TAPOUT      ;GET PREV LEVEL
2177   8F18 46 FC       GETBIT LSR CHAR
2178   8F1A 49 08              EOR #TPBIT
2179   8F1C 8D 02 A4           STA TAPOUT      ;INVERT LEVEL
2180   8F1F             ; *** HERE STARTS FIRST HALF CYCLE
2181   8F1F AC 35 A6           LDY TAPET1
2182   8F22 88          A416   DEY             ;TIME FOR THIS LOOP IS 5Y-1
2183   8F23 D0 FD              BNE A416
2184   8F25 90 12              BCC NOFLIP      ;NOFLIP IF BIT ZERO
2185   8F27 49 08              EOR #TPBIT      ;BIT IS ONE - INVERT OUTPUT
2186   8F29 8D 02 A4           STA TAPOUT
2187   8F2C             ; *** END OF FIRST HALF CYCLE
2188   8F2C AC 3C A6    B416   LDY TAPET2
2189   8F2F 88          B416B  DEY             ;LENGTH OF LOOP IS 5Y-1
2190   8F30 D0 FD              BNE B416B
2191   8F32 CA                 DEX
2192   8F33 D0 E3              BNE GETBIT      ;GET NEXT BIT (LAST IS 0 START BIT)
2193   8F35 AC 39 A6           LDY SCR9        ; (BY 9 BIT LSR)
2194   8F38 60                 RTS
2195   8F39 EA          NOFLIP NOP             ;TIMING
2196   8F3A 90 F0              BCC B416        ;(ALWAYS)
2197   8F3C             ;
2198   8F3C 20 77 8E    OUTBCX JSR CHKT        ;WRITE HS OR KIM BYTE & CKSUM
2199   8F3F 24 FD       OUTBTX BIT MODE        ;WRITE HS OR KIM BYTE
2200   8F41 30 CB              BMI OUTBTH      ;HS
2201   8F43
2202   8F43             ;OUTBTC - OUTPUT ONE KIM BYTE
2203   8F43
2204   8F43             OUTBTC =*
2205   8F43 A8          OUTBT  TAY             ;SAVE DATA BYTE
2206   8F44 4A                 LSR A
2207   8F45 4A                 LSR A
2208   8F46 4A                 LSR A
2209   8F47 4A                 LSR A
2210   8F48 20 4B 8F           JSR HEXOUT      ;MORE SIG DIGIT
2211   8F4B             ; FALL INTO HEXOUT
2212   8F4B
2213   8F4B 29 0F       HEXOUT AND #$0F        ;CVT LSD OF [A] TO ASCII, OUTPUT
2214   8F4D C9 0A              CMP #$0A
2215   8F4F 18                 CLC
2216   8F50 30 02              BMI HEX1
2217   8F52 69 07              ADC #$07
2218   8F54 69 30       HEX1   ADC #$30
2219   8F56
2220   8F56             ; OUTCHT - OUTPUT ASCII CHAR (KIM)
2221   8F56             ; CLOCK NOT USED
2222   8F56             ; X,Y PRESERVED
2223   8F56             ; MUST RESIDE ON ONE PAGE - TIMING CRITICAL
2224   8F56