|
|
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: 3744 (0xea0)
Types: TextFile
Notes: Mikados_K
Names: »FORSKYD.K«
└─⟦6b1c9961a⟧ Bits:30008989 INDPERM P1
└─⟦this⟧ »FORSKYD.K«
└─⟦a3d38fea3⟧ Bits:30008985 PRODUKTION NBT.
└─⟦this⟧ »FORSKYD.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »FORSKYD.K«
PROCEDURE FSKDIBLK(VAR ZO:ISFHEAD;BLKPEG:INTEGER);
VAR I,J,K:INTEGER;
BEGIN
WITH ZO DO
IF BLKPEG>0 THEN
FOR I:=Z((BLKINZONE-1)*ENTRYSIZE+BLT+1) DOWNTO BLKPEG DO
FOR J:=1 TO RECSIZE DO Z(BLK+I*RECSIZE-1+J):=Z(BLK+(I-1)*RECSIZE-1+J)
ELSE
FOR I:=-BLKPEG TO Z((BLKINZONE-1)*ENTRYSIZE+BLT+1)-1 DO
FOR J:=1 TO RECSIZE DO Z(BLK+(I-1)*RECSIZE-1+J):=Z(BLK+I*RECSIZE-1+J)
END;
FUNCTION FINDDIR(VAR ZO:ISFHEAD;FØRSTE,SIZE,TABLESIZE,TABLE:INTEGER):INTEGER;
VAR NÆSTE,FORRIGE,TESTV:INTEGER;
BEGIN
WITH ZO DO
BEGIN
TESTV:=TABLESIZE+1;
NÆSTE:=FØRSTE+1;
FORRIGE:=FØRSTE;
WHILE TESTV=TABLESIZE+1 DO
BEGIN
IF (NÆSTE>TABLESIZE) AND (FORRIGE<1) THEN NÆSTE:=1 DIV 0;
IF (NÆSTE<=TABLESIZE) AND (Z(TABLE+(NÆSTE-1)*ENTRYSIZE+1)<SIZE) THEN
TESTV:=NÆSTE-FØRSTE;
IF (FORRIGE>=1) AND (Z(TABLE+(FORRIGE-1)*ENTRYSIZE+1)<SIZE)THEN
TESTV:=FORRIGE-FØRSTE;
NÆSTE:=NÆSTE+1;
FORRIGE:=FORRIGE-1
END;
FINDDIR:=TESTV
END
END;
FUNCTION RETNING(VAR ZO:ISFHEAD;VAR PLADSIBUKET:BOOLEAN):INTEGER;
BEGIN
WITH ZO DO
BEGIN
PLADSIBUKET:=Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)<RECPRBUC;
IF PLADSIBUKET THEN
RETNING:=FINDDIR(ZO,BLKINZONE,RECPRBLK,BLKPRBUC,BLT)
ELSE
RETNING:=FINDDIR(ZO,BUCINZONE,RECPRBUC,NBUC,BUT);
END
END;
PROCEDURE FSKDUBLK(VAR ZO:ISFHEAD;VAR F:ISF);
VAR I,RDPOST,WRPOST,COPFRA,COPTIL,AFSTAND,DIR:INTEGER;
PLADSIBUKET:BOOLEAN;
BEGIN
IER:=0;
WITH ZO DO
BEGIN
AFSTAND:=RETNING(ZO,PLADSIBUKET);
IF AFSTAND>0 THEN
BEGIN
RDPOST:=2;WRPOST:=1;
COPFRA:=BLK+BLKSIZE;COPTIL:=BLK;
DIR:=1
END ELSE
BEGIN
RDPOST:=1;WRPOST:=2;
COPFRA:=BLK;COPTIL:=BLK+BLKSIZE;
DIR:=-1
END;
WHILE AFSTAND<>0 DO
BEGIN
SÆTKEY(ZO,WRPOST+RECPRBLK-1);
IF UPSTAT=SKRIV THEN
COPSEGS(Z,F,Z(BLT+(BLKINZONE-1)*ENTRYSIZE),BLKSIZE,BLK+(WRPOST-1)*
RECSIZE,SKRIV);
IF IER<>0 THEN EXIT(FSKDUBLK);
BLKCHG:=FALSE;
IF DIR=-1 THEN FOR I:=1 TO RECSIZE DO
Z(COPTIL-1+I):=Z(COPFRA-1+I);
IF ((BLKINZONE=1) AND (DIR=-1)) OR ((BLKINZONE=BLKPRBUC) AND (DIR=1))
THEN BEGIN
READTABLE(ZO,F,BUCINZONE+DIR);
IF IER<>0 THEN EXIT(FSKDUBLK);
IF DIR=1 THEN BLKINZONE:=1 ELSE BLKINZONE:=BLKPRBUC;
AFSTAND:=AFSTAND-DIR;
IF AFSTAND=0 THEN AFSTAND:=RETNING(ZO,PLADSIBUKET)+DIR;
BLKINZONE:=BLKINZONE-DIR
END;
IF DIR=1 THEN FOR I:=1 TO RECSIZE DO
Z(COPTIL-1+I):=Z(COPFRA-1+I);
READBLOCK(ZO,F,BLKINZONE+DIR,RDPOST);
IF IER<>0 THEN EXIT(FSKDUBLK);
IF PLADSIBUKET AND (AFSTAND<>0) THEN AFSTAND:=AFSTAND-DIR
END;
DIR:=BLK+RECSIZE*Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)-1;
IF RDPOST=1 THEN FOR I:=1 TO RECSIZE DO
Z(DIR+I):=
Z(COPTIL-1+I);
BLKCHG:=TRUE;
SÆTKEY(ZO,Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1);
IER:=0
END
END;
0x000…034 Line {l1=0x32, l2=»PROCEDURE FSKDIBLK(VAR ZO:ISFHEAD;BLKPEG:INTEGER);«, l3=0x32}
0x034…048 Line {l1=0x12, l2=»VAR I,J,K:INTEGER;«, l3=0x12}
0x048…04f Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x04f…05d Line {l1=0x0c, l2=» WITH ZO DO«, l3=0x0c}
0x05d…071 Line {l1=0x12, l2=» IF BLKPEG>0 THEN«, l3=0x12}
0x071…0af Line {l1=0x3c, l2=» FOR I:=Z((BLKINZONE-1)*ENTRYSIZE+BLT+1) DOWNTO BLKPEG DO«, l3=0x3c}
0x0af…0fc Line {l1=0x4b, l2=» FOR J:=1 TO RECSIZE DO Z(BLK+I*RECSIZE-1+J):=Z(BLK+(I-1)*RECSIZE-1+J)«, l3=0x4b}
0x0fc…104 Line {l1=0x06, l2=» ELSE«, l3=0x06}
0x104…141 Line {l1=0x3b, l2=» FOR I:=-BLKPEG TO Z((BLKINZONE-1)*ENTRYSIZE+BLT+1)-1 DO«, l3=0x3b}
0x141…18e Line {l1=0x4b, l2=» FOR J:=1 TO RECSIZE DO Z(BLK+(I-1)*RECSIZE-1+J):=Z(BLK+I*RECSIZE-1+J)«, l3=0x4b}
0x18e…194 Line {l1=0x04, l2=»END;«, l3=0x04}
0x194…197 Line {l1=0x01, l2=» «, l3=0x01}
0x197…1e6 Line {l1=0x4d, l2=»FUNCTION FINDDIR(VAR ZO:ISFHEAD;FØRSTE,SIZE,TABLESIZE,TABLE:INTEGER):INTEGER;«, l3=0x4d}
0x1e6…208 Line {l1=0x20, l2=»VAR NÆSTE,FORRIGE,TESTV:INTEGER;«, l3=0x20}
0x208…20f Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x20f…21d Line {l1=0x0c, l2=» WITH ZO DO«, l3=0x0c}
0x21d…226 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x226…23d Line {l1=0x15, l2=» TESTV:=TABLESIZE+1;«, l3=0x15}
0x23d…251 Line {l1=0x12, l2=» NÆSTE:=FØRSTE+1;«, l3=0x12}
0x251…265 Line {l1=0x12, l2=» FORRIGE:=FØRSTE;«, l3=0x12}
0x265…283 Line {l1=0x1c, l2=» WHILE TESTV=TABLESIZE+1 DO«, l3=0x1c}
0x283…28c Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x28c…2cb Line {l1=0x3d, l2=» IF (NÆSTE>TABLESIZE) AND (FORRIGE<1) THEN NÆSTE:=1 DIV 0;«, l3=0x3d}
0x2cb…315 Line {l1=0x48, l2=» IF (NÆSTE<=TABLESIZE) AND (Z(TABLE+(NÆSTE-1)*ENTRYSIZE+1)<SIZE) THEN«, l3=0x48}
0x315…332 Line {l1=0x1b, l2=» TESTV:=NÆSTE-FØRSTE;«, l3=0x1b}
0x332…377 Line {l1=0x43, l2=» IF (FORRIGE>=1) AND (Z(TABLE+(FORRIGE-1)*ENTRYSIZE+1)<SIZE)THEN«, l3=0x43}
0x377…396 Line {l1=0x1d, l2=» TESTV:=FORRIGE-FØRSTE;«, l3=0x1d}
0x396…3ab Line {l1=0x13, l2=» NÆSTE:=NÆSTE+1;«, l3=0x13}
0x3ab…3c3 Line {l1=0x16, l2=» FORRIGE:=FORRIGE-1«, l3=0x16}
0x3c3…3cb Line {l1=0x06, l2=» END;«, l3=0x06}
0x3cb…3dd Line {l1=0x10, l2=» FINDDIR:=TESTV«, l3=0x10}
0x3dd…3e4 Line {l1=0x05, l2=» END«, l3=0x05}
0x3e4…3ea Line {l1=0x04, l2=»END;«, l3=0x04}
0x3ea…3ed Line {l1=0x01, l2=» «, l3=0x01}
0x3ed…430 Line {l1=0x41, l2=»FUNCTION RETNING(VAR ZO:ISFHEAD;VAR PLADSIBUKET:BOOLEAN):INTEGER;«, l3=0x41}
0x430…437 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x437…445 Line {l1=0x0c, l2=» WITH ZO DO«, l3=0x0c}
0x445…44e Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x44e…48a Line {l1=0x3a, l2=» PLADSIBUKET:=Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)<RECPRBUC;«, l3=0x3a}
0x48a…4a2 Line {l1=0x16, l2=» IF PLADSIBUKET THEN«, l3=0x16}
0x4a2…4de Line {l1=0x3a, l2=» RETNING:=FINDDIR(ZO,BLKINZONE,RECPRBLK,BLKPRBUC,BLT)«, l3=0x3a}
0x4de…4e7 Line {l1=0x07, l2=» ELSE«, l3=0x07}
0x4e7…520 Line {l1=0x37, l2=» RETNING:=FINDDIR(ZO,BUCINZONE,RECPRBUC,NBUC,BUT);«, l3=0x37}
0x520…527 Line {l1=0x05, l2=» END«, l3=0x05}
0x527…52d Line {l1=0x04, l2=»END;«, l3=0x04}
0x52d…530 Line {l1=0x01, l2=» «, l3=0x01}
0x530…55f Line {l1=0x2d, l2=»PROCEDURE FSKDUBLK(VAR ZO:ISFHEAD;VAR F:ISF);«, l3=0x2d}
0x55f…597 Line {l1=0x36, l2=»VAR I,RDPOST,WRPOST,COPFRA,COPTIL,AFSTAND,DIR:INTEGER;«, l3=0x36}
0x597…5b1 Line {l1=0x18, l2=» PLADSIBUKET:BOOLEAN;«, l3=0x18}
0x5b1…5b8 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x5b8…5c3 Line {l1=0x09, l2=» IER:=0;«, l3=0x09}
0x5c3…5d1 Line {l1=0x0c, l2=» WITH ZO DO«, l3=0x0c}
0x5d1…5da Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x5da…601 Line {l1=0x25, l2=» AFSTAND:=RETNING(ZO,PLADSIBUKET);«, l3=0x25}
0x601…618 Line {l1=0x15, l2=» IF AFSTAND>0 THEN«, l3=0x15}
0x618…623 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x623…640 Line {l1=0x1b, l2=» RDPOST:=2;WRPOST:=1;«, l3=0x1b}
0x640…669 Line {l1=0x27, l2=» COPFRA:=BLK+BLKSIZE;COPTIL:=BLK;«, l3=0x27}
0x669…678 Line {l1=0x0d, l2=» DIR:=1«, l3=0x0d}
0x678…686 Line {l1=0x0c, l2=» END ELSE«, l3=0x0c}
0x686…691 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x691…6ae Line {l1=0x1b, l2=» RDPOST:=1;WRPOST:=2;«, l3=0x1b}
0x6ae…6d7 Line {l1=0x27, l2=» COPFRA:=BLK;COPTIL:=BLK+BLKSIZE;«, l3=0x27}
0x6d7…6e7 Line {l1=0x0e, l2=» DIR:=-1«, l3=0x0e}
0x6e7…6f1 Line {l1=0x08, l2=» END;«, l3=0x08}
0x6f1…70a Line {l1=0x17, l2=» WHILE AFSTAND<>0 DO«, l3=0x17}
0x70a…715 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x715…73a Line {l1=0x23, l2=» SÆTKEY(ZO,WRPOST+RECPRBLK-1);«, l3=0x23}
0x73a…756 Line {l1=0x1a, l2=» IF UPSTAT=SKRIV THEN«, l3=0x1a}
0x756…7a0 Line {l1=0x48, l2=» COPSEGS(Z,F,Z(BLT+(BLKINZONE-1)*ENTRYSIZE),BLKSIZE,BLK+(WRPOST-1)*«, l3=0x48}
0x7a0…7e5 Line {l1=0x43, l2=» RECSIZE,SKRIV);«, l3=0x43}
0x7e5…80b Line {l1=0x24, l2=» IF IER<>0 THEN EXIT(FSKDUBLK);«, l3=0x24}
0x80b…821 Line {l1=0x14, l2=» BLKCHG:=FALSE;«, l3=0x14}
0x821…84e Line {l1=0x2b, l2=» IF DIR=-1 THEN FOR I:=1 TO RECSIZE DO«, l3=0x2b}
0x84e…876 Line {l1=0x26, l2=» Z(COPTIL-1+I):=Z(COPFRA-1+I);«, l3=0x26}
0x876…8c3 Line {l1=0x4b, l2=» IF ((BLKINZONE=1) AND (DIR=-1)) OR ((BLKINZONE=BLKPRBUC) AND (DIR=1))«, l3=0x4b}
0x8c3…8d5 Line {l1=0x10, l2=» THEN BEGIN«, l3=0x10}
0x8d5…8fd Line {l1=0x26, l2=» READTABLE(ZO,F,BUCINZONE+DIR);«, l3=0x26}
0x8fd…925 Line {l1=0x26, l2=» IF IER<>0 THEN EXIT(FSKDUBLK);«, l3=0x26}
0x925…963 Line {l1=0x3c, l2=» IF DIR=1 THEN BLKINZONE:=1 ELSE BLKINZONE:=BLKPRBUC;«, l3=0x3c}
0x963…982 Line {l1=0x1d, l2=» AFSTAND:=AFSTAND-DIR;«, l3=0x1d}
0x982…9c3 Line {l1=0x3f, l2=» IF AFSTAND=0 THEN AFSTAND:=RETNING(ZO,PLADSIBUKET)+DIR;«, l3=0x3f}
0x9c3…9e5 Line {l1=0x20, l2=» BLKINZONE:=BLKINZONE-DIR«, l3=0x20}
0x9e5…9f1 Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x9f1…a1d Line {l1=0x2a, l2=» IF DIR=1 THEN FOR I:=1 TO RECSIZE DO«, l3=0x2a}
0xa1d…a45 Line {l1=0x26, l2=» Z(COPTIL-1+I):=Z(COPFRA-1+I);«, l3=0x26}
0xa45…a72 Line {l1=0x2b, l2=» READBLOCK(ZO,F,BLKINZONE+DIR,RDPOST);«, l3=0x2b}
0xa72…a98 Line {l1=0x24, l2=» IF IER<>0 THEN EXIT(FSKDUBLK);«, l3=0x24}
0xa98…ad9 Line {l1=0x3f, l2=» IF PLADSIBUKET AND (AFSTAND<>0) THEN AFSTAND:=AFSTAND-DIR«, l3=0x3f}
0xad9…ae3 Line {l1=0x08, l2=» END;«, l3=0x08}
0xae3…b1d Line {l1=0x38, l2=» DIR:=BLK+RECSIZE*Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)-1;«, l3=0x38}
0xb1d…b4a Line {l1=0x2b, l2=» IF RDPOST=1 THEN FOR I:=1 TO RECSIZE DO«, l3=0x2b}
0xb4a…b5d Line {l1=0x11, l2=» Z(DIR+I):=«, l3=0x11}
0xb5d…b74 Line {l1=0x15, l2=» Z(COPTIL-1+I);«, l3=0x15}
0xb74…b87 Line {l1=0x11, l2=» BLKCHG:=TRUE;«, l3=0x11}
0xb87…bbb Line {l1=0x32, l2=» SÆTKEY(ZO,Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1);«, l3=0x32}
0xbbb…bc7 Line {l1=0x0a, l2=» IER:=0«, l3=0x0a}
0xbc7…bce Line {l1=0x05, l2=» END«, l3=0x05}
0xbce…bd4 Line {l1=0x04, l2=»END;«, l3=0x04}
0xbd4…be0 00 00 04 45 4e 44 3b 04 00 00 00 00 ┆ END; ┆
0xbe0…c00 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 ┆ ┆
[…0x15…]