10 REM DirWipe 20 MODE7 30 PROCvars 40 PROCass 50 PROCsave 60 END 70 80 DEFPROCvars 90 oswrch%=&FFEE:osasci%=&FFE3 100 osfile%=&FFDD:osgbpb%=&FFD1 110 osargs%=&FFDA:osrdch%=&FFE0 120 oscli%=&FFF7:osnewl%=&FFE7 130 work%=&86:argblk%=&88:indptr%=&8C 140 indptr2%=&8E:temp%=&C00:temp2%=&C80 150 version$="1.00" 160 ENDPROC 170 180 DEFPROCass 190 DIM code% &400 200 FOR pass%=4 TO 6 STEP 2 210 P%=&900:O%=code% 220 [OPT pass% 230 LDA#1:LDX#argblk%:LDY#0:JSRosargs% 240 LDX#(temp2%+5)MOD256:STXtemp2%+1 250 LDY#(temp2%+5)DIV256:STYtemp2%+2 260 LDX#temp2%MOD256:LDY#temp2%DIV256:LDA#6:JSRosgbpb% 270 LDAtemp2%+7:TAY:LDA#&D:INY:STAtemp2%+7,Y 280 LDX#nametext%MOD256:LDY#nametext%DIV256:JSRptext%:JSRosnewl% 290 LDX#ctext%MOD256:LDY#ctext%DIV256:JSRptext%:JSRosnewl%:JSRosnewl% 300 LDA#dirtext%MOD256:STAindptr% 310 LDA#dirtext%DIV256:STAindptr%+1 320 LDX#temp%MOD256:LDY#temp%DIV256:JSRcopytext% 330 LDAargblk%:STAindptr% 340 LDAargblk%+1:STAindptr%+1 350 LDX indptr2%:LDY indptr2%+1 360 JSRcopytext% 370 LDA#&D:STA(indptr2%),Y 380 LDX#temp%MOD256:LDY#temp%DIV256 390 JSRoscli% 400 \ **** OK UP TO HERE **** 410 420 LDA#space%MOD256:STAwork% 430 LDA#space%DIV256:STAwork%+1 440 JSRrec_del% 450 LDA#dirtext%MOD256:STAindptr% 460 LDA#dirtext%DIV256:STAindptr%+1 470 LDX#temp%MOD256:LDY#temp%DIV256:JSRcopytext% 480 LDX#(temp2%+8)MOD256:STXindptr% 490 LDA#(temp2%+8)DIV256:STAindptr%+1 500 LDXindptr2%:LDYindptr2%+1:JSRcopytext% 510 LDX#temp%MOD256:LDY#temp%DIV256:JSRoscli% 520 LDX#deltext%MOD256:LDY#deltext%DIV256:JSRptext% 530 LDXargblk%:LDYargblk%+1:JSRptext%:JSRosnewl% 540 LDXargblk%:STXtemp%:LDYargblk%+1 550 STYtemp%+1:LDX#temp%MOD256 560 LDY#temp%DIV256:LDA#3:STAtemp%+&E 570 LDA#4:JSRosfile%:LDA#6:JMPosfile% 580 590 .rec_del% 600 PHP:PHA:TXA:PHA:TYA:PHA 610 LDY#0:TYA:.blankloop% 620 STA (work%),Y:INY:CPY#25 630 BNE blankloop% 640 650 .readnext% LDY#1 660 LDAwork%:CLC:ADC#13:STA(work%),Y:STAindptr% 670 INY:LDAwork%+1:ADC#0:STA(work%),Y:STAindptr%+1 680 INY:INY:INY:LDA#1:STA(work%),Y:INY:INY:INY:INY:LDA#0:STA(work%),Y 690 LDX work%:LDY work%+1:LDA#8 700 JSRosgbpb%:BCC gettype%:JMP lastfile% 710 720 .gettype% 730 LDY#0:LDA(indptr%),Y:TAY:LDA#&D:INY:STA(indptr%),Y 740 LDAindptr%:STAtemp%:LDAindptr%+1:STAtemp%+1 750 INCtemp%:BNEgtover1%:INCtemp%+1:.gtover1% 760 LDA#5:LDX#temp%MOD256:LDY#temp%DIV256:JSRosfile% 770 CMP#2:BNE deleteit% 780 790 LDAtemp%:STAindptr% 800 LDAtemp%+1:STAindptr%+1 810 LDX#(temp%+4)MOD256:LDY#(temp%+4)DIV256 820 JSRcopytext% 830 LDY#0:LDA#&D:STA(indptr2%),Y 840 LDA#dirtext%MOD256:STAindptr% 850 LDA#dirtext%DIV256:STAindptr%+1 860 LDX#temp%MOD256:LDY#temp%DIV256 870 JSRcopytext% 880 LDX#temp%MOD256:LDY#temp%DIV256:JSRoscli% 890 900 LDA work%:PHA:LDA work%+1:PHA 910 LDA work%:CLC:ADC#25:STA work% 920 LDA work%+1:ADC#0:STA work%+1 930 JSR rec_del% 940 PLA:STAwork%+1:PLA:STAwork% 950 LDA#dirtext%MOD256:STAindptr% 960 LDA#dirtext%DIV256:STAindptr%+1 970 LDX#temp%MOD256:LDY#temp%DIV256 980 JSRcopytext% 990 LDY#0:LDA#ASC"^":STA(indptr2%),Y 1000 INY:LDA#&D:STA(indptr2%),Y 1010 LDX#temp%MOD256:LDY#temp%DIV256:JSRoscli% 1020 1030 .deleteit% 1040 LDAwork%:CLC:ADC#14:STAtemp% 1050 LDAwork%+1:ADC#0:STAtemp%+1 1060 LDX#deltext%MOD256:LDY#deltext%DIV256:JSRptext% 1070 LDXtemp%:LDYtemp%+1:JSRptext%:JSRosnewl% 1080 LDA#3:STAtemp%+&E:LDX#temp%MOD256 1090 LDY#temp%DIV256:LDA#4:JSRosfile% 1100 1110 LDA#6:JSRosfile% \DELETE file 1120 1130 JMP readnext% 1140 1150 .lastfile% 1160 PLA:TAY:PLA:TAX:PLA:PLP 1170 RTS 1180 1190 .copytext% 1200 STX indptr2%:STY indptr2%+1 1210 LDY#0 1220 .copyloop% 1230 LDA (indptr%),Y:CMP#&D:BEQ clend% 1240 STA (indptr2%),Y 1250 INC indptr2%:BNE cl1% INCindptr2%+1 1260 .cl1% 1270 INC indptr%:BNE cl2%:INC indptr%+1 1280 .cl2% 1290 JMP copyloop% 1300 .clend% RTS 1310 1320 .ptext% STX indptr%:STY indptr%+1 1330 LDY#0:.ptloop% LDA(indptr%),Y 1340 CMP#&D:BEQ ptend%:JSRoswrch% 1350 INY:JMP ptloop% 1360 .ptend% LDY#0:RTS 1370 1380 .dirtext% EQUS"DIR ":EQUB&D 1390 .deltext% EQUS"Deleting ":EQUB&D 1400 .nametext% EQUS"DirWipe "+version$:EQUB&D 1410 .ctext% EQUS"(C) Copyright HeadFirst PD/G Boden 1993":EQUB&D 1420 1430 .space% 1440 ] 1450 NEXT 1460 ENDPROC 1470 1480 DEFPROCsave 1490 PRINT"Start address: &";~code% 1500 PRINT"End address: &";~O% 1510 OSCLI"Save DirWipe "+STR$~code%+" "+STR$~O%+" 900 900" 1520 ENDPROC