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