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

⟦6c213dfce⟧ TextFile

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

Derivation

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

Mikados K File

(*$P*)
PROCEDURE FINDPOST(VAR F:ISF);              
VAR NUM,I,X,PEG:INTEGER;
BEGIN
  WITH FILEHEAD(CURRHEAD) DO
  BEGIN
    REXTRACT(KEY1);
    X:=-1;
    I:=1;
    REPEAT
      IF Z((I-1)*ENTRYSIZE+BUT+1)>0 THEN
      BEGIN
        PEG:=I;
        X:=COMPARE((I-1)*ENTRYSIZE+BUT+2,KEY1)
      END;
      I:=I+1
    UNTIL (I>NBUC) OR (X>=0);
    IF X<0 THEN
    BEGIN
      READTABLE(F,PEG);
      FOR PEG:=BLKPRBUC DOWNTO 1 DO
      IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN
      BEGIN
        READBLOCK(F,PEG,1);
        BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);
        IER:=-1;
        EXIT(FINDPOST)
      END;
      IER:=-100;EXIT(UDFØR)       
    END ELSE
    BEGIN
      READTABLE(F,PEG);
      I:=BLT+1;
      PEG:=0;
      X:=-1;
      REPEAT
        IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(UDFØR) END;
        NUM:=Z(I);
        PEG:=PEG+1;
        IF NUM>0 THEN
        BEGIN
          X:=COMPARE(I+1,KEY1);
          IF X>=0 THEN
            READBLOCK(F,PEG,1);
        END;
        I:=I+ENTRYSIZE
      UNTIL X>=0;
      I:=0;
      REPEAT
        I:=I+1;
        IF I>NUM THEN BEGIN IER:=-102;EXIT(UDFØR) END;
        EXTRACT(BLK+(I-1)*RECSIZE,KEY2);
        X:=COMPARE(KEY2,KEY1)
      UNTIL X>=0;
      IF X=0 THEN IER:=0 ELSE IER:=-1;
      BLKENTRY:=I
    END
  END
END;

Mikados K File

0x000…008 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x008…036 Line {l1=0x2c, l2=»PROCEDURE FINDPOST(VAR F:ISF);              «, l3=0x2c}
0x036…050 Line {l1=0x18, l2=»VAR NUM,I,X,PEG:INTEGER;«, l3=0x18}
0x050…057 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x057…075 Line {l1=0x1c, l2=»  WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x075…07e Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x07e…093 Line {l1=0x13, l2=»    REXTRACT(KEY1);«, l3=0x13}
0x093…09f Line {l1=0x0a, l2=»    X:=-1;«, l3=0x0a}
0x09f…0aa Line {l1=0x09, l2=»    I:=1;«, l3=0x09}
0x0aa…0b6 Line {l1=0x0a, l2=»    REPEAT«, l3=0x0a}
0x0b6…0e0 Line {l1=0x28, l2=»      IF Z((I-1)*ENTRYSIZE+BUT+1)>0 THEN«, l3=0x28}
0x0e0…0ed Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0ed…0fe Line {l1=0x0f, l2=»        PEG:=I;«, l3=0x0f}
0x0fe…12e Line {l1=0x2e, l2=»        X:=COMPARE((I-1)*ENTRYSIZE+BUT+2,KEY1)«, l3=0x2e}
0x12e…13a Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x13a…148 Line {l1=0x0c, l2=»      I:=I+1«, l3=0x0c}
0x148…167 Line {l1=0x1d, l2=»    UNTIL (I>NBUC) OR (X>=0);«, l3=0x1d}
0x167…178 Line {l1=0x0f, l2=»    IF X<0 THEN«, l3=0x0f}
0x178…183 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x183…19c Line {l1=0x17, l2=»      READTABLE(F,PEG);«, l3=0x17}
0x19c…1c1 Line {l1=0x23, l2=»      FOR PEG:=BLKPRBUC DOWNTO 1 DO«, l3=0x23}
0x1c1…1ed Line {l1=0x2a, l2=»      IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN«, l3=0x2a}
0x1ed…1fa Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x1fa…217 Line {l1=0x1b, l2=»        READBLOCK(F,PEG,1);«, l3=0x1b}
0x217…248 Line {l1=0x2f, l2=»        BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);«, l3=0x2f}
0x248…25a Line {l1=0x10, l2=»        IER:=-1;«, l3=0x10}
0x25a…272 Line {l1=0x16, l2=»        EXIT(FINDPOST)«, l3=0x16}
0x272…27e Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x27e…2a2 Line {l1=0x22, l2=»      IER:=-100;EXIT(UDFØR)       «, l3=0x22}
0x2a2…2b0 Line {l1=0x0c, l2=»    END ELSE«, l3=0x0c}
0x2b0…2bb Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x2bb…2d4 Line {l1=0x17, l2=»      READTABLE(F,PEG);«, l3=0x17}
0x2d4…2e5 Line {l1=0x0f, l2=»      I:=BLT+1;«, l3=0x0f}
0x2e5…2f4 Line {l1=0x0d, l2=»      PEG:=0;«, l3=0x0d}
0x2f4…302 Line {l1=0x0c, l2=»      X:=-1;«, l3=0x0c}
0x302…310 Line {l1=0x0c, l2=»      REPEAT«, l3=0x0c}
0x310…34f Line {l1=0x3d, l2=»        IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(UDFØR) END;«, l3=0x3d}
0x34f…363 Line {l1=0x12, l2=»        NUM:=Z(I);«, l3=0x12}
0x363…378 Line {l1=0x13, l2=»        PEG:=PEG+1;«, l3=0x13}
0x378…38f Line {l1=0x15, l2=»        IF NUM>0 THEN«, l3=0x15}
0x38f…39e Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x39e…3bf Line {l1=0x1f, l2=»          X:=COMPARE(I+1,KEY1);«, l3=0x1f}
0x3bf…3d7 Line {l1=0x16, l2=»          IF X>=0 THEN«, l3=0x16}
0x3d7…3f8 Line {l1=0x1f, l2=»            READBLOCK(F,PEG,1);«, l3=0x1f}
0x3f8…406 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x406…41e Line {l1=0x16, l2=»        I:=I+ENTRYSIZE«, l3=0x16}
0x41e…431 Line {l1=0x11, l2=»      UNTIL X>=0;«, l3=0x11}
0x431…43e Line {l1=0x0b, l2=»      I:=0;«, l3=0x0b}
0x43e…44c Line {l1=0x0c, l2=»      REPEAT«, l3=0x0c}
0x44c…45d Line {l1=0x0f, l2=»        I:=I+1;«, l3=0x0f}
0x45d…495 Line {l1=0x36, l2=»        IF I>NUM THEN BEGIN IER:=-102;EXIT(UDFØR) END;«, l3=0x36}
0x495…4bf Line {l1=0x28, l2=»        EXTRACT(BLK+(I-1)*RECSIZE,KEY2);«, l3=0x28}
0x4bf…4de Line {l1=0x1d, l2=»        X:=COMPARE(KEY2,KEY1)«, l3=0x1d}
0x4de…4f1 Line {l1=0x11, l2=»      UNTIL X>=0;«, l3=0x11}
0x4f1…519 Line {l1=0x26, l2=»      IF X=0 THEN IER:=0 ELSE IER:=-1;«, l3=0x26}
0x519…52c Line {l1=0x11, l2=»      BLKENTRY:=I«, l3=0x11}
0x52c…535 Line {l1=0x07, l2=»    END«, l3=0x07}
0x535…53c Line {l1=0x05, l2=»  END«, l3=0x05}
0x53c…542 Line {l1=0x04, l2=»END;«, l3=0x04}
0x542…560 00 00 05 04 45 4e 44 3b 04 00 00 28 46 49 4e 44 50 4f 53 54 29 20 45 4e 44 3b 39 28 20 20         ┆    END;   (FINDPOST) END;9(  ┆
0x560…580 20 20 20 20 20 20 45 58 54 52 41 43 54 28 42 4c 4b 2b 28 49 2d 31 29 2a 52 45 43 53 49 5a 45 2c   ┆      EXTRACT(BLK+(I-1)*RECSIZE,┆
0x580…5a0 4b 45 59 32 29 3b 28 1d 20 20 20 20 20 20 20 20 58 3a 3d 43 4f 4d 50 41 52 45 28 4b 45 59 32 2c   ┆KEY2);(         X:=COMPARE(KEY2,┆
0x5a0…5c0 4b 45 59 31 29 1d 11 20 20 20 20 20 20 55 4e 54 49 4c 20 58 3e 3d 30 3b 11 26 20 20 20 20 20 20   ┆KEY1)        UNTIL X>=0; &      ┆
0x5c0…5e0 49 46 20 58 3d 30 20 54 48 45 4e 20 49 45 52 3a 3d 30 20 45 4c 53 45 20 49 45 52 3a 3d 2d 31 3b   ┆IF X=0 THEN IER:=0 ELSE IER:=-1;┆
0x5e0…600 26 11 20 20 20 20 20 20 42 4c 4b 45 4e 54 52 59 3a 3d 49 11 07 20 20 20 20 45 4e 44 07 05 20 20   ┆&       BLKENTRY:=I      END    ┆
0x600…620 45 4e 44 05 04 45 4e 44 3b 04 00 00 3d 43 4f 4d 50 41 52 45 28 4b 45 59 32 2c 4b 45 59 31 29 1d   ┆END  END;   =COMPARE(KEY2,KEY1) ┆
0x620…640 11 20 20 20 20 20 20 55 4e 54 49 4c 20 58 3e 3d 30 3b 11 26 20 20 20 20 20 20 49 46 20 58 3d 30   ┆       UNTIL X>=0; &      IF X=0┆
0x640…660 20 54 48 45 4e 20 49 45 52 3a 3d 30 20 45 4c 53 45 20 49 45 52 3a 3d 2d 31 3b 26 11 20 20 20 20   ┆ THEN IER:=0 ELSE IER:=-1;&     ┆
0x660…680 20 20 42 4c 4b 45 4e 54 52 59 3a 3d 49 11 07 20 20 20 20 45 4e 44 07 05 20 20 45 4e 44 05 04 45   ┆  BLKENTRY:=I      END    END  E┆
0x680…6a0 4e 44 3b 04 00 00 38 2c 5a 28 42 4c 4b 2b 31 2b 28 49 2d 31 29 2a 52 45 43 53 49 5a 45 29 3a 38   ┆ND;   8,Z(BLK+1+(I-1)*RECSIZE):8┆
0x6a0…6c0 2c 49 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5a 28 42 4c 4b 2b 32 2b 28   ┆,I.                    Z(BLK+2+(┆
0x6c0…6e0 49 2d 31 29 2a 52 45 43 53 49 5a 45 29 3a 38 29 3b 2e 16 20 20 20 20 20 20 20 20 20 20 20 20 49   ┆I-1)*RECSIZE):8);.             I┆
0x6e0…700 3a 3d 49 20 44 49 56 20 30 16 0c 20 20 20 20 20 20 20 20 45 4e 44 3b 0c 2f 20 20 20 20 20 20 20   ┆:=I DIV 0          END; /       ┆
0x700…720 20 45 58 54 52 41 43 54 28 5a 4f 2c 5a 2c 5a 2c 42 4c 4b 2b 28 49 2d 31 29 2a 52 45 43 53 49 5a   ┆ EXTRACT(ZO,Z,Z,BLK+(I-1)*RECSIZ┆
0x720…740 45 2c 4b 45 59 32 29 3b 2f 24 20 20 20 20 20 20 20 20 58 3a 3d 43 4f 4d 50 41 52 45 28 5a 4f 2c   ┆E,KEY2);/$        X:=COMPARE(ZO,┆
0x740…760 5a 2c 5a 2c 4b 45 59 32 2c 4b 45 59 31 29 24 11 20 20 20 20 20 20 55 4e 54 49 4c 20 58 3e 3d 30   ┆Z,Z,KEY2,KEY1)$       UNTIL X>=0┆
0x760…780 3b 11 26 20 20 20 20 20 20 49 46 20 58 3d 30 20 54 48 45 4e 20 49 45 52 3a 3d 30 20 45 4c 53 45   ┆; &      IF X=0 THEN IER:=0 ELSE┆
0x780…7a0 20 49 45 52 3a 3d 2d 31 3b 26 11 20 20 20 20 20 20 42 4c 4b 45 4e 54 52 59 3a 3d 49 11 07 20 20   ┆ IER:=-1;&       BLKENTRY:=I    ┆
0x7a0…7c0 20 20 45 4e 44 07 05 20 20 45 4e 44 05 04 45 4e 44 3b 04 00 00 3a 38 2c 5a 28 42 4c 4b 2b 31 2b   ┆  END    END  END;   :8,Z(BLK+1+┆
0x7c0…7e0 28 49 2d 31 29 2a 52 45 43 53 49 5a 45 29 3a 38 2c 49 2e 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆(I-1)*RECSIZE):8,I.             ┆
0x7e0…800 20 20 20 20 20 20 20 5a 28 42 4c 4b 2b 32 2b 28 49 2d 31 29 2a 52 45 43 53 49 5a 45 29 3a 38 29   ┆       Z(BLK+2+(I-1)*RECSIZE):8)┆
0x800…820 3b 2e 16 20 20 20 20 20 20 20 20 20 20 20 20 49 3a 3d 49 20 44 49 56 20 30 16 0c 20 20 20 20 20   ┆;.             I:=I DIV 0       ┆
0x820…840 20 20 20 45 4e 44 3b 0c 2f 20 20 20 20 20 20 20 20 45 58 54 52 41 43 54 28 5a 4f 2c 5a 2c 5a 2c   ┆   END; /        EXTRACT(ZO,Z,Z,┆
0x840…860 42 4c 4b 2b 28 49 2d 31 29 2a 52 45 43 53 49 5a 45 2c 4b 45 59 32 29 3b 2f 24 20 20 20 20 20 20   ┆BLK+(I-1)*RECSIZE,KEY2);/$      ┆
0x860…880 20 20 58 3a 3d 43 4f 4d 50 41 52 45 28 5a 4f 2c 5a 2c 5a 2c 4b 45 59 32 2c 4b 45 59 31 29 24 11   ┆  X:=COMPARE(ZO,Z,Z,KEY2,KEY1)$ ┆
0x880…8a0 20 20 20 20 20 20 55 4e 54 49 4c 20 58 3e 3d 30 3b 11 26 20 20 20 20 20 20 49 46 20 58 3d 30 20   ┆      UNTIL X>=0; &      IF X=0 ┆
0x8a0…8c0 54 48 45 4e 20 49 45 52 3a 3d 30 20 45 4c 53 45 20 49 45 52 3a 3d 2d 31 3b 26 11 20 20 20 20 20   ┆THEN IER:=0 ELSE IER:=-1;&      ┆
0x8c0…8e0 20 42 4c 4b 45 4e 54 52 59 3a 3d 49 11 07 20 20 20 20 45 4e 44 07 05 20 20 45 4e 44 05 04 45 4e   ┆ BLKENTRY:=I      END    END  EN┆
0x8e0…900 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 00 00   ┆D;                              ┆
0x900…920 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   ┆                                ┆
          […0x4…]
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