|
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: »SEKTCOPY«
└─⟦f1b095e24⟧ Bits:30005320 Katalogisering af disketter └─ ⟦this⟧ »SEKTCOPY«
PROGRAM SEKTCOPY; (* BR-19.02.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; 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; WRITELN('Kopiering fra : '); WRITE( 'pladelagerbetegnelse: P'); READLN; IF EOF THEN EXIT(MAIN); READ(DISC); WRITE( 'spornummer : '); READLN; IF EOF THEN EXIT(MAIN); READ(TRACK); WRITE( 'sektornummer : '); READLN; IF EOF THEN EXIT(MAIN); READ(SECTOR); IOCODE := 1; PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE); IF ERRORCODE <> 0 THEN BEGIN WRITELN ('ERRORCODE:', ERRORCODE:4); EXIT(MAIN); END; 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; WRITELN(LIST,CHR(12)); END; (*********************************************************************) PROCEDURE KOPIER; BEGIN IF EOF THEN EXIT(KOPIER); WRITELN('Kopiering til : '); WRITE( 'pladelagerbetegnelse: P'); READLN; IF EOF THEN EXIT(KOPIER); READ(DISC); WRITE( 'spornummer : '); READLN; IF EOF THEN EXIT(KOPIER); READ(TRACK); WRITE( 'sektornummer : '); READLN; IF EOF THEN EXIT(KOPIER); READ(SECTOR); IOCODE := 2; PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE); IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4); END; (*KOPIER*) (*********************************************************************) BEGIN REPEAT MAIN; KOPIER; UNTIL EOF; WRITELN('SEKTCOPY terminated'); END.