|
|
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«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »FORSKYD.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »FORSKYD.K«
(*$P*)
PROCEDURE FSKDIBLK(BLKPEG:INTEGER);
VAR I,J,K:INTEGER;
BEGIN
WITH FILEHEAD(CURRHEAD) 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(FØRSTE,SIZE,TABLESIZE,TABLE:INTEGER):INTEGER;
VAR NÆSTE,FORRIGE,TESTV:INTEGER;
BEGIN
WITH FILEHEAD(CURRHEAD) 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;
(*$R-*) 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
(*$R+*) TESTV:=FORRIGE-FØRSTE;
NÆSTE:=NÆSTE+1;
FORRIGE:=FORRIGE-1
END;
FINDDIR:=TESTV
END
END;
FUNCTION RETNING(VAR PLADSIBUKET:BOOLEAN):INTEGER;
BEGIN
WITH FILEHEAD(CURRHEAD) DO
BEGIN
PLADSIBUKET:=Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)<RECPRBUC;
IF PLADSIBUKET THEN
RETNING:=FINDDIR(BLKINZONE,RECPRBLK,BLKPRBUC,BLT)
ELSE
RETNING:=FINDDIR(BUCINZONE,RECPRBUC,NBUC,BUT);
END
END;
(*$P*)
PROCEDURE FSKDUBLK(VAR F:ISF);
VAR I,RDPOST,WRPOST,AFSTAND,DIR:INTEGER;
COPFRA,COPTIL:ZONEADR;
PLADSIBUKET:BOOLEAN;
BEGIN
WITH FILEHEAD(CURRHEAD) DO
BEGIN
AFSTAND:=RETNING(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(WRPOST+RECPRBLK-1);
COPSEGS(F,Z(BLT+(BLKINZONE-1)*ENTRYSIZE),BLKSIZE,BLK+(WRPOST-1)*
RECSIZE,SKRIV);
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(F,BUCINZONE+DIR);
IF DIR=1 THEN BLKINZONE:=1 ELSE BLKINZONE:=BLKPRBUC;
AFSTAND:=AFSTAND-DIR;
IF AFSTAND=0 THEN AFSTAND:=RETNING(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(F,BLKINZONE+DIR,RDPOST);
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(Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1);
END
END;
0x000…008 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x008…02d Line {l1=0x23, l2=»PROCEDURE FSKDIBLK(BLKPEG:INTEGER);«, l3=0x23}
0x02d…041 Line {l1=0x12, l2=»VAR I,J,K:INTEGER;«, l3=0x12}
0x041…048 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x048…066 Line {l1=0x1c, l2=» WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x066…07a Line {l1=0x12, l2=» IF BLKPEG>0 THEN«, l3=0x12}
0x07a…0b8 Line {l1=0x3c, l2=» FOR I:=Z((BLKINZONE-1)*ENTRYSIZE+BLT+1) DOWNTO BLKPEG DO«, l3=0x3c}
0x0b8…105 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}
0x105…10d Line {l1=0x06, l2=» ELSE«, l3=0x06}
0x10d…14a Line {l1=0x3b, l2=» FOR I:=-BLKPEG TO Z((BLKINZONE-1)*ENTRYSIZE+BLT+1)-1 DO«, l3=0x3b}
0x14a…197 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}
0x197…19d Line {l1=0x04, l2=»END;«, l3=0x04}
0x19d…1a0 Line {l1=0x01, l2=» «, l3=0x01}
0x1a0…1e0 Line {l1=0x3e, l2=»FUNCTION FINDDIR(FØRSTE,SIZE,TABLESIZE,TABLE:INTEGER):INTEGER;«, l3=0x3e}
0x1e0…202 Line {l1=0x20, l2=»VAR NÆSTE,FORRIGE,TESTV:INTEGER;«, l3=0x20}
0x202…209 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x209…227 Line {l1=0x1c, l2=» WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x227…230 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x230…27c Line {l1=0x4a, l2=» TESTV:=TABLESIZE+1; «, l3=0x4a}
0x27c…2c8 Line {l1=0x4a, l2=» NÆSTE:=FØRSTE+1; «, l3=0x4a}
0x2c8…314 Line {l1=0x4a, l2=» FORRIGE:=FØRSTE; «, l3=0x4a}
0x314…360 Line {l1=0x4a, l2=» WHILE TESTV=TABLESIZE+1 DO «, l3=0x4a}
0x360…3ac Line {l1=0x4a, l2=» BEGIN «, l3=0x4a}
0x3ac…3f8 Line {l1=0x4a, l2=» IF (NÆSTE>TABLESIZE) AND (FORRIGE<1) THEN NÆSTE:=1 DIV 0; «, l3=0x4a}
0x3f8…446 Line {l1=0x4c, l2=»(*$R-*) IF (NÆSTE<=TABLESIZE) AND (Z(TABLE+(NÆSTE-1)*ENTRYSIZE+1)<SIZE) THEN«, l3=0x4c}
0x446…492 Line {l1=0x4a, l2=» TESTV:=NÆSTE-FØRSTE; «, l3=0x4a}
0x492…4df Line {l1=0x4b, l2=» IF (FORRIGE>=1) AND (Z(TABLE+(FORRIGE-1)*ENTRYSIZE+1)<SIZE) THEN «, l3=0x4b}
0x4df…52b Line {l1=0x4a, l2=»(*$R+*) TESTV:=FORRIGE-FØRSTE; «, l3=0x4a}
0x52b…577 Line {l1=0x4a, l2=» NÆSTE:=NÆSTE+1; «, l3=0x4a}
0x577…5c3 Line {l1=0x4a, l2=» FORRIGE:=FORRIGE-1 «, l3=0x4a}
0x5c3…60f Line {l1=0x4a, l2=» END; «, l3=0x4a}
0x60f…65b Line {l1=0x4a, l2=» FINDDIR:=TESTV «, l3=0x4a}
0x65b…662 Line {l1=0x05, l2=» END«, l3=0x05}
0x662…668 Line {l1=0x04, l2=»END;«, l3=0x04}
0x668…66b Line {l1=0x01, l2=» «, l3=0x01}
0x66b…69f Line {l1=0x32, l2=»FUNCTION RETNING(VAR PLADSIBUKET:BOOLEAN):INTEGER;«, l3=0x32}
0x69f…6a6 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x6a6…6c4 Line {l1=0x1c, l2=» WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x6c4…6cd Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x6cd…709 Line {l1=0x3a, l2=» PLADSIBUKET:=Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)<RECPRBUC;«, l3=0x3a}
0x709…721 Line {l1=0x16, l2=» IF PLADSIBUKET THEN«, l3=0x16}
0x721…75a Line {l1=0x37, l2=» RETNING:=FINDDIR(BLKINZONE,RECPRBLK,BLKPRBUC,BLT)«, l3=0x37}
0x75a…763 Line {l1=0x07, l2=» ELSE«, l3=0x07}
0x763…799 Line {l1=0x34, l2=» RETNING:=FINDDIR(BUCINZONE,RECPRBUC,NBUC,BUT);«, l3=0x34}
0x799…7a0 Line {l1=0x05, l2=» END«, l3=0x05}
0x7a0…7a6 Line {l1=0x04, l2=»END;«, l3=0x04}
0x7a6…7ae Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x7ae…7ce Line {l1=0x1e, l2=»PROCEDURE FSKDUBLK(VAR F:ISF);«, l3=0x1e}
0x7ce…7f8 Line {l1=0x28, l2=»VAR I,RDPOST,WRPOST,AFSTAND,DIR:INTEGER;«, l3=0x28}
0x7f8…814 Line {l1=0x1a, l2=» COPFRA,COPTIL:ZONEADR;«, l3=0x1a}
0x814…82e Line {l1=0x18, l2=» PLADSIBUKET:BOOLEAN;«, l3=0x18}
0x82e…835 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x835…853 Line {l1=0x1c, l2=» WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x853…85c Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x85c…880 Line {l1=0x22, l2=» AFSTAND:=RETNING(PLADSIBUKET);«, l3=0x22}
0x880…897 Line {l1=0x15, l2=» IF AFSTAND>0 THEN«, l3=0x15}
0x897…8a2 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x8a2…8be Line {l1=0x1a, l2=» RDPOST:=2;WRPOST:=1;«, l3=0x1a}
0x8be…8e6 Line {l1=0x26, l2=» COPFRA:=BLK+BLKSIZE;COPTIL:=BLK;«, l3=0x26}
0x8e6…8f4 Line {l1=0x0c, l2=» DIR:=1«, l3=0x0c}
0x8f4…902 Line {l1=0x0c, l2=» END ELSE«, l3=0x0c}
0x902…90d Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x90d…929 Line {l1=0x1a, l2=» RDPOST:=1;WRPOST:=2;«, l3=0x1a}
0x929…951 Line {l1=0x26, l2=» COPFRA:=BLK;COPTIL:=BLK+BLKSIZE;«, l3=0x26}
0x951…960 Line {l1=0x0d, l2=» DIR:=-1«, l3=0x0d}
0x960…96a Line {l1=0x08, l2=» END;«, l3=0x08}
0x96a…983 Line {l1=0x17, l2=» WHILE AFSTAND<>0 DO«, l3=0x17}
0x983…98e Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x98e…9b0 Line {l1=0x20, l2=» SÆTKEY(WRPOST+RECPRBLK-1);«, l3=0x20}
0x9b0…9f8 Line {l1=0x46, l2=» COPSEGS(F,Z(BLT+(BLKINZONE-1)*ENTRYSIZE),BLKSIZE,BLK+(WRPOST-1)*«, l3=0x46}
0x9f8…a3d Line {l1=0x43, l2=» RECSIZE,SKRIV);«, l3=0x43}
0xa3d…a53 Line {l1=0x14, l2=» BLKCHG:=FALSE;«, l3=0x14}
0xa53…a9e Line {l1=0x49, l2=» IF DIR=-1 THEN FOR I:=1 TO RECSIZE DO Z(COPTIL-1+I):=Z(COPFRA-1+I);«, l3=0x49}
0xa9e…aeb Line {l1=0x4b, l2=» IF ((BLKINZONE=1) AND (DIR=-1)) OR ((BLKINZONE=BLKPRBUC) AND (DIR=1))«, l3=0x4b}
0xaeb…afd Line {l1=0x10, l2=» THEN BEGIN«, l3=0x10}
0xafd…b22 Line {l1=0x23, l2=» READTABLE(F,BUCINZONE+DIR);«, l3=0x23}
0xb22…b60 Line {l1=0x3c, l2=» IF DIR=1 THEN BLKINZONE:=1 ELSE BLKINZONE:=BLKPRBUC;«, l3=0x3c}
0xb60…b7f Line {l1=0x1d, l2=» AFSTAND:=AFSTAND-DIR;«, l3=0x1d}
0xb7f…bbd Line {l1=0x3c, l2=» IF AFSTAND=0 THEN AFSTAND:=RETNING(PLADSIBUKET)+DIR;«, l3=0x3c}
0xbbd…bdf Line {l1=0x20, l2=» BLKINZONE:=BLKINZONE-DIR«, l3=0x20}
0xbdf…beb Line {l1=0x0a, l2=» END;«, l3=0x0a}
0xbeb…c35 Line {l1=0x48, l2=» IF DIR=1 THEN FOR I:=1 TO RECSIZE DO Z(COPTIL-1+I):=Z(COPFRA-1+I);«, l3=0x48}
0xc35…c5f Line {l1=0x28, l2=» READBLOCK(F,BLKINZONE+DIR,RDPOST);«, l3=0x28}
0xc5f…ca0 Line {l1=0x3f, l2=» IF PLADSIBUKET AND (AFSTAND<>0) THEN AFSTAND:=AFSTAND-DIR«, l3=0x3f}
0xca0…caa Line {l1=0x08, l2=» END;«, l3=0x08}
0xcaa…ce4 Line {l1=0x38, l2=» DIR:=BLK+RECSIZE*Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)-1;«, l3=0x38}
0xce4…d2a Line {l1=0x44, l2=» IF RDPOST=1 THEN FOR I:=1 TO RECSIZE DO Z(DIR+I):=Z(COPTIL-1+I);«, l3=0x44}
0xd2a…d3d Line {l1=0x11, l2=» BLKCHG:=TRUE;«, l3=0x11}
0xd3d…d6e Line {l1=0x2f, l2=» SÆTKEY(Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1);«, l3=0x2f}
0xd6e…d75 Line {l1=0x05, l2=» END«, l3=0x05}
0xd75…d7b Line {l1=0x04, l2=»END;«, l3=0x04}
0xd7b…d80 00 00 3d 31 20 ┆ =1 ┆
0xd80…da0 54 4f 20 52 45 43 53 49 5a 45 20 44 4f 20 5a 28 44 49 52 2b 49 29 3a 3d 5a 28 43 4f 50 54 49 4c ┆TO RECSIZE DO Z(DIR+I):=Z(COPTIL┆
0xda0…dc0 2d 31 2b 49 29 3b 44 11 20 20 20 20 42 4c 4b 43 48 47 3a 3d 54 52 55 45 3b 11 2f 20 20 20 20 53 ┆-1+I);D BLKCHG:=TRUE; / S┆
0xdc0…de0 5b 54 4b 45 59 28 5a 28 42 4c 54 2b 28 42 4c 4b 49 4e 5a 4f 4e 45 2d 31 29 2a 45 4e 54 52 59 53 ┆ÆTKEY(Z(BLT+(BLKINZONE-1)*ENTRYS┆
0xde0…e00 49 5a 45 2b 31 29 2b 31 29 3b 2f 0a 20 20 20 20 49 45 52 3a 3d 30 0a 05 20 20 45 4e 44 05 04 45 ┆IZE+1)+1);/ IER:=0 END E┆
0xe00…e20 4e 44 3b 04 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 ┆ND; ┆
0xe20…e40 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 ┆ ┆
[…0x2…]
0xe80…ea0 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 63 ┆ c┆