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

⟦5a4fca968⟧ TextFile

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

Derivation

└─⟦71b125bce⟧ Bits:30004621 CREATE og ISFHEAD kildekode
    └─⟦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(KEYSIZE+2)/SQR(RECSIZE))/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:=(SEGINFLH+SEGINBUT+SEGINBUC*NBUC)*464 DIV 256 +1;
  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);
  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;
  WRITE(LIST,'FILE CREATED, RESULT : ',IER);WRITELN(LIST);
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(KEYSIZE+2)/SQR(RECSIZE))/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…5ca Line {l1=0x3d, l2=»  FILESIZE:=(SEGINFLH+SEGINBUT+SEGINBUC*NBUC)*464 DIV 256 +1;«, l3=0x3d}
0x5ca…601 Line {l1=0x35, l2=»  TABLESIZE:=BUTSIZE+BLTSIZE+BLKSIZE+RECSIZE+KEYSIZE;«, l3=0x35}
0x601…616 Line {l1=0x13, l2=»  NOOFSEGS:='    ';«, l3=0x13}
0x616…62e Line {l1=0x16, l2=»  FOR I:=4 DOWNTO 1 DO«, l3=0x16}
0x62e…637 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x637…667 Line {l1=0x2e, l2=»       NOOFSEGS(I):=CHR(FILESIZE MOD 10 + 48);«, l3=0x2e}
0x667…689 Line {l1=0x20, l2=»       FILESIZE:=FILESIZE DIV 10«, l3=0x20}
0x689…691 Line {l1=0x06, l2=»  END;«, l3=0x06}
0x691…6c2 Line {l1=0x2f, l2=»  FILENAME:=CONCAT(FILENAME,':',NOOFSEGS,':I');«, l3=0x2f}
0x6c2…6ef Line {l1=0x2b, l2=»  WRITELN(LIST,'FILE CREATED : ',FILENAME);«, l3=0x2b}
0x6ef…73b Line {l1=0x4a, l2=»  WRITELN(LIST,'NBUC      ',NBUC,'  NBLK      ',NBLK,'  NREC      ',NREC);«, l3=0x4a}
0x73b…789 Line {l1=0x4c, l2=»  WRITELN(LIST,'BLKPRBUC  ',BLKPRBUC,'  RECPRBUC  ',RECPRBUC,'  RECPRBLK  ',«, l3=0x4c}
0x789…7a5 Line {l1=0x1a, l2=»                RECPRBLK);«, l3=0x1a}
0x7a5…7f1 Line {l1=0x4a, l2=»  WRITELN(LIST,'KEYFLDS   ',KEYFLDS,'  FLHSIZE   ',FLHSIZE,'  BUTSIZE   ',«, l3=0x4a}
0x7f1…80c Line {l1=0x19, l2=»                BUTSIZE);«, l3=0x19}
0x80c…858 Line {l1=0x4a, l2=»  WRITELN(LIST,'BLTSIZE   ',BLTSIZE,'  BLKSIZE   ',BLKSIZE,'  RECSIZE   ',«, l3=0x4a}
0x858…873 Line {l1=0x19, l2=»                RECSIZE);«, l3=0x19}
0x873…8c0 Line {l1=0x4b, l2=»  WRITELN(LIST,'KEYSIZE   ',KEYSIZE,'  SEGINFLH  ',SEGINFLH,'  SEGINBUT  ',«, l3=0x4b}
0x8c0…8dc Line {l1=0x1a, l2=»                SEGINBUT);«, l3=0x1a}
0x8dc…92a Line {l1=0x4c, l2=»  WRITELN(LIST,'SEGINBUC  ',SEGINBUC,'  SEGINBLT  ',SEGINBLT,'  SEGINBLK  ',«, l3=0x4c}
0x92a…946 Line {l1=0x1a, l2=»                SEGINBLK);«, l3=0x1a}
0x946…995 Line {l1=0x4d, l2=»  WRITELN(LIST,'TABLESIZE ',TABLESIZE,'  FILESIZE  ',FILESIZE);WRITELN(LIST);«, l3=0x4d}
0x995…9ad Line {l1=0x16, l2=»  REWRITE(F,FILENAME);«, l3=0x16}
0x9ad…9bf Line {l1=0x10, l2=»  IER:=IORESULT;«, l3=0x10}
0x9bf…9df Line {l1=0x1e, l2=»  IF IER<>0 THEN EXIT(CREATE);«, l3=0x1e}
0x9df…9ef Line {l1=0x0e, l2=»  F^(1):=NBUC;«, l3=0x0e}
0x9ef…9ff Line {l1=0x0e, l2=»  F^(2):=NBLK;«, l3=0x0e}
0x9ff…a0f Line {l1=0x0e, l2=»  F^(3):=NREC;«, l3=0x0e}
0xa0f…a23 Line {l1=0x12, l2=»  F^(4):=BLKPRBUC;«, l3=0x12}
0xa23…a37 Line {l1=0x12, l2=»  F^(5):=RECPRBUC;«, l3=0x12}
0xa37…a4b Line {l1=0x12, l2=»  F^(6):=RECPRBLK;«, l3=0x12}
0xa4b…a5e Line {l1=0x11, l2=»  F^(7):=KEYFLDS;«, l3=0x11}
0xa5e…a71 Line {l1=0x11, l2=»  F^(8):=FLHSIZE;«, l3=0x11}
0xa71…a84 Line {l1=0x11, l2=»  F^(9):=BUTSIZE;«, l3=0x11}
0xa84…a98 Line {l1=0x12, l2=»  F^(10):=BLTSIZE;«, l3=0x12}
0xa98…aac Line {l1=0x12, l2=»  F^(11):=BLKSIZE;«, l3=0x12}
0xaac…ac0 Line {l1=0x12, l2=»  F^(12):=RECSIZE;«, l3=0x12}
0xac0…ad4 Line {l1=0x12, l2=»  F^(13):=KEYSIZE;«, l3=0x12}
0xad4…ae9 Line {l1=0x13, l2=»  F^(14):=SEGINFLH;«, l3=0x13}
0xae9…afe Line {l1=0x13, l2=»  F^(15):=SEGINBUT;«, l3=0x13}
0xafe…b13 Line {l1=0x13, l2=»  F^(16):=SEGINBUC;«, l3=0x13}
0xb13…b28 Line {l1=0x13, l2=»  F^(17):=SEGINBLT;«, l3=0x13}
0xb28…b3d Line {l1=0x13, l2=»  F^(18):=SEGINBLK;«, l3=0x13}
0xb3d…b5d Line {l1=0x1e, l2=»  FOR I:=19 TO 24 DO F^(I):=0;«, l3=0x1e}
0xb5d…b71 Line {l1=0x12, l2=»  FOR I:=1 TO 9 DO«, l3=0x12}
0xb71…ba1 Line {l1=0x2e, l2=»     FOR J:=1 TO 3 DO F^(21+3*I+J):=KEYS(I,J);«, l3=0x2e}
0xba1…baf Line {l1=0x0c, l2=»  SEEK(F,1);«, l3=0x0c}
0xbaf…bc6 Line {l1=0x15, l2=»  IF IORESULT<>0 THEN«, l3=0x15}
0xbc6…bcf Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0xbcf…be6 Line {l1=0x15, l2=»       IER:=IORESULT;«, l3=0x15}
0xbe6…bfb Line {l1=0x13, l2=»       EXIT(CREATE)«, l3=0x13}
0xbfb…c03 Line {l1=0x06, l2=»  END;«, l3=0x06}
0xc03…c0e Line {l1=0x09, l2=»  PUT(F);«, l3=0x09}
0xc0e…c20 Line {l1=0x10, l2=»  IER:=IORESULT;«, l3=0x10}
0xc20…c5c Line {l1=0x3a, l2=»  WRITE(LIST,'FILE CREATED, RESULT : ',IER);WRITELN(LIST);«, l3=0x3a}
0xc5c…c62 Line {l1=0x04, l2=»END;«, l3=0x04}
0xc62…c80 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         ┆                              ┆
0xc80…ca0 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   ┆                                ┆
          […0x10…]

Reduced view