|
|
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: »CREATE.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »CREATE.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »CREATE.K«
PROCEDURE CREATE(VAR FILENAME:STRING;NREC,RECSIZE,KEYFLDS:INTEGER;
VAR KEYS:KEYDESCRIPTION;
VAR TABLESIZE,IER:INTEGER);
VAR NBUC,NBLK,BLKPRBUC,RECPRBUC,RECPRBLK,FLHSIZE,BUTSIZE,BLTSIZE,BLKSIZE,
KEYSIZE,SEGINFLH,SEGINBUT,SEGINBUC,SEGINBLT,SEGINBLK,
FILESIZE,
I,J:INTEGER;
F:ISF;
NOOFSEGS:STRING(5);
BEGIN
FOR I:=1 TO 232 DO F^(I):=0;
IER:=0;
IF (NREC<1) OR (RECSIZE<1) OR (KEYFLDS<1) THEN IER:=-5;
IF KEYFLDS>9 THEN IER:=-14;
IF IER<>0 THEN EXIT(CREATE);
KEYSIZE:=0;
FOR I:=1 TO KEYFLDS DO
BEGIN
IF (KEYS(I,1)<1) OR (KEYS(I,1)+KEYS(I,2)>RECSIZE+1)OR(KEYS(I,3)=0)THEN
BEGIN
IER:=-15;
EXIT(CREATE)
END;
KEYSIZE:=KEYSIZE+KEYS(I,2)
END;
RECPRBLK:=TRUNC(EXP(LN(NREC/SQR(RECSIZE)*SQR(KEYSIZE+2))/3));
IF RECPRBLK=0 THEN RECPRBLK:=1;
SEGINBLK:=(RECSIZE*RECPRBLK-1) DIV 232 + 1;
RECPRBLK:=SEGINBLK*232 DIV RECSIZE;
NBLK :=(NREC-1) DIV RECPRBLK +1;
BLKPRBUC:=TRUNC(SQRT(NBLK));
NBUC:=(NBLK-1) DIV BLKPRBUC +1;
NBLK:=BLKPRBUC*NBUC;
NREC:=NBLK*RECPRBLK;
RECPRBUC:=RECPRBLK*BLKPRBUC;
FLHSIZE:=51;
BUTSIZE:=NBUC*(KEYSIZE+2);
BLTSIZE:=BLKPRBUC*(KEYSIZE+2);
BLKSIZE:=RECPRBLK*RECSIZE;
SEGINFLH:=(FLHSIZE-1) DIV 232 +1;
SEGINBUT:=(BUTSIZE-1) DIV 232 +1;
SEGINBLT:=(BLTSIZE-1) DIV 232 +1;
SEGINBUC:=SEGINBLT+SEGINBLK*BLKPRBUC;
FILESIZE:=TRUNC(((SEGINFLH+SEGINBUT+SEGINBUC*NBUC)*464.0+32)/256)+2;
TABLESIZE:=BUTSIZE+BLTSIZE+BLKSIZE+RECSIZE+KEYSIZE;
NOOFSEGS:=' ';
FOR I:=4 DOWNTO 1 DO
BEGIN
NOOFSEGS(I):=CHR(FILESIZE MOD 10 + 48);
FILESIZE:=FILESIZE DIV 10
END;
IF FILESIZE>0 THEN
BEGIN
CH:=' ';
CH(1):=CHR(FILESIZE MOD 10+48);
NOOFSEGS:=CONCAT(CH,NOOFSEGS);
IF LENGTH(FILENAME)=11 THEN FILENAME(0):=CHR(10)
END;
FILENAME:=CONCAT(FILENAME,':',NOOFSEGS,':I');
WRITELN(LIST,'FILE CREATED: ',FILENAME);
WRITELN(LIST,'NBUC ',NBUC,' NBLK ',NBLK,' NREC ',NREC);
WRITELN(LIST,'BLKPRBUC ',BLKPRBUC,' RECPRBUC ',RECPRBUC,' RECPRBLK ',
RECPRBLK);
WRITELN(LIST,'KEYFLDS ',KEYFLDS,' FLHSIZE ',FLHSIZE,' BUTSIZE ',
BUTSIZE);
WRITELN(LIST,'BLTSIZE ',BLTSIZE,' BLKSIZE ',BLKSIZE,' RECSIZE ',
RECSIZE);
WRITELN(LIST,'KEYSIZE ',KEYSIZE,' SEGINFLH ',SEGINFLH,' SEGINBUT ',
SEGINBUT);
WRITELN(LIST,'SEGINBUC ',SEGINBUC,' SEGINBLT ',SEGINBLT,' SEGINBLK ',
SEGINBLK);
WRITELN(LIST,'TABLESIZE ',TABLESIZE,' FILESIZE ',FILESIZE);WRITELN(LIST);
REWRITE(F,FILENAME);
IER:=IORESULT;
IF IER<>0 THEN EXIT(CREATE);
WRITELN(LIST,'FILE CREATED');
F^(1):=NBUC;
F^(2):=NBLK;
F^(3):=NREC;
F^(4):=BLKPRBUC;
F^(5):=RECPRBUC;
F^(6):=RECPRBLK;
F^(7):=KEYFLDS;
F^(8):=FLHSIZE;
F^(9):=BUTSIZE;
F^(10):=BLTSIZE;
F^(11):=BLKSIZE;
F^(12):=RECSIZE;
F^(13):=KEYSIZE;
F^(14):=SEGINFLH;
F^(15):=SEGINBUT;
F^(16):=SEGINBUC;
F^(17):=SEGINBLT;
F^(18):=SEGINBLK;
FOR I:=19 TO 24 DO F^(I):=0;
FOR I:=1 TO 9 DO
FOR J:=1 TO 3 DO F^(21+3*I+J):=KEYS(I,J);
SEEK(F,1);
IF IORESULT<>0 THEN
BEGIN
IER:=IORESULT;
EXIT(CREATE)
END;
PUT(F);
IER:=IORESULT;
WRITELN(LIST,'FILE CREATED, RESULT: ',IER)
END;
0x000…044 Line {l1=0x42, l2=»PROCEDURE CREATE(VAR FILENAME:STRING;NREC,RECSIZE,KEYFLDS:INTEGER;«, l3=0x42}
0x044…06f Line {l1=0x29, l2=» VAR KEYS:KEYDESCRIPTION;«, l3=0x29}
0x06f…09d Line {l1=0x2c, l2=» VAR TABLESIZE,IER:INTEGER);«, l3=0x2c}
0x09d…0e8 Line {l1=0x49, l2=»VAR NBUC,NBLK,BLKPRBUC,RECPRBUC,RECPRBLK,FLHSIZE,BUTSIZE,BLTSIZE,BLKSIZE,«, l3=0x49}
0x0e8…123 Line {l1=0x39, l2=» KEYSIZE,SEGINFLH,SEGINBUT,SEGINBUC,SEGINBLT,SEGINBLK,«, l3=0x39}
0x123…132 Line {l1=0x0d, l2=» FILESIZE,«, l3=0x0d}
0x132…144 Line {l1=0x10, l2=» I,J:INTEGER;«, l3=0x10}
0x144…150 Line {l1=0x0a, l2=» F:ISF;«, l3=0x0a}
0x150…169 Line {l1=0x17, l2=» NOOFSEGS:STRING(5);«, l3=0x17}
0x169…170 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x170…190 Line {l1=0x1e, l2=» FOR I:=1 TO 232 DO F^(I):=0;«, l3=0x1e}
0x190…19b Line {l1=0x09, l2=» IER:=0;«, l3=0x09}
0x19b…1d6 Line {l1=0x39, l2=» IF (NREC<1) OR (RECSIZE<1) OR (KEYFLDS<1) THEN IER:=-5;«, l3=0x39}
0x1d6…1f5 Line {l1=0x1d, l2=» IF KEYFLDS>9 THEN IER:=-14;«, l3=0x1d}
0x1f5…215 Line {l1=0x1e, l2=» IF IER<>0 THEN EXIT(CREATE);«, l3=0x1e}
0x215…224 Line {l1=0x0d, l2=» KEYSIZE:=0;«, l3=0x0d}
0x224…23e Line {l1=0x18, l2=» FOR I:=1 TO KEYFLDS DO«, l3=0x18}
0x23e…247 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x247…296 Line {l1=0x4d, l2=» IF (KEYS(I,1)<1) OR (KEYS(I,1)+KEYS(I,2)>RECSIZE+1)OR(KEYS(I,3)=0)THEN«, l3=0x4d}
0x296…2a4 Line {l1=0x0c, l2=» BEGIN«, l3=0x0c}
0x2a4…2be Line {l1=0x18, l2=» IER:=-15;«, l3=0x18}
0x2be…2db Line {l1=0x1b, l2=» EXIT(CREATE)«, l3=0x1b}
0x2db…2e8 Line {l1=0x0b, l2=» END;«, l3=0x0b}
0x2e8…30b Line {l1=0x21, l2=» KEYSIZE:=KEYSIZE+KEYS(I,2)«, l3=0x21}
0x30b…313 Line {l1=0x06, l2=» END;«, l3=0x06}
0x313…354 Line {l1=0x3f, l2=» RECPRBLK:=TRUNC(EXP(LN(NREC/SQR(RECSIZE)*SQR(KEYSIZE+2))/3));«, l3=0x3f}
0x354…377 Line {l1=0x21, l2=» IF RECPRBLK=0 THEN RECPRBLK:=1;«, l3=0x21}
0x377…3a6 Line {l1=0x2d, l2=» SEGINBLK:=(RECSIZE*RECPRBLK-1) DIV 232 + 1;«, l3=0x2d}
0x3a6…3cd Line {l1=0x25, l2=» RECPRBLK:=SEGINBLK*232 DIV RECSIZE;«, l3=0x25}
0x3cd…3f2 Line {l1=0x23, l2=» NBLK :=(NREC-1) DIV RECPRBLK +1;«, l3=0x23}
0x3f2…412 Line {l1=0x1e, l2=» BLKPRBUC:=TRUNC(SQRT(NBLK));«, l3=0x1e}
0x412…435 Line {l1=0x21, l2=» NBUC:=(NBLK-1) DIV BLKPRBUC +1;«, l3=0x21}
0x435…44d Line {l1=0x16, l2=» NBLK:=BLKPRBUC*NBUC;«, l3=0x16}
0x44d…465 Line {l1=0x16, l2=» NREC:=NBLK*RECPRBLK;«, l3=0x16}
0x465…485 Line {l1=0x1e, l2=» RECPRBUC:=RECPRBLK*BLKPRBUC;«, l3=0x1e}
0x485…495 Line {l1=0x0e, l2=» FLHSIZE:=51;«, l3=0x0e}
0x495…4b3 Line {l1=0x1c, l2=» BUTSIZE:=NBUC*(KEYSIZE+2);«, l3=0x1c}
0x4b3…4d5 Line {l1=0x20, l2=» BLTSIZE:=BLKPRBUC*(KEYSIZE+2);«, l3=0x20}
0x4d5…4f3 Line {l1=0x1c, l2=» BLKSIZE:=RECPRBLK*RECSIZE;«, l3=0x1c}
0x4f3…518 Line {l1=0x23, l2=» SEGINFLH:=(FLHSIZE-1) DIV 232 +1;«, l3=0x23}
0x518…53d Line {l1=0x23, l2=» SEGINBUT:=(BUTSIZE-1) DIV 232 +1;«, l3=0x23}
0x53d…562 Line {l1=0x23, l2=» SEGINBLT:=(BLTSIZE-1) DIV 232 +1;«, l3=0x23}
0x562…58b Line {l1=0x27, l2=» SEGINBUC:=SEGINBLT+SEGINBLK*BLKPRBUC;«, l3=0x27}
0x58b…5d3 Line {l1=0x46, l2=» FILESIZE:=TRUNC(((SEGINFLH+SEGINBUT+SEGINBUC*NBUC)*464.0+32)/256)+2;«, l3=0x46}
0x5d3…60a Line {l1=0x35, l2=» TABLESIZE:=BUTSIZE+BLTSIZE+BLKSIZE+RECSIZE+KEYSIZE;«, l3=0x35}
0x60a…61f Line {l1=0x13, l2=» NOOFSEGS:=' ';«, l3=0x13}
0x61f…637 Line {l1=0x16, l2=» FOR I:=4 DOWNTO 1 DO«, l3=0x16}
0x637…640 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x640…670 Line {l1=0x2e, l2=» NOOFSEGS(I):=CHR(FILESIZE MOD 10 + 48);«, l3=0x2e}
0x670…692 Line {l1=0x20, l2=» FILESIZE:=FILESIZE DIV 10«, l3=0x20}
0x692…69a Line {l1=0x06, l2=» END;«, l3=0x06}
0x69a…6b0 Line {l1=0x14, l2=» IF FILESIZE>0 THEN«, l3=0x14}
0x6b0…6b9 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x6b9…6c7 Line {l1=0x0c, l2=» CH:=' ';«, l3=0x0c}
0x6c7…6ec Line {l1=0x23, l2=» CH(1):=CHR(FILESIZE MOD 10+48);«, l3=0x23}
0x6ec…710 Line {l1=0x22, l2=» NOOFSEGS:=CONCAT(CH,NOOFSEGS);«, l3=0x22}
0x710…747 Line {l1=0x35, l2=» IF LENGTH(FILENAME)=11 THEN FILENAME(0):=CHR(10) «, l3=0x35}
0x747…74f Line {l1=0x06, l2=» END;«, l3=0x06}
0x74f…780 Line {l1=0x2f, l2=» FILENAME:=CONCAT(FILENAME,':',NOOFSEGS,':I');«, l3=0x2f}
0x780…7ac Line {l1=0x2a, l2=» WRITELN(LIST,'FILE CREATED: ',FILENAME);«, l3=0x2a}
0x7ac…7e9 Line {l1=0x3b, l2=» WRITELN(LIST,'NBUC ',NBUC,' NBLK ',NBLK,' NREC ',NREC);«, l3=0x3b}
0x7e9…834 Line {l1=0x49, l2=» WRITELN(LIST,'BLKPRBUC ',BLKPRBUC,' RECPRBUC ',RECPRBUC,' RECPRBLK ',«, l3=0x49}
0x834…850 Line {l1=0x1a, l2=» RECPRBLK);«, l3=0x1a}
0x850…896 Line {l1=0x44, l2=» WRITELN(LIST,'KEYFLDS ',KEYFLDS,' FLHSIZE ',FLHSIZE,' BUTSIZE ',«, l3=0x44}
0x896…8b1 Line {l1=0x19, l2=» BUTSIZE);«, l3=0x19}
0x8b1…8f7 Line {l1=0x44, l2=» WRITELN(LIST,'BLTSIZE ',BLTSIZE,' BLKSIZE ',BLKSIZE,' RECSIZE ',«, l3=0x44}
0x8f7…912 Line {l1=0x19, l2=» RECSIZE);«, l3=0x19}
0x912…95b Line {l1=0x47, l2=» WRITELN(LIST,'KEYSIZE ',KEYSIZE,' SEGINFLH ',SEGINFLH,' SEGINBUT ',«, l3=0x47}
0x95b…977 Line {l1=0x1a, l2=» SEGINBUT);«, l3=0x1a}
0x977…9c2 Line {l1=0x49, l2=» WRITELN(LIST,'SEGINBUC ',SEGINBUC,' SEGINBLT ',SEGINBLT,' SEGINBLK ',«, l3=0x49}
0x9c2…9de Line {l1=0x1a, l2=» SEGINBLK);«, l3=0x1a}
0x9de…a2c Line {l1=0x4c, l2=» WRITELN(LIST,'TABLESIZE ',TABLESIZE,' FILESIZE ',FILESIZE);WRITELN(LIST);«, l3=0x4c}
0xa2c…a44 Line {l1=0x16, l2=» REWRITE(F,FILENAME);«, l3=0x16}
0xa44…a56 Line {l1=0x10, l2=» IER:=IORESULT;«, l3=0x10}
0xa56…a76 Line {l1=0x1e, l2=» IF IER<>0 THEN EXIT(CREATE);«, l3=0x1e}
0xa76…a97 Line {l1=0x1f, l2=» WRITELN(LIST,'FILE CREATED');«, l3=0x1f}
0xa97…aa7 Line {l1=0x0e, l2=» F^(1):=NBUC;«, l3=0x0e}
0xaa7…ab7 Line {l1=0x0e, l2=» F^(2):=NBLK;«, l3=0x0e}
0xab7…ac7 Line {l1=0x0e, l2=» F^(3):=NREC;«, l3=0x0e}
0xac7…adb Line {l1=0x12, l2=» F^(4):=BLKPRBUC;«, l3=0x12}
0xadb…aef Line {l1=0x12, l2=» F^(5):=RECPRBUC;«, l3=0x12}
0xaef…b03 Line {l1=0x12, l2=» F^(6):=RECPRBLK;«, l3=0x12}
0xb03…b16 Line {l1=0x11, l2=» F^(7):=KEYFLDS;«, l3=0x11}
0xb16…b29 Line {l1=0x11, l2=» F^(8):=FLHSIZE;«, l3=0x11}
0xb29…b3c Line {l1=0x11, l2=» F^(9):=BUTSIZE;«, l3=0x11}
0xb3c…b50 Line {l1=0x12, l2=» F^(10):=BLTSIZE;«, l3=0x12}
0xb50…b64 Line {l1=0x12, l2=» F^(11):=BLKSIZE;«, l3=0x12}
0xb64…b78 Line {l1=0x12, l2=» F^(12):=RECSIZE;«, l3=0x12}
0xb78…b8c Line {l1=0x12, l2=» F^(13):=KEYSIZE;«, l3=0x12}
0xb8c…ba1 Line {l1=0x13, l2=» F^(14):=SEGINFLH;«, l3=0x13}
0xba1…bb6 Line {l1=0x13, l2=» F^(15):=SEGINBUT;«, l3=0x13}
0xbb6…bcb Line {l1=0x13, l2=» F^(16):=SEGINBUC;«, l3=0x13}
0xbcb…be0 Line {l1=0x13, l2=» F^(17):=SEGINBLT;«, l3=0x13}
0xbe0…bf5 Line {l1=0x13, l2=» F^(18):=SEGINBLK;«, l3=0x13}
0xbf5…c15 Line {l1=0x1e, l2=» FOR I:=19 TO 24 DO F^(I):=0;«, l3=0x1e}
0xc15…c29 Line {l1=0x12, l2=» FOR I:=1 TO 9 DO«, l3=0x12}
0xc29…c59 Line {l1=0x2e, l2=» FOR J:=1 TO 3 DO F^(21+3*I+J):=KEYS(I,J);«, l3=0x2e}
0xc59…c67 Line {l1=0x0c, l2=» SEEK(F,1);«, l3=0x0c}
0xc67…c7e Line {l1=0x15, l2=» IF IORESULT<>0 THEN«, l3=0x15}
0xc7e…c87 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0xc87…c9e Line {l1=0x15, l2=» IER:=IORESULT;«, l3=0x15}
0xc9e…cb3 Line {l1=0x13, l2=» EXIT(CREATE)«, l3=0x13}
0xcb3…cbb Line {l1=0x06, l2=» END;«, l3=0x06}
0xcbb…cc6 Line {l1=0x09, l2=» PUT(F);«, l3=0x09}
0xcc6…cd8 Line {l1=0x10, l2=» IER:=IORESULT;«, l3=0x10}
0xcd8…d06 Line {l1=0x2c, l2=» WRITELN(LIST,'FILE CREATED, RESULT: ',IER)«, l3=0x2c}
0xd06…d0c Line {l1=0x04, l2=»END;«, l3=0x04}
0xd0c…d20 00 00 45 53 55 4c 54 3a 20 27 2c 49 45 52 29 2c 04 45 4e 44 ┆ ESULT: ',IER), END┆
0xd20…d40 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 00 00 ┆; ┆
0xd40…d60 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 ┆ ┆
[…0x9…]
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┆