5 REM:Disk-based TEXT (c)1986 Acroatix 6 MAXFILES=2:CLEAR512,61490:LFILESV:READA$:FORI=1TOLEN(A$):POKEHIMEM+I-1,ASC(MID$(A$,I,1)):NEXT:FORI=1TO20:READJ,K:POKEHIMEM+J,K:NEXT 7 DEFSTRA-H:DEFINTI-W:DIME(40),Y(40),J(20),H(4),SE(25),FP(2):F="":AQ="QFWFQ .DO":E=CHR$(27):FORI=27TO32:G=G+CHR$(I):NEXT:G=G+CHR$(13):D=CHR$(34):CC=":":YR=MAXRAM-1293:FX=".DO":YC=61568 8 FORI=0TO4:READB:H(I)=" "+B+" ":NEXT:GOSUB114:GOTO27 9 S=0:R=0 10 IFKPTHENKP=0ELSERETURN 11 PRINT@240,SPACE$(40);:PRINT@240,"";:RETURN 12 MID$(F,7)=RIGHT$(F,2):VV=VARPTR(F):XX=PEEK(VV+1)+256*PEEK(VV+2):RETURN 13 PRINT@72+8*P," "LEFT$(E(J(P)),6)E"q":GOTO10 14 O=0:S=0:ONERRORGOTO38:LFILESTOAQ:ZL=1280*DSKI$(""):ONERRORGOTO39:OPENAQFORINPUTAS1:NF=0:GOSUB11 15 IFNOTEOF(1)THENINPUT#1,A:IFLEN(A)<>17THEN15ELSEIFLEFT$(A,9)=AQTHEN15ELSEIFMID$(A,8,2)<>"DO"THEN15ELSENF=NF+1:E(NF)=LEFT$(A,9):Y(NF)=VAL(RIGHT$(A,5)):PRINT".";:GOTO15 16 CLOSE:KILLAQ 17 NF=NF+1:E(NF)="nufile":Y(NF)=0 18 KF=FRE(0)-300:CLS:PRINT"Len: "TAB(13)"Free:"ZL"/"KFTAB(34)"D-TEXT":I=0:N=0:GOSUB118 19 IFNFOTHENN=N+1:J(N)=I 20 I=I+1:GOTO19 21 PRINT@280,E"pForm Load Kill Prnt Page Disk Menu"E"q";:M=1 22 FORP=1TON:PRINTE"q";:GOSUB13:NEXT:CALL26041:IFNF<21THENPRINT@300,E"p "E"q"; 23 P=M:PRINTE"p";:GOSUB13:PRINT@4,USING" #####";Y(J(M)):Q=0:RETURN 24 DATA"2{NG#^#V#~qq#b >|y2{x2z>:{qO:zG*|q#s#rpLP2!i4*z**!9!t_1B]]z͜l2P<2!xl" 25 DATA14,13,19,10,24,4,25,13,34,34,72,19,73,0,81,17,85,6,86,8,103,0,104,0,105,34,109,34,113,15,114,34,129,34,133,34,137,34,154,34 26 DATA Off,"On ",Top,Set,End 27 GOSUB14 28 KEYOFF:ONKEYGOSUB117,34,35,104,37,14,,42 29 PRINT@40,E"q"DATE$" "TIME$:IFN=0THEN29ELSEKEYON:Q=INSTR(G,INKEY$):P=M 30 IFQ=2ORQ=6THENM=M+1ELSEIFQ=3THENM=M-1ELSEIFQ=5THENM=M+5ELSEIFQ=4THENM=M-5ELSEIFQ=7THENIFDSKI$(E(J(M)))>0THENGOSUB11:PRINT"RAM file exists, can't edit disk":KP=1ELSE45 31 IFM<=0THENM=NELSEIFM>NTHENM=1 32 IFQ>1ANDP<>MTHENPRINTE"q";:GOSUB13:S=0:GOSUB23 33 GOTO29 34 IFJ(M)=NFTHENRETURNELSEGOSUB10:F=E(J(M)):LOADMCC+F,F:GOSUB12:CALLYC,1,XX:GOTO42 35 IFJ(M)=NFTHENRETURNELSEGOSUB11:PRINT"Kill 0:"E(J(M)); 36 GOSUB43:IFITHEN11ELSEKILLCC+E(J(M)):GOTO14 37 IFNF<21THENRETURNELSEKEYOFF:GOSUB9:O=(O+20)MOD40:GOTO18 38 IFERR<>57THENCLOSE:KILLAQ 39 BEEP:GOSUB11:IFERR=7THENA="OM"ELSEIFERR=18THENA="IO"ELSEIFERR>58THENA=MID$("NRDNCMDAWPDFNDHTAE",ERR*2-117,2)ELSEA="#"+STR$(ERR) 40 PRINTERL;A" Error; Press Key"; 41 CALL26041:B=INPUT$(1):IFERR<59ORERR>62THENCLS:RUN 42 CLEAR0,MAXRAM:IFDSKI$("DMENU.BA")>0THENCLS:RUN"dmenu"ELSELFILESMENU 43 PRINT" (y/n)? "; 44 I=INT((INSTR("nNyY",INPUT$(1))-3)/2):IFI=-2THEN44ELSERETURN 45 IFKF<1400THENERROR7ELSEKEYOFF:CLS:IFJ(M)=NFTHEN63ELSEFL=E(J(M)):YL=Y(J(M)):PRINT"File: ";FL:PRINTUSING"Length: #####";YL:PRINT@135,"vs."KF"free in RAM" 46 PRINTSTRING$(40,"")" to ":PRINT" Wrap Strt Stop Set":PRINT@300,"Buff Files Menu";:KW=1:XB=0:GOSUB50 47 ONKEYGOSUB,54,55,56,59,61,,42 48 KEYON:IFINKEY$=CHR$(13)THEN67ELSEIFKR=0THEN48 49 KR=0:GOSUB18:GOTO28 50 IFYL+XB>KFTHENKB=1ELSEKB=-1:KE=1 51 IFKB=1THENKE=1 52 PRINT@284,H(KW)H(3+KB)H(3+KE);:PRINT@80,USING"Buffer: #####";XB:PRINTUSING"Total: #####";XB+YL:PRINT@211,"";:IFKB=1THENPRINT"Append "ELSEIF(KBANDKE)=0THENPRINT"Set Limits"ELSEPRINT"Edit " 53 RETURN 54 KW=ABS(KW-1):GOTO52 55 KB=((KB+2)MOD3)-1:IFYL+XB>KFANDKB<0THENKE=0:GOTO52ELSE51 56 KE=ABS(KE-1):IFKEKFANDKE>0ANDKB<0THENKB=0 58 GOTO52 59 KEYOFF:GOSUB60:INPUT"New Buffer";X:IFX+1300>KFTHENBEEP:RETURNELSEXB=X:GOSUB52 60 PRINT@95,STRING$(25," "):PRINT@95,"";:RETURN 61 KR=-1:RETURN 62 BEEP 63 LINEINPUT"File to create: ";F:IFF=""THEN27ELSEFORI=1TOLEN(F):B=MID$(F,I,1):IFB<"a"ORB>"z"THENNEXTELSEMID$(F,I,1)=CHR$(ASC(B)AND223):NEXT 64 I=INSTR(F,".DO"):IFI>0THENF=LEFT$(F,I=1) 65 IFLEN(F)>6THEN62ELSEIFLEN(F)<6THENF=F+SPACE$(6-LEN(F)) 66 F=F+".DO":IFDSKI$(CC+F)>0THENPRINTF" already on disk.":GOTO62ELSEKW=1:KB=1:KE=1:FL=F:YL=1E4 67 KEYOFF:IFYL<1281THENKB=-1:KE=1 68 IF(KBANDKE)THEN85 69 DSKO$0,0,YR:XD=YR-22 70 XD=XD+22:IFXD=YR+1240ORPEEK(XD)=0THENERROR52ELSEI=9:X=XD:GOSUB83:XD=X:IFF<>FLTHEN70 71 XL=YL:JS=PEEK(XD+20):J9=PEEK(XD+21):OPENFLFOROUTPUTAS1:X=YR+1280:JB=0:XB=0 72 IFKB<0THENKW=1:GOSUB80:GOTO77ELSEKW=0 73 IFKE>0ANDXL+XB>KFTHEN:GOSUB80:JB=JC:GOTO73 74 I=128:GOSUB83:X=YR:XL=XL+I:FF="START":GOSUB79:IFXL<1281THENKE=1:KW=1:SE(KW)=JC:GOTO76ELSEIFJTHENKW=1:SE(KW)=JC 75 GOSUB80:IFKW=0THENJB=JC:GOTO74 76 IFKE=1THENGOSUB80:IFXL>0THEN76ELSE89 77 IFXL<1281THENGOSUB80:KE=1:GOTO89 78 FF="END":GOSUB79:IFJOR(FRE(0)<2000+XB)THEN89ELSEGOSUB80:GOTO77 79 CLS:PRINTE"T"E"V"F;E"U"E"W"E"p";:PRINT:PRINT@280," for More, to "FF;E"q";:J=(CHR$(13)=INPUT$(1)):RETURN 80 GOSUB11:FORJ=1TO10:PRINT".";:IFXL<=0THEN82ELSEI=128:IFXL<128THENI=XL 81 GOSUB83:IFKWTHENPRINT#1,F;ELSEYB=YB+LEN(F) 82 NEXT:RETURN 83 IFX-YR>1279THENX=YR:IFJS<80THENDSKO$0,JS,YR:JC=JS:JS=PEEK(YR+1280):IFKWTHENKW=KW+1:SE(KW)=JC 84 Y=VARPTR(F):POKEY,I:POKEY+2,INT(X/256):POKEY+1,X-256*PEEK(Y+2):XL=XL-I:X=X+I:RETURN 85 IFKB<1THEN88 86 IFDSKI$(FL)=0THENOPENFLFOROUTPUTAS1:CLOSE1 87 GOTO89 88 IFKB<0ANDKE=1THENLOADMCC+FL,F:GOTO89 89 CLOSE:F=FL:GOSUB12:CALLYC,1,XX 90 PRINT"Save Changes";:GOSUB43:J=DSKI$(FL):IFIORJ=1THENPRINT"n":KILLFL:GOTO49ELSEPRINT"y":IF(KBANDKE)=0THEN93 91 IFKB<0THENKILLCC+FL 92 SAVEMCC+FL,A:KILLFL:GOTO27 93 IFJB=0THENIFKE=1ORJS=255THENKB=-1:GOTO91ELSEPOKEYR+1280,255:DSKO$1,JC,YR:KILLCC+FL 94 IFJS=255THENDSKO$0,0,YR:GOTO100 95 XX=0:JN=JS:ZF=FRE(0)+DSKI$(FL)-300:IFZF>XLTHENXX=XL:JL=J9:JS=0:GOTO97 96 XX=XX+1280:XL=XL-1280:DSKO$0,JS,YR:JL=JS:JS=PEEK(YR+1280):IFZF>XX+1280THEN96ELSEPOKEYR+1280,255:DSKO$1,JL,YR 97 DSKO$0,0,YR:X=YR 98 IFPEEK(X)<>0THENX=X+31:GOTO98 99 FORI=1TO9:POKEX+I-1,ASC(MID$(FX,I,1)):NEXT:FORI=9TO23:POKEX+I,32:NEXT:POKEX+24,70:POKEX+25,INT(XX/256):POKEX+26,XX-256*PEEK(X+25):POKEX+29,JN:POKEX+30,JL 100 IFJB>0THENFORI=1TOKW:X=YR+1240+INT(SE(I)/4):POKEX,PEEK(X)AND(255-4^(4-(SE(I)MOD4))/2):NEXT:POKEYR+1260,PEEK(YR+1260)+KW:POKEXD+16,YB/256:POKEXD+17,0:POKEXD+21,JB:JB=0 101 DSKO$1,0,YR 102 SAVEMCC+FL,A:KILLFL:IFDSKI$(CC+FX)=0THEN27 103 LOADMCC+FX,F:KILLCC+FX:O$=FX:NAMEO$ ASFL:IFJS=0THEN102ELSE94 104 IFY(J(M))=0THENRETURNELSEKEYOFF:CLS:OPEN DVFOROUTPUTAS2:OPENCC+E(J(M))FORINPUTAS1:Y=Y(J(M)):FP(1)="":PG=0 105 PRINT@280,"Ready to print";:GOSUB43:IFITHENCLOSE:GOTO18ELSECLS 106 PG=PG+1:N=LP:IFLT>0THENFORI=1TOLT:PRINT#2,DC;:NEXT 107 IFLHTHENPRINT#2,SPACE$(LM)DATE$" "TIME$" "E(J(M))" Page"PG;DC;DC:N=N-2 108 IFLEFT$(FP(1),2)=CHR$(13)+CHR$(10)THENI=LEN(FP(1)):IFI>2THENFP(1)=RIGHT$(FP(1),I-2)ELSEFP(1)="" 109 IFFP(1)<>" "THENFP(0)=FP(1)ELSEFP(0)="" 110 IFY>LW-LEN(FP(0))THENI=LW-LEN(FP(0))ELSEI=Y 111 IFI>0THENFP(0)=FP(0)+INPUT$(I,1):Y=Y-I 112 IFFP(0)>""THENCALLHIMEM,0,VARPTR(FP(0)):PRINT#2,SPACE$(LM)FP(0);:FORI=1TOLS:PRINT#2,DC;:NEXT:N=N-LS:IFN<1THENPRINT#2,DF;:IFLYTHEN105ELSE106 113 IFY=0ANDFP(1)=""THENCLOSE:GOTO18ELSE108 114 ONERRORGOTO116:READFN:ONERRORGOTO39:READDV,LM,LW,LP,LS,LH:GOSUB115:DC=B:READLT:GOSUB115:DF=B:READLY:RETURN 115 B="":READKW:FORI=1TOKW:READKB:B=B+CHR$(KB):NEXT:RETURN 116 RESTORE201:RESUME 117 GOSUB114 118 PRINT@65,SPACE$(14);:PRINT@65,FN;:RETURN 201 DATA "Screen Dsp","lcd:",0,39,7,1,0,2,13,10,0,1,143,1 202 DATA "Draft","lpt:",5,70,56,2,1,1,13,4,1,12,0 203 DATA "Memo","lpt:",5,70,56,1,1,1,13,4,1,12,0 204 DATA "Quick Print","lpt:",0,79,32000,1,0,2,13,10,0,1,12,0