DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦8d547091a⟧ TextFile

    Length: 2528 (0x9e0)
    Types: TextFile
    Notes: Mikados_K
    Names: »DUMP.K«

Derivation

└─⟦ca21ef4c0⟧ Bits:30005311 Extended Pascal System Disc v. 04.07.1980 (SPC/1)
    └─⟦this⟧ »DUMP.K« 

Mikados K File

PROGRAM DUMP;  (* AN 800104 *)
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;
  REPEAT
   WRITE('Indtast pladelagerbetegnelse: P');
   READLN;
   IF EOF THEN EXIT(MAIN);
   READ(DISC);
   WRITE('Indtast spornummer: ');
   READLN;
   IF EOF THEN EXIT(MAIN);
   READ(TRACK);
   WRITE('Indtast sektornummer: ');
   READLN;
   IF EOF THEN EXIT(MAIN);
   READ(SECTOR);
   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;
  WRITELN(LIST,CHR(12));
  UNTIL FALSE;
 END;
 
BEGIN
  WRITELN('DUMP EN SEKTOR');
  MAIN;
  IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4);
  WRITELN('DUMP terminated');
END.

Mikados K File

0x000…020 Line {l1=0x1e, l2=»PROGRAM DUMP;  (* AN 800104 *)«, l3=0x1e}
0x020…04d Line {l1=0x2b, l2=»TYPE BLOCK = PACKED ARRAY (0..255) OF CHAR;«, l3=0x2b}
0x04d…065 Line {l1=0x16, l2=»VAR DISCBUFFER: BLOCK;«, l3=0x16}
0x065…092 Line {l1=0x2b, l2=»    DISC, TRACK, SECTOR, IOCODE, ERRORCODE,«, l3=0x2b}
0x092…0c5 Line {l1=0x31, l2=»    I, J, K, L, P, CHARCODE, CIF1, CIF2: INTEGER;«, l3=0x31}
0x0c5…0d9 Line {l1=0x12, l2=»    UDBUF: STRING;«, l3=0x12}
0x0d9…0df Line {l1=0x04, l2=»    «, l3=0x04}
0x0df…11c Line {l1=0x3b, l2=»PROCEDURE PSCIU(VAR DISCBUFFER: BLOCK; DISC, TRACK, SECTOR,«, l3=0x3b}
0x11c…157 Line {l1=0x39, l2=»                IOCODE: INTEGER; VAR ERRORCODE: INTEGER);«, l3=0x39}
0x157…192 Line {l1=0x39, l2=»                                                EXTERNAL;«, l3=0x39}
0x192…1c4 Line {l1=0x30, l2=»                                                «, l3=0x30}
0x1c4…1e5 Line {l1=0x1f, l2=»PROCEDURE WRITEHEX(I: INTEGER);«, l3=0x1f}
0x1e5…1ec Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x1ec…1f9 Line {l1=0x0b, l2=»  P := P+1;«, l3=0x0b}
0x1f9…239 Line {l1=0x3e, l2=»  IF I < 10 THEN UDBUF(P):=CHR(I+48) ELSE UDBUF(P):=CHR(I+55);«, l3=0x3e}
0x239…23f Line {l1=0x04, l2=»END;«, l3=0x04}
0x23f…242 Line {l1=0x01, l2=» «, l3=0x01}
          […0x1…]
0x245…256 Line {l1=0x0f, l2=»PROCEDURE MAIN;«, l3=0x0f}
0x256…25d Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x25d…26f Line {l1=0x10, l2=»  UDBUF := ' 0';«, l3=0x10}
0x26f…297 Line {l1=0x26, l2=»  (*$R-*) UDBUF(0) := CHR(64) (*$R+*);«, l3=0x26}
0x297…2b5 Line {l1=0x1c, l2=»  FILLCHAR(UDBUF(3),62,' ');«, l3=0x1c}
0x2b5…2c8 Line {l1=0x11, l2=»  ERRORCODE := 0;«, l3=0x11}
0x2c8…2d2 Line {l1=0x08, l2=»  REPEAT«, l3=0x08}
0x2d2…300 Line {l1=0x2c, l2=»   WRITE('Indtast pladelagerbetegnelse: P');«, l3=0x2c}
0x300…30c Line {l1=0x0a, l2=»   READLN;«, l3=0x0a}
0x30c…328 Line {l1=0x1a, l2=»   IF EOF THEN EXIT(MAIN);«, l3=0x1a}
0x328…338 Line {l1=0x0e, l2=»   READ(DISC);«, l3=0x0e}
0x338…35b Line {l1=0x21, l2=»   WRITE('Indtast spornummer: ');«, l3=0x21}
0x35b…367 Line {l1=0x0a, l2=»   READLN;«, l3=0x0a}
0x367…383 Line {l1=0x1a, l2=»   IF EOF THEN EXIT(MAIN);«, l3=0x1a}
0x383…394 Line {l1=0x0f, l2=»   READ(TRACK);«, l3=0x0f}
0x394…3b9 Line {l1=0x23, l2=»   WRITE('Indtast sektornummer: ');«, l3=0x23}
0x3b9…3c5 Line {l1=0x0a, l2=»   READLN;«, l3=0x0a}
0x3c5…3e1 Line {l1=0x1a, l2=»   IF EOF THEN EXIT(MAIN);«, l3=0x1a}
0x3e1…3f3 Line {l1=0x10, l2=»   READ(SECTOR);«, l3=0x10}
0x3f3…404 Line {l1=0x0f, l2=»   IOCODE := 1;«, l3=0x0f}
0x404…43e Line {l1=0x38, l2=»   PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE);«, l3=0x38}
0x43e…465 Line {l1=0x25, l2=»   IF ERRORCODE <> 0 THEN EXIT(MAIN);«, l3=0x25}
0x465…4a4 Line {l1=0x3d, l2=»   WRITELN(LIST,'DUMP FRA DISK P',DISC:1,',   SPOR ',TRACK:3,«, l3=0x3d}
0x4a4…4ce Line {l1=0x28, l2=»                ',   SEKTOR ',SECTOR:2);«, l3=0x28}
0x4ce…4e1 Line {l1=0x11, l2=»   WRITELN(LIST);«, l3=0x11}
0x4e1…4f9 Line {l1=0x16, l2=»   FOR I := 0 TO 15 DO«, l3=0x16}
0x4f9…503 Line {l1=0x08, l2=»   BEGIN«, l3=0x08}
0x503…512 Line {l1=0x0d, l2=»      P := 0;«, l3=0x0d}
0x512…526 Line {l1=0x12, l2=»      WRITEHEX(I);«, l3=0x12}
0x526…535 Line {l1=0x0d, l2=»      P := 5;«, l3=0x0d}
0x535…549 Line {l1=0x12, l2=»      J := I * 16;«, l3=0x12}
0x549…55d Line {l1=0x12, l2=»      K := J + 15;«, l3=0x12}
0x55d…577 Line {l1=0x18, l2=»      FOR L := J TO K DO«, l3=0x18}
0x577…584 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x584…5af Line {l1=0x29, l2=»            IF L MOD 4 = 0 THEN P := P+1;«, l3=0x29}
0x5af…5c6 Line {l1=0x15, l2=»            P := P+1;«, l3=0x15}
0x5c6…5f7 Line {l1=0x2f, l2=»            CIF1 := ORD(DISCBUFFER(L)) MOD 128;«, l3=0x2f}
0x5f7…619 Line {l1=0x20, l2=»            IF (CIF1 <= 126) AND«, l3=0x20}
0x619…63c Line {l1=0x21, l2=»               (CIF1 >=  32) THEN«, l3=0x21}
0x63c…662 Line {l1=0x24, l2=»               UDBUF(P) := CHR(CIF1)«, l3=0x24}
0x662…674 Line {l1=0x10, l2=»            ELSE«, l3=0x10}
0x674…695 Line {l1=0x1f, l2=»               UDBUF(P) := '.';«, l3=0x1f}
0x695…6a1 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x6a1…6b2 Line {l1=0x0f, l2=»      P := P+3;«, l3=0x0f}
0x6b2…6cc Line {l1=0x18, l2=»      FOR L := J TO K DO«, l3=0x18}
0x6cc…6d9 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x6d9…702 Line {l1=0x27, l2=»            IF L MOD 4 = 0 THEN P:=P+1;«, l3=0x27}
0x702…732 Line {l1=0x2e, l2=»            CIF1 := ORD(DISCBUFFER(L)) DIV 16;«, l3=0x2e}
0x732…762 Line {l1=0x2e, l2=»            CIF2 := ORD(DISCBUFFER(L)) MOD 16;«, l3=0x2e}
0x762…77f Line {l1=0x1b, l2=»            WRITEHEX(CIF1);«, l3=0x1b}
0x77f…79c Line {l1=0x1b, l2=»            WRITEHEX(CIF2);«, l3=0x1b}
0x79c…7a8 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x7a8…7c4 Line {l1=0x1a, l2=»      WRITELN(LIST,UDBUF);«, l3=0x1a}
0x7c4…7cd Line {l1=0x07, l2=»   END;«, l3=0x07}
0x7cd…7e7 Line {l1=0x18, l2=»  WRITELN(LIST,CHR(12));«, l3=0x18}
0x7e7…7f7 Line {l1=0x0e, l2=»  UNTIL FALSE;«, l3=0x0e}
0x7f7…7fe Line {l1=0x05, l2=» END;«, l3=0x05}
0x7fe…801 Line {l1=0x01, l2=» «, l3=0x01}
0x801…808 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x808…826 Line {l1=0x1c, l2=»  WRITELN('DUMP EN SEKTOR');«, l3=0x1c}
0x826…82f Line {l1=0x07, l2=»  MAIN;«, l3=0x07}
0x82f…86e Line {l1=0x3d, l2=»  IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4);«, l3=0x3d}
0x86e…88d Line {l1=0x1d, l2=»  WRITELN('DUMP terminated');«, l3=0x1d}
0x88d…893 Line {l1=0x04, l2=»END.«, l3=0x04}
0x893…8a0 00 00 00 00 00 00 00 00 00 00 00 00 00                                                            ┆             ┆
0x8a0…8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x8…]
0x9c0…9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20   ┆                                ┆

Reduced view