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

⟦fbd11d804⟧ TextFile

    Length: 5056 (0x13c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »DUMP1.K«

Derivation

└─⟦f1b095e24⟧ Bits:30005320 Katalogisering af disketter
    └─⟦this⟧ »DUMP1.K« 

Mikados K File

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.

Mikados K File

0x0000…0023 Line {l1=0x21, l2=»PROGRAM DUMP1;  (* BR 15.03.85 *)«, l3=0x21}
0x0023…0026 Line {l1=0x01, l2=» «, l3=0x01}
0x0026…0053 Line {l1=0x2b, l2=»TYPE BLOCK = PACKED ARRAY (0..255) OF CHAR;«, l3=0x2b}
0x0053…006b Line {l1=0x16, l2=»VAR DISCBUFFER: BLOCK;«, l3=0x16}
0x006b…0098 Line {l1=0x2b, l2=»    DISC, TRACK, SECTOR, IOCODE, ERRORCODE,«, l3=0x2b}
0x0098…00cb Line {l1=0x31, l2=»    I, J, K, L, P, CHARCODE, CIF1, CIF2: INTEGER;«, l3=0x31}
0x00cb…00df Line {l1=0x12, l2=»    UDBUF: STRING;«, l3=0x12}
0x00df…0128 Line {l1=0x47, l2=»    NUMMER, TRACK1, SECTOR1, TRACK2, SECTOR2, SEKTANTAL, ANT : INTEGER;«, l3=0x47}
0x0128…012e Line {l1=0x04, l2=»    «, l3=0x04}
0x012e…016b Line {l1=0x3b, l2=»PROCEDURE PSCIU(VAR DISCBUFFER: BLOCK; DISC, TRACK, SECTOR,«, l3=0x3b}
0x016b…01a6 Line {l1=0x39, l2=»                IOCODE: INTEGER; VAR ERRORCODE: INTEGER);«, l3=0x39}
0x01a6…01e1 Line {l1=0x39, l2=»                                                EXTERNAL;«, l3=0x39}
0x01e1…0213 Line {l1=0x30, l2=»                                                «, l3=0x30}
0x0213…0234 Line {l1=0x1f, l2=»PROCEDURE WRITEHEX(I: INTEGER);«, l3=0x1f}
0x0234…023b Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x023b…0248 Line {l1=0x0b, l2=»  P := P+1;«, l3=0x0b}
0x0248…0288 Line {l1=0x3e, l2=»  IF I < 10 THEN UDBUF(P):=CHR(I+48) ELSE UDBUF(P):=CHR(I+55);«, l3=0x3e}
0x0288…028e Line {l1=0x04, l2=»END;«, l3=0x04}
0x028e…0291 Line {l1=0x01, l2=» «, l3=0x01}
            […0x1…]
0x0294…02a5 Line {l1=0x0f, l2=»PROCEDURE MAIN;«, l3=0x0f}
0x02a5…02ac Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x02ac…02be Line {l1=0x10, l2=»  UDBUF := ' 0';«, l3=0x10}
0x02be…02e6 Line {l1=0x26, l2=»  (*$R-*) UDBUF(0) := CHR(64) (*$R+*);«, l3=0x26}
0x02e6…0304 Line {l1=0x1c, l2=»  FILLCHAR(UDBUF(3),62,' ');«, l3=0x1c}
0x0304…0317 Line {l1=0x11, l2=»  ERRORCODE := 0;«, l3=0x11}
0x0317…0322 Line {l1=0x09, l2=»  ANT:=0;«, l3=0x09}
0x0322…0325 Line {l1=0x01, l2=» «, l3=0x01}
0x0325…032f Line {l1=0x08, l2=»  REPEAT«, l3=0x08}
0x032f…035e Line {l1=0x2d, l2=»    WRITE('Indtast pladelagerbetegnelse: P');«, l3=0x2d}
0x035e…036b Line {l1=0x0b, l2=»    READLN;«, l3=0x0b}
0x036b…0388 Line {l1=0x1b, l2=»    IF EOF THEN EXIT(MAIN);«, l3=0x1b}
0x0388…0397 Line {l1=0x0d, l2=»  READ(DISC);«, l3=0x0d}
0x0397…03b2 Line {l1=0x19, l2=»  UNTIL DISC IN (.1..3.);«, l3=0x19}
0x03b2…03e6 Line {l1=0x32, l2=»  IF DISC=3 THEN SEKTANTAL:=16 ELSE SEKTANTAL:=32;«, l3=0x32}
0x03e6…03e9 Line {l1=0x01, l2=» «, l3=0x01}
0x03e9…0408 Line {l1=0x1d, l2=»  WRITE('Fra spornummer : ');«, l3=0x1d}
0x0408…0413 Line {l1=0x09, l2=»  READLN;«, l3=0x09}
0x0413…042e Line {l1=0x19, l2=»  IF EOF THEN EXIT(MAIN);«, l3=0x19}
0x042e…043f Line {l1=0x0f, l2=»  READ(TRACK1);«, l3=0x0f}
0x043f…045e Line {l1=0x1d, l2=»  WRITE('og sektornummer: ');«, l3=0x1d}
0x045e…0469 Line {l1=0x09, l2=»  READLN;«, l3=0x09}
0x0469…0484 Line {l1=0x19, l2=»  IF EOF THEN EXIT(MAIN);«, l3=0x19}
0x0484…0496 Line {l1=0x10, l2=»  READ(SECTOR1);«, l3=0x10}
0x0496…0499 Line {l1=0x01, l2=» «, l3=0x01}
0x0499…04b8 Line {l1=0x1d, l2=»  WRITE('til spornummer : ');«, l3=0x1d}
0x04b8…04c3 Line {l1=0x09, l2=»  READLN;«, l3=0x09}
0x04c3…04de Line {l1=0x19, l2=»  IF EOF THEN EXIT(MAIN);«, l3=0x19}
0x04de…04ef Line {l1=0x0f, l2=»  READ(TRACK2);«, l3=0x0f}
0x04ef…050e Line {l1=0x1d, l2=»  WRITE('og sektornummer: ');«, l3=0x1d}
0x050e…0519 Line {l1=0x09, l2=»  READLN;«, l3=0x09}
0x0519…0534 Line {l1=0x19, l2=»  IF EOF THEN EXIT(MAIN);«, l3=0x19}
0x0534…0546 Line {l1=0x10, l2=»  READ(SECTOR2);«, l3=0x10}
0x0546…0549 Line {l1=0x01, l2=» «, l3=0x01}
0x0549…0590 Line {l1=0x45, l2=»  FOR NUMMER:=TRACK1*SEKTANTAL+SECTOR1 TO TRACK2*SEKTANTAL+SECTOR2 DO«, l3=0x45}
0x0590…0599 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0599…05bb Line {l1=0x20, l2=»    TRACK:=NUMMER DIV SEKTANTAL;«, l3=0x20}
0x05bb…05de Line {l1=0x21, l2=»    SECTOR:=NUMMER MOD SEKTANTAL;«, l3=0x21}
0x05de…05f0 Line {l1=0x10, l2=»    IOCODE := 1;«, l3=0x10}
0x05f0…062b Line {l1=0x39, l2=»    PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE);«, l3=0x39}
0x062b…0653 Line {l1=0x26, l2=»    IF ERRORCODE <> 0 THEN EXIT(MAIN);«, l3=0x26}
0x0653…0693 Line {l1=0x3e, l2=»    WRITELN(LIST,'DUMP FRA DISK P',DISC:1,',   SPOR ',TRACK:3,«, l3=0x3e}
0x0693…06be Line {l1=0x29, l2=»                 ',   SEKTOR ',SECTOR:2);«, l3=0x29}
0x06be…06d2 Line {l1=0x12, l2=»    WRITELN(LIST);«, l3=0x12}
0x06d2…06eb Line {l1=0x17, l2=»    FOR I := 0 TO 15 DO«, l3=0x17}
0x06eb…06f6 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x06f6…0705 Line {l1=0x0d, l2=»      P := 0;«, l3=0x0d}
0x0705…0719 Line {l1=0x12, l2=»      WRITEHEX(I);«, l3=0x12}
0x0719…0728 Line {l1=0x0d, l2=»      P := 5;«, l3=0x0d}
0x0728…073c Line {l1=0x12, l2=»      J := I * 16;«, l3=0x12}
0x073c…0750 Line {l1=0x12, l2=»      K := J + 15;«, l3=0x12}
0x0750…076a Line {l1=0x18, l2=»      FOR L := J TO K DO«, l3=0x18}
0x076a…0777 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0777…079e Line {l1=0x25, l2=»        IF L MOD 4 = 0 THEN P := P+1;«, l3=0x25}
0x079e…07b1 Line {l1=0x11, l2=»        P := P+1;«, l3=0x11}
0x07b1…07de Line {l1=0x2b, l2=»        CIF1 := ORD(DISCBUFFER(L)) MOD 128;«, l3=0x2b}
0x07de…080e Line {l1=0x2e, l2=»        IF (CIF1 <= 126) AND (CIF1 >= 32) THEN«, l3=0x2e}
0x080e…082f Line {l1=0x1f, l2=»          UDBUF(P) := CHR(CIF1)«, l3=0x1f}
0x082f…083d Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x083d…0859 Line {l1=0x1a, l2=»          UDBUF(P) := '.';«, l3=0x1a}
0x0859…0865 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x0865…0876 Line {l1=0x0f, l2=»      P := P+3;«, l3=0x0f}
0x0876…0890 Line {l1=0x18, l2=»      FOR L := J TO K DO«, l3=0x18}
0x0890…089d Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x089d…08c2 Line {l1=0x23, l2=»        IF L MOD 4 = 0 THEN P:=P+1;«, l3=0x23}
0x08c2…08ee Line {l1=0x2a, l2=»        CIF1 := ORD(DISCBUFFER(L)) DIV 16;«, l3=0x2a}
0x08ee…091a Line {l1=0x2a, l2=»        CIF2 := ORD(DISCBUFFER(L)) MOD 16;«, l3=0x2a}
0x091a…0933 Line {l1=0x17, l2=»        WRITEHEX(CIF1);«, l3=0x17}
0x0933…094c Line {l1=0x17, l2=»        WRITEHEX(CIF2);«, l3=0x17}
0x094c…0958 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x0958…0974 Line {l1=0x1a, l2=»      WRITELN(LIST,UDBUF);«, l3=0x1a}
0x0974…097e Line {l1=0x08, l2=»    END;«, l3=0x08}
0x097e…098d Line {l1=0x0d, l2=»  ANT:=ANT+1;«, l3=0x0d}
0x098d…09a4 Line {l1=0x15, l2=»  IF ANT=3 THEN BEGIN«, l3=0x15}
0x09a4…09c0 Line {l1=0x1a, l2=»    WRITELN(LIST,CHR(12));«, l3=0x1a}
0x09c0…09cd Line {l1=0x0b, l2=»    ANT:=0;«, l3=0x0b}
0x09cd…09d4 Line {l1=0x05, l2=»  END«, l3=0x05}
0x09d4…09dc Line {l1=0x06, l2=»  ELSE«, l3=0x06}
0x09dc…09f0 Line {l1=0x12, l2=»    WRITELN(LIST);«, l3=0x12}
0x09f0…0a35 Line {l1=0x43, l2=»  WRITE('Næste sektor tryk på <RETURN>  -  afslut tryk på <ESC> ');«, l3=0x43}
0x0a35…0a40 Line {l1=0x09, l2=»  READLN;«, l3=0x09}
0x0a40…0a5b Line {l1=0x19, l2=»  IF EOF THEN EXIT(MAIN);«, l3=0x19}
0x0a5b…0a63 Line {l1=0x06, l2=»  END;«, l3=0x06}
0x0a63…0a69 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0a69…0a6c Line {l1=0x01, l2=» «, l3=0x01}
0x0a6c…0a73 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0a73…0a83 Line {l1=0x0e, l2=»  CLEARSCREEN;«, l3=0x0e}
0x0a83…0abc Line {l1=0x37, l2=»  WRITELN('UDSKRIVNING AF INDHOLD PÅ BAGGRUNDSLAGER.');«, l3=0x37}
0x0abc…0ac8 Line {l1=0x0a, l2=»  WRITELN;«, l3=0x0a}
0x0ac8…0ad1 Line {l1=0x07, l2=»  MAIN;«, l3=0x07}
0x0ad1…0ae0 Line {l1=0x0d, l2=»  PAGE(LIST);«, l3=0x0d}
0x0ae0…0b1f Line {l1=0x3d, l2=»  IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4);«, l3=0x3d}
0x0b1f…0b3f Line {l1=0x1e, l2=»  WRITELN('DUMP1 terminated');«, l3=0x1e}
0x0b3f…0b45 Line {l1=0x04, l2=»END.«, l3=0x04}
0x0b45…0b60 00 00 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63                  ┆  ccccccccccccccccccccccccc┆
0x0b60…0b80 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63   ┆cccccccccccccccccccccccccccccccc┆
            […0x42…]

Reduced view