|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2528 (0x9e0)
Types: TextFile
Notes: Mikados_K
Names: »FINDPOS1.K«
└─⟦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«
(*$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;
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…]
▶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