Pass 1 errors: 00 BB80 10 ORG 48000 ldcode 20 *H ldcode 30 ; 40 ; Copyright AERODYN 1994 50 ; Vaesteraas Sweden 60 ; 70 ; Load one block of CODE 80 ; from tape, as stored. 90 ; 100 ; The user inputs the 110 ; 10'th character of the 120 ; filename to load with 130 ; a POKE. 140 ; 150 ; Program loading: 160 ; LOAD"ldcode"CODE ldcode 170 ; 180 ; Call: POKE ldcode+2,51 190 ; LET L=USR ldcode 200 ; 210 ; Result: 220 ; L contains no of bytes 230 ; loaded. 0556 240 LOADBY EQU #556 ; ROM BB80 250 START ENT $ BB80 1812 260 JR L1 270 ; BB82 280 CHAR10 DEFS 1 ; -1 BB83 290 HEADER DEFS 1 ; Type BB84 300 DEFS 10 ; +1 Filename BB8E 310 DEFS 2 ; +11 No of bytes BB90 320 DEFS 2 ; +13 Start address BB92 330 DEFS 2 ; +15 Basic bytes BB94 DD210300 340 L1 LD IX,HEADER-START BB98 DD09 350 ADD IX,BC ; HEADER address BB9A AF 360 L2 XOR A ; Signal header. BB9B DDE5 370 PUSH IX BB9D 111100 380 LD DE, 17 ; Bytes BBA0 37 390 SCF ; Signal LOAD BBA1 CD5605 400 CALL LOADBYTES BBA4 DDE1 410 POP IX BBA6 30F2 420 JR NC,L2 ; Parity error. BBA8 DD7EFF 430 LD A,(IX-1) BBAB DDAE0A 440 XOR (IX+10) BBAE 20EA 450 JR NZ,L2 ; Wrong character. BBB0 3EFF 460 LD A,#FF ; Data block. BBB2 DD5E0B 470 LD E,(IX+11) BBB5 DD560C 480 LD D,(IX+12) ; No of bytes. BBB8 DDE5 490 PUSH IX BBBA DD4E0D 500 LD C,(IX+13) BBBD DD460E 510 LD B,(IX+14) BBC0 DD210000 520 LD IX,0 BBC4 DD09 530 ADD IX,BC ; Start address. BBC6 37 540 SCF ; LOAD BBC7 CD5605 550 CALL LOADBYTES BBCA DDE1 560 POP IX BBCC 30CC 570 JR NC,L2 ; Parity error. BBCE DD4E0B 580 LD C,(IX+11) BBD1 DD460C 590 LD B,(IX+12) ; Return no of bytes. BBD4 C9 600 RET Pass 2 errors: 00 Table used: 82 from 253 Executes: 48000