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

⟦48fd00947⟧ TextFile

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

Derivation

└─⟦6b1c9961a⟧ Bits:30008989 INDPERM P1
    └─⟦this⟧ »NEXTREC.K« 

Mikados K File

PROCEDURE NEXTREC(VAR ZO:ISFHEAD;VAR F:ISF;VAR REC:AR);
VAR NEWBLOCK,NEWBUC,NUM:INTEGER;
BEGIN
  IER:=0;
  WITH ZO DO IF FILEOPEN THEN IF FILEINIT THEN
  BEGIN
    EXTRACT(ZO,REC,Z,1,KEY1);
    NUM:=1;
    IF BLKENTRY>0 THEN
    BEGIN
      EXTRACT(ZO,Z,Z,BLK+(BLKENTRY-1)*RECSIZE,KEY2);
      NUM:=COMPARE(ZO,Z,Z,KEY1,KEY2)
    END;
    IF NUM<>0 THEN FINDPOST(ZO,F,REC);
    IF (IER<>0) AND (IER<>-1) THEN EXIT(NEXTREC);
    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
            WRITE('ALVORLIG TABELFEJL');
            NUM:=NUM DIV 0
          END
        END;
        NUM:=IER;IER:=0;
        READTABLE(ZO,F,NEWBUC);
        IF IER<>0 THEN EXIT(NEXTREC);
        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
          WRITE('ALVORLIG TABELFEJL 1');
          NUM:=NUM DIV 0
        END
      END;
      NUM:=IER;IER:=0;
      READBLOCK(ZO,F,NEWBLOCK,1);
      IF IER<>0 THEN EXIT(NEXTREC);
      IER:=NUM;
      BLKENTRY:=1
    END
    ELSE
      BLKENTRY:=BLKENTRY+1+IER;
 
    NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE-1;
    FOR NUM:=1 TO RECSIZE DO REC(NUM):=Z(NEWBUC+NUM)
  END
  ELSE IER:=-12 ELSE IER:=-3
END;

Mikados K File

0x000…039 Line {l1=0x37, l2=»PROCEDURE NEXTREC(VAR ZO:ISFHEAD;VAR F:ISF;VAR REC:AR);«, l3=0x37}
0x039…05b Line {l1=0x20, l2=»VAR NEWBLOCK,NEWBUC,NUM:INTEGER;«, l3=0x20}
0x05b…062 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x062…06d Line {l1=0x09, l2=»  IER:=0;«, l3=0x09}
0x06d…09d Line {l1=0x2e, l2=»  WITH ZO DO IF FILEOPEN THEN IF FILEINIT THEN«, l3=0x2e}
0x09d…0a6 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0a6…0c5 Line {l1=0x1d, l2=»    EXTRACT(ZO,REC,Z,1,KEY1);«, l3=0x1d}
0x0c5…0d2 Line {l1=0x0b, l2=»    NUM:=1;«, l3=0x0b}
0x0d2…0ea Line {l1=0x16, l2=»    IF BLKENTRY>0 THEN«, l3=0x16}
0x0ea…0f5 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x0f5…12b Line {l1=0x34, l2=»      EXTRACT(ZO,Z,Z,BLK+(BLKENTRY-1)*RECSIZE,KEY2);«, l3=0x34}
0x12b…151 Line {l1=0x24, l2=»      NUM:=COMPARE(ZO,Z,Z,KEY1,KEY2)«, l3=0x24}
0x151…15b Line {l1=0x08, l2=»    END;«, l3=0x08}
0x15b…183 Line {l1=0x26, l2=»    IF NUM<>0 THEN FINDPOST(ZO,F,REC);«, l3=0x26}
0x183…1b6 Line {l1=0x31, l2=»    IF (IER<>0) AND (IER<>-1) THEN EXIT(NEXTREC);«, l3=0x31}
0x1b6…1e2 Line {l1=0x2a, l2=»    NUM:=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1);«, l3=0x2a}
0x1e2…201 Line {l1=0x1d, l2=»    IF NUM<=BLKENTRY+IER THEN«, l3=0x1d}
0x201…20c Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x20c…22a Line {l1=0x1c, l2=»      NEWBLOCK:=BLKINZONE+1;«, l3=0x1c}
0x22a…239 Line {l1=0x0d, l2=»      NUM:=0;«, l3=0x0d}
0x239…26b Line {l1=0x30, l2=»      WHILE (NUM<=0) AND (NEWBLOCK<=BLKPRBUC) DO«, l3=0x30}
0x26b…278 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x278…2a7 Line {l1=0x2d, l2=»        NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);«, l3=0x2d}
0x2a7…2c5 Line {l1=0x1c, l2=»        NEWBLOCK:=NEWBLOCK+1«, l3=0x1c}
0x2c5…2d1 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x2d1…2fb Line {l1=0x28, l2=»      IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1«, l3=0x28}
0x2fb…307 Line {l1=0x0a, l2=»      ELSE«, l3=0x0a}
0x307…314 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x314…332 Line {l1=0x1c, l2=»        NEWBUC:=BUCINZONE+1;«, l3=0x1c}
0x332…343 Line {l1=0x0f, l2=»        NUM:=0;«, l3=0x0f}
0x343…371 Line {l1=0x2c, l2=»        WHILE (NUM<=0) AND (NEWBUC<=NBUC) DO«, l3=0x2c}
0x371…380 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x380…3af Line {l1=0x2d, l2=»          NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);«, l3=0x2d}
0x3af…3cb Line {l1=0x1a, l2=»          NEWBUC:=NEWBUC+1«, l3=0x1a}
0x3cb…3d9 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x3d9…401 Line {l1=0x26, l2=»        IF NUM>0 THEN NEWBUC:=NEWBUC-1«, l3=0x26}
0x401…40f Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x40f…41e Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x41e…453 Line {l1=0x33, l2=»          IF RECINUSE<=1 THEN IER:=-9 ELSE IER:=-2;«, l3=0x33}
0x453…469 Line {l1=0x14, l2=»          NEWBUC:=1;«, l3=0x14}
0x469…47b Line {l1=0x10, l2=»          REPEAT«, l3=0x10}
0x47b…4ac Line {l1=0x2f, l2=»            NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);«, l3=0x2f}
0x4ac…4ca Line {l1=0x1c, l2=»            NEWBUC:=NEWBUC+1«, l3=0x1c}
0x4ca…4fa Line {l1=0x2e, l2=»          UNTIL (NUM>0) OR (NEWBUC>BUCINZONE);«, l3=0x2e}
0x4fa…524 Line {l1=0x28, l2=»          IF NUM>0 THEN NEWBUC:=NEWBUC-1«, l3=0x28}
0x524…534 Line {l1=0x0e, l2=»          ELSE«, l3=0x0e}
0x534…545 Line {l1=0x0f, l2=»          BEGIN«, l3=0x0f}
0x545…56f Line {l1=0x28, l2=»            WRITE('ALVORLIG TABELFEJL');«, l3=0x28}
0x56f…58b Line {l1=0x1a, l2=»            NUM:=NUM DIV 0«, l3=0x1a}
0x58b…59a Line {l1=0x0d, l2=»          END«, l3=0x0d}
0x59a…5a8 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x5a8…5c2 Line {l1=0x18, l2=»        NUM:=IER;IER:=0;«, l3=0x18}
0x5c2…5e3 Line {l1=0x1f, l2=»        READTABLE(ZO,F,NEWBUC);«, l3=0x1f}
0x5e3…60a Line {l1=0x25, l2=»        IF IER<>0 THEN EXIT(NEXTREC);«, l3=0x25}
0x60a…61d Line {l1=0x11, l2=»        IER:=NUM;«, l3=0x11}
0x61d…633 Line {l1=0x14, l2=»        NEWBLOCK:=1;«, l3=0x14}
0x633…643 Line {l1=0x0e, l2=»        REPEAT«, l3=0x0e}
0x643…674 Line {l1=0x2f, l2=»          NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);«, l3=0x2f}
0x674…694 Line {l1=0x1e, l2=»          NEWBLOCK:=NEWBLOCK+1«, l3=0x1e}
0x694…6c3 Line {l1=0x2d, l2=»        UNTIL (NUM>0) OR (NEWBLOCK>BLKPRBUC);«, l3=0x2d}
0x6c3…6ef Line {l1=0x2a, l2=»        IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1«, l3=0x2a}
0x6ef…6fd Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x6fd…70c Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x70c…736 Line {l1=0x28, l2=»          WRITE('ALVORLIG TABELFEJL 1');«, l3=0x28}
0x736…750 Line {l1=0x18, l2=»          NUM:=NUM DIV 0«, l3=0x18}
0x750…75d Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x75d…769 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x769…781 Line {l1=0x16, l2=»      NUM:=IER;IER:=0;«, l3=0x16}
0x781…7a4 Line {l1=0x21, l2=»      READBLOCK(ZO,F,NEWBLOCK,1);«, l3=0x21}
0x7a4…7c9 Line {l1=0x23, l2=»      IF IER<>0 THEN EXIT(NEXTREC);«, l3=0x23}
0x7c9…7da Line {l1=0x0f, l2=»      IER:=NUM;«, l3=0x0f}
0x7da…7ed Line {l1=0x11, l2=»      BLKENTRY:=1«, l3=0x11}
0x7ed…7f6 Line {l1=0x07, l2=»    END«, l3=0x07}
0x7f6…800 Line {l1=0x08, l2=»    ELSE«, l3=0x08}
0x800…821 Line {l1=0x1f, l2=»      BLKENTRY:=BLKENTRY+1+IER;«, l3=0x1f}
0x821…824 Line {l1=0x01, l2=» «, l3=0x01}
0x824…84d Line {l1=0x27, l2=»    NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE-1;«, l3=0x27}
0x84d…883 Line {l1=0x34, l2=»    FOR NUM:=1 TO RECSIZE DO REC(NUM):=Z(NEWBUC+NUM)«, l3=0x34}
0x883…88a Line {l1=0x05, l2=»  END«, l3=0x05}
0x88a…8a8 Line {l1=0x1c, l2=»  ELSE IER:=-12 ELSE IER:=-3«, l3=0x1c}
0x8a8…8ae Line {l1=0x04, l2=»END;«, l3=0x04}
0x8ae…8c0 00 00 2b 31 2b 49 45 52 3b 1f 01 20 01 27 20 20 20 20                                             ┆  +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 4c   ┆                               L┆

Reduced view