10 ; SAVE#D:DISK.M65›20 ;›30 ;›40 *= $9000›50 .IF PROTECT=1›60 .SET 6,$C000›70 .ENDIF ›80 ;›90 TRKBUF = $2400›0100 PREVSEC = $2E00›0110 BUFFER = $2F00›0120 BUFLEN = $6000›0130 ;›0140 ;›0150 MAXSEC .WORD $02D0›0160 CURMAX .WORD $02D0›0170 SOURCE .BYTE 1›0180 SRCDEN .BYTE 1›0190 DEST .BYTE 1›0200 DSTDEN .BYTE 1›0210 VERIFY .BYTE 80›0220 FTEMP .BYTE ""›0230 FNAME .BYTE ""›0240 BUFDUP .BYTE ""›0250 XERAM .BYTE 1›0260 PAGESEQ .BYTE $E0,$E4,$E8,$EC›0270 .BYTE ""›0280 EXFLEN .BYTE 1›0290 ;›0300 DLIST .BYTE 112,112,$40,66›0310 CHNG .WORD TITLE1›0320 .BYTE $20,66›0330 .WORD STATUSL1›0340 .BYTE $10,66›0350 .WORD STATUSL2›0360 .BYTE 0,2,0,2,0,66›0370 OLDWIN .WORD 0›0380 .BYTE 2,2,2,2,2,2,2,2,2›0390 .BYTE 2,2,2,2,2,66›0400 MWIND .WORD TRKBUF›0410 .BYTE 2,2,65›0420 .WORD DLIST›0430 ;›0440 STATUSL1›0450 .SBYTE "  Óôáôõóº                               "›0460 TITLE1›0470 .SBYTE "  Äéóë Ãïííõîéãáôïò ³¡  Âù Òïâåòô Ðõææ  "›0480 TITLE2›0490 .SBYTE "   Öåòóéïî ³®²  ±²¯¸·  Ðõâìéã Äïíáéî¡   "›0500 STATUSL2›0510 .SBYTE "  Ãõòòåîô Óåãôïòº°°°°     Åòòïòóº°°°°   "›0520 STATUSL3›0530 .SBYTE "  Óïõòãå ÄÒÖº±        Äåóô® ÄÒÖº±       "›0540 STATUSL4›0550 .SBYTE "  Íáø Óåãôïòº°·²°  Ðáó󺱠 ÖåòéæùºÏÆÆ   "›0560 ;›0570 CHKDNS›0580 STX $0301 ;X=DRIVE #.›0590 CHKZ LDA #'S ;RETURNS WITH›0600 STA $0302 ;RESULT IN A:›0610 LDA #$40 ;1=SINGLE,›0620 STA $0303 ;2=DOUBLE,›0630 STA $0306 ;3=ENHANCED›0640 LDA #$02EA&255›0650 STA $0304›0660 LDA #$02EA/256›0670 STA $0305›0680 LDA #0›0690 STA $0309›0700 LDA #4›0710 STA $0308›0720 JSR SIOV›0730 BPL CHK1›0740 CPY #139›0750 BEQ CHKZ›0760 CHK2 LDA #1›0770 LDX $0301›0780 RTS ›0790 CHK1 LDA $02EA›0800 AND #$20›0810 BNE CHK55›0820 LDA $02EA›0830 AND #$80›0840 BNE CHK3›0850 LDA #1›0860 .BYTE $2C›0870 CHK55 LDA #2›0880 .BYTE $2C›0890 CHK3 LDA #3›0900 LDX $0301›0910 JMP SETDNS›0920 ;›0930 SETDNS›0940 STX $0301›0950 STA DNSTMP›0960 LDA #'N›0970 STA $0302›0980 LDA #$40›0990 STA $0303›1000 LDA #12›1010 STA $0308›1020 LDA #DNSBUF&255›1030 STA $0304›1040 LDA #DNSBUF/256›1050 STA $0305›1060 LDA #0›1070 STA $0309›1080 JSR SIOV›1090 BMI CHK5›1100 LDA DNSBUF+3›1110 CMP #18›1120 BEQ CHK0›1130 CMP #26›1140 BEQ CHK0›1150 LDY #1›1160 .BYTE $2C›1170 CHK0 LDY #0›1180 LDA DNSTMP›1190 CMP #1›1200 BNE CHK6›1210 LDA #0›1220 STA DNSBUF+5›1230 STA DNSBUF+6›1240 CPY #1›1250 BEQ CHK00›1260 LDA #18›1270 STA DNSBUF+3›1280 CHK00 LDA #128›1290 STA DNSBUF+7›1300 JMP CHK7›1310 CHK6 LDX #4›1320 STX DNSBUF+5›1330 CMP #2›1340 BNE CHK8›1350 LDA #18›1360 STA DNSBUF+3›1370 LDA #1›1380 STA DNSBUF+6›1390 LDA #0›1400 STA DNSBUF+7›1410 JMP CHK7›1420 CHK8 CPY #1›1430 BEQ CHK88›1440 LDA #26›1450 STA DNSBUF+3›1460 CHK88 LDA #128›1470 STA DNSBUF+7›1480 LDA #0›1490 STA DNSBUF+6›1500 CHK7 LDA #'O›1510 STA $0302›1520 LDA #$80›1530 STA $0303›1540 LDA #0›1550 STA $030A›1560 STA $030B›1570 JSR SIOV›1580 CHK5 LDA DNSTMP›1590 LDX $0301›1600 RTS ›1610 ;›1620 NEXT1 LDX #1›1630 JSR CHKDNS›1640 JSR SRCDNS›1650 JSR DESTDNS›1660 JMP MAIN›1670 ;›1680 SRCDNS STA DNSTMP›1690 TXA ›1700 PHA ›1710 ORA #$90›1720 STA STATUSL3+13›1730 LDY DNSTMP›1740 DEY ›1750 TYA ›1760 ASL A›1770 ASL A›1780 TAY ›1790 LDX #0›1800 SCD1 LDA PRDTAB,Y›1810 STA STATUSL3+15,X›1820 INY ›1830 INX ›1840 CPX #3›1850 BCC SCD1›1860 PLA ›1870 TAX ›1880 LDA DNSTMP›1890 RTS ›1900 ;›1910 PRDTAB .SBYTE "ÓÎÇ ÄÂÌ ÅÎÈ"›1920 ;›1930 DESTDNS STA DNSTMP›1940 TXA ›1950 PHA ›1960 ORA #$90›1970 STA STATUSL3+32›1980 LDY DNSTMP›1990 DEY ›2000 TYA ›2010 ASL A›2020 ASL A›2030 TAY ›2040 LDX #0›2050 SCD2 LDA PRDTAB,Y›2060 STA STATUSL3+34,X›2070 INY ›2080 INX ›2090 CPX #3›2100 BCC SCD2›2110 PLA ›2120 TAX ›2130 LDA DNSTMP›2140 RTS ›2150 ;›2160 DSPPASS LDA PASS›2170 AND #$1F›2180 CLC ›2190 ADC #$90›2200 STA STATUSL4+24›2210 RTS ›2220 ;›2230 FMTDNS›2240 CMP #1›2250 BEQ FMT1›2260 CMP #2›2270 BEQ FMT2›2280 LDA #$22›2290 LDX #$80›2300 LDY #0›2310 JMP FMT3›2320 FMT2 LDA #$21›2330 LDX #0›2340 LDY #1›2350 JMP FMT3›2360 FMT1 LDA #$21›2370 LDX #$80›2380 LDY #0›2390 FMT3 STA $0302›2400 STX $0308›2410 STY $0309›2420 LDX #$90›2430 STX $0306›2440 LDX #$40›2450 STX $0303›2460 LDA #PREVSEC&255›2470 STA $0304›2480 LDA #PREVSEC/256›2490 STA $0305›2500 JMP SIOV›2510 ;›2520 DECPRT›2530 ;A=LOW BYTE, X=HI, Y=INDEX›2540 STA DNSBUF›2550 STX DNSBUF+1›2560 INY ›2570 STY DNSBUF+2›2580 DEY ›2590 LDA #$90 ;"0"›2600 LDX #0›2610 DEC1 STA STATUSL2,Y›2620 INY ›2630 INX ›2640 CPX #4›2650 BCC DEC1›2660 LDX DNSBUF+2›2670 DEX ›2680 LDA #STATUSL2&255›2690 CLC ›2700 ADC DNSBUF+2›2710 STA DSPTMP›2720 LDA #STATUSL2/256›2730 ADC #0›2740 STA DSPTMP+1›2750 DEC01 LDA DNSBUF›2760 SEC ›2770 SBC #$E8›2780 STA DNSBUF+3›2790 LDA DNSBUF+1›2800 SBC #$03›2810 ORA DNSBUF+3›2820 BEQ DEC03›2830 BCC DEC02›2840 DEC03 LDA DNSBUF›2850 SEC ›2860 SBC #$E8›2870 STA DNSBUF›2880 LDA DNSBUF+1›2890 SBC #3›2900 STA DNSBUF+1›2910 INC STATUSL2,X›2920 JMP DEC01›2930 DEC02 LDX DNSBUF+1›2940 LDA DNSBUF›2950 LDY #0›2960 DEC2 CMP DECTAB,Y›2970 BCC DEC5›2980 DEC3 SBC DECTAB,Y›2990 DEC4 PHA ›3000 LDA (DSPTMP),Y›3010 CLC ›3020 ADC #1›3030 STA (DSPTMP),Y›3040 PLA ›3050 CLC ›3060 BCC DEC2›3070 DEC5 CPX #$FF›3080 BEQ DEC6›3090 SEC ›3100 DEX ›3110 BPL DEC3›3120 DEC6 INY ›3130 CPY #3›3140 BNE DEC2›3150 RTS ›3160 DECTAB .BYTE 100,10,1›3170 ;›3180 OUTCHR TAY ›3190 LDA $E407›3200 PHA ›3210 LDA $E406›3220 PHA ›3230 TYA ›3240 RTS ›3250 ;›3260 KGETCH›3270 JSR KGET2 ;3.0 BUG›3280 CPY #128›3290 BCS KGETCH›3300 RTS ›3310 KGET2 LDA $E425›3320 PHA ›3330 LDA $E424›3340 PHA ›3350 RTS ›3360 ;›3370 PRINT›3380 STX DSPTMP›3390 STY DSPTMP+1›3400 PRT1 LDY #0›3410 LDA (DSPTMP),Y›3420 BEQ PRINT-1›3430 PRT2 JSR OUTCHR›3440 CPY #128›3450 BEQ PRT2›3460 INC DSPTMP›3470 BNE PRT1›3480 INC DSPTMP+1›3490 BNE PRT1›3500 ;›3510 MAINMENU›3520 .BYTE 125,155›3530 .BYTE " ",155›3540 .BYTE " | - Disk Comm Main Menu - |",155›3550 .BYTE " ",155›3560 .BYTE " | ™ÛÁÝ Turn Disk into file(s) |",155›3570 .BYTE " | ™ÛÂÝ Turn File(s) into disk |",155›3580 .BYTE " | ™ÛÃÝ Change Source drive |",155›3590 .BYTE " | ™ÛÄÝ Change Dest. drive |",155›3600 .BYTE " | ™ÛÅÝ Change Verify option |",155›3610 .BYTE " | ™ÛÆÝ DOS functions |",155›3620 .BYTE " | ™ÛÇÝ Cause ColdStart (Reboot) |",155›3630 .BYTE " | ™ÛÈÝ Change maximum sector |",155›3640 .BYTE " | ™Û±­¹Ý Disk Directories |",155›3650 .BYTE " ",155›3660 .BYTE 0›3670 ;›3680 BELL LDA #0›3690 STA $D208›3700 LDA #$25›3710 STA $D200›3720 LDY #$B0›3730 BEL1 LDX #$FF›3740 BEL2 STX $D40A›3750 DEX ›3760 BNE BEL2›3770 DEY ›3780 STY $D201›3790 CPY #$A0›3800 BNE BEL1›3810 RTS ›3820 ;›3830 UPPER AND #$7F ;CONVERT›3840 CMP #$60 ;TO UPPER›3850 BCC UPPER1 ;CASE...›3860 SBC #$20›3870 UPPER1 RTS ›3880 ;›3890 NEXT2›3900 LDA #1›3910 STA 752›3920 LDX #MAINMENU&255›3930 LDY #MAINMENU/256›3940 JSR PRINT›3950 LDA #0›3960 STA 752›3970 MAINGET JSR KGETCH›3980 JSR UPPER›3990 LDX #25›4000 MAING0 CMP SELTAB,X›4010 BEQ MAING3›4020 DEX ›4030 BPL MAING0›4040 JMP MAINGET›4050 MAING3 TAY ›4060 CPX #8›4070 BCC MAING4›4080 LDX #8›4090 MAING4 TXA ›4100 ASL A›4110 TAX ›4120 LDA JMPTAB+1,X›4130 PHA ›4140 LDA JMPTAB,X›4150 PHA ›4160 TYA ›4170 RTS ›4180 SELTAB .BYTE "ABCDEFGH12345678!",34,"#$%&'@9("›4190 JMPTAB .WORD SELA-1›4200 .WORD SELB-1›4210 .WORD SELC-1›4220 .WORD SELD-1›4230 .WORD SELE-1›4240 .WORD SELFA-1›4250 .WORD SELG-1›4260 .WORD SELH-1›4270 .WORD SELDIRA-1›4280 ;›4290 SELC INC SOURCE›4300 LDA SOURCE›4310 CMP #10›4320 BCC SELC1›4330 LDA #1›4340 STA SOURCE›4350 SELC1 TAX ›4360 LDA SRCDEN›4370 JSR SRCDNS›4380 JSR BELL›4390 JMP MAINGET›4400 ;›4410 SELD INC DEST›4420 LDA DEST›4430 CMP #10›4440 BCC SELD1›4450 LDA #1›4460 STA DEST›4470 SELD1 TAX ›4480 LDA DSTDEN›4490 BNE SELD2›4500 LDA #1›4510 STA DSTDEN›4520 SELD2›4530 JSR DESTDNS›4540 JSR BELL›4550 JMP MAINGET›4560 ;›4570 SELE LDA VERIFY›4580 EOR #7›4590 STA VERIFY›4600 DOSVER1 STA DOSVER1›4610 AND #7›4620 BEQ SELE1›4630 LDX #0›4640 .BYTE $2C›4650 SELE1 LDX #3›4660 LDY #0›4670 SELE2 LDA YESNO,X›4680 STA STATUSL4+34,Y›4690 INX ›4700 INY ›4710 CPY #3›4720 BCC SELE2›4730 JSR BELL›4740 JMP MAINGET›4750 YESNO .SBYTE "ÏΡÏÆÆ"›4760 ;›4770 SELDIRA JSR SELDIR›4780 JMP MAIN›4790 ;›4800 SELFA JSR SELF›4810 JMP MAIN›4820 ;›4830 SELG JMP $E477›4840 ;›4850 VBLANK›4860 LDA 19›4870 AND #1›4880 BNE VBL1›4890 LDX #TITLE1&255›4900 LDY #TITLE1/256›4910 BNE VBL2›4920 VBL1 LDX #TITLE2&255›4930 LDY #TITLE2/256›4940 VBL2 STX CHNG›4950 STY CHNG+1›4960 JMP $E462›4970 ;›4980 SETVBL LDA #7›4990 LDX #VBLANK/256›5000 LDY #VBLANK&255›5010 JSR $E45C›5020 RTS ›5030 ;›5040 READ1DEN›5050 LDA SECTOR+1›5060 PHA ›5070 LDA SECTOR›5080 PHA ›5090 LDY #1›5100 STY SECTOR›5110 DEY ›5120 STY SECTOR+1›5130 JSR CLRWIND›5140 JSR CLRPREV›5150 LDA #[TRKBUF+128]&255›5160 STA MWIND›5170 LDA #'R›5180 STA COMMAND›5190 JSR DISKIO›5200 STY YTEMP›5210 LDX $0301›5220 LDA DRVTAB-1,X›5230 CMP #ATASIO›5240 BNE RD1Z›5250 LDA #4 ;FIX RECONFIG›5260 STA $030A ;BUG IN XF551›5270 LDA #0›5280 STA $0303›5290 JSR SIOV›5300 RD1Z PLA ›5310 STA SECTOR›5320 PLA ›5330 STA SECTOR+1›5340 LDY YTEMP›5350 CPY #1›5360 BEQ RD1B›5370 CPY #144›5380 BNE RD1A›5390 RD1B LDX DRIVE›5400 JMP CHKDNS›5410 RD1A LDX DRIVE›5420 LDA #1›5430 RTS ›5440 ;›5450 CLRWIND LDA #TRKBUF&255›5460 STA $0304›5470 STA MWIND›5480 LDA #TRKBUF/256›5490 STA $0305›5500 STA MWIND+1›5510 LDA #0›5520 TAY ›5530 CLRM1 STA TRKBUF,Y›5540 INY ›5550 BNE CLRM1›5560 RTS ›5570 ;›5580 CLRPREV LDY #0›5590 TYA ›5600 CLRP1 STA PREVSEC,Y›5610 DEY ›5620 BNE CLRP1›5630 RTS ›5640 ;›5650 CLRWIN2 LDA 88›5660 CLC ›5670 ADC #$58›5680 STA MWIND›5690 LDA 89›5700 ADC #2›5710 STA MWIND+1›5720 RTS ›5730 ;›5740 INSRTSRC›5750 .BYTE 125,155›5760 INSRC .BYTE "Insert ÓÏÕÒÃÅ disk, press ÒÅÔÕÒÎ",0›5770 INDST .BYTE 155,"Insert ÄÅÓÔÉÎÁÔÉÏÎ disk, press ÒÅÔÕÒÎ",0›5780 ;›5790 WSTART JSR KGETCH›5800 CMP #$1B›5810 BEQ MAIN›5820 CMP #$9B›5830 BNE WSTART›5840 JSR OUTCHR›5850 RTS ›5860 ;›5870 MAIN LDX #$FF›5880 TXS ›5890 STX $0350 ;CLOSE IOCB #1›5900 JSR CLRWIND›5910 JSR CLRPREV›5920 LDA #0›5930 STA COMMAFLG›5940 STA $035A›5950 JMP NEXT2›5960 ;›5970 RDSRT .SBYTE " Òåáäéîç Óïõòãå Äéóë          "›5980 SELA LDX #INSRTSRC&255›5990 LDY #INSRTSRC/256›6000 JSR PRINT›6010 JSR WSTART›6020 LDY #1›6030 STY PASS›6040 STY PASTYP›6050 STY SECTOR›6060 DEY ›6070 STY ERRORS›6080 STY ERRORS+1›6090 STY DSTDEN›6100 STY SECTOR+1›6110 STY XEUSED›6120 STY SAVEPAS›6130 TYA ›6140 TAX ›6150 LDY #33›6160 JSR DECPRT›6170 JSR DSPPASS›6180 LDA SOURCE›6190 STA DRIVE›6200 LDA MAXSEC›6210 STA CURMAX›6220 LDA MAXSEC+1›6230 STA CURMAX+1›6240 JSR INITRAM›6250 LDY #0›6260 TYA ›6270 CRR1 STA TRKBUF,Y ;CLR BUFF›6280 STA TRKBUF+$0100,Y ;FOR DD BOOT›6290 STA TRKBUF+$0200,Y ;SECTORS...›6300 INY ›6310 BNE CRR1›6320 JSR READ1DEN›6330 STA SRCDEN›6340 STA DRIVDEN›6350 JSR SRCDNS›6360 CMP #3›6370 BCC SEL235›6380 LDA #$10 ;ENHANCED›6390 STA CURMAX ;DENSITY MAX›6400 LDA #$04 ;SECTOR #›6410 STA CURMAX+1›6420 SEL235 LDA #[BUFFER+2]&255›6430 STA BLOC›6440 LDA #[BUFFER+2]/256›6450 STA BLOC+1›6460 LDA #0›6470 STA BLEN›6480 STA BLEN+1›6490 STA TLEN+1›6500 LDA #$80›6510 STA TLEN›6520 LDX DRIVDEN›6530 CPX #2›6540 BNE SELA232›6550 LDY #0›6560 STY TLEN›6570 INY ›6580 STY TLEN+1›6590 SELA232 LDY #27›6600 SELA23 LDA RDSRT,Y›6610 STA STATUSL1+10,Y›6620 DEY ›6630 BPL SELA23›6640 JSR DSPPASS›6650 SELA2 JSR CLRWIND›6660 LDA SOURCE›6670 STA DRIVE›6680 LDA SRCDEN›6690 STA DRIVDEN›6700 LDA #0›6710 STA NUMSECS›6720 LDA SECTOR›6730 STA TSTART›6740 LDA SECTOR+1›6750 STA TSTART+1›6760 SELA3 LDA #'R›6770 STA COMMAND›6780 LDA SECTOR›6790 LDX SECTOR+1›6800 LDY #17›6810 JSR DECPRT›6820 JSR DISKIO›6830 LDA $0304›6840 STA MWIND›6850 LDA $0305›6860 STA MWIND+1›6870 CPY #1›6880 BEQ SELA4›6890 CPY #144›6900 BEQ SELA5›6910 JSR READERR›6920 JMP MAIN›6930 SELA5 INC ERRORS›6940 BNE SELA55›6950 INC ERRORS+1›6960 SELA55 LDA ERRORS›6970 LDX ERRORS+1›6980 LDY #33›6990 JSR DECPRT›7000 SELA4 CLC ›7010 LDA $0304›7020 ADC TLEN›7030 STA $0304›7040 LDA $0305›7050 ADC TLEN+1›7060 STA $0305›7070 LDA CURMAX›7080 CMP SECTOR›7090 BNE SELA47›7100 LDA CURMAX+1›7110 CMP SECTOR+1›7120 BEQ SELA6›7130 SELA47 INC SECTOR›7140 BNE SELA45›7150 INC SECTOR+1›7160 SELA45 INC NUMSECS›7170 LDA TLEN+1›7180 BEQ SELA46›7190 INC NUMSECS›7200 SELA46 LDA NUMSECS›7210 CMP #18›7220 BCS SELA6›7230 JMP SELA3›7240 SELA6 JMP DISK1›7250 ;›7260 ;›7270 DISKIO›7280 LDA SECTOR+1›7290 STA $030B›7300 BNE RDS1›7310 LDA SECTOR›7320 STA $030A›7330 CMP #4›7340 BCS RDS1›7350 LDA #$80›7360 STA $0308›7370 LDA #0›7380 STA $0309›7390 BEQ RDS2›7400 RDS1 LDA SECTOR›7410 STA $030A›7420 LDA DRIVDEN›7430 CMP #2›7440 BEQ RDS3›7450 LDA #$80›7460 STA $0308›7470 LDA #0›7480 STA $0309›7490 BEQ RDS2›7500 RDS3 LDY #0›7510 STY $0308›7520 INY ›7530 STY $0309›7540 RDS2 LDA #$31›7550 STA $0300›7560 LDA DRIVE›7570 STA $0301›7580 LDA COMMAND›7590 STA $0302›7600 CMP #'R›7610 BEQ RDS4›7620 LDA #$80›7630 .BYTE $2C›7640 RDS4 LDA #$40›7650 STA $0303›7660 LDA #10›7670 STA $0306›7680 JSR SIOV›7690 RTS ›7700 ;›7710 RERRMSG .SBYTE "Äéóë Òåáä Åòòïò £°°°        "›7720 WERRMSG .SBYTE "Äéóë ×òéôå Åòòïò £°°°       "›7730 BERRMSG .SBYTE "Åòòïòº Âòåáë Áâïòô          "›7740 READERR›7750 STY DNSB2›7760 CPY #128›7770 BEQ BRKERR›7780 LDY #27›7790 RDE1 LDA RERRMSG,Y›7800 STA STATUSL1+10,Y›7810 DEY ›7820 BPL RDE1›7830 LDA #[STATUSL1+27]&255›7840 RDE3 STA DSPTMP›7850 LDA #[STATUSL1+27]/256›7860 STA DSPTMP+1›7870 LDY #0›7880 LDX #0›7890 LDA DNSB2›7900 JSR DEC2›7910 JMP BELL›7920 ;›7930 WRITERR›7940 STY DNSB2›7950 CPY #128›7960 BEQ BRKERR›7970 LDY #27›7980 RDE2 LDA WERRMSG,Y›7990 STA STATUSL1+10,Y›8000 DEY ›8010 BPL RDE2›8020 LDA #[STATUSL1+28]&255›8030 JMP RDE3›8040 ;›8050 BRKERR LDY #27›8060 RDE4 LDA BERRMSG,Y›8070 STA STATUSL1+10,Y›8080 DEY ›8090 BPL RDE4›8100 JMP BELL›8110 ;›8120 DISK1 LDA TSTART›8130 STA CSECTOR›8140 LDA TSTART+1›8150 STA CSECTOR+1›8160 JSR ENHCMP›8170 LDA #TRKBUF&255›8180 STA SLOC›8190 LDA #TRKBUF/256›8200 STA SLOC+1›8210 LDA #0›8220 STA NUMSECS›8230 DISK01 LDX NUMSECS›8240 LDA BUFDUP,X›8250 BEQ DSK001›8260 JSR COMPACT›8270 BCS DISK53›8280 DSK001 JMP DISK12›8290 DISK53 JSR CLRWIND›8300 LDA CSECTOR›8310 CLC ›8320 ADC #1›8330 STA SECTOR›8340 LDA CSECTOR+1›8350 ADC #0›8360 STA SECTOR+1›8370 DISK011 INC PASS›8380 LDY #0›8390 LDX NUMSECS›8400 LDA BUFDUP,X›8410 AND #$80›8420 BNE BDP1›8430 LDA #'E›8440 STA (BLOC),Y›8450 INY ›8460 LDA #0›8470 STA (BLOC),Y›8480 INY ›8490 BDP1 LDA #'E›8500 STA (BLOC),Y›8510 CLC ›8520 TYA ›8530 ADC #3›8540 ADC BLEN›8550 STA BLEN›8560 LDA BLEN+1›8570 ADC #0›8580 STA BLEN+1›8590 LDA PASS›8600 AND #$20›8610 BCS PSS1›8620 LDA PASS›8630 SEC ›8640 SBC #1›8650 PSS2 AND #$9F›8660 JMP PSS3›8670 PSS1 LDA PASS ;ACCOUNT FOR›8680 JMP PSS2 ; > 32 PASSES›8690 PSS3 STA YTEMP›8700 LDA SRCDEN›8710 SEC ›8720 SBC #1›8730 ASL A›8740 ASL A›8750 ASL A›8760 ASL A›8770 ASL A›8780 ORA YTEMP›8790 STA BUFFER+1 ;DNS+PASS BYTE›8800 LDA PASS›8810 CMP #$82 ;1 PASS ONLY?›8820 BEQ DISK13A›8830 CMP #2›8840 BNE DISK13›8850 LDA #1›8860 STA 752›8870 LDX #PCHKTYP&255›8880 LDY #PCHKTYP/256›8890 JSR PRINT›8900 LDA #0›8910 STA 752›8920 DISK14 JSR KGETCH›8930 CMP #27›8940 BEQ DISK15›8950 JSR UPPER›8960 CMP #'A›8970 BEQ DISK16›8980 CMP #'B›8990 BEQ DISK16›9000 BNE DISK14›9010 DISK15 JMP MAIN›9020 DISK16 JMP DISK16A›9030 DISK13 JMP WRT1›9040 DISK13A JMP ENTF02›9050 DISK12 LDA CSECTOR›9060 CMP CURMAX›9070 BNE DSK112›9080 LDA CSECTOR+1›9090 CMP CURMAX+1›9100 BNE DSK112›9110 LDA PASS›9120 ORA #$80›9130 STA PASS ;INDICATE LAST PASS›9140 JSR CLRWIND›9150 JMP DISK011›9160 DSK112 INC CSECTOR›9170 BNE DSK121›9180 INC CSECTOR+1›9190 DSK121 CLC ›9200 LDA SLOC›9210 ADC TLEN›9220 STA SLOC›9230 LDA SLOC+1›9240 ADC TLEN+1›9250 STA SLOC+1›9260 INC NUMSECS›9270 LDA TLEN+1›9280 BEQ DSK122›9290 INC NUMSECS›9300 DSK122 LDA NUMSECS›9310 CMP #18›9320 BCS DSK123›9330 JMP DISK01›9340 DSK123 JMP SELA2›9350 PCHKTYP .BYTE 125,155,155›9360 .BYTE " ",155›9370 .BYTE " | Do you wish to use |",155›9380 .BYTE " | ™ÛÁÝ Separate small files |",155›9390 .BYTE " | ™ÛÂÝ One large file! |",155›9400 .BYTE " ",155,0›9410 ;›9420 PINSDEST›9430 LDX #INDST&255›9440 LDY #INDST/256›9450 JSR PRINT›9460 RTS ›9470 ;›9480 COMPACT›9490 LDX NUMSECS›9500 LDA BUFDUP,X›9510 AND #1›9520 BEQ CT01›9530 LDA BLOC›9540 CLC ›9550 ADC #1›9560 STA BCUR›9570 LDA BLOC+1›9580 ADC #0›9590 STA BCUR+1›9600 JMP CT02›9610 CT01 LDA BLOC›9620 CLC ›9630 ADC #3›9640 STA BCUR›9650 LDA BLOC+1›9660 ADC #0›9670 STA BCUR+1›9680 CT02 LDA #0›9690 STA LEFTOFF›9700 STA OFFSET›9710 CMP01 JSR COMPSUB›9720 LDA LEFTOFF›9730 BNE CMP1›9740 LDA DATA›9750 ORA OFFSET›9760 CMP #0›9770 BNE CMP011›9780 LDA UNTIL›9790 CMP TLEN›9800 BNE CMP011›9810 CLC ›9820 RTS ›9830 CMP011 JMP COMPACT2›9840 CMP1 LDA OFFSET›9850 CMP #$FF›9860 BNE CMP2›9870 LDA LEFTOFF›9880 BNE CMP22›9890 LDY #0›9900 CMP11 LDA (SLOC),Y›9910 STA (BCUR),Y›9920 INY ›9930 CPY TLEN›9940 BNE CMP11›9950 LDX #'G›9960 CMP24 LDA TLEN›9970 STA UNTIL›9980 JMP CMP6›9990 CMP2 LDY #0›010000 LDA OFFSET›010010 STA (BCUR),Y›010020 LDX LEFTOFF›010030 CMP4 INY ›010040 CPX OFFSET›010050 BEQ CMP5›010060 JSR LOADX›010070 STA (BCUR),Y›010080 INX ›010090 JMP CMP4›010100 CMP22 LDY #0›010110 LDA TLEN›010120 STA (BCUR),Y›010130 LDX LEFTOFF›010140 CMP23 INY ›010150 JSR LOADX›010160 STA (BCUR),Y›010170 INX ›010180 CPX TLEN›010190 BNE CMP23›010200 LDX #'C›010210 INY ›010220 JMP CMP24›010230 LOADX STY YTEMP›010240 TXA ›010250 TAY ›010260 LDA (SLOC),Y›010270 LDY YTEMP›010280 RTS ›010290 CMP5 LDA UNTIL›010300 STA (BCUR),Y›010310 LDX #'C›010320 INY ›010330 LDA DATA›010340 STA (BCUR),Y›010350 INY ›010360 CMP6 CLC ›010370 TYA ›010380 BEQ CMP61›010390 ADC BCUR›010400 STA BCUR›010410 LDA BCUR+1›010420 ADC #0›010430 STA BCUR+1›010440 CMP62 LDA UNTIL›010450 STA LEFTOFF›010460 CMP TLEN›010470 BEQ CMP63›010480 JMP CMP01›010490 CMP61 INC BCUR+1›010500 JMP CMP62›010510 CMP63 LDA BCUR›010520 SEC ›010530 SBC BLOC›010540 STA DNSBUF›010550 LDA BCUR+1›010560 SBC BLOC+1›010570 STA DNSBUF+1›010580 STX UNTIL›010590 LDX NUMSECS›010600 LDY #2›010610 LDA BUFDUP,X›010620 PHA ›010630 AND #1›010640 BEQ CMP75›010650 LDY #0›010660 CMP75 PLA ›010670 AND #$80›010680 ORA UNTIL›010690 STA (BLOC),Y›010700 DEY ›010710 BMI CMP76›010720 LDA CSECTOR+1›010730 STA (BLOC),Y›010740 DEY ›010750 LDA CSECTOR›010760 STA (BLOC),Y›010770 CMP76 LDA BCUR›010780 STA BLOC›010790 LDA BCUR+1›010800 STA BLOC+1›010810 LDA BLEN›010820 CLC ›010830 ADC DNSBUF›010840 STA BLEN›010850 LDA BLEN+1›010860 ADC DNSBUF+1›010870 STA BLEN+1›010880 LDY #0›010890 CMP0 LDA (SLOC),Y›010900 STA PREVSEC,Y›010910 INY ›010920 CPY TLEN›010930 BNE CMP0›010940 LDA BLEN+1›010950 CMP #[BUFLEN-256]/256›010960 RTS ›010970 ;›010980 COMPACT2 LDY #0›010990 CPA1 LDA (SLOC),Y›011000 CMP PREVSEC,Y›011010 BNE CPA2›011020 INY ›011030 CPY TLEN›011040 BNE CPA1›011050 LDX #'F›011060 DEC BCUR+1›011070 LDY #0›011080 CPA44 LDA TLEN›011090 STA UNTIL›011100 JMP CMP6›011110 CPA2 TYA ›011120 SEC ›011130 SBC TLEN›011140 CMP #$E0›011150 BCC CPA5›011160 TYA ›011170 LDY #0›011180 STA (BCUR),Y›011190 TAX ›011200 CPA4 INY ›011210 JSR LOADX›011220 STA (BCUR),Y›011230 INX ›011240 CPX TLEN›011250 BNE CPA4›011260 INY ›011270 LDX #'D›011280 JMP CPA44›011290 CPA5 LDY TLEN›011300 DEY ›011310 CPA8 LDA (SLOC),Y›011320 CMP PREVSEC,Y›011330 BNE CPA9›011340 DEY ›011350 CPY #$FF›011360 BNE CPA8›011370 CPA9 CPY #$10›011380 BCS CPA10›011390 TYA ›011400 LDY #0›011410 STA (BCUR),Y›011420 TAX ›011430 CPA11 INY ›011440 JSR LOADX›011450 STA (BCUR),Y›011460 DEX ›011470 CPX #$FF›011480 BNE CPA11›011490 INY ›011500 LDX #'A›011510 JMP CPA44›011520 CPA10 JMP CMP1›011530 ;›011540 COMPSUB LDY LEFTOFF›011550 CC0 LDA (SLOC),Y›011560 CC2 INY ›011570 CPY TLEN›011580 BEQ CC1›011590 CMP (SLOC),Y›011600 BNE CC0›011610 DEY ›011620 STY OFFSET›011630 INY ›011640 LDX #$FF›011650 CC3 INX ›011660 INY ›011670 CPY TLEN›011680 BEQ CC4›011690 CMP (SLOC),Y›011700 BEQ CC3›011710 CC4 CPX #2›011720 BCS CC6›011730 CPY TLEN›011740 BNE CC0›011750 CC1 LDA #$FF›011760 STA OFFSET›011770 RTS ›011780 CC6 STA DATA›011790 STY UNTIL›011800 RTS ›011810 ;›011820 ; RAMDISK ROUTINES›011830 ;›011840 INITRAM LDA #0›011850 STA CURLOC›011860 STA MAXLOC›011870 STA EXLEN›011880 STA EXLEN+1›011890 LDA #1›011900 STA CURBNK›011910 STA LSTBNK›011920 LDA #$40›011930 STA CURLOC+1›011940 STA MAXLOC+1›011950 LDA EXFLEN›011960 STA EXLEN+2›011970 RTS ›011980 ;›011990 RAMSET LDA $D301›012000 STA EXPRT›012010 AND #3›012020 LDY CURBNK›012030 ORA PAGESEQ-1,Y›012040 STA $D301›012050 RTS ›012060 ;›012070 RAMSAVE LDA #1›012080 STA CURBNK›012090 LDA $D301›012100 STA DATA›012110 SV1 JSR RAMSET›012120 LDX #$10›012130 LDA #$0B›012140 STA $0342,X›012150 LDA #0›012160 STA $0344,X›012170 STA $0348,X›012180 LDA #$40›012190 STA $0345,X›012200 STA $0349,X›012210 LDA CURBNK›012220 CMP LSTBNK›012230 BNE SV2›012240 LDA MAXLOC›012250 SEC ›012260 STA $0348,X›012270 LDA MAXLOC+1›012280 SBC #$40›012290 STA $0349,X›012300 SV2 JSR $E456›012310 BMI SV4›012320 LDA CURBNK›012330 CMP LSTBNK›012340 BEQ SV4›012350 INC CURBNK›012360 BNE SV1›012370 SV4 LDA DATA›012380 STA $D301›012390 TYA ›012400 RTS ›012410 ;›012420 RMV2 JMP RMV22›012430 RAMMOVE LDA EXLEN›012440 ORA EXLEN+1›012450 ORA EXLEN+2›012460 BNE RMV1›012470 SEC ›012480 RTS ;NO RAM LEFT!›012490 RMV1 LDA EXLEN+2›012500 BNE RMV2›012510 SEC ›012520 LDA #BUFLEN&255›012530 SBC OFSET›012540 STA EXTMP›012550 LDA #BUFLEN/256›012560 SBC OFSET+1›012570 STA EXTMP+1›012580 SEC ›012590 LDA EXLEN›012600 SBC EXTMP›012610 LDA EXLEN+1›012620 SBC EXTMP+1›012630 BCS RMV2›012640 LDA OFSET›012650 CLC ›012660 ADC #BUFFER&255›012670 STA BCUR›012680 LDA OFSET+1›012690 ADC #BUFFER/256›012700 STA BCUR+1›012710 CLC ›012720 LDA OFSET›012730 ADC EXLEN›012740 STA OFSET›012750 LDA OFSET+1›012760 ADC EXLEN+1›012770 STA OFSET+1›012780 LDA #0›012790 STA XEUSED›012800 LDA $D301›012810 STA EXPRT ;store what it was›012820 RMV61 LDA EXLEN+1›012830 BEQ RMV62›012840 LDA #0›012850 STA UNTIL ;move 256 bytes›012860 JSR RMV51›012870 DEC EXLEN+1›012880 JMP RMV61›012890 RMV62 LDA EXLEN›012900 BEQ RMV63›012910 STA UNTIL›012920 JSR RMV51›012930 RMV63 SEC ›012940 RTS ›012950 ;›012960 RMV51 LDA $D301›012970 STA EXPRT›012980 LDY CURBNK›012990 LDA $D301›013000 AND #3›013010 ORA PAGESEQ-1,Y›013020 STA DATA ;# for ex mem›013030 LDY #0›013040 RMV52 LDX DATA›013050 STX $D301›013060 LDA (CURLOC),Y›013070 LDX EXPRT›013080 STX $D301›013090 STA (BCUR),Y›013100 LDA CURLOC+1›013110 CMP #$7F›013120 BCS RMV53›013130 RMV54 INY ›013140 CPY UNTIL›013150 BNE RMV52›013160 JMP RMV56›013170 RMV53 TYA ›013180 CLC ›013190 ADC CURLOC›013200 CMP #$FF›013210 BNE RMV54›013220 LDA #$3F›013230 STA CURLOC+1›013240 INC CURBNK›013250 LDX CURBNK›013260 LDA $D301›013270 AND #3›013280 ORA PAGESEQ-1,X›013290 STA DATA›013300 INY ›013310 CPY UNTIL›013320 BNE RMV52›013330 RMV56 LDA UNTIL›013340 BNE RMV57›013350 INC CURLOC+1›013360 INC BCUR+1›013370 RTS ›013380 RMV57 LDA CURLOC›013390 CLC ›013400 ADC UNTIL›013410 STA CURLOC›013420 LDA CURLOC+1›013430 ADC #0›013440 STA CURLOC+1›013450 CLC ›013460 LDA BCUR›013470 ADC UNTIL›013480 STA BCUR›013490 LDA BCUR+1›013500 ADC #0›013510 STA BCUR+1›013520 RTS ›013530 ;›013540 RMV81 LDA $D301›013550 STA EXPRT›013560 LDY LSTBNK›013570 LDA $D301›013580 AND #3›013590 ORA PAGESEQ-1,Y›013600 STA DATA ;# for ex mem›013610 LDY #0›013620 RMV82 LDX EXPRT›013630 STX $D301›013640 LDA (BLOC),Y›013650 LDX DATA›013660 STX $D301›013670 STA (MAXLOC),Y›013680 LDA MAXLOC+1›013690 CMP #$7F›013700 BCS RMV83›013710 RMV84 INY ›013720 CPY UNTIL›013730 BNE RMV82›013740 JMP RMV86›013750 RMV83 TYA ›013760 CLC ›013770 ADC MAXLOC›013780 CMP #$FF›013790 BNE RMV84›013800 LDA #$3F›013810 STA MAXLOC+1›013820 INC LSTBNK›013830 LDX LSTBNK›013840 LDA $D301›013850 AND #3›013860 ORA PAGESEQ-1,X›013870 STA DATA›013880 INY ›013890 CPY UNTIL›013900 BNE RMV82›013910 RMV86 LDA EXPRT›013920 STA $D301›013930 LDA UNTIL›013940 BNE RMV87›013950 INC MAXLOC+1›013960 INC BLOC+1›013970 RTS ›013980 RMV87 LDA MAXLOC›013990 CLC ›014000 ADC UNTIL›014010 STA MAXLOC›014020 LDA MAXLOC+1›014030 ADC #0›014040 STA MAXLOC+1›014050 CLC ›014060 LDA BLOC›014070 ADC UNTIL›014080 STA BLOC›014090 LDA BLOC+1›014100 ADC #0›014110 STA BLOC+1›014120 RTS ›014130 ;›014140 RMV22 SEC ›014150 LDA EXLEN›014160 SEC ›014170 SBC EXTMP›014180 STA EXLEN›014190 LDA EXLEN+1›014200 SBC EXTMP+1›014210 STA EXLEN+1›014220 LDA EXLEN+2›014230 SBC #0›014240 STA EXLEN+2›014250 LDA OFSET›014260 CLC ›014270 ADC #BUFFER&255›014280 STA BCUR›014290 LDA OFSET+1›014300 ADC #BUFFER/256›014310 STA BCUR+1›014320 RMV71 LDA EXTMP+1›014330 BEQ RMV72›014340 LDA #0›014350 STA UNTIL ;move 256 bytes›014360 JSR RMV51›014370 DEC EXTMP+1›014380 JMP RMV71›014390 RMV72 LDA EXTMP›014400 STA UNTIL ;move remainder›014410 JSR RMV51›014420 CLC ›014430 RTS ›014440 ;›014450 ;›014460 ;›014470 WRT1 LDA XERAM›014480 BEQ WRT2›014490 LDA PASTYP›014500 BNE WRT3›014510 WRT2›014520 LDA SAVEPAS›014530 BEQ WRT2A›014540 LDA PASTYP›014550 BEQ WRT2A›014560 JSR ENTF14B›014570 JSR PPUT›014580 JSR ERRTRAP›014590 JMP ENTF19›014600 WRT2A LDA SAVEPAS›014610 BNE WRT2A1›014620 JSR FILENAME›014630 WRT2A1 JSR ENTF14B›014640 JSR POPEN›014650 JSR ERRTRAP›014660 BCS WRT2A1›014670 JSR PPUT›014680 JSR ERRTRAP›014690 BCS WRT2A1›014700 JMP ENTF19›014710 ENTF14B LDX DEST›014720 LDA SAVEPAS›014730 BEQ WRT4›014740 LDA PASTYP›014750 BEQ WRT4›014760 LDA DSTDEN›014770 BEQ WRT4›014780 JSR SETDNS›014790 WRT4 CPX SOURCE›014800 BNE WRT5›014810 JSR PINSDEST›014820 JSR WSTART›014830 WRT5 LDY #28›014840 WRT6 LDA WRTFL,Y›014850 STA STATUSL1+10,Y›014860 DEY ›014870 BPL WRT6›014880 LDY #0›014890 WRT7 LDA FNAME,Y›014900 CMP #$9B›014910 BEQ WRT8›014920 CLC ›014930 ADC #$60›014940 STA STATUSL1+18,Y›014950 INY ›014960 CPY #20›014970 BCC WRT7›014980 WRT8 RTS ›014990 WRT3 LDA PASS›015000 BPL WRT9›015010 LDA XEUSED›015020 BEQ WRT2›015030 WRT11 LDA SAVEPAS›015040 BNE WRT3A›015050 JSR FILENAME›015060 WRT11A JSR ENTF14B›015070 JSR POPEN›015080 JSR ERRTRAP›015090 BCS WRT11A›015100 JMP WRT3A+3›015110 WRT3A JSR ENTF14B›015120 JSR RAMSAVE›015130 JSR ERRTRAP›015140 BCS WRT11A›015150 JSR PPUT›015160 JSR ERRTRAP›015170 BCS WRT11A›015180 LDA #0›015190 STA XEUSED›015200 JSR INITRAM›015210 JMP ENTF19›015220 ;›015230 WRT9 LDA #1›015240 STA XEUSED›015250 LDA EXLEN+2›015260 BNE WRT10›015270 SEC ›015280 LDA EXLEN›015290 SBC BLEN›015300 LDA EXLEN+1›015310 SBC BLEN+1›015320 BCC WRT11›015330 WRT10 LDA EXLEN›015340 SBC BLEN›015350 STA EXLEN›015360 LDA EXLEN+1›015370 SBC BLEN+1›015380 STA EXLEN+1›015390 LDA EXLEN+2›015400 SBC #0›015410 STA EXLEN+2›015420 LDA #BUFFER&255›015430 STA BLOC›015440 LDA #BUFFER/256›015450 STA BLOC+1›015460 WRT12 LDA BLEN+1›015470 BEQ WRT13›015480 LDA #0 ;MOVE 256 BYTES›015490 STA UNTIL›015500 JSR RMV81›015510 DEC BLEN+1›015520 JMP WRT12›015530 WRT13 LDA BLEN›015540 BEQ WRT14›015550 STA UNTIL›015560 JSR RMV81›015570 WRT14 LDA #0›015580 STA BLEN›015590 STA BLEN+1›015600 LDA #[BUFFER+2]&255›015610 STA BLOC›015620 LDA #[BUFFER+2]/256›015630 STA BLOC+1›015640 JSR NEWCLR›015650 JMP SELA232›015660 ;›015670 RAMLOAD LDA #1›015680 STA CURBNK›015690 LDA $D301›015700 STA DATA›015710 LDA #0›015720 STA EXLEN›015730 STA EXLEN+1›015740 STA EXLEN+2›015750 STA EOFFLG›015760 LD1 JSR RAMSET›015770 LDX #$10›015780 LDA #7›015790 STA $0342,X›015800 LDA #0›015810 STA $0344,X›015820 STA $0348,X›015830 LDA #$40›015840 STA $0345,X›015850 STA $0349,X›015860 JSR $E456›015870 BMI LD2›015880 CLC ›015890 LDA EXLEN+1›015900 ADC #$40›015910 STA EXLEN+1›015920 LDA EXLEN+2›015930 ADC #0›015940 STA EXLEN+2›015950 INC CURBNK›015960 LDA CURBNK›015970 CMP MAXBNK›015980 BCC LD1›015990 DEC CURBNK›016000 LDA CURBNK›016010 STA LSTBNK›016020 LDA #$7F›016030 STA MAXLOC+1›016040 LDA #$FF›016050 STA MAXLOC›016060 JMP LD3›016070 LD2 LDA CURBNK›016080 STA LSTBNK›016090 INC EOFFLG›016100 LDA $0358›016110 STA MAXLOC›016120 LDA $0359›016130 CLC ›016140 ADC #$40›016150 STA MAXLOC+1›016160 CLC ›016170 LDA EXLEN›016180 ADC $0358›016190 STA EXLEN›016200 LDA EXLEN+1›016210 ADC $0359›016220 STA EXLEN+1›016230 LDA EXLEN+2›016240 ADC #0›016250 STA EXLEN+2›016260 CPY #136›016270 BNE LD3›016280 JSR NCLOSE›016290 LD3 LDA DATA›016300 STA $D301›016310 RTS ›016320 ;›016330 ;›016340 CHKCHR LDY #42›016350 CKC1 CMP ALCHR,Y›016360 BEQ CKC2›016370 DEY ›016380 BPL CKC1›016390 LDY COMMAFLG›016400 BEQ CKC3›016410 CMP #',›016420 BEQ CKC2›016430 CKC3 SEC ›016440 RTS ›016450 CKC2 CLC ›016460 RTS ›016470 ALCHR .BYTE "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_:.*=?>"›016480 ;›016490 ENTFP .BYTE "Æéìåîáíå ¾¾¾D1:",0›016500 ENTF LDA #3›016510 STA OFFSET›016520 LDA DRIVE›016530 CLC ›016540 ADC #$30›016550 STA ENTFP+13›016560 STA FTEMP+1›016570 LDA #'D›016580 STA FTEMP›016590 LDA #':›016600 STA FTEMP+2›016610 LDX #ENTFP&255›016620 LDY #ENTFP/256›016630 JSR PRINT›016640 ENTF2 JSR KGETCH›016650 CMP #$9B›016660 BNE ENTF3›016670 LDY OFFSET›016680 CPY #4›016690 BEQ ENTF46›016700 BCS ENTF4›016710 ENTF0 JMP MAIN›016720 ;›016730 ENTF46 LDX FTEMP+3›016740 CPX #$3A›016750 BCS ENTF4›016760 TXA ›016770 JSR SELDIR›016780 SEC ›016790 RTS ›016800 ENTF4 STA FTEMP,Y›016810 JSR OUTCHR›016820 JMP ENTF7›016830 ENTF3 CMP #$7E ;BACKSPACE?›016840 BEQ ENTF5›016850 JSR UPPER›016860 CMP #$1B›016870 BEQ ENTF0›016880 LDY OFFSET›016890 CPY #38›016900 BCS ENTF2›016910 JSR CHKCHR›016920 BCS ENTF2›016930 LDY OFFSET›016940 STA FTEMP,Y›016950 JSR OUTCHR›016960 INC OFFSET›016970 JMP ENTF2›016980 ENTF5 LDY OFFSET›016990 CPY #1›017000 BEQ ENTF2›017010 BCC ENTF2›017020 JSR OUTCHR›017030 DEC OFFSET›017040 JMP ENTF2›017050 ENTF7 CLC ›017060 RTS ›017070 ;›017080 ;›017090 DSFN1 .BYTE 125,155,155,"[Type drv # and ÒÅÔÕÒÎ for directory]",155›017100 .BYTE 155,"Please enter Äåóôéîáôéïî Filename:",155,155,0›017110 DSFN2 .BYTE "Remember to type a ™± or ™Á!",155,155,0›017120 POSP .BYTE 125,155,155,155,"Filename: ",0›017130 POS2P .BYTE 155,"Position cursor on character to be",155,"incremented for each file, hit ÒÅÔÕÒÎ",0›017140 POS3P .BYTE "",0›017150 DFULL .BYTE " Your destination disk is full!!!",155,0›017160 DERRM .BYTE " ",155›017170 .BYTE " | Disk Error Menu |",155›017180 .BYTE " ",155›017190 .BYTE " | ™ÛÒÅÔÕÒÎÝ Retry Save |",155›017200 .BYTE " | ™ÛÆÝ DOS functions |",155›017210 .BYTE " | ™Û±­¹Ý Disk directories |",155›017220 .BYTE " | ™ÛÅÓÃÝ Exit |",155›017230 .BYTE " ",155,0›017240 ;›017250 DISK16A SEC ›017260 SBC #'A›017270 STA PASTYP›017280 ENTF02›017290 LDA PASTYP›017300 CLC ›017310 ADC #249›017320 STA BUFFER›017330 JMP WRT1›017340 ;******************›017350 FILENAME LDA DEST›017360 STA DRIVE›017370 LDX #DSFN1&255›017380 LDY #DSFN1/256›017390 JSR PRINT›017400 JSR MOVFT›017410 LDA PASTYP›017420 BNE ENTF04›017430 LDX #DSFN2&255›017440 LDY #DSFN2/256›017450 JSR PRINT›017460 ENTF04 JSR ENTF›017470 BCC ENTF01›017480 JMP ENTF02›017490 ENTF01 JSR MOVTF›017500 LDA FNAME+1›017510 CMP #':›017520 BNE ENTF72›017530 LDA #'1›017540 ENTF72 SEC ›017550 SBC #'0›017560 STA DEST›017570 LDA PASTYP›017580 BEQ ENTF05›017590 RTS ›017600 ENTF05 LDX #POSP&255›017610 LDY #POSP/256›017620 JSR PRINT›017630 LDY OFFSET›017640 STY MAXCHR›017650 INY ›017660 LDA #0›017670 STA FNAME,Y›017680 LDX #FNAME&255›017690 LDY #FNAME/256›017700 JSR PRINT›017710 LDX #POS2P&255›017720 LDY #POS2P/256›017730 JSR PRINT›017740 LDY OFFSET›017750 ENTF07 LDA FNAME,Y›017760 CMP #'A›017770 BEQ ENTF08›017780 CMP #'1›017790 BEQ ENTF08›017800 DEY ›017810 CPY #2›017820 BCS ENTF07›017830 LDY OFFSET›017840 DEY ›017850 ENTF08 STY OFFSET›017860 TYA ›017870 CLC ›017880 ADC #12›017890 CMP #40›017900 BCC ENF51›017910 SBC #38›017920 SEC ›017930 ENF51 STA 85 ;XREG›017940 LDA #3›017950 ADC #0›017960 STA 84›017970 LDX #POS3P&255›017980 LDY #POS3P/256›017990 JSR PRINT›018000 JSR BELL›018010 ENTF09 JSR KGETCH›018020 CMP #27›018030 BNE ENTF10›018040 JMP MAIN›018050 ENTF10 CMP #'<›018060 BEQ ENTF11›018070 CMP #'+›018080 BEQ ENTF11›018090 CMP #$1E›018100 BEQ ENTF11›018110 CMP #'>›018120 BEQ ENTF12›018130 CMP #'*›018140 BEQ ENTF12›018150 CMP #$1F›018160 BEQ ENTF12›018170 CMP #$9B›018180 BEQ ENTF13›018190 BNE ENTF09›018200 ENTF12 LDY OFFSET›018210 INY ›018220 CPY MAXCHR›018230 BEQ ENTF09›018240 STY OFFSET›018250 CPY #28›018260 BNE ENTF12A›018270 LDA #$1D›018280 JSR OUTCHR›018290 ENTF12A›018300 LDA #$1F›018310 JSR OUTCHR›018320 JMP ENTF09›018330 ENTF11 LDY OFFSET›018340 CPY #2›018350 BEQ ENTF09›018360 DEC OFFSET›018370 LDA OFFSET›018380 CMP #27›018390 BNE ENTF12B›018400 LDA #$1C›018410 JSR OUTCHR›018420 ENTF12B›018430 LDA #$1E›018440 JSR OUTCHR›018450 JMP ENTF09›018460 WRTFL .SBYTE "×òéôéîç                      "›018470 ENTF13 LDA OFFSET›018480 STA INCCHR›018490 LDA #$9B›018500 JSR OUTCHR›018510 JSR OUTCHR›018520 JSR OUTCHR›018530 JSR OUTCHR›018540 JSR OUTCHR›018550 RTS ›018560 ;›018570 POPEN LDA DEST›018580 STA DRIVE›018590 JSR READ1DEN›018600 STA DSTDEN›018610 JSR DESTDNS›018620 JSR NCLOSE›018630 LDA #3›018640 LDX #$10›018650 STA $0342,X›018660 LDA #8›018670 STA $034A,X›018680 STA $0349,X›018690 LDA #FNAME&255›018700 STA $0344,X›018710 LDA #FNAME/256›018720 STA $0345,X›018730 JMP $E456›018740 ;›018750 PPUT›018760 LDX #$10›018770 LDA #$0B›018780 STA $0342,X›018790 LDA #BUFFER&255›018800 STA $0344,X›018810 LDA #BUFFER/256›018820 STA $0345,X›018830 LDA BLEN›018840 STA $0348,X›018850 LDA BLEN+1›018860 STA $0349,X›018870 JMP $E456›018880 ;›018890 ERRTRAP STY YTEMP›018900 CPY #128›018910 BCS EN9B›018920 RTS ›018930 EN9B JSR NCLOSE›018940 LDY YTEMP›018950 JSR WRITERR›018960 LDA YTEMP›018970 CMP #128›018980 BEQ ENTF19F›018990 CMP #160›019000 BEQ ENTF19F›019010 CMP #165›019020 BEQ ENTF19F›019030 LDX SAVEPAS›019040 BEQ ENTF19C›019050 CMP #162›019060 BNE ENTF19F›019070 LDX #DFULL&255›019080 LDY #DFULL/256›019090 JSR PRINT›019100 JSR ERASE›019110 ENTF19F JMP MAIN›019120 ENTF19C JSR NEWCLR›019130 LDA #155›019140 JSR OUTCHR›019150 JSR OUTCHR›019160 LDA YTEMP›019170 CMP #162›019180 BNE ENTF19D›019190 LDX #DFULL&255›019200 LDY #DFULL/256›019210 JSR PRINT›019220 JSR ERASE›019230 ENTF19D LDA #1›019240 STA 752›019250 LDX #DERRM&255›019260 LDY #DERRM/256›019270 JSR PRINT›019280 LDA #0›019290 STA 752›019300 ENTF19E JSR KGETCH›019310 CMP #$1B›019320 BEQ ENTF19F›019330 CMP #$9B›019340 BNE ENT9E›019350 RTS ›019360 ENT9E JSR UPPER›019370 CMP #'F›019380 BNE ENT9F›019390 JSR SELF›019400 ENT9C LDA #125›019410 JSR OUTCHR›019420 LDA #155›019430 JSR OUTCHR›019440 JSR OUTCHR›019450 JMP ENTF19D›019460 ENT9F CMP #$41›019470 BCS ENTF19E›019480 CMP #$20›019490 BCC ENTF19E›019500 JSR SELDIR›019510 JMP ENT9C›019520 ;›019530 ENTF19 LDA #0›019540 STA BLEN+1›019550 STA BLEN›019560 LDA #[BUFFER+2]&255›019570 STA BLOC›019580 LDA #[BUFFER+2]/256›019590 STA BLOC+1›019600 INC SAVEPAS›019610 JSR NEWCLR ;clear screen›019620 LDA PASTYP›019630 BNE ENTF20›019640 LDX INCCHR›019650 INC FNAME,X›019660 JSR CLOSE›019670 JMP ENTF20›019680 ENTF21 JSR BACKSRC›019690 JMP SELA232›019700 ENTF20 LDA PASS›019710 BPL ENTF21›019720 JSR CLOSE›019730 LDY #27›019740 ENTF24 LDA DSKFILP,Y›019750 STA STATUSL1+10,Y›019760 DEY ›019770 BPL ENTF24›019780 JMP MAIN›019790 DSKFILP .SBYTE " Äéóë ôõòîåä éîôï Æéìå¨ó©¡¡¡ "›019800 CLOSE JSR NCLOSE›019810 BPL CLOSE1›019820 JSR WRITERR›019830 JMP MAIN›019840 CLOSE1 RTS ›019850 ;›019860 ;›019870 NCLOSE LDX #$10›019880 LDA #$0C›019890 STA $0342,X›019900 JMP $E456›019910 ;›019920 ERASE JSR NCLOSE›019930 LDX #$10›019940 LDA #$21›019950 STA $0342,X›019960 LDA #FNAME&255›019970 STA $0344,X›019980 LDA #FNAME/256›019990 STA $0345,X›020000 JSR $E456›020010 JMP NCLOSE›020020 ;›020030 MOVTF LDY #39›020040 MOV1 LDA FTEMP,Y›020050 STA FNAME,Y›020060 DEY ›020070 BPL MOV1›020080 RTS ›020090 ;›020100 MOVFT LDY #39›020110 MOV2 LDA FNAME,Y›020120 STA FTEMP,Y›020130 DEY ›020140 BPL MOV2›020150 RTS ›020160 ;›020170 FILP .BYTE 125,"Directory of ",0›020180 PRESP .BYTE 155,"Drive #, or ÒÅÔÕÒÎ to continue...",0›020190 PRESM .BYTE "Hit ÒÅÔÕÒÎ for more entries...",0›020200 SDIR5 .BYTE ":*.*",155,0›020210 ;›020220 SELDIR CMP #$21›020230 BCC SDIR1›020240 CMP #$28›020250 BEQ SDIR00›020260 CMP #$29›020270 BCC SDIR2›020280 CMP #$31›020290 BCC SDIR1›020300 CMP #$3A›020310 BCC SDIR2›020320 CMP #$40›020330 BNE SDIR1›020340 LDA #$28›020350 BNE SDIR2›020360 SDIR1 RTS ›020370 SDIR00 LDA #$29›020380 SDIR2 LDX #$80›020390 CMP #$30›020400 BCS SDIR3›020410 LDX #0›020420 ADC #$10›020430 SDIR3 STX $035B›020440 STA FTEMP+1›020450 LDA #'D›020460 STA FTEMP›020470 LDX #5›020480 SDIR4 LDA SDIR5,X›020490 STA FTEMP+2,X›020500 DEX ›020510 BPL SDIR4›020520 LDX #FILP&255›020530 LDY #FILP/256›020540 JSR PRINT›020550 LDX #FTEMP&255›020560 LDY #FTEMP/256›020570 JSR PRINT›020580 SDIR44 LDA #6›020590 STA $035A›020600 JSR NCLOSE›020610 LDA DRIVE›020620 PHA ›020630 LDA FTEMP+1›020640 AND #$0F›020650 STA DRIVE›020660 JSR READ1DEN›020670 JSR CLRWIN2›020680 PLA ›020690 STA DRIVE›020700 LDA #3›020710 STA $0352›020720 LDX #$10›020730 LDA #FTEMP&255›020740 STA $0354›020750 LDA #FTEMP/256›020760 STA $0355›020770 JSR $E456›020780 BPL SDIR6›020790 STY YTEMP›020800 JSR NCLOSE›020810 LDY YTEMP›020820 JSR READERR›020830 JSR PRESS›020840 JMP SELDIR›020850 ;›020860 PRESS LDX #PRESP&255›020870 LDY #PRESP/256›020880 JSR PRINT›020890 PRES1 JSR KGETCH›020900 CMP #$9B›020910 BEQ PRES2›020920 AND #$7F›020930 CMP #$20›020940 BEQ PRES2›020950 CMP #$1B›020960 BEQ PRES2›020970 CMP #$21›020980 BCC PRES1›020990 CMP #$29›021000 BCC PRES2›021010 CMP #$31›021020 BCC PRES1›021030 CMP #$3A›021040 BCC PRES2›021050 CMP #$40›021060 BNE PRES1›021070 PRES2 RTS ›021080 ;›021090 PRMOR LDX #PRESM&255›021100 LDY #PRESM/256›021110 JSR PRES1-3›021120 PHA ›021130 JSR NEWCLR›021140 PLA ›021150 RTS ›021160 ;›021170 SDIR6 LDA #0›021180 SDIR66 STA NUMSECS›021190 SDIR7 LDX #$10›021200 LDA #5›021210 STA $0342,X›021220 LDA #FTEMP/256›021230 STA $0345,X›021240 LDA #40›021250 STA $0348,X›021260 LDA #0›021270 STA $0349,X›021280 JSR $E456›021290 BPL SDIR8›021300 JSR NCLOSE›021310 JSR PRESS›021320 JMP SELDIR›021330 SDIR8 LDA #0›021340 STA OFFSET›021350 SDIR9 LDY OFFSET›021360 LDA FTEMP,Y›021370 JSR OUTCHR›021380 INC OFFSET›021390 CMP #$9B›021400 BNE SDIR9›021410 INC NUMSECS›021420 LDA NUMSECS›021430 CMP #16›021440 BCC SDIR7›021450 JSR PRMOR›021460 CMP #$1B›021470 BEQ SDIR88›021480 LDA #$FF›021490 JMP SDIR66›021500 SDIR88 JSR NCLOSE›021510 RTS ›021520 ;›021530 SELM .BYTE 125,155,155," [ÒÅÔÕÒÎ to exit to Main menu]",155›021540 .BYTE 155,"Enter the highest sector # your drive",155›021550 .BYTE "is capable of reading in decimal",155›021560 .BYTE "format: ",0›021570 SELH LDX #SELM&255›021580 LDY #SELM/256›021590 JSR PRINT›021600 LDX #0›021610 LDA #5›021620 STA $0342›021630 STA $0348›021640 STX $0349›021650 STX $F2›021660 LDA #FTEMP&255›021670 STA $0344,X›021680 STA $F3›021690 LDA #FTEMP/256›021700 STA $F4›021710 STA $0345,X›021720 JSR $E456›021730 BPL SELG1›021740 SELG2 JMP MAIN›021750 SELG1 JSR $D800›021760 BCS SELG2›021770 JSR $D9D2›021780 BCS SELG2›021790 LDA $D4›021800 STA MAXSEC›021810 LDX $D5›021820 STX MAXSEC+1›021830 LDY #93›021840 JSR DECPRT›021850 JMP MAIN›021860 ;›021870 SELFP .BYTE 125,155›021880 .BYTE " ",155›021890 .BYTE " | DOS Functions Menu |",155›021900 .BYTE " ",155›021910 .BYTE " | ™ÛÁÝ Subdirectory Dir |",155›021920 .BYTE " | ™ÛÂÝ Format disk |",155›021930 .BYTE " | ™ÛÃÝ Copy file (single)|",155›021940 .BYTE " | ™ÛÄÝ Delete file |",155›021950 .BYTE " | ™ÛÅÝ Rename file |",155›021960 .BYTE " | ™ÛÆÝ Lock file |",155›021970 .BYTE " | ™ÛÇÝ Unlock file |",155›021980 .BYTE " | ™Û±­¹Ý Disk Directories|",155›021990 .BYTE " | ™ÛÒÅÔÕÒÎÝ to exit |",155›022000 .BYTE " ",155,0›022010 FULLD .BYTE 125,155,155,155,"Enter full subdirectory name:",155,155,0›022020 ENNW .BYTE 155,155,"Rename file:",155,155,"Enter [old name],[new name]:",155,155,0›022030 ENTM1 .BYTE 155,155,155,"Enter filename to be ",0›022040 ENTM2 .BYTE "DeletedUnlockedLockedUnlocked"›022050 SELF LDA #1›022060 STA 752›022070 LDX #SELFP&255›022080 LDY #SELFP/256›022090 JSR PRINT›022100 LDY #1›022110 STY DRIVE›022120 DEY ›022130 STY 752›022140 SELF1 JSR KGETCH›022150 AND #$7F›022160 CMP #$1B›022170 BNE SELF2›022180 RTS ›022190 SELF2 JSR UPPER›022200 CMP #$20›022210 BCC SELF1›022220 CMP #$41›022230 BCS SELF3›022240 JSR SELDIR›022250 JMP SELF›022260 SELF3 CMP #'A›022270 BNE SELF4›022280 SELF33 LDX #FULLD&255›022290 LDY #FULLD/256›022300 JSR PRINT›022310 JSR ENTF›022320 BCS SELF33›022330 LDY OFFSET›022340 LDA #'*›022350 STA FTEMP,Y›022360 STA FTEMP+2,Y›022370 LDA #'.›022380 STA FTEMP+1,Y›022390 LDA #$9B›022400 STA FTEMP+3,Y›022410 LDA #$80›022420 STA $035B›022430 JSR NEWCLR›022440 JSR SDIR44›022450 JMP SELF›022460 SELF4 CMP #'D›022470 BEQ SELF5›022480 CMP #'E›022490 BEQ SELF6›022500 CMP #'F›022510 BEQ SELF7›022520 CMP #'G›022530 BEQ SELF8›022540 JMP SELF16›022550 SELF8 LDA #36›022560 .BYTE $2C›022570 SELF7 LDA #35›022580 .BYTE $2C›022590 SELF6 LDA #32›022600 .BYTE $2C›022610 SELF5 LDA #33›022620 PHA ›022630 JSR NCLOSE›022640 JSR NEWCLR›022650 PLA ›022660 STA $0352›022670 STA DNSBUF›022680 SELF55 CMP #32›022690 BNE SELF9›022700 LDX #ENNW&255›022710 LDY #ENNW/256›022720 JSR PRINT›022730 LDA #1›022740 STA COMMAFLG›022750 JMP SELF10›022760 SELF9 LDX #ENTM1&255›022770 LDY #ENTM1/256›022780 JSR PRINT›022790 LDA $0352›022800 SEC ›022810 SBC #33›022820 CLC ›022830 ASL A›022840 ASL A›022850 ASL A›022860 STA OFFSET›022870 LDY #7›022880 STY YTEMP›022890 SELF11 LDX OFFSET›022900 LDA ENTM2,X›022910 JSR OUTCHR›022920 INC OFFSET›022930 DEC YTEMP›022940 BPL SELF11›022950 LDA #':›022960 JSR OUTCHR›022970 LDA #$9B›022980 JSR OUTCHR›022990 JSR OUTCHR›023000 SELF10 JSR ENTF›023010 BCC SELF12›023020 LDA #0›023030 STA COMMAFLG›023040 LDA DNSBUF›023050 STA $0352›023060 JMP SELF55›023070 SELF12 LDX #$10›023080 LDA #0›023090 STA COMMAFLG›023100 LDA #FTEMP&255›023110 STA $0344,X›023120 LDA #FTEMP/256›023130 STA $0345,X›023140 JSR $E456›023150 BPL SELF13›023160 SELF12A JSR READERR›023170 JSR NCLOSE›023180 JMP SELF›023190 SELF13 LDY #28›023200 SELF14 LDA SELF15,Y›023210 STA STATUSL1+10,Y›023220 DEY ›023230 BPL SELF14›023240 LDA #$FF›023250 STA 764›023260 JMP SELF›023270 SELF15 .SBYTE " Ïðåòáôéïî Ãïíðìåôåä®®®      "›023280 ISRC .BYTE 125,155,155,"Copy File:",155,155,"Enter Source filename:",155,155,0›023290 IDES .BYTE 125,155,155,"Copy File:",155,155,"Enter Destination filename:",155,155,0›023300 ICOP .BYTE 155,155,"Copying...",0›023310 SELF16 CMP #'C›023320 BEQ SELF17›023330 JMP SELF30›023340 SELF17 LDX #ISRC&255›023350 LDY #ISRC/256›023360 JSR PRINT›023370 JSR CLRWIN2›023380 JSR ENTF›023390 BCS SELF17›023400 LDY #39›023410 SELF18 LDA FTEMP,Y›023420 STA TRKBUF,Y›023430 DEY ›023440 BPL SELF18›023450 SELF19 LDX #IDES&255›023460 LDY #IDES/256›023470 JSR PRINT›023480 JSR ENTF›023490 BCS SELF19›023500 JSR NCLOSE›023510 JSR NCLOSE2›023520 LDX #ICOP&255›023530 LDY #ICOP/256›023540 JSR PRINT›023550 LDA #3›023560 STA $0352›023570 STA $0362›023580 LDA #TRKBUF&255›023590 STA $0354›023600 LDA #TRKBUF/256›023610 STA $0355›023620 LDA #FTEMP&255›023630 STA $0364›023640 LDA #FTEMP/256›023650 STA $0365›023660 LDA #4›023670 STA $035A›023680 LDA #8›023690 STA $036A›023700 LDX #$10›023710 JSR $E456›023720 BMI SEFRE›023730 LDX #$20›023740 JSR $E456›023750 BMI SEFWE›023760 LDA #0›023770 STA NUMSECS›023780 SELF20 LDA #7›023790 STA $0352›023800 LDA #$0B›023810 STA $0362›023820 LDA #TRKBUF&255›023830 STA $0354›023840 STA $0364›023850 LDA #TRKBUF/256›023860 STA $0355›023870 STA $0365›023880 LDA #0›023890 STA $0358›023900 LDA #9›023910 STA $0359 ;BUF LEN›023920 LDX #$10›023930 JSR $E456›023940 CPY #127›023950 BCC SELF21›023960 CPY #136›023970 BNE SEFRE›023980 LDA $0358›023990 ORA $0359›024000 BEQ SELF22›024010 INC NUMSECS›024020 SELF21 LDA $0358›024030 STA $0368›024040 LDA $0359›024050 STA $0369›024060 LDX #$20›024070 JSR $E456›024080 BMI SEFWE›024090 LDA NUMSECS›024100 BEQ SELF20›024110 SELF22 JSR NCLOSE›024120 JSR NCLOSE2›024130 BMI SEFWE›024140 JMP SELF13›024150 SEFRE STY YTEMP›024160 JSR NCLOSE›024170 JSR NCLOSE2›024180 LDY YTEMP›024190 JSR READERR›024200 JMP SELF›024210 SEFWE STY YTEMP›024220 JSR NCLOSE›024230 JSR NCLOSE2›024240 LDY YTEMP›024250 JSR WRITERR›024260 JMP SELF›024270 NCLOSE2 LDX #$20›024280 LDA #$0C›024290 STA $0342,X›024300 JMP $E456›024310 WHDRV .BYTE 125,155,155,"Which drive to format?",0›024320 WHDNS .BYTE 155,155," Û±Ý Single Û²Ý Double",155,0›024330 WHDNS2 .BYTE 155,155," Û±Ý Single Û³Ý Enhanced",155,0›024340 WHDNS3 .BYTE 155,"Format in which density?",0›024350 DFMT .BYTE 125,155,155,"Format drive "›024360 DFMT2 BRK ›024370 .BYTE " in ",0›024380 DFMT3 .BYTE "SingleDoubleEnhanced"›024390 DFMT4 .BYTE " density?",0›024400 SETDOS JMP ($0C)›024410 SELF30 CMP #'B›024420 BEQ SELF29›024430 SELF28 JMP SELF›024440 SELF29 LDX #WHDRV&255›024450 LDY #WHDRV/256›024460 JSR PRINT›024470 SELF31 JSR KGETCH›024480 JSR UPPER›024490 CMP #$1B›024500 BEQ SELF28›024510 CMP #$31›024520 BCC SELF31›024530 CMP #$3A›024540 BCS SELF31›024550 STA FTEMP+1›024560 JSR OUTCHR›024570 AND #$0F›024580 STA DRIVE›024590 LDA #'D›024600 STA FTEMP›024610 LDA #':›024620 STA FTEMP+2›024630 LDA #$9B›024640 STA FTEMP+3›024650 LDA 4171›024660 CMP #105›024670 BNE SELF50›024680 LDA 4274›024690 CMP #1›024700 BNE SELF50›024710 LDA #1›024720 .BYTE $2C›024730 SELF50 LDA #0›024740 STA YTEMP›024750 CMP #0›024760 BNE SELF41›024770 LDX #WHDNS&255›024780 LDY #WHDNS/256›024790 JSR PRINT›024800 JMP SELF51›024810 SELF41 LDX #WHDNS2&255›024820 LDY #WHDNS2/256›024830 JSR PRINT›024840 SELF51 LDX #WHDNS3&255›024850 LDY #WHDNS3/256›024860 JSR PRINT›024870 SELF32 JSR KGETCH›024880 JSR UPPER›024890 CMP #$1B›024900 BEQ SELF28›024910 CMP #$30›024920 BCC SELF32›024930 CMP #$34›024940 BCS SELF32›024950 LDY YTEMP›024960 BEQ SELF42›024970 CMP #$32›024980 BEQ SELF32›024990 BNE SELF43›025000 SELF42 CMP #$33›025010 BEQ SELF32›025020 SELF43›025030 JSR OUTCHR›025040 PHA ›025050 LDA #$9B›025060 JSR OUTCHR›025070 PLA ›025080 AND #$0F›025090 STA DRIVDEN›025100 LDX DRIVE›025110 JSR SETDNS›025120 JSR SETDOS›025130 LDX DRIVE›025140 JSR CHKDNS›025150 STA DNSBUF+4›025160 LDX #DFMT&255›025170 LDY #DFMT/256›025180 LDA DRIVE›025190 ORA #$30›025200 STA DFMT2›025210 JSR PRINT›025220 LDA DRIVDEN›025230 CMP #3›025240 BEQ SELF34›025250 LDA DNSBUF+4›025260 SELF34 SEC ›025270 STA DNSBUF+2›025280 SBC #1›025290 CLC ›025300 ASL A›025310 ASL A›025320 ASL A›025330 STA DNSBUF+1›025340 LDA #7›025350 STA DNSBUF›025360 SELF35 LDY DNSBUF+1›025370 LDA DFMT3,Y›025380 JSR OUTCHR›025390 INC DNSBUF+1›025400 DEC DNSBUF›025410 BPL SELF35›025420 LDX #DFMT4&255›025430 LDY #DFMT4/256›025440 JSR PRINT›025450 LDA #$FF›025460 STA 764›025470 JSR BELL›025480 SELF36 JSR KGETCH›025490 JSR UPPER›025500 CMP #'Y›025510 BEQ SELF37›025520 JMP SELF›025530 SELF37 JSR OUTCHR›025540 LDA #$9B›025550 JSR OUTCHR›025560 LDA #0›025570 STA $035A›025580 STA $035B›025590 LDA #FTEMP&255›025600 STA $0354›025610 LDA #FTEMP/256›025620 STA $0355›025630 LDA #254›025640 STA $0352›025650 LDA YTEMP›025660 BEQ SELF38›025670 LDA DNSBUF+2›025680 CMP #1›025690 BNE SELF38›025700 LDA #253›025710 STA $0352›025720 SELF38 LDX #$10›025730 JSR $E456›025740 BMI SELF40›025750 JMP SELF13›025760 SELF40 JMP SEFWE›