home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / s85xx / s8505.d64 / disktester (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  4KB  |  128 lines

  1. 100 REM*DISKTESTER
  2. 105 REM*ULI LANG*
  3. 110 REM*TALSTR.10*
  4. 115 REM*8609 BISCHBERG*
  5. 120 REM*TEL.0951/67389*
  6. 125 :
  7. 130 L$="[147]":D$="":U$="[145]":Z$="[157]":REM*LOESCHEN,CRSR DOWN,CRSR UP,CRSR BACK*
  8. 135 G$="":O$="[129]":B$="[154]":T$="[159]":R$="[150]":REM*GRUEN,ORANGE,HELLBLAU,TUERKIS,ROT*
  9. 140 FARBSPEICHER=55296:BILDSCHIRMSPEICHER=1024
  10. 145 DIMT%(100),S%(100):REM*FEHLERHAFTE BLOCKS*
  11. 150 PRINTL$G$D$SPC(15)"DISKTESTER"D$:POKE53280,0:POKE53281,0:REM*SCWARZ*
  12. 155 PRINTO$D$"<"B$"A"O$"> ALLE    BLOCKS TESTEN"
  13. 160 PRINTD$"<"B$"B"O$"> BELEGTE BLOCKS TESTEN"
  14. 165 PRINTD$"<"B$"K"O$"> KAPUTTE BLOCKS BELEGEN"
  15. 170 GETA$
  16. 175 IFA$="A"THENTS=1:GOTO210
  17. 180 IFA$="B"THENTS=0:GOTO210
  18. 185 IFA$="K"THEN575
  19. 190 GOTO170
  20. 195 REM*****************
  21. 200 REM*DISKETTE TESTEN*
  22. 205 REM*****************
  23. 210 DIMB%(35,23),F$(8):K$=",":N$=CHR$(0):FR=0:FE=0:FT=0
  24. 215 FORI=0TO8:READF$(I):NEXT:REM*FEHLERMELDUNGEN*
  25. 220 GOSUB610:REM*AUF SPACE WARTEN*
  26. 225 OPEN15,8,15,"I"
  27. 230 PRINTL$"VALIDATE? "B$"J/N"
  28. 235 GETA$
  29. 240 IFA$="N"THEN255
  30. 245 IFA$="J"THENPRINTL$T$D$"VALIDATING...":PRINT#15,"V":GOTO255
  31. 250 GOTO235
  32. 255 OPEN3,8,3,"#":IFTSTHENOPEN5,8,5,"#"
  33. 260 PRINTL$T$"BAM WIRD GELESEN         "U$
  34. 265 PRINT#15,"U1:"3;0;18;0:GET#3,A$,A$,A$
  35. 270 IFA$<>CHR$(65)THENPRINTD$"KEIN DOS 2.6 ODER 2.5!":GOTO550
  36. 275 GET#3,A$
  37. 280 REM***********************
  38. 285 REM*ANALYSIEREN DER BAM  *
  39. 287 REM*AUFGELOEST IN B%(T,S)*
  40. 290 REM***********************
  41. 295 FORT=1TO35
  42. 300   REM*FREIE BLOCKS,SEKTOR 7-0,SEKTOR 15-8,SEKTOR 23-16*
  43. 305   GET#3,FR$:FR=FR+ASC(FR$+N$):S=0
  44. 310   IFFRTHEN320:REM*NICHT ALLE BLOCKS BELEGT*
  45. 315   FORS=0TO23:B%(T,S)=0:NEXTS:GOTO345
  46. 320   A=1:GET#3,BA$:BA=ASC(BA$+N$)
  47. 325   FORS=STOS+7
  48. 330     B%(T,S)=(BAANDA)/A:A=A+A:FT=FT+B%(T,S)
  49. 335   NEXTS
  50. 340   IFS<23THEN320
  51. 345 NEXTT
  52. 350 IFFR<>FTTHENPRINTL$R$TAB(14)"!BAM-FEHLER!":GOTO550
  53. 355 GOSUB635
  54. 360 REM***********************
  55. 365 REM*START DER TESTROUTINE*
  56. 370 REM***********************
  57. 375 IFTS=0THENFR=683-FR:REM*VOLLE BLOCKS*
  58. 380 IFTS=0THEN400
  59. 385 REM*170=%10101010 , 85=%01010101*
  60. 390 PRINT#15,"B-P:"5;1:FORI=1TO128:PRINT#5,CHR$(170)CHR$(85);:NEXT
  61. 395 REM*PUFFER BRAUCHT NUR EINMAL GEFUELLT ZU WERDEN*
  62. 400 FORT=1TO35:REM*SPURZAEHLER*
  63. 405   IFT<18THENMS=20:GOTO425
  64. 410   IFT<25THENMS=18:GOTO425
  65. 415   IFT<31THENMS=17:GOTO425
  66. 420   MS=16
  67. 425   FORS=0TOMS:REM*BLOCKZAEHLER*
  68. 430     ONTS*2+B%(T,S)GOTO485,435,440
  69. 435     PRINT#15,"U1:"3;0;T;S:GOTO445:REM*BLOCK LESEN*
  70. 440     PRINT#15,"B-W:"5;0;T;S:REM*BUFFER AUF DISK SCHREIBEN*
  71. 445     AO=40*(20-S)+T+3:REM*ADRESSOFFSET*
  72. 450     INPUT#15,F:IFF<20THENP=32:GOTO480
  73. 455     IFF<29THENF$=F$(F-20):GOTO465
  74. 460     F$=""
  75. 465     PRINTR$F;F$" T:"T;Z$" S:"S;Z$" "U$
  76. 470     POKEFA+AO,10:P=81+6*B%(T,S):REM*ROTES"[209],[215]"
  77. 475     T%(FE)=T:S%(FE)=S:FE=FE+B%(T,S)
  78. 480     POKEBI+AO,P
  79. 485   NEXTS
  80. 490 NEXTT:CLOSE5:CLOSE3
  81. 495 IFFE=0THENPRINT"      !KEINE ZU BELEGENDEN FEHLER!";:GOTO550
  82. 500 REM*****************************
  83. 505 REM*BELEGEN DER KAPUTTEN BLOCKS*
  84. 510 REM*****************************
  85. 515 PRINTL$T$" TEST ZUENDE, BELEGEN UND KENNZEICHNEN"
  86. 520 PRINTTAB(8)"DER FEHLERHAFTEN BLOCKS"
  87. 525 FORI=0TOFE-1
  88. 530   PRINT#15,"B-A:"0;T%(I);S%(I):REM*IN BAM BELEGEN*
  89. 535 NEXT
  90. 540 OPEN3,8,3,"@:.DISKFEHLER,U,W":PRINT#3,CHR$(FE-1);
  91. 545 FORI=0TOFE-1:PRINT#15,T%(I)CHR$(13)S%(I):NEXT
  92. 550 CLOSE3:CLOSE15:END
  93. 555 :
  94. 560 REM******************************
  95. 565 REM*WIEDERBELEGUNG NACH VALIDATE*
  96. 570 REM******************************
  97. 575 GOSUB610
  98. 580 PRINTL$T$"WIEDERBELEGEN DER SCHADHAFTEN BLOCKS"
  99. 585 OPEN15,8,15,"I":OPEN5,8,5,".DISKFEHLER,U,R"
  100. 590 GET#5,A$:FE=ASC(A$)
  101. 595 FORI=0TOFE:INPUT#5,T%(I),S%(I):PRINTR$"T:"T%(I),"S:"S%(I):NEXT:CLOSE5
  102. 600 FORI=0TOFE:PRINT#15,"B-A:"0;T%(I);S%(I):NEXT:CLOSE15:END
  103. 605 :
  104. 610 PRINTL$TAB(9)O$"TESTDISKETTE  EINLEGEN":PRINTTAB(17)"<"B$"SPACE"O$">"
  105. 615 GETA$:IFA$<>" "THEN615
  106. 620 RETURN
  107. 625 :
  108. 630 REM*BAM DARSTELLEN*
  109. 635 PRINTL$;
  110. 640 FORS=20TO0STEP-1
  111. 645 PRINTO$S;TAB(4);
  112. 650   FORT=1TO35
  113. 655     IFT<18THENMS=20:GOTO675
  114. 660     IFT<25THENMS=18:GOTO675
  115. 665     IFT<31THENMS=17:GOTO675
  116. 670     MS=16
  117. 675     IFS>MSTHEN690
  118. 680     IFB%(T,S)=0THENPRINTB$"-";:GOTO690
  119. 685     PRINTG$"*";
  120. 690   NEXTT:PRINT
  121. 695 NEXTS:PRINTTAB(4);
  122. 700 FORT=1TO35:PRINTRIGHT$(STR$(T),1);:NEXT
  123. 705 PRINT:RETURN
  124. 710 REM*FEHLERMELDUNGEN*
  125. 715 DATA"KEIN HEADER      ","KEIN SYNC CHAR   ","KEIN BLOCK VORH. "
  126. 720 DATA"PRUEFSUMME DATEN ","BITMUSTERFEHLER  ","SCHREIBFEHLER    "
  127. 725 DATA"SCHREIBSCHUTZ    ","PRUEFSUMME HEADER","BLOCK ZU LANG    "
  128.