home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8505.d64
/
disktester
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
128 lines
100 REM*DISKTESTER
105 REM*ULI LANG*
110 REM*TALSTR.10*
115 REM*8609 BISCHBERG*
120 REM*TEL.0951/67389*
125 :
130 L$="[147]":D$="":U$="[145]":Z$="[157]":REM*LOESCHEN,CRSR DOWN,CRSR UP,CRSR BACK*
135 G$="":O$="[129]":B$="[154]":T$="[159]":R$="[150]":REM*GRUEN,ORANGE,HELLBLAU,TUERKIS,ROT*
140 FARBSPEICHER=55296:BILDSCHIRMSPEICHER=1024
145 DIMT%(100),S%(100):REM*FEHLERHAFTE BLOCKS*
150 PRINTL$G$D$SPC(15)"DISKTESTER"D$:POKE53280,0:POKE53281,0:REM*SCWARZ*
155 PRINTO$D$"<"B$"A"O$"> ALLE BLOCKS TESTEN"
160 PRINTD$"<"B$"B"O$"> BELEGTE BLOCKS TESTEN"
165 PRINTD$"<"B$"K"O$"> KAPUTTE BLOCKS BELEGEN"
170 GETA$
175 IFA$="A"THENTS=1:GOTO210
180 IFA$="B"THENTS=0:GOTO210
185 IFA$="K"THEN575
190 GOTO170
195 REM*****************
200 REM*DISKETTE TESTEN*
205 REM*****************
210 DIMB%(35,23),F$(8):K$=",":N$=CHR$(0):FR=0:FE=0:FT=0
215 FORI=0TO8:READF$(I):NEXT:REM*FEHLERMELDUNGEN*
220 GOSUB610:REM*AUF SPACE WARTEN*
225 OPEN15,8,15,"I"
230 PRINTL$"VALIDATE? "B$"J/N"
235 GETA$
240 IFA$="N"THEN255
245 IFA$="J"THENPRINTL$T$D$"VALIDATING...":PRINT#15,"V":GOTO255
250 GOTO235
255 OPEN3,8,3,"#":IFTSTHENOPEN5,8,5,"#"
260 PRINTL$T$"BAM WIRD GELESEN "U$
265 PRINT#15,"U1:"3;0;18;0:GET#3,A$,A$,A$
270 IFA$<>CHR$(65)THENPRINTD$"KEIN DOS 2.6 ODER 2.5!":GOTO550
275 GET#3,A$
280 REM***********************
285 REM*ANALYSIEREN DER BAM *
287 REM*AUFGELOEST IN B%(T,S)*
290 REM***********************
295 FORT=1TO35
300 REM*FREIE BLOCKS,SEKTOR 7-0,SEKTOR 15-8,SEKTOR 23-16*
305 GET#3,FR$:FR=FR+ASC(FR$+N$):S=0
310 IFFRTHEN320:REM*NICHT ALLE BLOCKS BELEGT*
315 FORS=0TO23:B%(T,S)=0:NEXTS:GOTO345
320 A=1:GET#3,BA$:BA=ASC(BA$+N$)
325 FORS=STOS+7
330 B%(T,S)=(BAANDA)/A:A=A+A:FT=FT+B%(T,S)
335 NEXTS
340 IFS<23THEN320
345 NEXTT
350 IFFR<>FTTHENPRINTL$R$TAB(14)"!BAM-FEHLER!":GOTO550
355 GOSUB635
360 REM***********************
365 REM*START DER TESTROUTINE*
370 REM***********************
375 IFTS=0THENFR=683-FR:REM*VOLLE BLOCKS*
380 IFTS=0THEN400
385 REM*170=%10101010 , 85=%01010101*
390 PRINT#15,"B-P:"5;1:FORI=1TO128:PRINT#5,CHR$(170)CHR$(85);:NEXT
395 REM*PUFFER BRAUCHT NUR EINMAL GEFUELLT ZU WERDEN*
400 FORT=1TO35:REM*SPURZAEHLER*
405 IFT<18THENMS=20:GOTO425
410 IFT<25THENMS=18:GOTO425
415 IFT<31THENMS=17:GOTO425
420 MS=16
425 FORS=0TOMS:REM*BLOCKZAEHLER*
430 ONTS*2+B%(T,S)GOTO485,435,440
435 PRINT#15,"U1:"3;0;T;S:GOTO445:REM*BLOCK LESEN*
440 PRINT#15,"B-W:"5;0;T;S:REM*BUFFER AUF DISK SCHREIBEN*
445 AO=40*(20-S)+T+3:REM*ADRESSOFFSET*
450 INPUT#15,F:IFF<20THENP=32:GOTO480
455 IFF<29THENF$=F$(F-20):GOTO465
460 F$=""
465 PRINTR$F;F$" T:"T;Z$" S:"S;Z$" "U$
470 POKEFA+AO,10:P=81+6*B%(T,S):REM*ROTES"[209],[215]"
475 T%(FE)=T:S%(FE)=S:FE=FE+B%(T,S)
480 POKEBI+AO,P
485 NEXTS
490 NEXTT:CLOSE5:CLOSE3
495 IFFE=0THENPRINT" !KEINE ZU BELEGENDEN FEHLER!";:GOTO550
500 REM*****************************
505 REM*BELEGEN DER KAPUTTEN BLOCKS*
510 REM*****************************
515 PRINTL$T$" TEST ZUENDE, BELEGEN UND KENNZEICHNEN"
520 PRINTTAB(8)"DER FEHLERHAFTEN BLOCKS"
525 FORI=0TOFE-1
530 PRINT#15,"B-A:"0;T%(I);S%(I):REM*IN BAM BELEGEN*
535 NEXT
540 OPEN3,8,3,"@:.DISKFEHLER,U,W":PRINT#3,CHR$(FE-1);
545 FORI=0TOFE-1:PRINT#15,T%(I)CHR$(13)S%(I):NEXT
550 CLOSE3:CLOSE15:END
555 :
560 REM******************************
565 REM*WIEDERBELEGUNG NACH VALIDATE*
570 REM******************************
575 GOSUB610
580 PRINTL$T$"WIEDERBELEGEN DER SCHADHAFTEN BLOCKS"
585 OPEN15,8,15,"I":OPEN5,8,5,".DISKFEHLER,U,R"
590 GET#5,A$:FE=ASC(A$)
595 FORI=0TOFE:INPUT#5,T%(I),S%(I):PRINTR$"T:"T%(I),"S:"S%(I):NEXT:CLOSE5
600 FORI=0TOFE:PRINT#15,"B-A:"0;T%(I);S%(I):NEXT:CLOSE15:END
605 :
610 PRINTL$TAB(9)O$"TESTDISKETTE EINLEGEN":PRINTTAB(17)"<"B$"SPACE"O$">"
615 GETA$:IFA$<>" "THEN615
620 RETURN
625 :
630 REM*BAM DARSTELLEN*
635 PRINTL$;
640 FORS=20TO0STEP-1
645 PRINTO$S;TAB(4);
650 FORT=1TO35
655 IFT<18THENMS=20:GOTO675
660 IFT<25THENMS=18:GOTO675
665 IFT<31THENMS=17:GOTO675
670 MS=16
675 IFS>MSTHEN690
680 IFB%(T,S)=0THENPRINTB$"-";:GOTO690
685 PRINTG$"*";
690 NEXTT:PRINT
695 NEXTS:PRINTTAB(4);
700 FORT=1TO35:PRINTRIGHT$(STR$(T),1);:NEXT
705 PRINT:RETURN
710 REM*FEHLERMELDUNGEN*
715 DATA"KEIN HEADER ","KEIN SYNC CHAR ","KEIN BLOCK VORH. "
720 DATA"PRUEFSUMME DATEN ","BITMUSTERFEHLER ","SCHREIBFEHLER "
725 DATA"SCHREIBSCHUTZ ","PRUEFSUMME HEADER","BLOCK ZU LANG "