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

⟦e9a4c29c7⟧ TextFile

    Length: 2496 (0x9c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »NEXTREC.K«

Derivation

└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
    └─⟦this⟧ »NEXTREC.K« 
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
    └─⟦this⟧ »NEXTREC.K« 

Mikados K File

(*$P*)
PROCEDURE NEXTREC(VAR F:ISF);                          
VAR NEWBLOCK,NEWBUC,NUM:INTEGER;
BEGIN
  IER:=0;
  WITH FILEHEAD(CURRHEAD) DO IF FILEOPEN THEN IF FILEINIT THEN
  BEGIN
    REXTRACT(KEY1);
    NUM:=1;
    IF BLKENTRY>0 THEN
    BEGIN
      EXTRACT(BLK+(BLKENTRY-1)*RECSIZE,KEY2);
      NUM:=COMPARE(KEY1,KEY2)
    END;
    IF NUM<>0 THEN FINDPOST(F);    
    NUM:=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1);
    IF NUM<=BLKENTRY+IER THEN
    BEGIN
      NEWBLOCK:=BLKINZONE+1;
      NUM:=0;
      WHILE (NUM<=0) AND (NEWBLOCK<=BLKPRBUC) DO
      BEGIN
        NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);
        NEWBLOCK:=NEWBLOCK+1
      END;
      IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1
      ELSE
      BEGIN
        NEWBUC:=BUCINZONE+1;
        NUM:=0;
        WHILE (NUM<=0) AND (NEWBUC<=NBUC) DO
        BEGIN
          NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);
          NEWBUC:=NEWBUC+1
        END;
        IF NUM>0 THEN NEWBUC:=NEWBUC-1
        ELSE
        BEGIN
          IF RECINUSE<=1 THEN IER:=-9 ELSE IER:=-2;
          NEWBUC:=1;
          REPEAT
            NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);
            NEWBUC:=NEWBUC+1
          UNTIL (NUM>0) OR (NEWBUC>BUCINZONE);
          IF NUM>0 THEN NEWBUC:=NEWBUC-1
          ELSE
          BEGIN IER:=-103;EXIT(UDFØR) END;
        END;
        NUM:=IER;IER:=0;
        READTABLE(F,NEWBUC);
        IER:=NUM;
        NEWBLOCK:=1;
        REPEAT
          NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);
          NEWBLOCK:=NEWBLOCK+1
        UNTIL (NUM>0) OR (NEWBLOCK>BLKPRBUC);
        IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1
        ELSE
        BEGIN IER:=-104;EXIT(UDFØR) END;
      END;
      NUM:=IER;IER:=0;
      READBLOCK(F,NEWBLOCK,1);
      IER:=NUM;
      BLKENTRY:=1
    END
    ELSE
      BLKENTRY:=BLKENTRY+1+IER;
    NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE;
    MOVELEFT(Z(NEWBUC),REC^(1),2*RECSIZE) 
(*  FOR NUM:=1 TO RECSIZE DO REC^(NUM):=Z(NEWBUC+NUM)*)
  END
  ELSE IER:=-12 ELSE IER:=-3
END;

Mikados K File

0x000…008 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x008…041 Line {l1=0x37, l2=»PROCEDURE NEXTREC(VAR F:ISF);                          «, l3=0x37}
0x041…063 Line {l1=0x20, l2=»VAR NEWBLOCK,NEWBUC,NUM:INTEGER;«, l3=0x20}
0x063…06a Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x06a…075 Line {l1=0x09, l2=»  IER:=0;«, l3=0x09}
0x075…0b5 Line {l1=0x3e, l2=»  WITH FILEHEAD(CURRHEAD) DO IF FILEOPEN THEN IF FILEINIT THEN«, l3=0x3e}
0x0b5…0be Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0be…0d3 Line {l1=0x13, l2=»    REXTRACT(KEY1);«, l3=0x13}
0x0d3…0e0 Line {l1=0x0b, l2=»    NUM:=1;«, l3=0x0b}
0x0e0…0f8 Line {l1=0x16, l2=»    IF BLKENTRY>0 THEN«, l3=0x16}
0x0f8…103 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x103…132 Line {l1=0x2d, l2=»      EXTRACT(BLK+(BLKENTRY-1)*RECSIZE,KEY2);«, l3=0x2d}
0x132…151 Line {l1=0x1d, l2=»      NUM:=COMPARE(KEY1,KEY2)«, l3=0x1d}
0x151…15b Line {l1=0x08, l2=»    END;«, l3=0x08}
0x15b…180 Line {l1=0x23, l2=»    IF NUM<>0 THEN FINDPOST(F);    «, l3=0x23}
0x180…1ac Line {l1=0x2a, l2=»    NUM:=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1);«, l3=0x2a}
0x1ac…1cb Line {l1=0x1d, l2=»    IF NUM<=BLKENTRY+IER THEN«, l3=0x1d}
0x1cb…1d6 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x1d6…1f4 Line {l1=0x1c, l2=»      NEWBLOCK:=BLKINZONE+1;«, l3=0x1c}
0x1f4…203 Line {l1=0x0d, l2=»      NUM:=0;«, l3=0x0d}
0x203…235 Line {l1=0x30, l2=»      WHILE (NUM<=0) AND (NEWBLOCK<=BLKPRBUC) DO«, l3=0x30}
0x235…242 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x242…271 Line {l1=0x2d, l2=»        NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);«, l3=0x2d}
0x271…28f Line {l1=0x1c, l2=»        NEWBLOCK:=NEWBLOCK+1«, l3=0x1c}
0x28f…29b Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x29b…2c5 Line {l1=0x28, l2=»      IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1«, l3=0x28}
0x2c5…2d1 Line {l1=0x0a, l2=»      ELSE«, l3=0x0a}
0x2d1…2de Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x2de…2fc Line {l1=0x1c, l2=»        NEWBUC:=BUCINZONE+1;«, l3=0x1c}
0x2fc…30d Line {l1=0x0f, l2=»        NUM:=0;«, l3=0x0f}
0x30d…33b Line {l1=0x2c, l2=»        WHILE (NUM<=0) AND (NEWBUC<=NBUC) DO«, l3=0x2c}
0x33b…34a Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x34a…379 Line {l1=0x2d, l2=»          NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);«, l3=0x2d}
0x379…395 Line {l1=0x1a, l2=»          NEWBUC:=NEWBUC+1«, l3=0x1a}
0x395…3a3 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x3a3…3cb Line {l1=0x26, l2=»        IF NUM>0 THEN NEWBUC:=NEWBUC-1«, l3=0x26}
0x3cb…3d9 Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x3d9…3e8 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x3e8…41d Line {l1=0x33, l2=»          IF RECINUSE<=1 THEN IER:=-9 ELSE IER:=-2;«, l3=0x33}
0x41d…433 Line {l1=0x14, l2=»          NEWBUC:=1;«, l3=0x14}
0x433…445 Line {l1=0x10, l2=»          REPEAT«, l3=0x10}
0x445…476 Line {l1=0x2f, l2=»            NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);«, l3=0x2f}
0x476…494 Line {l1=0x1c, l2=»            NEWBUC:=NEWBUC+1«, l3=0x1c}
0x494…4c4 Line {l1=0x2e, l2=»          UNTIL (NUM>0) OR (NEWBUC>BUCINZONE);«, l3=0x2e}
0x4c4…4ee Line {l1=0x28, l2=»          IF NUM>0 THEN NEWBUC:=NEWBUC-1«, l3=0x28}
0x4ee…4fe Line {l1=0x0e, l2=»          ELSE«, l3=0x0e}
0x4fe…52a Line {l1=0x2a, l2=»          BEGIN IER:=-103;EXIT(UDFØR) END;«, l3=0x2a}
0x52a…538 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x538…552 Line {l1=0x18, l2=»        NUM:=IER;IER:=0;«, l3=0x18}
0x552…570 Line {l1=0x1c, l2=»        READTABLE(F,NEWBUC);«, l3=0x1c}
0x570…583 Line {l1=0x11, l2=»        IER:=NUM;«, l3=0x11}
0x583…599 Line {l1=0x14, l2=»        NEWBLOCK:=1;«, l3=0x14}
0x599…5a9 Line {l1=0x0e, l2=»        REPEAT«, l3=0x0e}
0x5a9…5da Line {l1=0x2f, l2=»          NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);«, l3=0x2f}
0x5da…5fa Line {l1=0x1e, l2=»          NEWBLOCK:=NEWBLOCK+1«, l3=0x1e}
0x5fa…629 Line {l1=0x2d, l2=»        UNTIL (NUM>0) OR (NEWBLOCK>BLKPRBUC);«, l3=0x2d}
0x629…655 Line {l1=0x2a, l2=»        IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1«, l3=0x2a}
0x655…663 Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x663…68d Line {l1=0x28, l2=»        BEGIN IER:=-104;EXIT(UDFØR) END;«, l3=0x28}
0x68d…699 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x699…6b1 Line {l1=0x16, l2=»      NUM:=IER;IER:=0;«, l3=0x16}
0x6b1…6d1 Line {l1=0x1e, l2=»      READBLOCK(F,NEWBLOCK,1);«, l3=0x1e}
0x6d1…6e2 Line {l1=0x0f, l2=»      IER:=NUM;«, l3=0x0f}
0x6e2…6f5 Line {l1=0x11, l2=»      BLKENTRY:=1«, l3=0x11}
0x6f5…6fe Line {l1=0x07, l2=»    END«, l3=0x07}
0x6fe…708 Line {l1=0x08, l2=»    ELSE«, l3=0x08}
0x708…729 Line {l1=0x1f, l2=»      BLKENTRY:=BLKENTRY+1+IER;«, l3=0x1f}
0x729…750 Line {l1=0x25, l2=»    NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE;«, l3=0x25}
0x750…77c Line {l1=0x2a, l2=»    MOVELEFT(Z(NEWBUC),REC^(1),2*RECSIZE) «, l3=0x2a}
0x77c…7b5 Line {l1=0x37, l2=»(*  FOR NUM:=1 TO RECSIZE DO REC^(NUM):=Z(NEWBUC+NUM)*)«, l3=0x37}
0x7b5…7bc Line {l1=0x05, l2=»  END«, l3=0x05}
0x7bc…7da Line {l1=0x1c, l2=»  ELSE IER:=-12 ELSE IER:=-3«, l3=0x1c}
0x7da…7e0 Line {l1=0x04, l2=»END;«, l3=0x04}
0x7e0…800 00 00 3d 31 20 54 4f 20 52 45 43 53 49 5a 45 20 44 4f 20 52 45 43 5e 28 4e 55 4d 29 3a 3d 5a 28   ┆  =1 TO RECSIZE DO REC^(NUM):=Z(┆
0x800…820 4e 45 57 42 55 43 2b 4e 55 4d 29 35 05 20 20 45 4e 44 05 1c 20 20 45 4c 53 45 20 49 45 52 3a 3d   ┆NEWBUC+NUM)5   END    ELSE IER:=┆
0x820…840 2d 31 32 20 45 4c 53 45 20 49 45 52 3a 3d 2d 33 1c 04 45 4e 44 3b 04 00 00 53 49 5a 45 2d 31 3b   ┆-12 ELSE IER:=-3  END;   SIZE-1;┆
0x840…860 27 35 20 20 20 20 46 4f 52 20 4e 55 4d 3a 3d 31 20 54 4f 20 52 45 43 53 49 5a 45 20 44 4f 20 52   ┆'5    FOR NUM:=1 TO RECSIZE DO R┆
0x860…880 45 43 5e 28 4e 55 4d 29 3a 3d 5a 28 4e 45 57 42 55 43 2b 4e 55 4d 29 35 05 20 20 45 4e 44 05 1c   ┆EC^(NUM):=Z(NEWBUC+NUM)5   END  ┆
0x880…8a0 20 20 45 4c 53 45 20 49 45 52 3a 3d 2d 31 32 20 45 4c 53 45 20 49 45 52 3a 3d 2d 33 1c 04 45 4e   ┆  ELSE IER:=-12 ELSE IER:=-3  EN┆
0x8a0…8c0 44 3b 04 00 00 2d 33 1c 04 45 4e 44 3b 04 00 00 2b 31 2b 49 45 52 3b 1f 01 20 01 27 20 20 20 20   ┆D;   -3  END;   +1+IER;    '    ┆
0x8c0…8e0 4e 45 57 42 55 43 3a 3d 42 4c 4b 2b 28 42 4c 4b 45 4e 54 52 59 2d 31 29 2a 52 45 43 53 49 5a 45   ┆NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE┆
0x8e0…900 2d 31 3b 27 34 20 20 20 20 46 4f 52 20 4e 55 4d 3a 3d 31 20 54 4f 20 52 45 43 53 49 5a 45 20 44   ┆-1;'4    FOR NUM:=1 TO RECSIZE D┆
0x900…920 4f 20 52 45 43 28 4e 55 4d 29 3a 3d 5a 28 4e 45 57 42 55 43 2b 4e 55 4d 29 34 05 20 20 45 4e 44   ┆O REC(NUM):=Z(NEWBUC+NUM)4   END┆
0x920…940 05 1c 20 20 45 4c 53 45 20 49 45 52 3a 3d 2d 31 32 20 45 4c 53 45 20 49 45 52 3a 3d 2d 33 1c 04   ┆    ELSE IER:=-12 ELSE IER:=-3  ┆
0x940…960 45 4e 44 3b 04 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   ┆END;                            ┆
0x960…980 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   ┆                                ┆
          […0x1…]
0x9a0…9c0 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 63   ┆                               c┆

Reduced view