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;

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

Full view