DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦44d5a61c4⟧ TextFile

    Length: 3744 (0xea0)
    Types: TextFile
    Notes: Mikados_K
    Names: »CREATE.K«

Derivation

└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »CREATE.K« 

Mikados K File

PROCEDURE CREATE(VAR FILENAME:STRING;NREC,RECSIZE,KEYFLDS:INTEGER;
                 VAR KEYS:KEYDESCRIPTION;
                 VAR IER:INTEGER);
VAR NBUC,NBLK,BLKPRBUC,RECPRBUC,RECPRBLK,FLHSIZE,BUTSIZE,BLTSIZE,BLKSIZE,
    KEYSIZE,SEGINFLH,SEGINBUT,SEGINBUC,SEGINBLT,SEGINBLK,
    FILESIZE,
    I,J,TABLESIZE:INTEGER;
    F:ISF;
    NOOFSEGS:STRING(4);
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;
  RECPRBLK:=5;
  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;
  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;

Mikados K File

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…093 Line {l1=0x22, l2=»                 VAR IER:INTEGER);«, l3=0x22}
0x093…0de Line {l1=0x49, l2=»VAR NBUC,NBLK,BLKPRBUC,RECPRBUC,RECPRBLK,FLHSIZE,BUTSIZE,BLTSIZE,BLKSIZE,«, l3=0x49}
0x0de…119 Line {l1=0x39, l2=»    KEYSIZE,SEGINFLH,SEGINBUT,SEGINBUC,SEGINBLT,SEGINBLK,«, l3=0x39}
0x119…128 Line {l1=0x0d, l2=»    FILESIZE,«, l3=0x0d}
0x128…144 Line {l1=0x1a, l2=»    I,J,TABLESIZE:INTEGER;«, l3=0x1a}
0x144…150 Line {l1=0x0a, l2=»    F:ISF;«, l3=0x0a}
0x150…169 Line {l1=0x17, l2=»    NOOFSEGS:STRING(4);«, 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…387 Line {l1=0x0e, l2=»  RECPRBLK:=5;«, l3=0x0e}
0x387…3b6 Line {l1=0x2d, l2=»  SEGINBLK:=(RECSIZE*RECPRBLK-1) DIV 232 + 1;«, l3=0x2d}
0x3b6…3dd Line {l1=0x25, l2=»  RECPRBLK:=SEGINBLK*232 DIV RECSIZE;«, l3=0x25}
0x3dd…402 Line {l1=0x23, l2=»  NBLK  :=(NREC-1) DIV RECPRBLK +1;«, l3=0x23}
0x402…422 Line {l1=0x1e, l2=»  BLKPRBUC:=TRUNC(SQRT(NBLK));«, l3=0x1e}
0x422…445 Line {l1=0x21, l2=»  NBUC:=(NBLK-1) DIV BLKPRBUC +1;«, l3=0x21}
0x445…45d Line {l1=0x16, l2=»  NBLK:=BLKPRBUC*NBUC;«, l3=0x16}
0x45d…475 Line {l1=0x16, l2=»  NREC:=NBLK*RECPRBLK;«, l3=0x16}
0x475…495 Line {l1=0x1e, l2=»  RECPRBUC:=RECPRBLK*BLKPRBUC;«, l3=0x1e}
0x495…4a5 Line {l1=0x0e, l2=»  FLHSIZE:=51;«, l3=0x0e}
0x4a5…4c3 Line {l1=0x1c, l2=»  BUTSIZE:=NBUC*(KEYSIZE+2);«, l3=0x1c}
0x4c3…4e5 Line {l1=0x20, l2=»  BLTSIZE:=BLKPRBUC*(KEYSIZE+2);«, l3=0x20}
0x4e5…503 Line {l1=0x1c, l2=»  BLKSIZE:=RECPRBLK*RECSIZE;«, l3=0x1c}
0x503…528 Line {l1=0x23, l2=»  SEGINFLH:=(FLHSIZE-1) DIV 232 +1;«, l3=0x23}
0x528…54d Line {l1=0x23, l2=»  SEGINBUT:=(BUTSIZE-1) DIV 232 +1;«, l3=0x23}
0x54d…572 Line {l1=0x23, l2=»  SEGINBLT:=(BLTSIZE-1) DIV 232 +1;«, l3=0x23}
0x572…59b Line {l1=0x27, l2=»  SEGINBUC:=SEGINBLT+SEGINBLK*BLKPRBUC;«, l3=0x27}
0x59b…5e3 Line {l1=0x46, l2=»  FILESIZE:=TRUNC(((SEGINFLH+SEGINBUT+SEGINBUC*NBUC)*464.0+32)/256)+2;«, l3=0x46}
0x5e3…61a Line {l1=0x35, l2=»  TABLESIZE:=BUTSIZE+BLTSIZE+BLKSIZE+RECSIZE+KEYSIZE;«, l3=0x35}
0x61a…62f Line {l1=0x13, l2=»  NOOFSEGS:='    ';«, l3=0x13}
0x62f…647 Line {l1=0x16, l2=»  FOR I:=4 DOWNTO 1 DO«, l3=0x16}
0x647…650 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x650…680 Line {l1=0x2e, l2=»       NOOFSEGS(I):=CHR(FILESIZE MOD 10 + 48);«, l3=0x2e}
0x680…6a2 Line {l1=0x20, l2=»       FILESIZE:=FILESIZE DIV 10«, l3=0x20}
0x6a2…6aa Line {l1=0x06, l2=»  END;«, l3=0x06}
0x6aa…6db Line {l1=0x2f, l2=»  FILENAME:=CONCAT(FILENAME,':',NOOFSEGS,':I');«, l3=0x2f}
0x6db…707 Line {l1=0x2a, l2=»  WRITELN(LIST,'FILE CREATED: ',FILENAME);«, l3=0x2a}
0x707…744 Line {l1=0x3b, l2=»  WRITELN(LIST,'NBUC ',NBUC,'  NBLK ',NBLK,'  NREC ',NREC);«, l3=0x3b}
0x744…78f Line {l1=0x49, l2=»  WRITELN(LIST,'BLKPRBUC ',BLKPRBUC,'  RECPRBUC ',RECPRBUC,'  RECPRBLK ',«, l3=0x49}
0x78f…7ab Line {l1=0x1a, l2=»                RECPRBLK);«, l3=0x1a}
0x7ab…7f1 Line {l1=0x44, l2=»  WRITELN(LIST,'KEYFLDS ',KEYFLDS,'  FLHSIZE ',FLHSIZE,'  BUTSIZE ',«, l3=0x44}
0x7f1…80c Line {l1=0x19, l2=»                BUTSIZE);«, l3=0x19}
0x80c…852 Line {l1=0x44, l2=»  WRITELN(LIST,'BLTSIZE ',BLTSIZE,'  BLKSIZE ',BLKSIZE,'  RECSIZE ',«, l3=0x44}
0x852…86d Line {l1=0x19, l2=»                RECSIZE);«, l3=0x19}
0x86d…8b6 Line {l1=0x47, l2=»  WRITELN(LIST,'KEYSIZE ',KEYSIZE,'  SEGINFLH ',SEGINFLH,'  SEGINBUT ',«, l3=0x47}
0x8b6…8d2 Line {l1=0x1a, l2=»                SEGINBUT);«, l3=0x1a}
0x8d2…91d Line {l1=0x49, l2=»  WRITELN(LIST,'SEGINBUC ',SEGINBUC,'  SEGINBLT ',SEGINBLT,'  SEGINBLK ',«, l3=0x49}
0x91d…939 Line {l1=0x1a, l2=»                SEGINBLK);«, l3=0x1a}
0x939…987 Line {l1=0x4c, l2=»  WRITELN(LIST,'TABLESIZE ',TABLESIZE,'  FILESIZE ',FILESIZE);WRITELN(LIST);«, l3=0x4c}
0x987…99f Line {l1=0x16, l2=»  REWRITE(F,FILENAME);«, l3=0x16}
0x99f…9b1 Line {l1=0x10, l2=»  IER:=IORESULT;«, l3=0x10}
0x9b1…9d1 Line {l1=0x1e, l2=»  IF IER<>0 THEN EXIT(CREATE);«, l3=0x1e}
0x9d1…9f2 Line {l1=0x1f, l2=»  WRITELN(LIST,'FILE CREATED');«, l3=0x1f}
0x9f2…a02 Line {l1=0x0e, l2=»  F^(1):=NBUC;«, l3=0x0e}
0xa02…a12 Line {l1=0x0e, l2=»  F^(2):=NBLK;«, l3=0x0e}
0xa12…a22 Line {l1=0x0e, l2=»  F^(3):=NREC;«, l3=0x0e}
0xa22…a36 Line {l1=0x12, l2=»  F^(4):=BLKPRBUC;«, l3=0x12}
0xa36…a4a Line {l1=0x12, l2=»  F^(5):=RECPRBUC;«, l3=0x12}
0xa4a…a5e Line {l1=0x12, l2=»  F^(6):=RECPRBLK;«, l3=0x12}
0xa5e…a71 Line {l1=0x11, l2=»  F^(7):=KEYFLDS;«, l3=0x11}
0xa71…a84 Line {l1=0x11, l2=»  F^(8):=FLHSIZE;«, l3=0x11}
0xa84…a97 Line {l1=0x11, l2=»  F^(9):=BUTSIZE;«, l3=0x11}
0xa97…aab Line {l1=0x12, l2=»  F^(10):=BLTSIZE;«, l3=0x12}
0xaab…abf Line {l1=0x12, l2=»  F^(11):=BLKSIZE;«, l3=0x12}
0xabf…ad3 Line {l1=0x12, l2=»  F^(12):=RECSIZE;«, l3=0x12}
0xad3…ae7 Line {l1=0x12, l2=»  F^(13):=KEYSIZE;«, l3=0x12}
0xae7…afc Line {l1=0x13, l2=»  F^(14):=SEGINFLH;«, l3=0x13}
0xafc…b11 Line {l1=0x13, l2=»  F^(15):=SEGINBUT;«, l3=0x13}
0xb11…b26 Line {l1=0x13, l2=»  F^(16):=SEGINBUC;«, l3=0x13}
0xb26…b3b Line {l1=0x13, l2=»  F^(17):=SEGINBLT;«, l3=0x13}
0xb3b…b50 Line {l1=0x13, l2=»  F^(18):=SEGINBLK;«, l3=0x13}
0xb50…b70 Line {l1=0x1e, l2=»  FOR I:=19 TO 24 DO F^(I):=0;«, l3=0x1e}
0xb70…b84 Line {l1=0x12, l2=»  FOR I:=1 TO 9 DO«, l3=0x12}
0xb84…bb4 Line {l1=0x2e, l2=»     FOR J:=1 TO 3 DO F^(21+3*I+J):=KEYS(I,J);«, l3=0x2e}
0xbb4…bc2 Line {l1=0x0c, l2=»  SEEK(F,1);«, l3=0x0c}
0xbc2…bd9 Line {l1=0x15, l2=»  IF IORESULT<>0 THEN«, l3=0x15}
0xbd9…be2 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0xbe2…bf9 Line {l1=0x15, l2=»       IER:=IORESULT;«, l3=0x15}
0xbf9…c0e Line {l1=0x13, l2=»       EXIT(CREATE)«, l3=0x13}
0xc0e…c16 Line {l1=0x06, l2=»  END;«, l3=0x06}
0xc16…c21 Line {l1=0x09, l2=»  PUT(F);«, l3=0x09}
0xc21…c33 Line {l1=0x10, l2=»  IER:=IORESULT;«, l3=0x10}
0xc33…c61 Line {l1=0x2c, l2=»  WRITELN(LIST,'FILE CREATED, RESULT: ',IER)«, l3=0x2c}
0xc61…c67 Line {l1=0x04, l2=»END;«, l3=0x04}
0xc67…c80 00 00 52 45 53 55 4c 54 20 3a 20 27 2c 49 45 52 29 2d 04 45 4e 44 3b 04 00                        ┆  RESULT : ',IER)- END;  ┆
0xc80…ca0 00 53 54 29 3b 3a 04 45 4e 44 3b 04 00 00 04 45 4e 44 3b 04 00 00 00 00 00 00 00 00 00 00 00 00   ┆ ST);: END;    END;             ┆
0xca0…cc0 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   ┆                                ┆
          […0xf…]

Reduced view