Apple II User Manual

Page of 257
1977   8DDE 65 F8              ADC BDRY
1978   8DE0 60                 RTS
1979   8DE1
1980   8DE1 24 FD       RDCHTX BIT MODE        ;READ HS OR KIM CHARACTER
1981   8DE3 10 7A              BPL RDCHT       ;KIM
1982   8DE5
1983   8DE5             ; RDBYTH - READ HS BYTE
1984   8DE5             ; Y DESTROYED, BYTE RETURNED IN CHAR AND A
1985   8DE5             ; TIME FROM ONE CALL TO NEXT MUST BE LESS THAN
1986   8DE5             ;    START BIT TIME (TIMER STILL RUNNING)
1987   8DE5
1988   8DE5 8E 38 A6    RDBYTH STX SCR8        ;SAVE X
1989   8DE8 A2 08              LDX #8
1990   8DEA 20 CA 8D           JSR GETTR       ;GET START BIT TIME
1991   8DED B0 14              BCS RDBH90      ;IF NOT 0, FRAMING ERR
1992   8DEF 20 CA 8D    RDBH10 JSR GETTR       ;GET BIT IN CARRY
1993   8DF2 90 04              BCC RDASSY
1994   8DF4 20 CA 8D           JSR GETTR       ;BIT IS ONE, WAIT HALF CYC
1995   8DF7 38                 SEC             ;MAKE SURE "1"
1996   8DF8 66 FC       RDASSY ROR CHAR
1997   8DFA CA                 DEX
1998   8DFB D0 F2              BNE RDBH10
1999   8DFD A5 FC              LDA CHAR        ;GET IN ACC
2000   8DFF AE 38 A6    H8DFF  LDX SCR8        ;RESTORE X
2001   8E02 60                 RTS
2002   8E03 24 FD       RDBH90 BIT MODE        ;NO ERR IF NOT IN SYNC
2003   8E05 70 F8              BVS RDBH90-4    ;OR READING WRONG REC
2004   8E07 68                 PLA             ;FIX STACK
2005   8E08 68                 PLA
2006   8E09 4C 38 8D           JMP FRERR
2007   8E0C
2008   8E0C             ; RDBITK - READ KIM BIT - X,Y,A DESTROYED, BIT RETURNED IN C
2009   8E0C
2010   8E0C 20 BF 8D    RDBITK JSR KGETTR      ;WAIT FOR LF
2011   8E0F B0 FB              BCS RDBITK
2012   8E11 20 BF 8D           JSR KGETTR      ;GET SECOND
2013   8E14 B0 F6              BCS RDBITK
2014   8E16 A2 00              LDX #0
2015   8E18 E8          RDB100 INX             ;COUNT LF FULL CYCLES
2016   8E19 20 BF 8D           JSR KGETTR
2017   8E1C 90 FA              BCC RDB100
2018   8E1E 20 BF 8D           JSR KGETTR      ;GET SECOND
2019   8E21 90 F5              BCC RDB100
2020   8E23 E0 08              CPX #$08        ;GET BIT TO CARRY
2021   8E25 60                 RTS
2022   8E26
2023   8E26 24 FD       RDBYTX BIT MODE        ;READ HS OR KIM BYTE
2024   8E28 30 BB              BMI RDBYTH      ;HS
2025   8E2A
2026   8E2A 20 5F 8E    RDBYT  JSR RDCHT       ;READ KIM BYTE INTO CHAR AND A
2027   8E2D C9 2F              CMP #'/'        ;READ ONE CHAR IF LAST
2028   8E2F F0 2C              BEQ PACKT3      ;SET CARRY AND RETURN
2029   8E31 20 3C 8E           JSR PACKT
2030   8E34 B0 26              BCS RDRTN       ;NON HEX CHAR?
2031   8E36 AA                 TAX             ;SAVE MSD
2032   8E37 20 5F 8E           JSR RDCHT
2033   8E3A 86 FC              STX CHAR        ;MOVE MSD TO CHAR
2034   8E3C             ; AND FALL INTO PACKT AGAIN
2035   8E3C
2036   8E3C             ;PACKT - ASCII HEX TO 4 BITS
2037   8E3C             ;INPUT IN A, OUTPUT IN CHAR AND A, CARRY SET = NON HEX
2038   8E3C