home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 84xx / 8410.d64 / disk-dump (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  5KB  |  211 lines

  1. 100 PRINT"[147][145][145][145]"
  2. 101 REM COPYRIGHT (C) 1984 BY
  3. 102 REM HORST WIBBING, 62 WIESBADEN
  4. 110 PRINT"    ****************************"
  5. 120 PRINT"    *                          *"
  6. 130 PRINT"    *      DISK - DUMP  V2     *"
  7. 140 PRINT"    *                          *"
  8. 150 PRINT"    ****************************"
  9. 151 PRINT""
  10. 153 PRINT"IST DIE DISKETTE DRIN ? ";
  11. 154 GET Y$:IF(Y$<>"Y"ANDY$<>"J")THEN154
  12. 155 PRINT"[147]"
  13. 160 REM ***** INIT *****
  14. 161 D=0:D$(0)="OFF[146]":D$(1)="ON [146]"
  15. 162 TR=18:SE=0
  16. 163 PRINT""
  17. 164 DIMB$(255)
  18. 165 GOTO270
  19. 166 REM ***** TRACK/SECTOR *****
  20. 170 PRINT"    WHICH TRACK ( 1 - 35 )";
  21. 180 INPUTTR
  22. 190 IFTR<1ORTR>35THENPRINT"[145][145]":GOTO170
  23. 200 IFTR<18THENSR=20:GOTO240
  24. 210 IFTR<25THENSR=18:GOTO240
  25. 220 :IFTR<31THENSR=17:GOTO240
  26. 230 :SR=16
  27. 235 REM *****
  28. 240 PRINT"    WHICH SECTOR ( 0 -";SR;")";
  29. 250 INPUTSE
  30. 260 IFSE<0ORSE>SRTHENPRINT"[145][145][145]":GOTO240
  31. 265 REM *****
  32. 270 GOSUB1000:REM LESEN
  33. 280 GOSUB2000:REM AUSDRUCKEN
  34. 310 REM *****
  35. 320 PRINT"  1 => NEXT BLOCK      2 => SAME BLOCK"
  36. 330 PRINT"  3 => PREV. BLOCK     4 => OTHER BLOCK"
  37. 340 PRINT"  5 => AENDERN         6 => PRINTER ";D$(D)
  38. 350 PRINT"  0 => END"
  39. 360 GETT$:IFT$=""THEN360
  40. 370 IFT$="1"THENGOSUB3000:GOTO270
  41. 380 IFT$="2"THENGOTO280
  42. 385 IFT$="3"THENGOSUB3500:GOTO270
  43. 390 IFT$="4"THENGOTO170
  44. 391 IFT$="5"THENGOSUB5000:PRINT"[147]":GOTO 320
  45. 392 IFT$="6"THENGOSUB2500:GOTO410
  46. 400 IFT$="0"THENGOTO9999
  47. 410 PRINT"[145][145][145][145][145]":GOTO320
  48. 430 REM ***************** ENDE ******
  49. 1000 REM *******************
  50. 1001 REM **** SUB LESEN ****
  51. 1002 REM *******************
  52. 1010 OPEN15,8,15
  53. 1020 OPEN8,8,8,"#"
  54. 1025 PRINT#15,"U1 8 0"TR,SE
  55. 1030 FORI=0TO255
  56. 1040 :GET#8,B$(I)
  57. 1070 NEXTI
  58. 1080 CLOSE8:CLOSE15
  59. 1090 RETURN
  60. 1100 REM *********** ENDE SUB LESEN *****
  61. 2000 REM **********************
  62. 2001 REM **** SUB AUSDRUCK ****
  63. 2002 REM **********************
  64. 2010 IFTR<18THENBL=21*(TR-1)+SE:GOTO2050
  65. 2020 IFTR<25THENBL=19*(TR-1)+SE+34:GOTO2050
  66. 2030 IFTR<31THENBL=18*(TR-1)+SE+34+24:GOTO2050
  67. 2040 BL=17*(TR-1)+SE+34+24+30
  68. 2050 IFD=1THENOPEN4,4
  69. 2051 PRINT"[147] TRACK:";TR;"  SECTOR:";SE;"  BLOCK:";BL"[146]"
  70. 2055 IFD=1THENPRINT#4," TRACK:";TR;"  SECTOR:";SE;"  BLOCK:";BL"[146]"
  71. 2060 PRINT""
  72. 2070 FORI=0TO15
  73. 2071 :C$=""
  74. 2072 :X=8*I:GOSUB 6000:REM DEC-HEX
  75. 2075 :PRINT" ";X$;" : ";
  76. 2076 :IFD=1THENPRINT#4," ";X$;" : ";
  77. 2080 :FORJ=0TO7
  78. 2088 :X=(ASC(B$(I*8+J)+CHR$(0)))
  79. 2089 :GOSUB 6000:REM DEC-HEX
  80. 2090 :PRINT" ";X$;
  81. 2091 :IFD=1THENPRINT#4," ";X$;
  82. 2095 :GOSUB4000:REM CHECK
  83. 2100 :NEXTJ
  84. 2110 :PRINTC$
  85. 2111 :IFD=1THENPRINT#4,C$
  86. 2120 NEXTI
  87. 2125 REM ***** 2.SEITE
  88. 2130 PRINT"   TASTE"
  89. 2140 GETT$:IFT$=""THEN2140
  90. 2150 PRINT" TRACK:";TR;"  SECTOR:";SE;"  BLOCK:";BL"[146]"
  91. 2155 IFD=1THENPRINT#4," TRACK:";TR;"  SECTOR:";SE;"  BLOCK:";BL"[146]"
  92. 2160 PRINT""
  93. 2170 FORI=16TO31
  94. 2171 :C$=""
  95. 2172 :X=(8*I):GOSUB 6000:REM DEC-HEX
  96. 2175 :PRINT" ";X$;" : ";
  97. 2176 :IFD=1THENPRINT#4," ";X$;" : ";
  98. 2180 :FORJ=0TO7
  99. 2188 :X=(ASC(B$(I*8+J)+CHR$(0)))
  100. 2189 :GOSUB 6000:REM DEC-HEX
  101. 2190 :PRINT" ";X$;
  102. 2191 :IFD=1THENPRINT#4," ";X$;
  103. 2195 :GOSUB4000:REM CHECK
  104. 2200 :NEXTJ
  105. 2210 :PRINTC$
  106. 2211 :IFD=1THENPRINT#4,C$
  107. 2220 NEXTI
  108. 2225 IFD=1THENCLOSE4
  109. 2230 RETURN
  110. 2240 REM ***********ENDE SUB AUSDRUCK*****
  111. 2500 REM *********************
  112. 2510 REM **** SUB PRINTER ****
  113. 2520 REM *********************
  114. 2530 IFD=0THEND=1:RETURN
  115. 2540 IFD=1THEND=0:RETURN
  116. 2550 REM *********** ENDE SUB PRINTER *****
  117. 3000 REM ************************
  118. 3001 REM **** SUB NEXT BLOCK ****
  119. 3002 REM ************************
  120. 3010 SE=SE+1
  121. 3020 IFTR<18ANDSE>20THENTR=TR+1:SE=0:RETURN
  122. 3030 IFTR<25ANDSE>18THENTR=TR+1:SE=0:RETURN
  123. 3040 IFTR<31ANDSE>17THENTR=TR+1:SE=0:RETURN
  124. 3050 IFTR<36ANDSE>16THENTR=TR+1:SE=0
  125. 3060 IFTR=36THENTR=0
  126. 3070 RETURN
  127. 3080 REM *********** ENDE SUB NEXT BLOCK *****
  128. 3500 REM *************************
  129. 3510 REM **** SUB PREV. BLOCK ****
  130. 3520 REM *************************
  131. 3530 SE=SE-1
  132. 3540 IFSE<0THENGOTO3600
  133. 3550 RETURN
  134. 3600 TR=TR-1
  135. 3610 SE=16
  136. 3620 IFTR=0THENTR=35:RETURN
  137. 3630 IFTR<18THENSE=20:RETURN
  138. 3640 IFTR<25THENSE=18:RETURN
  139. 3650 IFTR<31THENSE=17
  140. 3660 RETURN
  141. 3670 REM *********** ENDE SUB PREV. BLOCK *****
  142. 4000 REM *******************
  143. 4001 REM **** SUB CHECK ****
  144. 4002 REM *******************
  145. 4010 B=ASC(B$(I*8+J)+CHR$(0))
  146. 4020 IF((B<32)OR((B>127)AND(B<160)))THENC$=C$+" ":GOTO4030
  147. 4025 C$=C$+B$(I*8+J)
  148. 4030 RETURN
  149. 4040 REM *********** ENDE SUB CHECK *****
  150. 5000 REM *********************
  151. 5001 REM **** SUB AENDERN ****
  152. 5002 REM *********************
  153. 5010 PRINT"ADDR (00-FF/X=EXIT)";:INPUTADR$
  154. 5015 IFADR$=""THENGOTO5010
  155. 5020 IFADR$="X"THENGOTO5150
  156. 5030 IFLEN(ADR$)<2THENADR$="0"+ADR$
  157. 5040 IFLEN(ADR$)>2THENADR$=RIGHT$(ADR$,2)
  158. 5045 X$=ADR$
  159. 5046 GOSUB 6500:REM HEX-DEC
  160. 5050 I=X
  161. 5060 PRINT"WERT (00-FF)";:INPUTW$
  162. 5065 IFW$=""THENGOTO5060
  163. 5070 IFLEN(W$)<2THENW$="0"+W$
  164. 5080 IFLEN(W$)>2THENW$=RIGHT$(W$,2)
  165. 5085 X$=W$
  166. 5086 GOSUB 6500:REM HEX-DEC
  167. 5090 B$(I)=CHR$(X)
  168. 5100 GOTO5000
  169. 5110 REM *****
  170. 5150 GOSUB2000:REM AUSDRUCKEN
  171. 5160 PRINT"AUF DISK SCHREIBEN";:INPUTY$
  172. 5170 IF((Y$<>"J")AND(Y$<>"Y"))THENGOTO5300
  173. 5175 B1=ASC(B$(0)+CHR$(0))+1
  174. 5180 OPEN15,8,15
  175. 5190 OPEN8,8,8,"#"
  176. 5200 FORI=1TO255
  177. 5205 :IFB$(I)=""THENPRINT#8,CHR$(0);:GOTO5220
  178. 5210 :PRINT#8,B$(I);
  179. 5220 NEXTI
  180. 5225 PRINT#15,"B-P:8",B1
  181. 5230 PRINT#15,"B-W:8,0"TR,SE
  182. 5240 CLOSE8:CLOSE15
  183. 5300 PRINT"WEITER AENDERN";:INPUTY$
  184. 5310 IF((Y$="J")OR(Y$="Y"))THENGOTO5000
  185. 5320 RETURN
  186. 5330 REM *********** ENDE SUB AENDERN *****
  187. 6000 REM *********************
  188. 6010 REM **** SUB DEC-HEX ****
  189. 6020 REM *********************
  190. 6030 X1=0:X2=0
  191. 6040 X1=INT(X/16)
  192. 6050 X2=((X/16)-INT(X/16))*16
  193. 6100 IFX1<10THENX$=CHR$(X1+48):GOTO6120
  194. 6110 X$=CHR$(X1+55)
  195. 6120 IFX2<10THENX$=X$+CHR$(X2+48):RETURN
  196. 6130 X$=X$+CHR$(X2+55)
  197. 6140 RETURN
  198. 6150 REM *********** END SUB DEC-HEX *****
  199. 6500 REM *********************
  200. 6510 REM **** SUB HEX-DEC ****
  201. 6520 REM *********************
  202. 6530 X1$=LEFT$(X$,1)
  203. 6540 X2$=RIGHT$(X$,1)
  204. 6550 IF ASC(X1$)>64 THEN X=((ASC(X1$)-55)*16):GOTO 6570
  205. 6560 X=((ASC(X1$)-48)*16)
  206. 6570 IF ASC(X2$)>64 THEN X=X+(ASC(X2$)-55):RETURN
  207. 6580 X=X+(ASC(X2$)-48)
  208. 6590 RETURN
  209. 6600 REM *********** END SUB HEX-DEC *****
  210. 9999 END
  211.