0 'MENUD - Menu based on DIRECT 9/21/84 UPDATE to include KILL 09/85;Both Drives 0: & 1:,11/85, OUTPUT CRT: & LPT:, 06/29/86 by c.richmond 5 'by Joel Orr 72126,1613-all rights reserved 9/21/84 10 CLEAR3000:MAXFILES=2:DEFINTA-Z:DIMA$(72):KEYON 15 CLS:PRINT" Drive 0 or 1 ";WD$ 16 WD$=INKEY$:IFWD$=""GOTO16 17 IFWD$="0"THENDD$="0:":ELSEIFWD$="1"THENDD$="1:" 20 CLS:P$=CHR$(27)+"p":Q$=CHR$(27)+"q":OPENDD$+"DIRECT"FORINPUTAS1:N=0:O=0:L$="More Show Disk Size Rm#0 Rm#1 KILL OUTP" 23 C$=CHR$(29)+CHR$(28)+CHR$(30)+CHR$(31)+CHR$(13) 25 ONKEYGOSUB400,430,440,460,600,620,785,1000:LINEINPUT#1,D$ 30 IFEOF(1)THEN40ELSELINEINPUT#1,A$(N):E$=MID$(A$(N),10,1) 31 IFE$=CHR$(128)THENFORJ=1TO6:MID$(A$(N),J,1)=CHR$(ASC(MID$(A$(N),J,1))OR32):NEXT 32 IFE$=CHR$(01)THENMID$(A$(N),9,1)="*" 33 N=N+1:GOTO30 34 PRINT@30,Q$;FRE(0):PRINT@30,CHR$(13):PRINT@36,"RAM" 35 PRINT@0,Q$;DATE$,DAY$;" ";TIME$;:RETURN 40 CLOSE:X=40:GOSUB100:K$=P$:GOSUB200:'display menu 50 B$=INKEY$:GOSUB34:IFB$=""THEN50:'accept arrows, cr, print time. 60 ONINSTR(C$,B$)+1GOTO50,63,63,63,63,85 63 K$=Q$:GOSUB200:ONINSTR(C$,B$)GOTO65,70,75,80 65 X=X-10:IFX<40THENIFN-O<26THENX=30+10*((N)MOD24)ELSEX=270 67 GOTO84 70 X=X+10:IFN-O<26THENIF(X-40)/10=>N-OTHENX=40ELSEELSEIFX>270THENX=40 72 GOTO84 75 X=X-40:IFX<40THENX=X+240ELSEGOTO84 76 IFA$(O+((X-40)/10))=""THENX=X-40:GOTO76 77 GOTO84 80 X=X+40:IFX>270THENX=X-240ELSEIFA$(O+((X-40)/10))=""THENX=40+XMOD40 84 K$=P$:GOSUB200:GOTO50 85 GOSUB170:IFG$=""THENRETURNELSEIFMID$(G$,10,1)=CHR$(128)THENRUNDD$+LEFT$(G$,9):'get 90 OPENDD$+G1$FORINPUTAS1:OPENG1$+".DO"FORAPPENDAS2 95 IFEOF(1)THENMENUELSELINEINPUT#1,H$:IFLEN(H$)=255THENPRINT#2,H$;ELSEPRINT#2,H$ 98 GOTO95 100 X1=X:CLS:GOSUB35:K$=Q$:FORX=40TO270STEP10:GOSUB200:NEXT:K$=P$:X=X1:GOSUB200 110 PRINT@280,Q$;L$;:RETURN 150 PRINT@280,STRING$(39,32);:RETURN 170 G$=A$(O+((X-40)/10)):G1$=LEFT$(G$,6):RETURN 180 FORS=1TO3000:NEXTS:RETURN 200 PRINT@X,K$;LEFT$(A$(O+(X-40)/10),9);:RETURN 400 IFN<=O+24THENO=0:GOTO410ELSEO=O+24:IFO>48THENO=0:'more 410 X=40:GOSUB100:RETURN 430 I$=MID$(A$(O+((X-40)/10)),10):IFI$=""THEN435 433 GOSUB150:PRINT@280,P$;I$;:IFLEN(I$)<40THEN465ELSEGOSUB180:GOSUB100:'Show 435 RETURN 440 I$=D$:GOTO433 450 MENU 460 GOSUB170:OPENDD$+G1$FORINPUTAS1:GOSUB150:PRINT@280,P$;256*LOF(1)"bytes in "G1$;Q$; 465 GOSUB180:CLOSE:GOSUB110:RETURN:'size 600 K=0:FA$=LEFT$(DSKI$(0,20,16,0),80):FORJ=1TO80:IFMID$(FA$,J,1)=CHR$(255)THENK=K+1 610 NEXT:GOSUB150:PRINT@280,P$;(80-K)*9*256" Bytes in Use 0 =>";K*9*256"Free";Q$;:GOTO465 620 K=0:FA$=LEFT$(DSKI$(1,20,16,0),80):FORJ=1TO80:IFMID$(FA$,J,1)=CHR$(255)THENK=K+1 630 NEXT:GOSUB150:PRINT@280,P$;(80-K)*9*256" Bytes in Use 1 =>";K*9*256"Free";Q$;:GOTO465 785 GOSUB170:IFG$=""THENRETURNELSEIFMID$(G$,10,1)=CHR$(128)THENCLS:KILLDD$+LEFT$(G$,9)ELSEIFMID$(G$,10,1)<>CHR$(128)THENKILLDD$+G1$:RETURN:'GOTO10:'MENU':'KILL 800 GOTO10 999 END 1000 REM OUTPUT TO LPT OR CRT FROM EITHER DISK 0 OR 1 c.r. 27.06.86 1001 MAXFILES=2 1008 CLS:PRINT,,,,,,,:INPUT"FILENAME";XA$ 1009 IF XA$=""THEN10 1010 OPEN XA$ FOR INPUT AS 1 1017 INPUT"Device -> CRT: or LPT:";XB$ 1020 OPEN XB$ FOR OUTPUT AS 2 1030 PRINT #2,INPUT$(1,1); 1040 IF NOT EOF(1) THEN 1030 1050 CLOSE:GOTO1001 1051 REM Use "0:"+ for your file to be read; Use "LPT:" for to get printout, "CRT:" for video display 1060 GOTO1002 9999 END