|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 5056 (0x13c0) Notes: Mikados TextFile, Mikados_K Names: »DUMP1«
└─⟦f1b095e24⟧ Bits:30005320 Katalogisering af disketter └─ ⟦this⟧ »DUMP1«
PROGRAM DUMP1; (* BR 15.03.85 *) TYPE BLOCK = PACKED ARRAY (0..255) OF CHAR; VAR DISCBUFFER: BLOCK; DISC, TRACK, SECTOR, IOCODE, ERRORCODE, I, J, K, L, P, CHARCODE, CIF1, CIF2: INTEGER; UDBUF: STRING; NUMMER, TRACK1, SECTOR1, TRACK2, SECTOR2, SEKTANTAL, ANT : INTEGER; PROCEDURE PSCIU(VAR DISCBUFFER: BLOCK; DISC, TRACK, SECTOR, IOCODE: INTEGER; VAR ERRORCODE: INTEGER); EXTERNAL; PROCEDURE WRITEHEX(I: INTEGER); BEGIN P := P+1; IF I < 10 THEN UDBUF(P):=CHR(I+48) ELSE UDBUF(P):=CHR(I+55); END; PROCEDURE MAIN; BEGIN UDBUF := ' 0'; (*$R-*) UDBUF(0) := CHR(64) (*$R+*); FILLCHAR(UDBUF(3),62,' '); ERRORCODE := 0; ANT:=0; REPEAT WRITE('Indtast pladelagerbetegnelse: P'); READLN; IF EOF THEN EXIT(MAIN); READ(DISC); UNTIL DISC IN (.1..3.); IF DISC=3 THEN SEKTANTAL:=16 ELSE SEKTANTAL:=32; WRITE('Fra spornummer : '); READLN; IF EOF THEN EXIT(MAIN); READ(TRACK1); WRITE('og sektornummer: '); READLN; IF EOF THEN EXIT(MAIN); READ(SECTOR1); WRITE('til spornummer : '); READLN; IF EOF THEN EXIT(MAIN); READ(TRACK2); WRITE('og sektornummer: '); READLN; IF EOF THEN EXIT(MAIN); READ(SECTOR2); FOR NUMMER:=TRACK1*SEKTANTAL+SECTOR1 TO TRACK2*SEKTANTAL+SECTOR2 DO BEGIN TRACK:=NUMMER DIV SEKTANTAL; SECTOR:=NUMMER MOD SEKTANTAL; IOCODE := 1; PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE); IF ERRORCODE <> 0 THEN EXIT(MAIN); WRITELN(LIST,'DUMP FRA DISK P',DISC:1,', SPOR ',TRACK:3, ', SEKTOR ',SECTOR:2); WRITELN(LIST); FOR I := 0 TO 15 DO BEGIN P := 0; WRITEHEX(I); P := 5; J := I * 16; K := J + 15; FOR L := J TO K DO BEGIN IF L MOD 4 = 0 THEN P := P+1; P := P+1; CIF1 := ORD(DISCBUFFER(L)) MOD 128; IF (CIF1 <= 126) AND (CIF1 >= 32) THEN UDBUF(P) := CHR(CIF1) ELSE UDBUF(P) := '.'; END; P := P+3; FOR L := J TO K DO BEGIN IF L MOD 4 = 0 THEN P:=P+1; CIF1 := ORD(DISCBUFFER(L)) DIV 16; CIF2 := ORD(DISCBUFFER(L)) MOD 16; WRITEHEX(CIF1); WRITEHEX(CIF2); END; WRITELN(LIST,UDBUF); END; ANT:=ANT+1; IF ANT=3 THEN BEGIN WRITELN(LIST,CHR(12)); ANT:=0; END ELSE WRITELN(LIST); WRITE('Næste sektor tryk på <RETURN> - afslut tryk på <ESC> '); READLN; IF EOF THEN EXIT(MAIN); END; END; BEGIN CLEARSCREEN; WRITELN('UDSKRIVNING AF INDHOLD PÅ BAGGRUNDSLAGER.'); WRITELN; MAIN; PAGE(LIST); IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4); WRITELN('DUMP1 terminated'); END.