|
|
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: »NEXTRE1.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »NEXTRE1.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »NEXTRE1.K«
(*$P*)
PROCEDURE NEXTREC;
VAR NEWBLOCK,NEWBUC,NUM:INTEGER;
BEGIN
IER:=0;
WITH FILEHEAD DO IF FILEOPEN THEN IF FILEINIT THEN
BEGIN
REXTRACT(KEY1);
NUM:=1;
IF BLKENTRY>0 THEN
BEGIN
EXTRACT(BLK+(BLKENTRY-1)*RECSIZE,KEY2);
NUM:=COMPARE(KEY1,KEY2)
END;
IF NUM<>0 THEN FINDPOST;
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 IER:=-103;EXIT(OBEY) END;
END;
NUM:=IER;IER:=0;
READTABLE(NEWBUC);
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 IER:=-104;EXIT(OBEY) END;
END;
NUM:=IER;IER:=0;
READBLOCK(NEWBLOCK,1);
IER:=NUM;
BLKENTRY:=1
END
ELSE
BLKENTRY:=BLKENTRY+1+IER;
NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE;
MOVELEFT(Z(NEWBUC),REC^(1),2*RECSIZE)
(* FOR NUM:=1 TO RECSIZE DO REC^(NUM):=Z(NEWBUC+NUM)*)
END
ELSE IER:=-12 ELSE IER:=-3
END;
▶06◀(*$P*)▶06◀▶12◀PROCEDURE NEXTREC;▶12◀ VAR NEWBLOCK,NEWBUC,NUM:INTEGER; ▶05◀BEGIN▶05◀ IER:=0; 4 WITH FILEHEAD DO IF FILEOPEN THEN IF FILEINIT THEN4▶07◀ BEGIN▶07◀▶13◀ REXTRACT(KEY1);▶13◀▶0b◀ NUM:=1;▶0b◀▶16◀ IF BLKENTRY>0 THEN▶16◀ BEGIN - EXTRACT(BLK+(BLKENTRY-1)*RECSIZE,KEY2);-▶1d◀ NUM:=COMPARE(KEY1,KEY2)▶1d◀▶08◀ END;▶08◀ IF NUM<>0 THEN FINDPOST; * NUM:=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1);*▶1d◀ IF NUM<=BLKENTRY+IER THEN▶1d◀ BEGIN ▶1c◀ NEWBLOCK:=BLKINZONE+1;▶1c◀\r NUM:=0;\r0 WHILE (NUM<=0) AND (NEWBLOCK<=BLKPRBUC) DO0▶0b◀ BEGIN▶0b◀- NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);-▶1c◀ NEWBLOCK:=NEWBLOCK+1▶1c◀
END;
( IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1(
ELSE
▶0b◀ BEGIN▶0b◀▶1c◀ NEWBUC:=BUCINZONE+1;▶1c◀▶0f◀ NUM:=0;▶0f◀, WHILE (NUM<=0) AND (NEWBUC<=NBUC) DO,\r BEGIN\r- NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);-▶1a◀ NEWBUC:=NEWBUC+1▶1a◀\f
END;\f
& IF NUM>0 THEN NEWBUC:=NEWBUC-1&\f
ELSE\f
\r BEGIN\r3 IF RECINUSE<=1 THEN IER:=-9 ELSE IER:=-2;3▶14◀ NEWBUC:=1;▶14◀▶10◀ REPEAT▶10◀/ NUM:=Z(BUT+(NEWBUC-1)*ENTRYSIZE+1);/▶1c◀ NEWBUC:=NEWBUC+1▶1c◀. UNTIL (NUM>0) OR (NEWBUC>BUCINZONE);.( IF NUM>0 THEN NEWBUC:=NEWBUC-1(▶0e◀ ELSE▶0e◀) BEGIN IER:=-103;EXIT(OBEY) END;)\f
END;\f
▶18◀ NUM:=IER;IER:=0;▶18◀▶1a◀ READTABLE(NEWBUC);▶1a◀▶11◀ IER:=NUM;▶11◀▶14◀ NEWBLOCK:=1;▶14◀▶0e◀ REPEAT▶0e◀/ NUM:=Z(BLT+(NEWBLOCK-1)*ENTRYSIZE+1);/▶1e◀ NEWBLOCK:=NEWBLOCK+1▶1e◀- UNTIL (NUM>0) OR (NEWBLOCK>BLKPRBUC);-* IF NUM>0 THEN NEWBLOCK:=NEWBLOCK-1*\f
ELSE\f
' BEGIN IER:=-104;EXIT(OBEY) END;'
END;
▶16◀ NUM:=IER;IER:=0;▶16◀▶1c◀ READBLOCK(NEWBLOCK,1);▶1c◀▶0f◀ IER:=NUM;▶0f◀▶11◀ BLKENTRY:=1▶11◀▶07◀ END▶07◀▶08◀ ELSE▶08◀▶1f◀ BLKENTRY:=BLKENTRY+1+IER;▶1f◀% NEWBUC:=BLK+(BLKENTRY-1)*RECSIZE;%* MOVELEFT(Z(NEWBUC),REC^(1),2*RECSIZE) *7(* FOR NUM:=1 TO RECSIZE DO REC^(NUM):=Z(NEWBUC+NUM)*)7▶05◀ END▶05◀▶1c◀ ELSE IER:=-12 ELSE IER:=-3▶1c◀▶04◀END;▶04◀▶00◀▶00◀cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc