0 'HELPER 860220 0830 2 MAXFILES=1:CLEAR512:DEFINTA-Z:LL=64 10 CLS:PRINTSTRING$(40,255);:PRINT@10," fig-FORTH Helper ":PRINT 14 PRINT"F1 = Convert .DO File to FORTH Screen":PRINT"F2 = Convert FORTH Screen to .DO File" 15 PRINT"F3 = Scan disk for lowest OFFSET" 16 PRINT@280,">Scr >.DO Scan";:PRINT@315,"Menu"; 18 ONKEYGOSUB100,200,300,,,,,999:KEYON:F=0 19 IFFTHEN10ELSE19 100 '>Scr 110 GOSUB400:INPUT".DO source file";F$:OPENF$FORINPUTAS1 115 PRINT:PRINT"Unpacking screen"; 120 IFEOF(1)THENCLOSE:RETURNELSEINPUT#1,SC:PRINTSC; 130 FORI=0TO3:S=SC*4+OF+I:T=S\18:S=SMOD18+1 135 FORJ=0TO1:L$="":FORK=0TO1:LINEINPUT#1,A$:L$=L$+A$+SPACE$(LL-LEN(A$)):NEXT 137 DSKO$0,T,S,J,L$:NEXT:NEXT:GOTO120 200 '>.DO 210 GOSUB400:INPUT".DO target file";F$:OPENF$FOROUTPUTAS1 220 S=0:PRINT:INPUT"Starting screen (ENTER=exit)";S:IFS=0THENRETURN 222 E=S:INPUT"Ending screen (ENTER=same)";E 224 PRINT"Packing screen"; 230 FORSC=STOE:PRINTSC;:PRINT#1,SC 232 FORI=0TO3:S=SC*4+OF+I:T=S\18:S=SMOD18+1 234 FORJ=0TO1:L$=DSKI$(0,T,S,J) 236 FORK=0TO1:A$=MID$(L$,K*LL+1,LL):L1=1 240 FORL=LLTO1STEP-1:IFMID$(A$,L,1)<>" "THENL1=L:L=1 242 NEXT:PRINT#1,LEFT$(A$,L1):NEXT:NEXT:NEXT:NEXT:GOTO220 300 'Scan 310 KEYSTOP:F=1:CLS 320 L$=DSKI$(0,0,5,0)+LEFT$(DSKI$(0,0,5,1),112) 330 FORI=240TO1STEP-1:IFASC(MID$(L$,I))THENL=I:I=1 332 NEXT:IFL=240THENPRINT"Very funny. This disk is full.":GOTO360 340 PRINT"Cluster";L-1;"is the last used." 350 PRINT"Setting OFFSET to";L*6;"will keep" 352 PRINT"Forth from overlapping your files." 360 PRINT:PRINT"Hit any key";:A$=INPUT$(1):RETURN 400 KEYSTOP:F=1:CLS:INPUT"What is the OFFSET for this disk";OF:PRINT:RETURN 999 MENU