home *** CD-ROM | disk | FTP | other *** search
/ Tiger Disk 27 / Tiger_Disk_027_19xx_Tiger-Crew-Disk_de_Side_A.d64 / disk-tester (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  4KB  |  128 lines

  1. 100 poke788,52: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.