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

⟦3428c6384⟧ TextFile

    Length: 2496 (0x9c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »INSERT.K«

Derivation

└─⟦6b1c9961a⟧ Bits:30008989 INDPERM P1
    └─⟦this⟧ »INSERT.K« 
└─⟦a3d38fea3⟧ Bits:30008985 PRODUKTION NBT.
    └─⟦this⟧ »INSERT.K« 
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »INSERT.K« 

Mikados K File

PROCEDURE INSERT(VAR ZO:ISFHEAD;VAR F:ISF;VAR REC:AR);
VAR I,K:INTEGER;
BEGIN
  WITH ZO DO
  IF FILEOPEN THEN
  IF NOT FILEINIT THEN
  BEGIN
    IER:=0;
    IF INITREC=0 THEN BEGIN IER:=-10; EXIT(INSERT) END;
    IF RECINUSE>0 THEN
    BEGIN
      EXTRACT(ZO,Z,Z,BLK+(BLKENTRY-1)*RECSIZE,KEY1);
      EXTRACT(ZO,REC,Z,1,KEY2);
      IF COMPARE(ZO,Z,Z,KEY1,KEY2)>=0
      THEN BEGIN IER:=-11;EXIT(INSERT) END
    END;
      K:=RECINUSE MOD IRPRBUC;
      I:=RECINUSE DIV IRPRBUC+1;
      READTABLE(ZO,F,I);
      IF IER<>0 THEN EXIT(INSERT);
      I:=K DIV IRPRBLK+1;
      READBLOCK(ZO,F,I,1);
      IF IER<>0 THEN EXIT(INSERT);
      BLKENTRY:= K MOD IRPRBLK+1;
      K:=BLK+(BLKENTRY-1)*RECSIZE-1;
      FOR I:=1 TO RECSIZE DO Z(K+I):=REC(I);
      SÆTKEY(ZO,BLKENTRY);
      ØGNUM(ZO);
      BLKCHG:=TRUE;
      IF RECINUSE=INITREC THEN FILEINIT:=TRUE
    END
    ELSE
    IF RECINUSE<NREC THEN
    BEGIN
      FINDPOST(ZO,F,REC);
      IF IER=-1 THEN
      BEGIN
        IER:=0;
        IF BLKENTRY<=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1) THEN
        BEGIN
          FSKDIBLK(ZO,BLKENTRY);
          IF IER<>0 THEN EXIT(INSERT)
        END;
        K:=BLK+(BLKENTRY-1)*RECSIZE-1;
        FOR I:=1 TO RECSIZE DO Z(K+I):=REC(I);
        BLKCHG:=TRUE;
        IF Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)=RECPRBLK THEN
        BEGIN
          FSKDUBLK(ZO,F);
          IF IER<>0 THEN EXIT(INSERT)
        END ELSE
        IF BLKENTRY=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1 THEN
                                      SÆTKEY(ZO,BLKENTRY);
        ØGNUM(ZO)
      END
      ELSE IF IER=0 THEN IER:=-7
    END
    ELSE IER:=-8 ELSE IER:=-3
END;

Full view