Z-XLR8

Products: Z-XLR8
Date: 1982
Type: Cassette
Platform(s): TS 1000

Related Products

Cassette storage system that SAVES/LOADS 6-10x faster than normal, with error checking. Fast array variable and binary data save/load independent of program save/load. Available as EPROM, mapped to 14-16K, or cassette tape, mapped to 16-18K, 25-27K, or 30-32K.

Gallery

Z-XLR8

Source Code

   1 REM \00\D8\59\00\40\00\1E\64\CD\B7\40\1D\20\FA\1E\02\3E\FD\CD\D7\40\1D\20\F8\2A\85\40\EB\2A\83\40\7E\CD\D7\40\1B\00\7A\B3\C2\A1\40\1E\02\3E\DD\CD\D7\40\1D\20\F8\C9\47\DB\FE\78\CD\EB\40\D3\FF\CD\EB\40\C9\47\DB\FE\78\CD\EB\40\CD\2F\41\D3\FF\CD\EB\40\CD\2F\41\C9\CD\C4\40\0E\08\07\DC\C4\40\D4\B7\40\0D\C2\DC\40\CD\B7\40\C9\06\19\05\20\FD\C9\C5\D5\E5\D9\C5\D5\E5\1E\FD\21\F0\55\D9\1E\78\CD\15\41\1D\00\00\00\00\00\00\20\F4\D9\E1\D1\C1\D9\E1\D1\C1\C9\D9\06\08\16\00\15\DB\FE\A7\F2\1A\41\7B\BA\DA\18\41\72\05\23\00\C2\18\41\D9\C9\CD\EB\40\CD\EB\40\C9\00\00\00\00\00\00\3E\00\01\B3\00\21\83\40\86\5F\0B\78\B1\7B\23\20\F7\06\00\4F\C9\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\35
   5 SAVE "%C"
   7 IF USR 16700=65 THEN GOTO 10
   8 PRINT AT 10,11;"BAD LOAD"
   9 STOP 
  10 CLS 
  25 PRINT AT 7,0
  30 PRINT " REWIND AND REMOVE PROGRAM TAPE"
  35 LET U$="THEN INSERT BLANK TAPE"
  40 GOSUB 300
  47 FAST 
  50 POKE 23000,197
  55 POKE 16515,216
  60 POKE 16516,89
  65 POKE 16517,0
  70 POKE 16518,64
  75 PRINT AT 8,7;"INPUT TIMING VALUE"
  78 INPUT N
  79 CLS 
  80 POKE 16620,N
  85 LET U$="START RECORDING TAPE"
  86 GOSUB 300
  88 RAND USR 16520
  90 LET U$="STOP RECORDING TAPE"
  91 GOSUB 300
  95 LET U$="REWIND TAPE HALF WAY"
  96 GOSUB 300
 100 LET U$="START PLAYING TAPE"
 101 GOSUB 300
 104 GOSUB 420
 105 RAND USR 16625
 110 LET U$="STOP PLAYING TAPE"
 111 GOSUB 300
 120 LET S=0
 125 FOR I=22001 TO 22959
 126 IF PEEK I>249 THEN GOTO 400
 130 LET S=S+PEEK I
 135 NEXT I
 140 LET AVG=INT (S/959+.5)
 145 LET L=0
 150 LET H=255
 155 FOR I=22001 TO 22959
 160 LET P=PEEK I
 165 IF P<AVG AND P>L THEN LET L=P
 170 IF P>AVG AND P<H THEN LET H=P
 175 NEXT I
 180 CLS 
 181 IF (ABS (AVG-(H+L)/2)<=1.5) AND (H-AVG>2) AND (AVG-L>2) THEN GOTO 190
 182 IF N>14 THEN GOTO 402
 183 PRINT AT 10,5;"INCREASE TIMING VALUE"
 184 LET U$="BAD CALIBRATION"
 186 GOSUB 300
 188 GOTO 207
 190 PRINT AT 3,8;"TIMING VALUE = ";N
 192 PRINT AT 6,6;"CALIBRATION VALUE = ";AVG
 194 LET A=INT (((H-AVG)+(AVG-L))/2+.5)
 196 PRINT AT 10,13;
 198 FOR I=1 TO A
 200 PRINT "*";
 202 NEXT I
 204 LET U$="GOOD CALIBRATION"
 205 GOSUB 300
 207 CLS 
 208 PRINT AT 8,11;"%S%E%L%E%C%T%I%O%N"
 209 PRINT ,,,,,,
 210 PRINT TAB 8;"1.  RESTART"
 215 PRINT TAB 8;"2.  RECALIBRATE"
 225 PRINT TAB 8;"3.  STOP"
 230 PRINT AT 17,5;"INPUT SELECTION NUMBER"
 235 INPUT X
 237 CLS 
 240 IF X=1 THEN GOTO 75
 245 IF X=2 THEN GOTO 100
 250 IF X=3 THEN STOP 
 260 CLS 
 265 GOTO 207
 300 LET SL=LEN U$
 304 PRINT AT 8,0
 308 PRINT TAB ((32-SL)/2);U$
 309 PRINT 
 310 SLOW 
 318 PRINT AT 12,0;"  \: PRESS ANY KEY TO CONTINUE\ :"
 319 IF INKEY$<>"" THEN GOTO 319
 320 IF INKEY$="" THEN GOTO 320
 340 FAST 
 345 CLS 
 348 RETURN 
 350 FOR I=1 TO 4
 360 NEXT I
 365 RETURN 
 400 IF N<13 THEN GOTO 130
 402 CLS 
 405 PRINT AT 10,5;"DECREASE TIMING VALUE"
 410 GOTO 184
 420 FOR A=1 TO 100
 430 NEXT A
 440 RETURN 
 500 FOR I=22001 TO 22959
 505 IF PEEK I>249 THEN GOTO 550
 510 NEXT I
 550 CLS 
 555 PRINT I
 560 FOR J=I TO I+19
 565 PRINT PEEK J,PEEK (J+20)
 570 NEXT J

   1 REM \00\C3\F5\40\CD\DD\40\CD\2B\0F\2A\0C\40\23\36\80\E5\CD\B8\40\E1\FE\76\20\04\CD\23\0F\C9\FE\77\20\0B\36\00\2B\7E\FE\76\20\01\2B\18\E2\77\23\7E\FE\76\20\DB\23\18\D8\CD\2B\0F\21\3B\40\CB\7E\CC\29\02\CB\46\28\FC\ED\4B\25\40\CD\4B\0F\CD\BD\07\7E\FE\77\C8\FE\76\C8\FE\40\30\DC\C9\2A\0C\40\11\D6\02\19\01\42\00\23\0B\78\B1\C8\7E\FE\76\28\F6\36\00\18\F2\21\63\47\22\7B\40\CD\DD\40\06\01\CD\0D\45\CD\90\40\CD\FF\44\01\07\00\11\3E\40\ED\B0\CD\DD\40\06\02\CD\0D\45\CD\90\40\CD\FF\44\7E\32\45\40\23\7E\FE\31\CA\46\42\FE\38\CA\32\41\C3\11\41\3A\45\40\FE\37\CA\00\00\FE\27\CA\53\41\FE\35\CA\A3\43\FE\29\CA\E3\43\FE\2C\CA\2B\44\FE\2D\CA\3D\44\CD\DD\40\06\03\CD\72\41\ED\53\47\40\CD\DD\40\06\04\CD\72\41\ED\53\49\40\ED\53\58\40\C3\89\41\CD\7F\41\7E\FE\0D\CC\4E\45\C4\2B\45\C9\CD\0D\45\CD\90\40\CD\FF\44\C9\CD\DD\40\06\05\CD\7F\41\3E\FD\21\3C\40\77\23\77\CD\77\45\32\4B\40\CD\81\45\32\4C\40\32\5B\40\C3\AB\41\DB\FE\CD\D5\41\CD\E5\41\11\11\00\21\3C\40\CD\F1\41\CD\FD\41\ED\5B\49\40\2A\47\40\CD\F1\41\CD\D9\44\CD\DD\40\06\06\CD\7F\41\C9\DB\FE\06\06\11\00\00\1B\7A\B3\20\FB\05\20\F8\C9\11\E8\03\CD\06\42\1B\7A\B3\20\F8\C9\7E\CD\13\42\1B\23\7A\B3\C2\F1\41\C9\1E\FF\CD\06\42\1D\20\FA\C9\47\DB\FE\78\CD\40\42\D3\FF\CD\40\42\C9\CD\27\42\0E\08\07\DC\27\42\D4\06\42\0D\C2\18\42\CD\06\42\C9\47\DB\FE\78\CD\40\42\CD\40\42\CD\40\42\D3\FF\CD\40\42\CD\40\42\CD\40\42\C9\06\FF\05\20\FD\C9\D9\C5\D5\E5\3A\45\40\FE\2E\CA\94\45\FE\27\CA\71\42\FE\35\CA\4E\44\FE\29\CA\75\44\FE\2C\CA\C4\44\FE\2D\CA\D6\44\06\03\C5\C3\5B\43\CD\DD\40\06\03\CD\72\41\ED\53\47\40\CD\DD\40\06\05\CD\7F\41\CD\9E\42\CD\36\43\2A\47\40\7C\B5\28\03\22\56\40\CD\48\43\CD\6E\43\C3\92\43\CD\D1\42\1E\0F\21\4D\40\CD\E0\42\FE\FD\20\F9\CD\E0\42\FE\FD\20\F2\CD\E0\42\77\23\1D\C2\B4\42\21\3E\40\11\4D\40\0E\07\1A\BE\C2\9E\42\0D\23\13\C2\C5\42\C9\D9\0E\FF\1E\FB\D9\C9\D9\E1\E1\E1\D1\C1\D9\C9\D9\CD\46\0F\D2\D8\42\06\00\16\FF\15\DB\FE\A7\F2\EB\42\7B\BA\DA\E9\42\7A\91\78\17\47\D2\E9\42\D9\C9\21\00\28\11\83\40\01\F8\07\ED\B0\C9\21\83\40\11\E0\2E\01\FA\00\ED\B0\C9\2A\7F\40\01\FF\00\09\22\7F\40\21\83\40\CD\9E\09\01\FF\00\EB\36\00\2B\0B\78\B1\20\F8\C9\21\4D\40\1E\0D\97\86\23\1D\20\FB\BE\C8\06\1D\C3\5B\43\2A\56\40\ED\5B\58\40\CD\E0\42\77\23\1B\7A\B3\C2\4F\43\C9\C5\CD\DD\40\06\07\CD\0D\45\C1\70\23\C1\CD\90\40\C3\92\43\2B\ED\5B\58\40\97\86\2B\1B\47\7A\B3\78\C2\74\43\32\78\37\2A\5B\40\22\79\37\ED\5B\5B\40\BB\C8\06\1E\C3\5B\43\D9\E1\D1\C1\D9\CD\D9\44\CD\DD\40\06\06\CD\7F\41\C9\11\00\40\ED\53\47\40\2A\14\40\A7\ED\52\23\22\49\40\22\58\40\CD\DD\40\06\05\CD\7F\41\3E\FD\21\3C\40\77\23\77\CD\77\45\32\4B\40\3E\00\32\4C\40\32\5B\40\CD\81\45\ED\44\32\4C\40\32\5B\40\C3\AB\41\CD\DD\40\06\08\CD\7F\41\CD\04\44\23\5E\23\56\ED\53\78\37\23\22\47\40\ED\53\49\40\32\46\40\C3\89\41\7E\D6\20\47\23\7E\FE\0D\3E\80\20\02\CB\F7\B0\47\2A\10\40\7E\B8\C8\FE\80\20\05\06\1F\C3\5B\43\C5\CD\F2\09\C1\EB\18\EC\ED\5B\0C\40\ED\53\47\40\11\D7\02\ED\53\49\40\C3\89\41\11\00\20\ED\53\47\40\11\00\18\ED\53\49\40\C3\89\41\CD\5A\44\CD\48\43\CD\6E\43\C3\92\43\CD\DD\40\06\05\CD\7F\41\CD\9E\42\CD\36\43\21\45\40\3A\54\40\BE\C8\06\20\C3\5B\43\CD\DD\40\06\08\CD\7F\41\CD\04\44\23\5E\23\56\23\22\47\40\ED\53\49\40\32\46\40\CD\5A\44\21\46\40\3A\55\40\86\CB\77\28\06\06\21\C5\C3\5B\43\2A\49\40\ED\5B\58\40\A7\ED\52\30\06\06\22\C5\C3\5B\43\2A\47\40\22\56\40\CD\48\43\CD\6E\43\C3\92\43\CD\5A\44\2A\0C\40\22\56\40\CD\48\43\CD\6E\43\C3\92\43\C3\4E\44\DB\FE\06\04\C3\D9\41\50\E5\2A\7B\40\01\FF\00\3E\18\ED\B1\15\20\FB\4E\06\00\EB\E1\09\2B\47\13\23\1A\B8\C8\77\18\F8\2A\0C\40\11\F8\02\19\23\7E\FE\00\28\FA\C9\2A\0C\40\11\D7\02\19\E5\CD\E0\44\E1\11\30\00\19\C9\23\7E\FE\1C\30\FA\2B\2B\11\00\00\EB\C9\CD\1E\45\01\01\00\CD\6C\45\01\0A\00\CD\6C\45\01\64\00\CD\6C\45\01\E8\03\CD\6C\45\01\10\27\CD\6C\45\EB\C9\CD\1E\45\01\01\00\CD\6C\45\01\10\00\CD\6C\45\01\00\01\CD\6C\45\01\00\10\CD\6C\45\EB\97\C9\1A\1B\D6\1D\D8\3C\09\3D\20\FC\C9\06\0D\3E\00\23\86\05\20\FB\C9\2A\47\40\ED\5B\49\40\3E\00\86\1B\23\47\7A\B3\78\C8\18\F6\E1\D1\C1\22\3C\40\ED\53\3E\40\ED\43\40\40\C5\D5\E5\CD\DD\40\06\05\CD\7F\41\CD\DD\40\06\09\CD\0D\45\CD\C8\45\06\0A\CD\0D\45\CD\C8\45\CD\DA\45\CD\93\46\18\F5\2A\0C\40\EB\13\21\21\00\19\01\F7\02\ED\B0\CD\DD\40\C9\CD\D1\42\1E\0F\21\4D\40\CD\E0\42\FE\FD\20\F9\CD\E0\42\FE\FD\20\F2\CD\E0\42\77\23\1D\20\F8\CD\A7\46\CD\1D\46\CD\52\46\CD\30\46\11\0D\00\19\3A\54\40\77\FE\29\20\05\CD\39\46\3E\00\FE\27\20\03\CD\BC\46\C9\CD\30\46\06\07\11\4C\40\23\13\1A\FE\80\C8\77\05\C8\18\F3\2A\0C\40\23\11\D6\02\19\C9\CD\30\46\11\1C\00\19\3A\55\40\E6\3F\C6\20\77\23\3A\55\40\CB\77\C8\36\0D\C9\CD\30\46\11\13\00\19\22\4D\40\11\10\27\CD\7B\46\11\E8\03\CD\7B\46\11\64\00\CD\7B\46\11\0A\00\CD\7B\46\11\01\00\CD\7B\46\C9\2A\58\40\3E\1B\3C\A7\ED\52\30\FA\19\22\58\40\2A\4D\40\77\23\22\4D\40\C9\D9\2A\3C\40\ED\5B\3E\40\ED\4B\40\40\D9\01\F0\00\CD\35\0F\C9\1E\0D\21\4D\40\3E\00\86\23\1D\20\FB\21\5A\40\BE\C8\E1\C3\DA\45\2A\56\40\22\58\40\CD\30\46\11\1B\00\19\C3\59\46\2A\46\40\E5\ED\5B\42\40\A7\ED\52\22\48\40\C3\17\48\CD\CC\46\7E\FE\C3\CA\09\47\FE\CD\CA\09\47\E6\C7\FE\C2\CA\09\47\FE\C4\CA\09\47\7E\12\13\23\ED\4B\44\40\A7\E5\ED\42\E1\38\DA\C3\33\47\7E\12\13\23\4E\23\46\23\E5\2A\42\40\A7\03\ED\42\0B\30\0E\2A\44\40\A7\ED\42\38\06\2A\48\40\09\4D\44\E1\EB\71\23\70\23\EB\18\C8\2A\46\40\11\82\01\19\36\C9\23\36\47\C3\51\47\19\36\C9\23\36\2A\11\17\00\19\36\2B\23\36\2B\ED\5B\46\40\2A\14\40\A7\ED\52\D0\1B\ED\53\04\40\C9\76\18\09\2E\33\35\3A\39\00\2B\2E\31\2A\00\33\26\32\2A\18\0A\2E\33\35\3A\39\00\28\34\32\32\26\33\29\18\0A\2E\33\35\3A\39\00\26\29\29\37\2A\38\38\18\0A\2E\33\35\3A\39\00\31\2A\33\2C\39\2D\18\0B\38\39\26\37\39\00\39\26\35\2A\18\0C\38\39\34\35\00\39\26\35\2A\18\0E\2A\37\37\34\37\18\07\2E\33\35\3A\39\00\29\2E\32\00\3B\26\37\2E\26\27\31\2A\18\01\2B\2E\31\2A\00\33\26\32\2A\00\00\39\3E\35\2A\00\00\31\2A\33\2C\39\2D\00\00\38\39\26\37\39\00\18\00\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\18\00\ED\5B\B5\42\19\22\B5\42\22\F1\45\D1\2A\42\40\C9\28\26\31\31\00\31\1F\19\28\26\31\31\0D\1C\2B\1E\27\19\31\29\00\2D\31\1B\10\1D\22\1F\25\22\11\19\2E\33\28\00\2D\31\19\0E\31\21\31\29\00\10\2D\31\11\3E\00\01\94\07\21\83\40\86\5F\0B\78\B1\7B\23\20\F7\06\00\4F\C9\00\FF\00\CF\82\00\21\00\00\EF\00\BF\80\00\82\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\35
9000 SAVE "%Z"
9001 IF USR 18520=33 THEN GOTO 9004
9002 PRINT AT 10,11;"BAD LOAD"
9003 STOP 
9004 CLS 
9005 PRINT AT 10,7;"INPUT TIMING VALUE"
9006 INPUT N
9008 POKE 16961,N
9010 CLS 
9012 PRINT AT 10,4;"INPUT CALIBRATION VALUE"
9014 INPUT N
9016 POKE 17107,N
9018 CLS 
9020 PRINT AT 10,2;"INPUT Z-XLR8 STARTING LOCATION"
9022 INPUT L
9023 IF L=0 THEN STOP 
9024 LET TA=L+1760
9030 POKE 16631,INT (TA/256)
9032 POKE 16630,TA-256*INT (TA/256)
9040 POKE 16450,131
9042 POKE 16451,64
9044 POKE 16452,23
9046 POKE 16453,72
9048 POKE 16455,INT (L/256)
9050 POKE 16454,L-256*INT (L/256)
9080 RAND USR 18141
9082 NEW 
Scroll to Top