10
20
30 :
40 ERRSP=23613
50 DIM mcode% &100
60 TapeBuffer=&5BEF
70 FOR P=0 TO 1
80 P%=23300
90 O%=mcode%
100 [OPT P*3+4
110 .L23300:JP TapeInfo
120 .L23303:JP TapeLoad
130 .L23306:JP TapeHeader
140 .L23309
150 :
160 .TapeSave
170 CALL TapeData:JR TapeSaveGo
180 .TapeHeader
190 CALL TapeHdr
200 .TapeSaveGo
210 LD HL,(ERRSP):PUSH HL
220 CALL TapeSaveCall
230 JR TapeReturn
240 .TapeSaveCall
250 LD (ERRSP),SP:JP &04C2
260 :
270 .TapeLoad
280 CALL TapeData:JR TapeLoadGo
290 .TapeInfo
300 CALL TapeHdr
310 .TapeLoadGo
320 LD HL,(ERRSP):PUSH HL
330 SCF:CALL TapeLoadCall
340 .TapeReturn
350 POP HL:LD (ERRSP),HL
360 LD BC,0:RET C
370 INC C:CALL &1F54:RET NC
380 INC C:RET
390
400 .TapeLoadCall
410 LD (ERRSP),SP:JP &0556
420 :
430 .TapeHdr
440 LD IX,TapeBuffer:LD DE,17
450 XOR A:RET
460 .TapeData
470 LD IX,(TapeBuffer+13)
480 LD DE,(TapeBuffer+11)
490 LD A,&FF:RET
500 ]NEXT
510 END
520
530
540
550 FOR a=23300 TO 23390:READ b:POKE a,b:NEXT a
560 DATA 195,42,91,195,37,91,195,18,91,205,84,91,24,3,205,75,91
570 DATA 42,61,92,229,205,30,91,24,23,237,115,61,92,195,194,4
580 DATA 205,84,91,24,3,205,75,91,42,61,92,229,55,205,66,91,225
590 DATA 34,61,92,1,0,0,216,12,205,84,31,208,12,201,237,115,61
600 DATA 92,195,86,5,221,33,239,91,17,17,0,175,201,221,42,252,91
610 DATA 237,91,250,91,62,255,201
620
630
640 LET bc=USR 23300
650
660
670 LET bc=USR 23303
680
690
700 POKE 23549,INT(start/256):POKE 23548,start-256*PEEK23549
710 LET bc=USR 23303
720
730
740 LET bc=USR 23306
750
760
770 LET bc=USR 23309
780
790
800 POKE 23549,INT(start/256):POKE 23548,start-256*PEEK23549
810 POKE 23547,INT(length/256):POKE 23546,length-256*PEEK23547
820 LET bc=USR 23309
830
840
850
860
870
880