home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
84xx
/
8410.d64
/
disk-dump
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
5KB
|
211 lines
100 PRINT"[147][145][145][145]"
101 REM COPYRIGHT (C) 1984 BY
102 REM HORST WIBBING, 62 WIESBADEN
110 PRINT" ****************************"
120 PRINT" * *"
130 PRINT" * DISK - DUMP V2 *"
140 PRINT" * *"
150 PRINT" ****************************"
151 PRINT""
153 PRINT"IST DIE DISKETTE DRIN ? ";
154 GET Y$:IF(Y$<>"Y"ANDY$<>"J")THEN154
155 PRINT"[147]"
160 REM ***** INIT *****
161 D=0:D$(0)="OFF[146]":D$(1)="ON [146]"
162 TR=18:SE=0
163 PRINT""
164 DIMB$(255)
165 GOTO270
166 REM ***** TRACK/SECTOR *****
170 PRINT" WHICH TRACK ( 1 - 35 )";
180 INPUTTR
190 IFTR<1ORTR>35THENPRINT"[145][145]":GOTO170
200 IFTR<18THENSR=20:GOTO240
210 IFTR<25THENSR=18:GOTO240
220 :IFTR<31THENSR=17:GOTO240
230 :SR=16
235 REM *****
240 PRINT" WHICH SECTOR ( 0 -";SR;")";
250 INPUTSE
260 IFSE<0ORSE>SRTHENPRINT"[145][145][145]":GOTO240
265 REM *****
270 GOSUB1000:REM LESEN
280 GOSUB2000:REM AUSDRUCKEN
310 REM *****
320 PRINT" 1 => NEXT BLOCK 2 => SAME BLOCK"
330 PRINT" 3 => PREV. BLOCK 4 => OTHER BLOCK"
340 PRINT" 5 => AENDERN 6 => PRINTER ";D$(D)
350 PRINT" 0 => END"
360 GETT$:IFT$=""THEN360
370 IFT$="1"THENGOSUB3000:GOTO270
380 IFT$="2"THENGOTO280
385 IFT$="3"THENGOSUB3500:GOTO270
390 IFT$="4"THENGOTO170
391 IFT$="5"THENGOSUB5000:PRINT"[147]":GOTO 320
392 IFT$="6"THENGOSUB2500:GOTO410
400 IFT$="0"THENGOTO9999
410 PRINT"[145][145][145][145][145]":GOTO320
430 REM ***************** ENDE ******
1000 REM *******************
1001 REM **** SUB LESEN ****
1002 REM *******************
1010 OPEN15,8,15
1020 OPEN8,8,8,"#"
1025 PRINT#15,"U1 8 0"TR,SE
1030 FORI=0TO255
1040 :GET#8,B$(I)
1070 NEXTI
1080 CLOSE8:CLOSE15
1090 RETURN
1100 REM *********** ENDE SUB LESEN *****
2000 REM **********************
2001 REM **** SUB AUSDRUCK ****
2002 REM **********************
2010 IFTR<18THENBL=21*(TR-1)+SE:GOTO2050
2020 IFTR<25THENBL=19*(TR-1)+SE+34:GOTO2050
2030 IFTR<31THENBL=18*(TR-1)+SE+34+24:GOTO2050
2040 BL=17*(TR-1)+SE+34+24+30
2050 IFD=1THENOPEN4,4
2051 PRINT"[147] TRACK:";TR;" SECTOR:";SE;" BLOCK:";BL"[146]"
2055 IFD=1THENPRINT#4," TRACK:";TR;" SECTOR:";SE;" BLOCK:";BL"[146]"
2060 PRINT""
2070 FORI=0TO15
2071 :C$=""
2072 :X=8*I:GOSUB 6000:REM DEC-HEX
2075 :PRINT" ";X$;" : ";
2076 :IFD=1THENPRINT#4," ";X$;" : ";
2080 :FORJ=0TO7
2088 :X=(ASC(B$(I*8+J)+CHR$(0)))
2089 :GOSUB 6000:REM DEC-HEX
2090 :PRINT" ";X$;
2091 :IFD=1THENPRINT#4," ";X$;
2095 :GOSUB4000:REM CHECK
2100 :NEXTJ
2110 :PRINTC$
2111 :IFD=1THENPRINT#4,C$
2120 NEXTI
2125 REM ***** 2.SEITE
2130 PRINT" TASTE"
2140 GETT$:IFT$=""THEN2140
2150 PRINT" TRACK:";TR;" SECTOR:";SE;" BLOCK:";BL"[146]"
2155 IFD=1THENPRINT#4," TRACK:";TR;" SECTOR:";SE;" BLOCK:";BL"[146]"
2160 PRINT""
2170 FORI=16TO31
2171 :C$=""
2172 :X=(8*I):GOSUB 6000:REM DEC-HEX
2175 :PRINT" ";X$;" : ";
2176 :IFD=1THENPRINT#4," ";X$;" : ";
2180 :FORJ=0TO7
2188 :X=(ASC(B$(I*8+J)+CHR$(0)))
2189 :GOSUB 6000:REM DEC-HEX
2190 :PRINT" ";X$;
2191 :IFD=1THENPRINT#4," ";X$;
2195 :GOSUB4000:REM CHECK
2200 :NEXTJ
2210 :PRINTC$
2211 :IFD=1THENPRINT#4,C$
2220 NEXTI
2225 IFD=1THENCLOSE4
2230 RETURN
2240 REM ***********ENDE SUB AUSDRUCK*****
2500 REM *********************
2510 REM **** SUB PRINTER ****
2520 REM *********************
2530 IFD=0THEND=1:RETURN
2540 IFD=1THEND=0:RETURN
2550 REM *********** ENDE SUB PRINTER *****
3000 REM ************************
3001 REM **** SUB NEXT BLOCK ****
3002 REM ************************
3010 SE=SE+1
3020 IFTR<18ANDSE>20THENTR=TR+1:SE=0:RETURN
3030 IFTR<25ANDSE>18THENTR=TR+1:SE=0:RETURN
3040 IFTR<31ANDSE>17THENTR=TR+1:SE=0:RETURN
3050 IFTR<36ANDSE>16THENTR=TR+1:SE=0
3060 IFTR=36THENTR=0
3070 RETURN
3080 REM *********** ENDE SUB NEXT BLOCK *****
3500 REM *************************
3510 REM **** SUB PREV. BLOCK ****
3520 REM *************************
3530 SE=SE-1
3540 IFSE<0THENGOTO3600
3550 RETURN
3600 TR=TR-1
3610 SE=16
3620 IFTR=0THENTR=35:RETURN
3630 IFTR<18THENSE=20:RETURN
3640 IFTR<25THENSE=18:RETURN
3650 IFTR<31THENSE=17
3660 RETURN
3670 REM *********** ENDE SUB PREV. BLOCK *****
4000 REM *******************
4001 REM **** SUB CHECK ****
4002 REM *******************
4010 B=ASC(B$(I*8+J)+CHR$(0))
4020 IF((B<32)OR((B>127)AND(B<160)))THENC$=C$+" ":GOTO4030
4025 C$=C$+B$(I*8+J)
4030 RETURN
4040 REM *********** ENDE SUB CHECK *****
5000 REM *********************
5001 REM **** SUB AENDERN ****
5002 REM *********************
5010 PRINT"ADDR (00-FF/X=EXIT)";:INPUTADR$
5015 IFADR$=""THENGOTO5010
5020 IFADR$="X"THENGOTO5150
5030 IFLEN(ADR$)<2THENADR$="0"+ADR$
5040 IFLEN(ADR$)>2THENADR$=RIGHT$(ADR$,2)
5045 X$=ADR$
5046 GOSUB 6500:REM HEX-DEC
5050 I=X
5060 PRINT"WERT (00-FF)";:INPUTW$
5065 IFW$=""THENGOTO5060
5070 IFLEN(W$)<2THENW$="0"+W$
5080 IFLEN(W$)>2THENW$=RIGHT$(W$,2)
5085 X$=W$
5086 GOSUB 6500:REM HEX-DEC
5090 B$(I)=CHR$(X)
5100 GOTO5000
5110 REM *****
5150 GOSUB2000:REM AUSDRUCKEN
5160 PRINT"AUF DISK SCHREIBEN";:INPUTY$
5170 IF((Y$<>"J")AND(Y$<>"Y"))THENGOTO5300
5175 B1=ASC(B$(0)+CHR$(0))+1
5180 OPEN15,8,15
5190 OPEN8,8,8,"#"
5200 FORI=1TO255
5205 :IFB$(I)=""THENPRINT#8,CHR$(0);:GOTO5220
5210 :PRINT#8,B$(I);
5220 NEXTI
5225 PRINT#15,"B-P:8",B1
5230 PRINT#15,"B-W:8,0"TR,SE
5240 CLOSE8:CLOSE15
5300 PRINT"WEITER AENDERN";:INPUTY$
5310 IF((Y$="J")OR(Y$="Y"))THENGOTO5000
5320 RETURN
5330 REM *********** ENDE SUB AENDERN *****
6000 REM *********************
6010 REM **** SUB DEC-HEX ****
6020 REM *********************
6030 X1=0:X2=0
6040 X1=INT(X/16)
6050 X2=((X/16)-INT(X/16))*16
6100 IFX1<10THENX$=CHR$(X1+48):GOTO6120
6110 X$=CHR$(X1+55)
6120 IFX2<10THENX$=X$+CHR$(X2+48):RETURN
6130 X$=X$+CHR$(X2+55)
6140 RETURN
6150 REM *********** END SUB DEC-HEX *****
6500 REM *********************
6510 REM **** SUB HEX-DEC ****
6520 REM *********************
6530 X1$=LEFT$(X$,1)
6540 X2$=RIGHT$(X$,1)
6550 IF ASC(X1$)>64 THEN X=((ASC(X1$)-55)*16):GOTO 6570
6560 X=((ASC(X1$)-48)*16)
6570 IF ASC(X2$)>64 THEN X=X+(ASC(X2$)-55):RETURN
6580 X=X+(ASC(X2$)-48)
6590 RETURN
6600 REM *********** END SUB HEX-DEC *****
9999 END