PDSK06.200 Converted, transcribed and tweaked as necessary by Tony Anderson, 76703,4062. September 1988 (C) 1985 Acroatix Inc. Released for exclusive distribution on CompuServe's Model 100 Forum. All other rights reserved. This is the Power-Disk Menu program, whose only practical purpose is to be able to load and save .CO files/programs to and from the disk. Everything else can be done with direct commands, either in BASIC or TEXT. It uses a lot of RAM space, for what it does. But if you want/need to save .CO files to disk, or load them back into RAM, it's the only way provided by Acroatix. 1 'POWR-DISK MENU utility (C) 1986 Acroatix Inc. 2 CLEAR1000:GOTO25 3 DEFSTRA-G:DEFINTI-N:DIME(40),IX(40),J(20),IL(40),XA(40),EX(40),D(20),BX(9),G(20):RESTORE:FORI=1TO9:READBX(I):NEXT 4 DATABA,CO,DO,TDD,RAM,Load,Save,"0:","RAM:" 5 AQ="qfwfq.do":CC=":":ES=CHR$(27):GC="":FORI=28TO31:GC=GC+CHR$(I):NEXT:X=PEEK(64140)+256*PEEK(64141):GOSUB14:BP=A+"."+B:CQ=CHR$(34):CR=CHR$(13):R=MAXRAM:XK=64798:RETURN 6 LFILESTOAQ:OPENAQFORINPUTAS1:NF=0 7 INPUT#1,A:IFLEN(A)=0THEN7ELSEIFLEN(A)<>17THEN8ELSEE(NF)=LEFT$(A,6):EX(NF)=MID$(A,8,2):IL(NF)=VAL(RIGHT$(A,7)):IX(NF)=ASC(MID$(A,8))-65:NF=NF+1:GOTO7 8 IA=VAL(LEFT$(A,6)):CLOSE1:KILLAQ:RETURN 9 CALL11362:X=62034:NF=0 10 I=PEEK(X):IFI=255THEN15ELSEIFI<128OR(IAND24)<>0THEN13 11 IF(IAND64)=64THENIX(NF)=3ELSEIF(IAND32)=32THENIX(NF)=2ELSEIX(NF)=1 12 GOSUB14:E(NF)=A:EX(NF)=B:XA(NF)=PEEK(X+1)+256*PEEK(X+2):NF=NF+1 13 X=X+11:GOTO10 14 A="":FORY=X+3TOX+10:A=A+CHR$(PEEK(Y)):NEXT:B=RIGHT$(A,2):A=LEFT$(A,6):RETURN 15 XA(NF)=PEEK(63077)+256*PEEK(63078):IA=FRE(0):IFNF=0THENRETURNELSEY=0:GOSUB18:K=J: 16 GOSUB18:IFIX(J)>1ANDIX(K)=1THENIL(K)=PEEK(62101)+PEEK(62102)*256-XA(K)ELSEIL(K)=XA(J)-XA(K) 17 K=J:IFK=NFTHENRETURNELSE16 18 Z=MAXRAM:FORI=0TONF:IFXA(I)>YANDXA(I)LOTHEND(ND)=E(I):J(ND)=I:ND=ND+1 30 NEXT 31 PRINT@600,ES;"p ";BX(6-IC);" ";BX(5+IC);" Sel ";BX((JXMOD3)+1);" Kill Info Menu";:KEYON:IS=0 32 IFND>0THEN34ELSEPRINT@605,SPACE$(11);:PRINT@619,SPACE$(15);:KEY(2)OFF:KEY(3)OFF:KEY(5)OFF:KEY(6)OFF:KEY(7)OFF 33 IFND>0THEN38ELSE33 34 FORI=0TO20:G(I)="q":NEXT 35 FORI=0TOND-1:EH=G(I):GOSUB44:NEXT 36 I=IS:EH="p":GOSUB44:PRINT@34,SPACE$(6);:PRINT@34,IL(J(IS)); 37 IFKZ=-1THENKZ=0:RETURN 38 PRINT@92,DATE$;" ";TIME$:A=INKEY$:IFA<>""THENI=INSTR(GC,A):IFI>0THENIO=IS:ONIGOSUB40,41,43,42:IFIO<>ISTHENI=IO:EH=G(I):GOSUB44:KS=0:GOTO36 39 GOTO38 40 IS=IS+1:IFIS>=NDTHENIS=0:RETURNELSERETURN 41 IS=IS-1:IFIS<0THENIS=ND-1:RETURNELSERETURN 42 IS=IS+5:IFIS>=NDTHENIS=IS-5:RETURNELSERETURN 43 IS=IS-5:IFIS<0THENIS=IS+5:RETURNELSERETURN 44 PRINT@160+8*I,ES;EH;SPACE$(8);:PRINT@161+8*I,D(I);ES;"q":GOTO55 45 IC=ICMOD2+1:KZ=-1:GOTO26 46 GOSUB54:IFIC=1ANDJX=1THEN61ELSEGOSUB57:KZ=-1:ONERRORGOTO49 47 GOSUB60:IFI>NDTHENKEY(2)ON:GOSUB56:GOTO37ELSEIFIC=1THENLOADMCC+A,F:KZ=0ELSESAVEMCC+A 48 GOTO47 49 IFERR=67THENGOSUB56:PRINT"Overwrite ";BX(10-IC);A;:GOSUB52:IFJ=0THENRESUME48ELSEKILLBX(10-IC)+A:RESUME 50 BEEP:GOSUB56:IFERR=7THENA="OM"ELSEIFERR=18THENA="IO"ELSEIFERR>58THENA=MID$("NRDNCMDAWPDFNDHTAE",ERR*2-117,2)ELSEA="#"+STR$(ERR) 51 PRINTA;" Error - Press any Key";:POKEXK,0:B=INPUT$(1):RUN 52 J=KK:IFJ>-1THENRETURNELSEPRINT" (Y/N)?"; 53 POKEXK,0:B=INPUT$(1):IFINSTR("yYnN",B)=0THEN53ELSEJ=INSTR("yY",B):RETURN 54 KS=0:KK=-1 55 IFKP=0THENRETURNELSEKP=0 56 PRINT@560,SPACE$(40);:PRINT@560,"";:RETURN 57 J=0:FORI=0TOND-1:IFG(I)="p"THENJ=-1 58 NEXT:I=0:IFJ=0THENRETURNELSEGOSUB56:PRINT"DO ALL (y/n/q)"; 59 B=INPUT$(1):J=INSTR("QNYqny",B):IFJ=0THEN58ELSEKK=J+3*(J>3)-2:GOTO56 60 IFI>NDTHENRETURNELSEIFG(I)<>"p"ANDI<>ISTHENI=I+1:GOTO60ELSEA=D(I)+"."+EX(J(I)):I=I+1:RETURN 61 GOSUB76:IFA=BPTHENBEEP:RETURNELSEONERRORGOTO62:C=A:PRINT@0,"";:NR=63:GOSUB23:LOADMCC+C,F 62 IFERR<>67THEN50ELSEGOSUB56:PRINT"Overwrite RAM:";C;:GOSUB52:IFJ=0THENRESUME56ELSE:A="Loadm":GOSUB20:A=CQ+CC+C+CQ+",F"+CR:GOSUB21:NR=63:GOSUB24:GOTO74 63 GOSUB3:IC=1:JX=1:GOTO26 64 GOSUB56:KS=KS+1:ONKSGOTO65,66,67 65 G(IS)="p":RETURN 66 KZ=-1:GOTO34 67 KS=1:FORI=0TO20:G(I)="p":NEXT:KZ=-1:GOTO35 68 JX=JXMOD3+1:KS=0 69 KZ=-1:GOTO27 70 GOSUB54:GOSUB57:C=BX(7+IC):IFJX=1ANDIC=2THEN72 71 GOSUB60:IFI>NDTHENKZ=-1:GOTO26ELSEGOSUB56:PRINT"Kill ";A;:GOSUB52:IFJ=0THEN71ELSEKILLC+A:GOTO71 72 GOSUB76:IFA=BPTHENBEEP:RETURNELSEPRINT"Kill ";C;A;:GOSUB52:IFJ=0THENGOTO56 73 NR=75:C=A:GOSUB23 74 PRINT@0,"":KILLC 75 GOSUB3:IC=2:JX=1:GOTO26 76 GOSUB56:A=E(J(IS))+"."+EX(J(IS)):RETURN 77 KS=0:GOSUB56:KP=-1:ONICGOSUB83,84:ONJXGOTO78,81,79 78 IFI=0THENRETURNELSEI=3:GOSUB82:A=STR$(X)+RIGHT$(A,LEN(A)-4) 79 FORI=1TO40:IFI<=LEN(A)THENIFASC(MID$(A,I,1))<32THENPRINTCHR$(255);ELSEPRINTMID$(A,I,1); 80 NEXT:RETURN 81 I=1:GOSUB82:PRINT"TOP:";X;:Y=X:GOSUB82:PRINT" END:";X+Y-1;:GOSUB82:PRINT" EXE:";X;:RETURN 82 X=ASC(MID$(A,I))+256*ASC(MID$(A,I+1)):I=I+2:RETURN 83 GOSUB85:A=E(J(IS))+EX(J(IS)):X=VARPTR(A):CALLR+3,3,PEEK(X+1)+256*PEEK(X+2):A=SPACE$(I):X=VARPTR(A):CALLR+6,PEEK(X),PEEK(X+1)+256*PEEK(X+2):CALLR+15,2:RETURN 84 X=XA(J(IS)):GOSUB85:IFI=0THENPRINT"Empty";:RETURNELSEA="":FORJ=1TOI:A=A+CHR$(PEEK(X-1+J)):NEXT:RETURN 85 IFIL(J(IS))>40THENI=40ELSEI=IL(J(IS)):IFIC=2THENIFJX=1THENI=I-2ELSEIFJX=3THENI=I-1 86 RETURN 87 GOSUB54:LO=(LO+20)MOD40:KZ=-1:GOTO27 88 KEY1,"Files"+CR:KEY2,"Load "+CQ:KEY3,"Save "+CQ:KEY4,"Run"+CR:LFILESMENU