Apple II Manual De Usuario
2027 ED3B ;GET A CHAR FROM TAPE SUBROUTINE
2028 ED3B ;A BUFFER IS USED TO GET BLOCKS OF DATA
2029 ED3B ;FROM TAPE ,EXCEPT WHEN FORMAT EQUAL TO
2029 ED3B ;FROM TAPE ,EXCEPT WHEN FORMAT EQUAL TO
2030 ED3B ;KIM-1 (THE WHOLE FILE IS LOADED AT ONE TIME)
2031 ED3B 20 9E EB TIBYTE JSR PHXY ;PUSH X
2031 ED3B 20 9E EB TIBYTE JSR PHXY ;PUSH X
2032 ED3E AE 36 A4 LDX TAPTR ;POINTER FOR BUFFER
2033 ED41 E0 50 CPX #80 ;IS BUFFER EMPTY ?
2033 ED41 E0 50 CPX #80 ;IS BUFFER EMPTY ?
2034 ED43 D0 03 BNE TIB1
2035 ED45 20 53 ED JSR TIBY1 ;LOAD ANOTHER BLOCK
2035 ED45 20 53 ED JSR TIBY1 ;LOAD ANOTHER BLOCK
2036 ED48 BD 16 01 TIB1 LDA TABUFF,X
2037 ED4B E8 INX
2037 ED4B E8 INX
2038 ED4C 8E 36 A4 STX TAPTR
2039 ED4F 20 AC EB JSR PLXY ;PULL X
2039 ED4F 20 AC EB JSR PLXY ;PULL X
2040 ED52 60 RTS
2041 ED53 ;LOAD A BLOCK FROM TAPE INTO BUFFER
2041 ED53 ;LOAD A BLOCK FROM TAPE INTO BUFFER
2042 ED53 20 EA ED TIBY1 JSR TAISET ;SET TAPE FOR INPUT
2043 ED56 20 29 EE TIBY3 JSR GETTAP ;GET A CHAR FROM TAPE
2043 ED56 20 29 EE TIBY3 JSR GETTAP ;GET A CHAR FROM TAPE
2044 ED59 C9 23 CMP #'#' ;CHECK FIRST CHR FOR
2045 ED5B F0 06 BEQ TIBY4 ;START OF BLOCK
2045 ED5B F0 06 BEQ TIBY4 ;START OF BLOCK
2046 ED5D C9 16 CMP #$16 ;IF NOT # SHOULD BE SYN
2047 ED5F D0 F2 BNE TIBY1
2047 ED5F D0 F2 BNE TIBY1
2048 ED61 F0 F3 BEQ TIBY3
2049 ED63 A2 00 TIBY4 LDX #0
2049 ED63 A2 00 TIBY4 LDX #0
2050 ED65 20 29 EE TIBY5 JSR GETTAP ;NOW LOAD INTO BUFFER
2051 ED68 9D 16 01 STA TABUFF,X
2051 ED68 9D 16 01 STA TABUFF,X
2052 ED6B E8 INX
2053 ED6C E0 52 CPX #82
2053 ED6C E0 52 CPX #82
2054 ED6E D0 F5 BNE TIBY5
2055 ED70 AD 00 A8 LDA DRB
2055 ED70 AD 00 A8 LDA DRB
2056 ED73 29 CF AND #$CF
2057 ED75 8D 00 A8 STA DRB ;TURN OFF TAPES
2057 ED75 8D 00 A8 STA DRB ;TURN OFF TAPES
2058 ED78 58 CLI ;ENABL INTERR
2059 ED79 20 BD ED JSR ADDBK1 ;DISPLAY BLK COUNT
2059 ED79 20 BD ED JSR ADDBK1 ;DISPLAY BLK COUNT
2060 ED7C A2 00 LDX #0 ;TO CLEAR PTR IN TIBYTE
2061 ED7E AD 15 01 LDA BLK ;CHECK THE BLOCK COUNT
2061 ED7E AD 15 01 LDA BLK ;CHECK THE BLOCK COUNT
2062 ED81 F0 05 BEQ TIBY5A ;IF FIRST BLK ,DO NOT CMP
2063 ED83 DD 16 01 CMP TABUFF,X
2063 ED83 DD 16 01 CMP TABUFF,X
2064 ED86 D0 28 BNE TIBY7 ;BRANCH IF WE MISSED ONE BLOCK
2065 ED88 E8 TIBY5A INX
2065 ED88 E8 TIBY5A INX
2066 ED89 8E 36 A4 STX TAPTR
2067 ED8C EE 15 01 INC BLK ;INCR BLK CONT
2067 ED8C EE 15 01 INC BLK ;INCR BLK CONT
2068 ED8F AD 67 01 LDA TABUFF+81 ;STORE THIS BLK CKSUM
2069 ED92 48 PHA
2069 ED92 48 PHA
2070 ED93 AD 66 01 LDA TABUFF+80
2071 ED96 48 PHA
2071 ED96 48 PHA
2072 ED97 CE 12 A4 DEC INFLG ;SET INFLG DIFF FROM OUTFLG
2073 ED9A 20 E7 F1 JSR BKCKSM ;COMPUT BLK CKSUM FOR THIS BLK
2073 ED9A 20 E7 F1 JSR BKCKSM ;COMPUT BLK CKSUM FOR THIS BLK
2074 ED9D 68 PLA
2075 ED9E CD 66 01 CMP TABUFF+80 ;DO THEY AGREE ?
2075 ED9E CD 66 01 CMP TABUFF+80 ;DO THEY AGREE ?
2076 EDA1 D0 0C BNE TIBY6
2077 EDA3 68 PLA
2077 EDA3 68 PLA
2078 EDA4 CD 67 01 CMP TABUFF+81
2079 EDA7 D0 07 BNE TIBY7
2079 EDA7 D0 07 BNE TIBY7
2080 EDA9 EE 12 A4 INC INFLG ;RESTORE INPUT DEVICE
2081 EDAC A2 01 LDX #1 ;TO GET FIRST CHR IN TIBYTE
2081 EDAC A2 01 LDX #1 ;TO GET FIRST CHR IN TIBYTE
2082 EDAE 60 RTS
2083 EDAF 68 TIBY6 PLA ;RESTORE STACK PTR
2083 EDAF 68 TIBY6 PLA ;RESTORE STACK PTR
2084 EDB0 68 TIBY7 PLA
2085 EDB1 68 PLA
2085 EDB1 68 PLA
2086 EDB2 68 PLA
2087 EDB3 68 PLA
2087 EDB3 68 PLA
2088 EDB4 20 8E E3 JSR CKER0