0 'DD2CAS.200Copyright(c)1989R.W.Hess All Rights Reserved 2 CLS:CLEAR500,57426:MAXFILES=2:SOUNDOFF:GOSUB38:GOSUB40:PRINTE"p DD2CAS.200(c)"SPACE$(26):DIMZ(40) 4 PRINT@80,E"J":GOSUB74:PRINT@30,E"p=End"E"q":I=80:QN=1:GOSUB28:PRINTE"p ag lobal ntag og ec"E"q":PRINT@534,"bytes":GOSUB82:GOSUB62 6 GOSUB58:K=0:J=I 8 A=INKEY$:IFA=""THEN8ELSEGOSUB58:IFA=ETHEN46ELSEM=ASC(A)AND95:IFM=28ORM=0THENI=I+10:K=1ELSEIFM=29THENI=I-10:K=1ELSEIFM=30THENI=I-40ELSEIFM=31THENI=I+40 10 IFM=84ANDXE=0THENGOSUB60:PRINT@I,CHR$((QXOR30)):I=I+10:K=1ELSEIFM=71THEN86ELSEIFM=76THEN4ELSEIFM=82THEN16ELSEIFM=85THENFORP=80TOOSTEP10:PRINT@P," ":NEXT 12 IFKANDI>OTHENI=80ELSEIFKANDI<80THENI=OELSEIFI>OORI<80THENI=J 14 XE=0:GOSUB82:GOTO6 16 PRINT@30,E"p"SPACE$(9):GOSUB94:GOSUB62:GOSUB30:LINEINPUT" Disk ID: ";DN:GOSUB30:LINEINPUT" Tape ID: ";CN:GOSUB62:GOSUB30:PRINT" Press 'RECORD' then"CC; 18 A=INPUT$(1):IFA=ETHEN4ELSEIFA<>CTHEN18ELSEGOSUB72:OPENBFORAPPENDAS1:PRINT#1,DN" >>> "CN:PRINT#1,DATE$" "TIME$:CLEAR 20 GOSUB38:GOSUB106:GOSUB30:GOSUB36:FORI=80TO470STEP10:F="":GOSUB60:IFQ=32THEN24ELSEFORT=S+1TOS+9:F=F+CHR$(PEEK(T)):NEXT 22 IFQ=62THENGOSUB32:GOTO64ELSEIFQ=42THENGOSUB104:FORN=1TO2:GOSUB30:G=F+CHR$(0):CALLU+3,83,VARPTR(G):GOSUB54:NEXT:GOSUB26:GOSUB36:KILLF:END 24 NEXT:GOTO42 26 GOSUB58:GOSUB58:PRINT@I,E"q " 28 LINE(0,119)-(239,119) 30 PRINT@600,E"p"SPACE$(40):RETURN 32 GOSUB58:PRINT@I,E"q*":GOSUB30:RETURN 34 CLOSE:POKE61178,0:RETURN 36 AR="RUN20"+C+CHR$(0):POKE61177,PEEK(VARPTR(AR)+1):POKE61178,PEEK(VARPTR(AR)+2):RETURN 38 ONERRORGOTO48:KEYON:DEFSTRA-H:DEFINTI-Q:E=CHR$(27):C=CHR$(13):B=CHR$(171)+"SAV.DO":BN="NO"+B:CC=" ENTER or ":D="CAS-LO.CO":DT="F[.DO":H="[SET!].CO":HC="[TXT!].DO":U=57426:W=58960:CALL20318:RETURN 40 IFMAXRAM-WTHENBEEP:PRINT"NO POWR-DISK!":ENDELSECALLW:LOADMD:IFPEEK(62715)+256*PEEK(62716)-UTHENBEEP:BEEP:PRINTD"address err: DOS CORRUPTED?!":ENDELSEKILLD:RETURN 42 GOSUB30:GOSUB34:PRINT" Mark this set with '"H"' ? Y/N ":DIMZ(40) 44 A=INKEY$:IFA=""THENGOSUB62:FORX=1TO500:NEXT:GOTO44ELSEIFINSTR("Yy",A)THENGOSUB30:CSAVEMH,0,0,0:GOSUB72:GOTO4ELSEIFINSTR("Nn",A)THEN4ELSE42 46 CALL20323:SAVEMD,U,W-1,U:MAXFILES=1:CLEAR256,MAXRAM:LFILESMENU 48 GOSUB34:GOSUB62:GOSUB106:IFERR=67THENER="IN RAM!"ELSEIFERR=7THENER="TOO BIG!"ELSEIFERR>58THENBEEP:GOSUB28:PRINT" CHECK DRIVE!":CALL25102:RESUME4ELSEIFERR=52ANDERL-40THENRESUME4ELSEBEEP:IFERR=52THENCLS:PRINT"NO "D:ENDELSEPRINT"Er"ERR;"Ln"ERL:END 50 GOSUB26:PRINT" "F" "ER:OPENBNFORAPPENDAS1:PRINT#1,F" "ER:CLOSE:CALL25102:GOSUB58 52 GOSUB26:GOSUB36:END 54 K=I:I=601:GOSUB60:CLOSE:OPENBFORAPPENDAS1:FORT=STOS+14:PRINT#1,CHR$(PEEK(T));:NEXT:PRINT#1,"":CLOSE:I=K:RETURN 58 CALL28013,(I\10)-4:RETURN 60 S=64048+(PEEK(65198)*40+I)MOD640:Q=PEEK(S):QN=(I-70)/10:RETURN 62 SOUND4433,1:RETURN 64 IFINSTR(F,". ")THENGOSUB58:GOTO52ELSEIFINSTR(F,".DO")=0THENPRINT@560,"Loading-":PRINT" "F:LOADM":"+F,F:ENDELSEGOSUB30:GOSUB104:PRINT" "F:CLOSE:OPEN"CAS:"+HCFOROUTPUTAS1:PRINT#1,F:CLOSE:OPEN":"+FFORINPUTAS1:OPEN"CAS:"+FFOROUTPUTAS2:L=0:Y=0 66 A="":IFEOF(1)THENCLOSE:GOSUB54:GOTO52ELSELINEINPUT#1,A:L=LEN(A):Y=Y+L 68 IFL=255THENPRINT#2,A;ELSEPRINT#2,A:Y=Y+2 70 PRINT@611,USING"#####";Y:GOTO66 72 GOSUB30:PRINT" 15 sec. buffer...":MOTORON:FORX=1TO5000:NEXT:MOTOROFF:RETURN 74 XE=0:Q=0:O=70:PRINT@O,E"J"E"q":LFILESTODT:KILLDT:RESTORE:DB="ZZ"+CHR$(0)+CHR$(26)+SPACE$(24)+"F":F=SPACE$(10):S=-1878:OPEN"COM:98N1DNN"FOROUTPUTAS1:FORI=-1936TO-1896:READR:POKEI,R:Q=Q+R:NEXT:IFQ-4615THENERROR17ELSEPRINT#1,DBCHR$(1)CHR$(158) 76 V=VARPTR(F):CALL-1936,,PEEK(V+1)+256*PEEK(V+2):IFASC(F)=0THEN78ELSEK=K+1:PRINT@O+1+K*10,F:Z(K)=PEEK(S+1)+256*PEEK(S+2):PRINT#1,DBCHR$(2)CHR$(157):GOTO76 78 CLOSE:O=O+K*10:RETURN 80 DATA205,25,133,205,25,133,14,9,205,25,133,119,35,13,194,120,248,14,16,205,25,133,13,194,131,248,33,172,248,14,4,205,25,133,119,43,13,194,143,248,201 82 GOSUB60:PRINT@540,SPACE$(12):PRINT@528,USING"#####";Z(QN):GOSUB90:IFXETHENGOSUB62:PRINT@540,"is TOO BIG!" 84 RETURN 86 IT=I:XE=0:FORI=80TOOSTEP10:GOSUB60:GOSUB90:BP=">":IFXETHENXE=0:BP=" " 88 PRINT@I,BP:NEXT:I=IT:GOTO12 90 IF(INSTR("BC",CHR$(PEEK(S+8)))ORINSTR("O",CHR$(PEEK(S+9)))=0)ANDZ(QN)>FRE(0)-100THENXE=1 92 RETURN 94 PRINT@520,E"K":GOSUB30:T=0:FORI=80TOOSTEP10:GOSUB60:IFQ=32THEN100 96 SK=PEEK(S+8):IFSK=67ORSK=66THENT=T+20+Z(QN)\65:GOTO100 98 T=T+15+Z(QN)\40 100 NEXT:GOSUB62:IFT=0THENBEEP:PRINT" NO FILES TAGGED!";:ELSEPRINT" Need "CHR$(140)(60+T)\60"min. of tape:"; 102 PRINTCC;:A=INPUT$(1):IFT=0ORA=ETHEN4ELSERETURN 104 PRINT@560,E"pSaving-":RETURN 106 PRINT@560,E"q"SPACE$(9):LINE(0,119)-(60,119):RETURN ------------CUT HERE ------------ 0 'CAS2DD.200Copyright(c)1989,R.W.Hess All Rights Reserved 2 CLS:CLEAR500,57426:MAXFILES=2:SOUNDOFF:GOSUB12:GOSUB14:PRINTE"p CAS2DD.200(c)"SPACE$(26)E"q":POKE3+PEEK(62651)+256*PEEK(62652),135:GOTO22 4 LINE(0,119)-(239,119) 6 PRINT@600,E"p"SPACE$(40):RETURN 8 CLOSE:POKE61178,0:RETURN 12 ONERRORGOTO49:KEYON:DEFSTRA-H:DEFINTI-Q:E=CHR$(27):C=CHR$(13):D="CAS-LO.CO":H="[SET!].CO":HC="[TXT!].DO":EF="NO"+CHR$(135)+"LOD":FM="S/B OK thenRUN18":V=64047:CALL20318:RETURN 14 IFMAXRAM-58960THENBEEP:PRINT"NO POWR-DISK!":ENDELSECALL58960:LOADMD:IFPEEK(62715)+256*PEEK(62716)<>57426THENBEEP:BEEP:PRINTD" address err: DOS CORRUPTED?!":END 16 KILLD:GOSUB20:PRINT"CHECKING DISK...":OPEN":"+HCFOROUTPUTAS1:PRINT#1,HC:CLOSE:KILL":"+HC:CLS:RETURN 18 POKE3+PEEK(62651)+256*PEEK(62652),67:CALL20323:SAVEM"cas-lo",57426,58959,57426:MAXFILES=1:CLEAR256,MAXRAM:MENU 20 SOUND4433,1:RETURN 22 PRINT@86,"Files save to disk until disk is full or "H" is found. YOU may end by pressing SHIFT/BREAK ONLY when":PRINT@250,E"p "FM" "E"q":PRINT:PRINT" displays: then type RUN18 & ." 23 PRINT@448,"ll tape files to disk"SPACE$(56)"

rompt at each file"SPACE$(59)" = Quit":GOSUB20 24 A=INKEY$:IFA=""THEN24ELSEIFA=ETHEN18ELSEIFINSTR("AaPp",A)=0THEN24ELSEPOKEV-1,(ASC(A)AND95):PRINT@320,E"J":GOSUB20:GOSUB4:LINEINPUT" Tape ID: ";DN:GOSUB20:F="Tape: "+DN:GOSUB76:GOSUB6:PRINT" Press 'PLAY' then ENTER: else ESC. "; 26 A=INPUT$(1):IFA=ETHEN18ELSEIFA<>CTHEN26 28 POKEV,1:PRINT@80,E"J":LINE(0,103)-(239,103) 30 GOSUB12:GOSUB8:GOSUB48:R=PEEK(V):ONERRORGOTO54:PRINT@561,E"p"FM:PRINT@520,;:G="."+CHR$(0):CALL57429,76,VARPTR(G) 32 ONERRORGOTO49:GOSUB42:GOSUB40 34 SAVEM":"+F:GOSUB38 36 GOSUB46:KILLF:END 38 PRINT@70+10*R,E"q"F:POKEV,R+1:GOSUB6:RETURN 40 GOSUB48:PRINT"Saving-":PRINT" "F:RETURN 42 GOSUB66:IFF=HCTHEN58ELSEIFF<>HTHENGOSUB70:RETURN 44 GOSUB8:GOSUB48:GOSUB74:KILLH:GOTO18 46 AR="RUN30"+C+CHR$(0):POKE61177,PEEK(VARPTR(AR)+1):POKE61178,PEEK(VARPTR(AR)+2):RETURN 48 PRINT@520,E"p"SPACE$(120):PRINT@520,;:RETURN 49 GOSUB8:GOSUB20:IFERR=67ANDERL-16THENER="Dupe":GOSUB52:GOSUB76:RESUME36ELSEIFERR=55THENER="Bad Name":GOSUB52:GOSUB76:RESUME36ELSEIFERR=64THENER="Disk full!":GOSUB52ELSEIFERR>58THENGOSUB4:PRINT" CHECK DISK!"ELSE51 50 GOSUB74:RESUME18 51 IFERR=52ANDERL=14THENBEEP:PRINT"NO "D:ENDELSEIFERR=52THENGOSUB46:ENDELSECLS:BEEP:PRINT"E"ERR;"L"ERL:END 52 GOSUB48:PRINT" "ER:CALL25102:GOSUB6:RETURN 54 GOSUB8:IFERR=18THENER="Bad Load"ELSEIFERR=55ORERR=2THENER="Bad Name"ELSE49 56 GOSUB20:GOSUB66:GOSUB52:GOSUB76:GOSUB46:IFINSTR(F,".DO")THEN34ELSEEND 58 CLOSE:OPENHCFORINPUTAS1:LINEINPUT#1,F:CLOSE:GOSUB70:GOSUB40:KILLHC:OPEN"CAS:"+FFORINPUTAS1:OPEN":"+FFOROUTPUTAS2 60 A="":IFEOF(1)THENCLOSE:GOSUB38:GOSUB46:ENDELSELINEINPUT#1,A 62 IFLEN(A)=255THENPRINT#2,A;ELSEPRINT#2,A 64 GOTO60 66 F="":S=64048+(561+40*PEEK(65198))MOD640:FORT=STOS+8:F=F+CHR$(PEEK(T)):NEXT:IFF=LEFT$(FM,9)THENGOSUB48:GOSUB74:GOTO18ELSERETURN 68 A=INKEY$:IFA=""THENGOSUB20:FORX=1TO500:NEXT:GOTO68ELSERETURN 70 IFPEEK(V-1)=65THENRETURNELSEGOSUB6:PRINT@561,E"p"F:PRINT" Save to disk? Y/N ":GOSUB68:IFINSTR("Yy",A)THENRETURNELSEIFINSTR("Nn",A)=0THEN70 72 GOSUB48:POKE64798,0:IFINSTR(F,".DO")THENCLOSE:OPEN"CAS:"+FFORINPUTAS1:CLOSE:KILLHC:GOSUB46:ENDELSE36 74 PRINT@624,"Any key ends.":GOSUB68:RETURN 76 OPENEFFORAPPENDAS1:PRINT#1,F" "ER:CLOSE:RETURN