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

⟦feb3f9b6d⟧ TextFile

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

Derivation

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

Mikados K File

(*$P*)
PROCEDURE FINDPOST;
VAR NUM,I,X,PEG:INTEGER;
BEGIN
  WITH FILEHEAD 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(PEG);
      FOR PEG:=BLKPRBUC DOWNTO 1 DO
      IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN
      BEGIN
        READBLOCK(PEG,1);
        BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);
        IER:=-1;
        EXIT(FINDPOST)
      END;
      IER:=-100;EXIT(OBEY)       
    END ELSE
    BEGIN
      READTABLE(PEG);
      I:=BLT+1;
      PEG:=0;
      X:=-1;
      REPEAT
        IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(OBEY) END;
        NUM:=Z(I);
        PEG:=PEG+1;
        IF NUM>0 THEN
        BEGIN
          X:=COMPARE(I+1,KEY1);
          IF X>=0 THEN
            READBLOCK(PEG,1);
        END;
        I:=I+ENTRYSIZE
      UNTIL X>=0;
      I:=0;
      REPEAT
        I:=I+1;
        IF I>NUM THEN BEGIN IER:=-102;EXIT(OBEY) 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…01d Line {l1=0x13, l2=»PROCEDURE FINDPOST;«, l3=0x13}
0x01d…037 Line {l1=0x18, l2=»VAR NUM,I,X,PEG:INTEGER;«, l3=0x18}
0x037…03e Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x03e…052 Line {l1=0x12, l2=»  WITH FILEHEAD DO«, l3=0x12}
0x052…05b Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x05b…070 Line {l1=0x13, l2=»    REXTRACT(KEY1);«, l3=0x13}
0x070…07c Line {l1=0x0a, l2=»    X:=-1;«, l3=0x0a}
0x07c…087 Line {l1=0x09, l2=»    I:=1;«, l3=0x09}
0x087…093 Line {l1=0x0a, l2=»    REPEAT«, l3=0x0a}
0x093…0bd Line {l1=0x28, l2=»      IF Z((I-1)*ENTRYSIZE+BUT+1)>0 THEN«, l3=0x28}
0x0bd…0ca Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0ca…0db Line {l1=0x0f, l2=»        PEG:=I;«, l3=0x0f}
0x0db…10b Line {l1=0x2e, l2=»        X:=COMPARE((I-1)*ENTRYSIZE+BUT+2,KEY1)«, l3=0x2e}
0x10b…117 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x117…125 Line {l1=0x0c, l2=»      I:=I+1«, l3=0x0c}
0x125…144 Line {l1=0x1d, l2=»    UNTIL (I>NBUC) OR (X>=0);«, l3=0x1d}
0x144…155 Line {l1=0x0f, l2=»    IF X<0 THEN«, l3=0x0f}
0x155…160 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x160…177 Line {l1=0x15, l2=»      READTABLE(PEG);«, l3=0x15}
0x177…19c Line {l1=0x23, l2=»      FOR PEG:=BLKPRBUC DOWNTO 1 DO«, l3=0x23}
0x19c…1c8 Line {l1=0x2a, l2=»      IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN«, l3=0x2a}
0x1c8…1d5 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x1d5…1f0 Line {l1=0x19, l2=»        READBLOCK(PEG,1);«, l3=0x19}
0x1f0…221 Line {l1=0x2f, l2=»        BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);«, l3=0x2f}
0x221…233 Line {l1=0x10, l2=»        IER:=-1;«, l3=0x10}
0x233…24b Line {l1=0x16, l2=»        EXIT(FINDPOST)«, l3=0x16}
0x24b…257 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x257…27a Line {l1=0x21, l2=»      IER:=-100;EXIT(OBEY)       «, l3=0x21}
0x27a…288 Line {l1=0x0c, l2=»    END ELSE«, l3=0x0c}
0x288…293 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x293…2aa Line {l1=0x15, l2=»      READTABLE(PEG);«, l3=0x15}
0x2aa…2bb Line {l1=0x0f, l2=»      I:=BLT+1;«, l3=0x0f}
0x2bb…2ca Line {l1=0x0d, l2=»      PEG:=0;«, l3=0x0d}
0x2ca…2d8 Line {l1=0x0c, l2=»      X:=-1;«, l3=0x0c}
0x2d8…2e6 Line {l1=0x0c, l2=»      REPEAT«, l3=0x0c}
0x2e6…324 Line {l1=0x3c, l2=»        IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(OBEY) END;«, l3=0x3c}
0x324…338 Line {l1=0x12, l2=»        NUM:=Z(I);«, l3=0x12}
0x338…34d Line {l1=0x13, l2=»        PEG:=PEG+1;«, l3=0x13}
0x34d…364 Line {l1=0x15, l2=»        IF NUM>0 THEN«, l3=0x15}
0x364…373 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x373…394 Line {l1=0x1f, l2=»          X:=COMPARE(I+1,KEY1);«, l3=0x1f}
0x394…3ac Line {l1=0x16, l2=»          IF X>=0 THEN«, l3=0x16}
0x3ac…3cb Line {l1=0x1d, l2=»            READBLOCK(PEG,1);«, l3=0x1d}
0x3cb…3d9 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x3d9…3f1 Line {l1=0x16, l2=»        I:=I+ENTRYSIZE«, l3=0x16}
0x3f1…404 Line {l1=0x11, l2=»      UNTIL X>=0;«, l3=0x11}
0x404…411 Line {l1=0x0b, l2=»      I:=0;«, l3=0x0b}
0x411…41f Line {l1=0x0c, l2=»      REPEAT«, l3=0x0c}
0x41f…430 Line {l1=0x0f, l2=»        I:=I+1;«, l3=0x0f}
0x430…467 Line {l1=0x35, l2=»        IF I>NUM THEN BEGIN IER:=-102;EXIT(OBEY) END;«, l3=0x35}
0x467…491 Line {l1=0x28, l2=»        EXTRACT(BLK+(I-1)*RECSIZE,KEY2);«, l3=0x28}
0x491…4b0 Line {l1=0x1d, l2=»        X:=COMPARE(KEY2,KEY1)«, l3=0x1d}
0x4b0…4c3 Line {l1=0x11, l2=»      UNTIL X>=0;«, l3=0x11}
0x4c3…4eb Line {l1=0x26, l2=»      IF X=0 THEN IER:=0 ELSE IER:=-1;«, l3=0x26}
0x4eb…4fe Line {l1=0x11, l2=»      BLKENTRY:=I«, l3=0x11}
0x4fe…507 Line {l1=0x07, l2=»    END«, l3=0x07}
0x507…50e Line {l1=0x05, l2=»  END«, l3=0x05}
0x50e…514 Line {l1=0x04, l2=»END;«, l3=0x04}
0x514…520 00 00 00 63 63 63 63 63 63 63 63 63                                                               ┆   ccccccccc┆
0x520…540 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┆
          […0x25…]

TextFile

▶06◀(*$P*)▶06◀▶13◀PROCEDURE FINDPOST;▶13◀▶18◀VAR NUM,I,X,PEG:INTEGER;▶18◀▶05◀BEGIN▶05◀▶12◀  WITH FILEHEAD DO▶12◀▶07◀  BEGIN▶07◀▶13◀    REXTRACT(KEY1);▶13◀
    X:=-1;
	    I:=1;	
    REPEAT
(      IF Z((I-1)*ENTRYSIZE+BUT+1)>0 THEN(▶0b◀      BEGIN▶0b◀▶0f◀        PEG:=I;▶0f◀.        X:=COMPARE((I-1)*ENTRYSIZE+BUT+2,KEY1).
      END;
\f

      I:=I+1\f

▶1d◀    UNTIL (I>NBUC) OR (X>=0);▶1d◀▶0f◀    IF X<0 THEN▶0f◀	    BEGIN	▶15◀      READTABLE(PEG);▶15◀#      FOR PEG:=BLKPRBUC DOWNTO 1 DO#*      IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN*▶0b◀      BEGIN▶0b◀▶19◀        READBLOCK(PEG,1);▶19◀/        BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);/▶10◀        IER:=-1;▶10◀▶16◀        EXIT(FINDPOST)▶16◀
      END;
!      IER:=-100;EXIT(OBEY)       !\f

    END ELSE\f

	    BEGIN	▶15◀      READTABLE(PEG);▶15◀▶0f◀      I:=BLT+1;▶0f◀\r      PEG:=0;\r\f

      X:=-1;\f

\f

      REPEAT\f

<        IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(OBEY) END;<▶12◀        NUM:=Z(I);▶12◀▶13◀        PEG:=PEG+1;▶13◀▶15◀        IF NUM>0 THEN▶15◀\r        BEGIN\r▶1f◀          X:=COMPARE(I+1,KEY1);▶1f◀▶16◀          IF X>=0 THEN▶16◀▶1d◀            READBLOCK(PEG,1);▶1d◀\f

        END;\f

▶16◀        I:=I+ENTRYSIZE▶16◀▶11◀      UNTIL X>=0;▶11◀▶0b◀      I:=0;▶0b◀\f

      REPEAT\f

▶0f◀        I:=I+1;▶0f◀5        IF I>NUM THEN BEGIN IER:=-102;EXIT(OBEY) END;5(        EXTRACT(BLK+(I-1)*RECSIZE,KEY2);(▶1d◀        X:=COMPARE(KEY2,KEY1)▶1d◀▶11◀      UNTIL X>=0;▶11◀&      IF X=0 THEN IER:=0 ELSE IER:=-1;&▶11◀      BLKENTRY:=I▶11◀▶07◀    END▶07◀▶05◀  END▶05◀▶04◀END;▶04◀▶00◀▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Reduced view