10 CLEAR 100 20 MAXFILES=3 31 IFMAXRAM=60850THEN35 32 CLEAR 100,60850 34 RUNM"powr-d" 35 F4=1:F5=3:ONERROR GOTO 440 37 CLS:PRINT @(9),"FULL Ram Backup to Disk":PRINT@121," Load Backup Diskette and Press RETURN":DD$=INPUT$(1) 38 BANK=PEEK(-1618):BANK$=CHR$(BANK):IF BANK$="i" OR BANK=0 THEN BANK$="I" 39 PRINT@9,"FULL Ram Backup to Disk":PRINT@122," " 40 PRINT@82,"";:INPUT"Index File ";D1$ 41 IF LEN(D1$)>4 THEN 40 42 D1$="@"+D1$+BANK$+SPACE$(4-LEN(D1$)):D$=D1$:D1$=D1$+".DO" 43 F$=LEFT$(D1$,6)+RIGHT$(D1$,2):F=VARPTR(F$) 44 CALL MAXRAM+3, 1, PEEK(F+1)+256*PEEK(F+2) 45 GOSUB430:CL$=BANK$ 50 C1=1:C2$=" 0 ":C2=VAL(C2$):IFC2>0THENCO=1:EN$="CO":OPEND$FORAPPENDAS1:GOSUB130:GOTO390 75 DO$="N" 80 GOTO 100 90 CLS:PRINT@83,"KILL DIRECTORY IN RAM? - or N";:K$=INPUT$(1):RETURN 100 OPEND$FOROUTPUTAS1:PRINT#1,"BANK #"+CL$:PRINT#1,DATE$:PRINT#1,"* BASIC FILES *" 110 PRINT@175,"Working...":EN$(1)="BA":EN$(2)="DO":EN$(3)="CA":FORI=F4TOF5:EN$=EN$(I):IFI=2THENPRINT#1,"* DO FILES *" 120 GOSUB130:NEXTI:CLOSE1:GOTO320 130 FORM=-1408TO-1639STEP-11:F$="":IFPEEK(M)THENFORN=0TO7:F$=F$+CHR$(PEEK(M+3+N)):NEXTN 140 GOSUB170:IFMID$(F$,7,2)=EN$ANDCO=0THENGOSUB160:ELSEIFPE=160ANDC1>C2ANDCO=1THENC1=C1+1:GOSUB180ELSEIFPE=160THENC1=C1+1 150 NEXTM:RETURN 160 PRINT#1,MID$(F$,1,6)+"."+EN$:RETURN 170 PE=(PEEK(M)AND247):RETURN 180 IFMID$(F$,7,2)<>"CO"THENRETURNELSEGOSUB160:Z=PEEK(M+1)+256*PEEK(M+2):FORJ=0TO2:Z(J)=PEEK(Z+2*J)+256*PEEK(Z+2*J+1):NEXT 190 F$=LEFT$(F$,6):PRINT@165,"SAVING ":PRINT @172,F$+".CO":PRINT@270,Z(1):KILL":"+F$+".CO" 200 SAVEM":"+F$+"CO":RETURN 270 DATA"POWR-D",60850,62813,60850:DATA"FLOPPY",59400,62959,59400:DATA"PW",62710,62959,62833 280 DATA"PRINT",59900,62972,60503:DATA"RENUM",60151,62958,60151:DATA"ASMBLR",59898,62959,59899:DATA"DISK",60700,62959,60700 290 DATA"NOTFND",0,0,0 320 OPEND$FORINPUTAS1:FORI=1TO3:LINEINPUT#1,AF$:NEXTI 330 INPUT#1,AF$:IFAF$="* DO FILES *"THEN360 340 KILL":"+AF$ 350 PRINT@165,"SAVING ":PRINT@172,AF$:SAVEM":"+AF$ 360 IFNOTEOF(1)THEN330 380 CLOSE1:OPEND$FORAPPENDAS1:EN$="CO":CO=1:C1=1:GOSUB130:CLOSE1 390 KILL":"+D$+".DO":SAVEM":"+D$+".DO":POKE65450,0:GOSUB90:IFK$="n"ORK$="N"THEN400:ELSE GOTO 500 400 C1=1:GOSUB420:IFJ1>0THENCLS:PRINT@2,"Failed to Back-up .CO files listed:" 402 FORI=0TOJ1:PRINT@44+40*I,F$(I) 405 NEXT 410 BEEP:BEEP:BEEP::PRINT@200,"ALL DONE - POWR-DISK IS ACTIVE";:END 420 P1=VARPTR(C2$):HB=PEEK(P1+1)+PEEK(P1+2)*256:C3$=STR$(C1-1) 422 FORI=1TO3:POKEHB+I-1,ASC(MID$(C3$+SPACE$(3),I,1)):NEXTI:RETURN 430 P1=VARPTR(D$):HB=PEEK(P1+1)+PEEK(P1+2)*256:FORI=1TO6:POKEHB+I-1,ASC(MID$(D1$+SPACE$(6),I,1)):NEXTI:RETURN 440 IFERR=52ANDERL=340THENRESUME350ELSEIFERR=52ANDERL=350THENPRINT"Can't find file":RESUME360 450 IFERR=52ANDERL=190THENRESUME200ELSEIFERR=52ANDERL=220THENRESUME230 452 IFERR=66ANDERL=44THENPRINT@122,"";LINE INPUT"File Already Exists-Press Return";D1$:CALL MAXRAM+15,2:RESUME39 455 IFERR=59ANDERL=44THENPRINT@122,"";:LINEINPUT"Drive not Ready-Press Return";D1$:RESUME39 457 IFERR=63THENCLS:PRINT@122,"Disk Write Protected-Program Ending":CLOSE:CALL MAXRAM+15,2:END 460 PRINT"Line #";ERL,"Error #";ERR:END 500 CLEAR 256,MAXRAM:CLS 510 EN$(1)="BA":EN$(2)="DO":EN$(3)="CO":FORI=1TO3:EN$=EN$(I) 520 GOSUB530:NEXTI 522 B$="GOTO525"+CHR$(13):GOSUB 620:SAVEM"POWR-D",60850,62813,60850 525 PRINT"FINISHED":B$="MENU"+CHR$(13):GOSUB 620:CLOSE:NEW:END 530 FOR M=-1408 TO -1639 STEP -11:F$="":IF PEEK(M) THEN FOR N=0 TO 7:F$=F$+CHR$(PEEK(M+3+N)):NEXT N 535 GOSUB 170 540 IF MID$(F$,7,2)=EN$ AND CO=0 THEN GOSUB 700 ELSE IF PE=160 AND C1>C2 AND CO=1 THEN GOSUB 700 550 NEXTM:RETURN 620 FOR I=1 TO LEN(B$):W=(I-1)*2-85:POKE W,ASC(MID$(B$,I,1)):POKE W+1,0:NEXT:POKE -86,LEN(B$):RETURN 630 IF MID$(F$,7,2)<>"CO" THEN RETURN ELSE GOSUB 700:Z=PEEK(M+1)+256*PEEK(M+2) 635 FOR J=0 TO 2:Z(J)=PEEK(Z+2*J)+256*PEEK(Z+2*J+1):NEXT 640 RETURN 700 EN$=MID$(F$,7,2):PRINT "Erasing ";MID$(F$,1,6)+"."+EN$ 710 IF EN$ = "DO" THEN KILL MID$(F$,1,6)+"."+EN$:RETURN 720 POKE -86,0:B$="GOTO500"+CHR$(13) 730 GOSUB 620:KILL MID$(F$,1,6)+"."+EN$ 740 RETURN