Apple II User Manual

Page of 257
0666   E35F 20 BD ED           JSR ADDBK1      ;JUST OUTPUT BLK CNT
0667   E362 A2 01              LDX #1          ;RESTORE X
0668   E364             ;CHECK IF FILE IS CORRECT
0669   E364 BD 16 01    LOADT2 LDA TABUFF,X    ;NOW CHCK FILE NAME
0670   E367 DD 2D A4           CMP NAME-1,X
0671   E36A D0 C3              BNE LOADTA      ;IF NO FILENAME GET
0672   E36C E8                 INX             ;ANOTHER BLOCK
0673   E36D E0 06              CPX #6          ;FILENAME=5 CHRS
0674   E36F D0 F3              BNE LOADT2
0675   E371 8E 36 A4           STX TAPTR       ;SAVE TAPE BUFF PTR
0676   E374 EE 11 A4           INC PRIFLG      ;OUTPUT MSG ONLY TO DISPLAY
0677   E377 A9 00              LDA #0          ;CLEAR DISPLAY POINTER
0678   E379 8D 15 A4           STA CURPO2
0679   E37C A0 66              LDY #TMSG7-M1   ;PRINT "LOAD " WITHOUT CLR DISPL
0680   E37E 20 96 E3           JSR CKER1
0681   E381 CE 11 A4           DEC PRIFLG
0682   E384 60                 RTS
0683   E385
0684   E385             ;LINE CKSUM ERROR
0685   E385 20 8E E3    CKERR  JSR CKER0       ;SUBR SO MNEM ENTRY CAN USE IT
0686   E388 20 DB E2           JSR WRITAZ      ;WRITE ADDR
0687   E38B 4C A1 E1           JMP COMIN
0688   E38E 20 FE E8    CKER0  JSR LL          ;SET DEFAULT DEVICES
0689   E391 20 24 EA           JSR CRCK        ;<CR>
0690   E394 A0 52       CKER00 LDY #TMSG3-M1   ;PRINT "ERROR"
0691   E396 B9 00 E0    CKER1  LDA M1,Y        ;DONT CLR DISPLAY TO THE RIGHT
0692   E399 C9 3B              CMP #SEMICOLON
0693   E39B F0 06              BEQ CKER2
0694   E39D 20 7A E9           JSR OUTPUT      ;ONLY TO TERMINAL
0695   E3A0 C8                 INY
0696   E3A1 D0 F3              BNE CKER1
0697   E3A3 60          CKER2  RTS
0698   E3A4
0699   E3A4             ;LOAD ROUTINE FROM TAPE WITH KIM-1 FORMAT
0700   E3A4 20 4D EB    LOADKI JSR CLRCK       ;CLEAR CKSUM
0701   E3A7 20 EA ED    LOADK1 JSR TAISET      ;SET TAPE FOR INPUT
0702   E3AA 20 29 EE    LOADK2 JSR GETTAP      ;READ CHARACTER FROM TAPE
0703   E3AD C9 2A              CMP #'*'        ;BEGINNING OF FILE?
0704   E3AF F0 06              BEQ LOADK3      ;YES,BRNCH
0705   E3B1 C9 16              CMP #$16        ;IF NOT *  SHOULD BE SYN
0706   E3B3 D0 F2              BNE LOADK1
0707   E3B5 F0 F3              BEQ LOADK2
0708   E3B7 20 FD E3    LOADK3 JSR RBYTE       ;READ ID FROM TAPE
0709   E3BA 8D 21 A4           STA SAVA        ;SAVE ID
0710   E3BD             ;NOW GET ADDR TO DISPLAY
0711   E3BD             ;& COMPARE ID AFTERWARDS
0712   E3BD 20 4B E5           JSR CHEKAR      ;GET START ADDR LOW
0713   E3C0 8D 1C A4           STA ADDR
0714   E3C3 20 4B E5           JSR CHEKAR      ;GET START ADDR HIGH
0715   E3C6 8D 1D A4           STA ADDR+1
0716   E3C9 20 25 E4           JSR GETID       ;ID FROM HIM
0717   E3CC CD 21 A4           CMP SAVA        ;DO IDS MATCH?
0718   E3CF D0 D3              BNE LOADKI      ;NO ,GET ANOTHER FILE
0719   E3D1 A2 02       LOADK5 LDX #$02        ;GET 2 CHARS
0720   E3D3 20 29 EE    LOADK6 JSR GETTAP      ;1 CHAR FROM TAPE
0721   E3D6 C9 2F              CMP #'/'        ;LAST CHAR ?
0722   E3D8 F0 0E              BEQ LOADK7      ;YES,BRNCH
0723   E3DA 20 84 EA           JSR PACK        ;CONVERT TO HEX
0724   E3DD B0 A6              BCS CKERR       ;NOT HEX CHAR SO ERROR
0725   E3DF CA                 DEX
0726   E3E0 D0 F1              BNE LOADK6
0727   E3E2 20 13 E4           JSR STBYTE      ;STORE & CHCK MEM FAIL