home *** CD-ROM | disk | FTP | other *** search
/ Tiger Disk 111 / Tiger_Disk_111_20xx_Tiger-Crew-Disk_de_Side_B.d64 / disk-fueller (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  4KB  |  127 lines

  1. 1000 poke53280,0: poke53281,0: rem farbe
  2. 1010 print chr$(14);"[147][152]  [214][195] 1541    [196] i s k   [198] u e l l e r":print:print:print
  3. 1015 print"[196]ieses [208]rogramm wurde geschrieben von:":print:print
  4. 1020 print,"[154]  [213]we [199]erlach": print,"  [194]ruehlstr. 23": print: print,"  6440 [194]ebra 1[152]"
  5. 1025 print:print:print"[197]s schafft auf vollen [196]isketten noch"
  6. 1030 print"etwas [208]latz, indem es die eigentlich"
  7. 1035 print"fuer das [196]irectory vorgesehene [211]pur 18"
  8. 1040 print"belegt.":print:print"[196]isk einlegen und [212]aste druecken!"
  9. 1045 poke198,0:wait198,1:poke198,0
  10. 1050 open 1,8,15,"i": rem  fuer befehle
  11. 1060 open 2,8,2,"#" : rem  pufferkanal
  12. 1090 :
  13. 1100 rem  *****************************
  14. 1110 rem    directorylaenge ermitteln
  15. 1120 rem  *****************************
  16. 1130 :
  17. 2000 dim t(25): dim s(25): dim e(25)
  18. 2010 print# 1, "u1:"2;0;18;0: rem  bam
  19. 2020 get# 2,t$,s$: rem  zeiger auf dir.
  20. 2030 t(0)=asc(t$+chr$(0)): rem  track
  21. 2040 s(0)=asc(s$+chr$(0)): rem  sector
  22. 2050 t=t(0): rem  track  dir. anfang
  23. 2060 s=s(0): rem  sector dir. anfang
  24. 2070 b=1: rem  blockzaehler
  25. 2100 print# 1, "u1:"2;0;t;s
  26. 2110 get# 2,t$,s$: rem  zeiger
  27. 2120 t=asc(t$+chr$(0))
  28. 2130 s=asc(s$+chr$(0))
  29. 2140 if t=0 or t>35 or s>20 or b=25 then 2400:  rem  letzter directory-block
  30. 2150 t(b)=t: s(b)=s: rem  zeiger merken
  31. 2155 e(b-1)=8: rem  eintraege im block
  32. 2160 b=b+1: rem  zaehler erhoehen
  33. 2190 goto 2100 : rem  naechster block
  34. 2400 m=b: rem  dir. blockzahl
  35. 2500 f=0: rem  zaehler freie eintraege
  36. 2510 for i=2 to 226 step 32
  37. 2520 : print# 1, "b-p:"2,i: rem zeiger
  38. 2530 : get# 2,w$: rem  filetyp
  39. 2540 : if w$="" then f=f+1: rem  frei
  40. 2590 next i: rem  alle eintr. im block
  41. 2600 e(b-1)=8-f: rem  eintraege/block
  42. 2610 if f=8 and m=1 then 7800: rem leer
  43. 2700 print "[199]enuegen";f;"freie [196]irectory-[208]laetze ? ";
  44. 2750 get a$: if a$="" then 2750
  45. 2760 if a$<>"n" then a$="j"
  46. 2770 print a$: print: print: print
  47. 2790 :
  48. 3000 rem  *****************************
  49. 3010 rem    leere dir. bloecke festst.
  50. 3020 rem  *****************************
  51. 3030 :
  52. 3050 print# 1, "u1:"2;0;18;0: rem  bam
  53. 3060 print# 1, "b-p:"2,73: rem  spur 18
  54. 3100 b=0 : rem  blockzaehler
  55. 3110 l=19: rem  zahl leere dir-bloecke
  56. 3120 dim z(25): rem  zustand der blocks
  57. 3130 for i=1 to 3: rem  bytes spur 18
  58. 3140 : get# 2, w$: rem  belegungscode
  59. 3150 : w=asc(w$+chr$(0))
  60. 3160 : for j=1 to 8: rem  dualstellen
  61. 3170 :  w=w/2
  62. 3180 :  if w=int(w) then z(b)=1
  63. 3190 :  if z(b)=0 and a$="n" then a$="": z(b)=1: rem  einen block freihalten
  64. 3195 :  if z(b)=1 and b<19 then l=l-1
  65. 3200 :  b=b+1
  66. 3085 :  w=int(w)
  67. 3220 : next j
  68. 3230 next i
  69. 3310 if l<1 then 8000
  70. 3390 print: print: print "[197]s werden nun";l;" [194]loecke freigestellt !": print
  71. 3990 :
  72. 4000 rem  *****************************
  73. 4010 rem    fuellen der dir.- bloecke
  74. 4020 rem  *****************************
  75. 4021 :
  76. 4025 b=0: rem  blockzaehler, siehe oben
  77. 4027 for e=0 to e(b)-1: rem eintr/block
  78. 4030 at=t(b): rem  alter dir-track
  79. 4035 as=s(b): ns=as: rem  alter sector
  80. 4040 if at=0 and as=0 then 7050
  81. 4050 i=0
  82. 4060 z=e*32+3: rem  stelle des zeigers
  83. 4100 r=0: rem  marke dir.-block aendern
  84. 4150 print# 1, "u1:"2;0;at;as: rem  alt
  85. 4160 print# 1, "b-p:"2,z: rem  zeiger
  86. 4170 get# 2, t$,s$: rem  zeiger forts.
  87. 4180 t=asc(t$+chr$(0))
  88. 4190 s=asc(s$+chr$(0))
  89. 4191 if t=18 then 4670: rem  bearbeitet
  90. 4192 if t=0 or t>35 or s>20 then z=1: goto 4520: rem  fileende
  91. 4200 for i=0 to 18 step 10: rem  suche nach freiem sector im sectorabstand
  92. 4210 : if z(i)=0 then 4500: rem  leer
  93. 4212 : if i=9 then goto 4230
  94. 4215 : if i>8 then i=i-9: goto 4210
  95. 4220 next i
  96. 4230 z=-1: rem  marke: spur 18 voll
  97. 4300 goto 4520: rem  rueck ohne aender.
  98. 4500 print# 1, "b-p:"2,z: rem  zeiger
  99. 4510 print# 2, chr$(18);chr$(i);: rem   zeiger verbiegen
  100. 4515 if at=18 and as=ns then r=1: rem   in den block, aus dem gelesen wurde
  101. 4520 print "      [194]lock";right$("  "+str$(at),3);","right$("  "+str$(as),3);
  102. 4525 if r=1 then print"  [218]eiger";e+1;"geaendert": goto 4570
  103. 4530 print "  -->  18,";right$("  "+str$(ns),3)
  104. 4550 print# 1, "b-a:"0,18,ns:rem in bam
  105. 4560 print# 1, "b-f:"0,at,as: rem  alten block freigeben
  106. 4570 z(i)=1: rem block in liste belegen
  107. 4580 print# 1, "u2:"2;0;18;ns:rem ruec
  108. 4650 at=t: as=s: ns=i: rem  norm. block
  109. 4655 if z=-1 then goto 9000: rem  ok
  110. 4660 if z<>1 then z=0: goto 4100
  111. 4670 next e: rem  neuer dir.-eintrag
  112. 4680 b=b+1: goto 4027: rem  weiter mit naechstem directoryblock
  113. 6990 :
  114. 7000 rem  *****************************
  115. 7010 rem         fehlermeldungen
  116. 7020 rem  *****************************
  117. 7030 :
  118. 7050 print: print "[197]s waren nicht genug belegte [194]locks da."
  119. 7060 print " [211]pur 18 ist immernoch teilweise frei!"
  120. 7090 goto 9000
  121. 7800 print:print:print"[196]ie [196]iskette ist leer!"
  122. 7810 goto 9000
  123. 8000 print "[212]ut mir leid, da ist nichts zu machen."
  124. 8010 print "[196]ie gesamte [211]pur 18 ist voll belegt !"
  125. 9000 print
  126. 9010 close 1: close 2: end
  127.