10 REM V 20 OSRDCH=&FFE0 30 OSASCI=&FFE3 40 OSWORD=&FFF1 60 DRIVE=&2F9F 70 TRACK=&2F9D 80 LOSIZE=&2FAB 90 HISIZE=&2FAC 100 TCOUNT=&2FAF 110 FORI%=0 TO 2 STEP 2 120 P%=&3200 130 [OPTI% 140 .verify 150 LDY #0 160 .findend 170 LDA(&F2),Y:INY:CMP#13:BEQhelp:CMP#32:BNE findend:BEQ findd1 180 .help 190 JSR print 200 EQUB10 210 EQUS"DFS disk verifyer" 220 EQUW&0A0D 230 EQUB10 240 EQUS"*V " 250 EQUW&0A0D 260 EQUW&000A 270 RTS 280 .findd1 290 LDA(&F2),Y:CMP #32:BNE gck1 300 .skip1 310 INY:LDA(&F2),Y:CMP #32:BEQ skip1 320 .gck1 330 CMP#13:BEQ help 340 .clrbuf1 350 LDA #32:LDX #16 360 .clr1 370 DEX:STA buffer,X:BNE clr1 380 .getd1 390 LDA (&F2),Y:STA buffer,X 400 INY:INX 410 CMP #13:BEQ ok 420 CMP #32:BNE getd1:BEQ ok 430 .fault 440 BRK:EQUB 128 450 EQUS "Disc not formated !!!" 460 EQUB 0 470 .ok 480 JSR print 490 EQUB10 500 EQUS"Press any key when ready" 510 EQUW&0A0D 520 EQUW &000A 530 JSR OSRDCH 540 LDX #0 550 LDA buffer,X:SEC:SBC #48 570 STA DRIVE:STX TRACK:STX VERR+1 572 CMP #4:BMI START:JMP help 580 .START 590 JSR DIRCMD \ Set cmd blk 600 LDA #&7F:LDX #&A0:LDY #&2F 610 JSR OSWORD 620 LDA &2FAA \ Get error code 630 CMP #0:BEQ V1:JMP fault 640 .V1 650 LDA &3106 \ Get hi disc size 660 AND #&03 670 CMP #&01:BEQ DS1 680 CMP #&03:BEQ DS2 690 JMP fault 700 .DS1 710 LDA #&28 \ Set 40 track 720 STA TCOUNT:JMP DVER 730 .DS2 740 LDA #&50 \ Set 80 track 750 STA TCOUNT 760 .DVER 770 JSR DCHAR 780 JSR VER \ Set up verify 790 LDA #&7F:LDX #&90:LDY #&2F 800 JSR OSWORD 810 LDA &2F9A \ Get error code 820 CMP #0:BEQ DV2:INC VERR+1 830 LDA #&3F:JSR OSASCI \ PRINT"?" 840 LDA #&20:JSR OSASCI \ PRINT" " 850 JMP DV3 860 .DV2 870 LDA #&20:JSR OSASCI:JSR OSASCI 880 .DV3 890 INC TRACK:LDA TRACK 900 CMP TCOUNT:BNE DVER 901 PHA:JSR &FFE7:PLA 902 CMP #&50:BNE t40 903 LDA #&38:JMP pt 904 .t40 905 LDA #&34 906 .pt 907 JSR OSASCI:LDA #&30:JSR OSASCI 910 JSR print 920 EQUS" track disc has " 930 EQUB0 932 .VERR 940 LDA #0:JSR DCHAR+3 950 JSR print 960 EQUS" errors " 970 EQUB0 1000 JSR &FFE7:JSR &FFE7 1010 RTS \ Return to basic 1020 1030 .DIRCMD 1040 LDX #0:LDA DRIVE:STA &2FA0,X 1050 INX:LDA #&00:STA &2FA0,X 1060 INX:LDA #&31:STA &2FA0,X 1070 INX:LDA #&00:STA &2FA0,X 1080 INX:STA &2FA0,X 1090 INX:LDA #&03:STA &2FA0,X 1100 INX:LDA #&53:STA &2FA0,X 1110 INX:LDA #&00:STA &2FA0,X 1120 INX:LDA #&01:STA &2FA0,X 1130 INX:LDA #&21:STA &2FA0,X 1140 INX:LDA #&FF:STA &2FA0,X 1150 RTS 1160 .VER 1170 LDX #0:LDA DRIVE:STA &2F90,X 1180 INX:LDA #&00:STA &2F90,X 1190 INX:STA &2F90,X 1200 INX:STA &2F90,X 1210 INX:STA &2F90,X 1220 INX:LDA #&03:STA &2F90,X 1230 INX:LDA #&5F:STA &2F90,X 1240 INX:LDA TRACK:STA &2F90,X 1250 INX:LDA #&00:STA &2F90,X 1260 INX:LDA #&2A:STA &2F90,X 1270 INX:LDA #&FF:STA &2F90,X 1280 RTS 1290 .DCHAR 1300 LDA TRACK:TAY 1310 LDX #&FE 1320 ROR A:ROR A:ROR A:ROR A 1330 .CHAR2 1340 AND #&0F 1350 SEC:SBC #&0A:BCS TX1 1360 ADC #&3A:BCS TX2 1370 .TX1 1380 ADC #&40 1390 .TX2 1400 JSR OSASCI 1410 INX:BEQ TX3 1420 TYA:JMP CHAR2 1430 .TX3 1440 RTS 1450 .print 1460 LDY #0:PLA:STA pr1+2:PLA:STA pr1+3 1470 .pr1 1480 INY:LDA &FFFF,Y \DUMMY 1490 JSR &FFE3:BNE pr1 1500 TYA:CLC:ADC pr1+2:TAX:BCC pr2:INC pr1+3 1510 .pr2 1520 LDA pr1+3:PHA:TXA:PHA:RTS 1530 .buffer EQUS "XXXXXXXXXXXXXXXX":EQUB13 1540 .buffer2 EQUS "XXXXXXXXXXXXXXXX":EQUB13 1550 ] 1560 NEXT 1570 REM OSCLI"*SAVE V "+STR$~verify+" "+STR$~P%