|
|
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 - metrics - 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.