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

⟦d8ed3edcc⟧ TextFile

    Length: 9984 (0x2700)
    Types: TextFile
    Notes: Mikados_K
    Names: »INSERT.K«

Derivation

└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
    └─⟦this⟧ »INSERT.K« 
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
    └─⟦this⟧ »INSERT.K« 

Mikados K File

(*$P*)
PROCEDURE INSERT(VAR F:ISF);                              
VAR I,K:INTEGER;
 
PROCEDURE SKAFENTOM;
VAR TOMBUC,TOMBLK,TOMADR,CURRBUC:INTEGER;
 
FUNCTION IBLTADR:INTEGER;
BEGIN
  WITH FILEHEAD(CURRHEAD) DO
  IBLTADR:=BUT+(CURRBUC-1)*ENTRYSIZE
END;
 
PROCEDURE COPYKEY(TIL,FRA,SIZE:INTEGER);
VAR I:INTEGER;
BEGIN
  I:=TIL+SIZE;
  REPEAT
    Z(TIL):=Z(FRA);
    TIL:=TIL+1;
    FRA:=FRA+1
  UNTIL TIL=I
END;
 
PROCEDURE FORSKYD(FULD,TOM,BLTSTART:INTEGER);
VAR INCR:INTEGER;
BEGIN
  IF TOM>FULD THEN INCR:=-1 ELSE INCR:=1;
  WHILE TOM<>FULD DO
  BEGIN
    WITH FILEHEAD(CURRHEAD) DO
    COPYKEY(BLTSTART+(TOM-1)*ENTRYSIZE,
            BLTSTART+(TOM+INCR-1)*ENTRYSIZE,ENTRYSIZE);
    TOM:=TOM+INCR
  END
END;
(*$P*)
BEGIN (*SKAFENTOM*)
  WITH FILEHEAD(CURRHEAD) DO 
  IF BLKINUSE<NBLK THEN         (*DER FINDES TOMME BLOKKE*)
  BEGIN
    TOMBUC:=0;
    IF Z(BUT+1+(BUCINZONE-1)*ENTRYSIZE)<=RECPRBUC-RECPRBLK THEN
    BEGIN (*DER ER CHANCE FOR EN TOM BLOK I DENNE BUCKET*)
      TOMBLK:=1;
      WHILE TOMBUC=0 DO         (*SØG FREMAD*)
      IF TOMBLK>BLKPRBUC THEN
        TOMBUC:=-1              (*IKKE FUNDET*)
      ELSE
      IF Z(BLT+1+(TOMBLK-1)*ENTRYSIZE)=0 THEN
      BEGIN                     (*FUNDET*)
        TOMBUC:=BUCINZONE;
        TOMADR:=Z(BLT+(TOMBLK-1)*ENTRYSIZE);
        IF TOMBLK<BLKINZONE THEN BLKINZONE:=BLKINZONE-1;
        FORSKYD(BLKINZONE+1,TOMBLK,BLT);
        Z(BLT+BLKINZONE*ENTRYSIZE):=TOMADR;
        Z(BLT+BLKINZONE*ENTRYSIZE+1):=0
      END
      ELSE TOMBLK:=TOMBLK+1     (*IKKE FUNDET ENDNU*)
    END;
      (*IKKE FUNDET ENDNU OG PLADS TIL EKSTRA BLOKTABEL*)
    IF (TOMBUC<=0) AND (BLTSIZE+ENTRYSIZE<=HELPBLT) THEN
    BEGIN                       (*DER SKAL OG KAN LEDES I ANDRE BUCKETS*)
      CURRBUC:=BUCINZONE+1;
      TOMBUC:=0;
      WHILE TOMBUC=0 DO
      BEGIN
        IF CURRBUC<1 THEN CURRBUC:=2*BUCINZONE+1-CURRBUC;
        IF CURRBUC>NBUC THEN CURRBUC:=2*BUCINZONE-CURRBUC;
        IF CURRBUC>0 THEN
        BEGIN
          IF Z(IBLTADR+1)<=RECPRBUC-RECPRBLK THEN
          BEGIN                 (*MULIGHED FOR TOM BLOK I CURRBUC*)
            COPSEGS(F,Z(IBLTADR),BLTSIZE,1,LÆS);
            TOMBLK:=1;
            WHILE TOMBUC=0 DO
            IF TOMBLK>BLKPRBUC THEN
              TOMBUC:=-1
            ELSE
            IF Z(2+(TOMBLK-1)*ENTRYSIZE)=0 THEN
              TOMBUC:=CURRBUC
            ELSE
              TOMBLK:=TOMBLK+1
          END;
          IF TOMBUC<=0 THEN
          BEGIN                 (*IKKE PLADS I CURRBUC*)
            IF CURRBUC>BUCINZONE THEN
              CURRBUC:=2*BUCINZONE-CURRBUC
            ELSE
              CURRBUC:=2*BUCINZONE+1-CURRBUC;
            TOMBUC:=0
          END
          ELSE
            TOMADR:=Z(1+(TOMBLK-1)*ENTRYSIZE)
        END
        ELSE
        BEGIN
          IER:=-106;
          EXIT(UDFØR)
        END
      END;
 (*NU ER TOMBUC,TOMBLK,TOMADR IORDEN, OG BLOKTABELLEN MED PLADS I ER INDLÆST*)
      IF TOMBUC>BUCINZONE THEN
      BEGIN
        IF BLKINZONE=BLKPRBUC THEN
        BEGIN
          (*INDSÆT TOM BLOK I STARTEN AF NÆSTE BUCKET*)
          Z(1):=TOMADR;
          Z(2):=0
        END
        ELSE
        BEGIN
          (*FLYT SIDSTE BLOK TIL STARTEN AF NÆSTE BUCKET*)
          COPYKEY(1,BLT+(BLKPRBUC-1)*ENTRYSIZE,ENTRYSIZE);
          (*ÅBEN ET HUL I BLOKTABELLEN*)
          FORSKYD(BLKINZONE+1,BLKPRBUC,BLT);
          (*INDSÆT TOM BLOK I DETTE HUL*)
          Z(BLT+BLKINZONE*ENTRYSIZE):=TOMADR;
          Z(BLT+BLKINZONE*ENTRYSIZE+1):=0;
          (*TÆL BUCKETS NUM NED MED NUM FRA DEN FJERNEDE BLOK*)
          Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1):=
                              Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)-Z(2);
          (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY*)
          IF BLKINZONE+1<BLKPRBUC THEN
            COPYKEY(BUT+(BUCINZONE-1)*ENTRYSIZE+2,
                    BLT+(BLKPRBUC-1)*ENTRYSIZE+2,KEYSIZE)
          ELSE
            COPYKEY(BUT+(BUCINZONE-1)*ENTRYSIZE+2,
                    BLT+(BLKPRBUC-2)*ENTRYSIZE+2,KEYSIZE)
        END;
        CURRBUC:=BUCINZONE;
        REPEAT
          CURRBUC:=CURRBUC+1;
          (*INDLÆS NÆSTE BLOKTABEL FORSKUDT ET ENTRY*)
          COPSEGS(F,Z(IBLTADR),BLTSIZE,1+ENTRYSIZE,LÆS);
          IF CURRBUC<TOMBUC THEN
          BEGIN
            (*UDSKRIV BLOKTABEL FORSKUDT ET ENTRY TILBAGE*)
            COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV);
            (*KORRIGER NUM MED DEN INDSKUDTE BLOK - DEN UDSKUDTE BLOK*)
            Z(IBLTADR+1):=Z(IBLTADR+1)+Z(2)-Z(2+BLTSIZE);
            (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY*)
            COPYKEY(IBLTADR+2,(BLKPRBUC-1)*ENTRYSIZE+3,KEYSIZE);
            COPYKEY(1,BLTSIZE+1,ENTRYSIZE)
          END
        UNTIL CURRBUC=TOMBUC;
        (*BUCKET MED TOM BLOK ER NU INDLÆST*)
        FORSKYD(BLKPRBUC+1,TOMBLK+1,1);(*FJERN DEN FUNDNE TOMME BLOK*)
        IF (Z(IBLTADR+1)=0) AND (Z(2)>0) THEN
        BEGIN                   (*FORSKYD IND I TOM BUCKET*)
          BUCINUSE:=BUCINUSE+1;
          (*SÆT BUCKETS NUM,KEY=NY BLOKS NUM,KEY*)
          COPYKEY(IBLTADR+1,2,KEYSIZE+1) 
        END
        ELSE                    (*OPTÆL BUCKETS NUM MED INDSKUDT BLOK*)
          Z(IBLTADR+1):=Z(IBLTADR+1)+Z(2);
        COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV)
      END
      ELSE
      BEGIN
        (*TOMBUC<BUCINZONE*)
        IF BLKINZONE=1 THEN
        BEGIN
          (*INDSÆT TOM BLOK SIDST I FORRIGE BUCKET*)
          Z(BLTSIZE+1):=TOMADR;
          Z(BLTSIZE+2):=0
        END
        ELSE
        BEGIN
          (*FLYT FØRSTE BLOK TIL SIDST I FORRIGE BUCKET*)
          COPYKEY(1+BLKPRBUC*ENTRYSIZE,BLT,ENTRYSIZE);
          (*ÅBEN ET HUL I BLOKTABELLEN*)
          FORSKYD(BLKINZONE-1,1,BLT);
          (*INDSÆT TOM BLOK I DETTE HUL*)
          Z(BLT+(BLKINZONE-2)*ENTRYSIZE):=TOMADR;
          Z(BLT+(BLKINZONE-2)*ENTRYSIZE+1):=0;
          (*TÆL BUCKETS NUM NED MED NUM FRA DEN FJERNEDE BLOK*)
          Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1):=
               Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)-Z(BLTSIZE+2)    
        END;
        CURRBUC:=BUCINZONE;
        REPEAT
          CURRBUC:=CURRBUC-1;
          (*INDLÆS NÆSTE BLOKTABEL ET ENTRY*)
          COPSEGS(F,Z(IBLTADR),BLTSIZE,1,LÆS);
          IF CURRBUC>TOMBUC THEN
          BEGIN
            (*UDSKRIV BLOKTABEL FORSKUDT ET ENTRY FREMAD*)
            COPSEGS(F,Z(IBLTADR),BLTSIZE,1+ENTRYSIZE,SKRIV);
            (*KORRIGER NUM MED DEN INDSKUDTE BLOK - DEN UDSKUDTE BLOK*)
            Z(IBLTADR+1):=Z(IBLTADR+1)-Z(2)+Z(2+BLTSIZE);
            (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY, HVIS DER ER NOGET I DEN*)
            IF Z(2+BLTSIZE)>0 THEN
              COPYKEY(IBLTADR+2,BLTSIZE+3,KEYSIZE);
            COPYKEY(BLTSIZE+1,1,ENTRYSIZE)
          END
        UNTIL CURRBUC=TOMBUC;
        (*BUCKET MED TOM BLOK ER NU INDLÆST*)
        FORSKYD(BLKPRBUC+1,TOMBLK,1);(*FJERN DEN FUNDNE TOMME BLOK*)
        IF Z((BLKPRBUC-1)*ENTRYSIZE+2)>0 THEN 
        BEGIN
          IF Z(IBLTADR+1)=0 THEN BUCINUSE:=BUCINUSE+1;
          (*SÆT BUCKETS KEY=NY BLOKS KEY*)
          COPYKEY(IBLTADR+2,(BLKPRBUC-1)*ENTRYSIZE+3,KEYSIZE);
          (*OPTÆL BUCKETS NUM MED INDSKUDT BLOK*)
          Z(IBLTADR+1):=Z(IBLTADR+1)+Z((BLKPRBUC-1)*ENTRYSIZE+2) 
        END;
        COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV)
      END
    END
  END
END;
(*$P*)
BEGIN (*INSERT*)
  WITH FILEHEAD(CURRHEAD) 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(BLK+(BLKENTRY-1)*RECSIZE,KEY1);
      REXTRACT(KEY2);
      IF COMPARE(KEY1,KEY2)>=0
      THEN BEGIN IER:=-11;EXIT(INSERT) END
    END;
    K:=RECINUSE MOD IRPRBUC;                   
    I:=RECINUSE DIV IRPRBUC+1;                 
    READTABLE(F,I);                         
    I:=K DIV IRPRBLK+1;                        
    READBLOCK(F,I,1);                       
    BLKENTRY:= K MOD IRPRBLK+1;                
    K:=BLK+(BLKENTRY-1)*RECSIZE;             
    MOVELEFT(REC^(1),Z(K),2*RECSIZE);
(*  FOR I:=1 TO RECSIZE DO Z(K+I):=REC^(I);     *)
    SÆTKEY(BLKENTRY);                       
    ØGNUM;                                 
    BLKCHG:=TRUE;                              
    IF RECINUSE=INITREC THEN FILEINIT:=TRUE    
  END                                                       
  ELSE                                                      
  IF RECINUSE<NREC THEN                                     
  BEGIN                                                     
    FINDPOST(F);                                         
    IF IER=-1 THEN                                          
    BEGIN                                                   
      IF (Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)=RECPRBLK) AND
        ((Z(BLT+BLKINZONE*ENTRYSIZE+1)=RECPRBLK) OR (BLKINZONE=BLKPRBUC)) AND
        ((Z(BLT+(BLKINZONE-2)*ENTRYSIZE+1)=RECPRBLK) OR (BLKINZONE=1)) THEN
        SKAFENTOM;
      IER:=0;                                               
      IF BLKENTRY<=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1) THEN    
        FSKDIBLK(BLKENTRY);                              
      K:=BLK+(BLKENTRY-1)*RECSIZE;                        
      MOVELEFT(REC^(1),Z(K),2*RECSIZE);
(*    FOR I:=1 TO RECSIZE DO Z(K+I):=REC^(I);*)             
      BLKCHG:=TRUE;                                         
      IF Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)=RECPRBLK THEN     
        FSKDUBLK(F)                                      
      ELSE                                              
      IF BLKENTRY=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1 THEN SÆTKEY(BLKENTRY);  
      ØGNUM                                             
    END
    ELSE IF IER=0 THEN IER:=-7
  END
  ELSE IER:=-8 ELSE IER:=-3
END;

Mikados K File

0x0000…0008 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0008…0044 Line {l1=0x3a, l2=»PROCEDURE INSERT(VAR F:ISF);                              «, l3=0x3a}
0x0044…0056 Line {l1=0x10, l2=»VAR I,K:INTEGER;«, l3=0x10}
0x0056…0059 Line {l1=0x01, l2=» «, l3=0x01}
0x0059…006f Line {l1=0x14, l2=»PROCEDURE SKAFENTOM;«, l3=0x14}
0x006f…009a Line {l1=0x29, l2=»VAR TOMBUC,TOMBLK,TOMADR,CURRBUC:INTEGER;«, l3=0x29}
0x009a…009d Line {l1=0x01, l2=» «, l3=0x01}
0x009d…00b8 Line {l1=0x19, l2=»FUNCTION IBLTADR:INTEGER;«, l3=0x19}
0x00b8…00bf Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x00bf…00dd Line {l1=0x1c, l2=»  WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x00dd…0103 Line {l1=0x24, l2=»  IBLTADR:=BUT+(CURRBUC-1)*ENTRYSIZE«, l3=0x24}
0x0103…0109 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0109…010c Line {l1=0x01, l2=» «, l3=0x01}
0x010c…0136 Line {l1=0x28, l2=»PROCEDURE COPYKEY(TIL,FRA,SIZE:INTEGER);«, l3=0x28}
0x0136…0146 Line {l1=0x0e, l2=»VAR I:INTEGER;«, l3=0x0e}
0x0146…014d Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x014d…015d Line {l1=0x0e, l2=»  I:=TIL+SIZE;«, l3=0x0e}
0x015d…0167 Line {l1=0x08, l2=»  REPEAT«, l3=0x08}
0x0167…017c Line {l1=0x13, l2=»    Z(TIL):=Z(FRA);«, l3=0x13}
0x017c…018d Line {l1=0x0f, l2=»    TIL:=TIL+1;«, l3=0x0f}
0x018d…019d Line {l1=0x0e, l2=»    FRA:=FRA+1«, l3=0x0e}
0x019d…01ac Line {l1=0x0d, l2=»  UNTIL TIL=I«, l3=0x0d}
0x01ac…01b2 Line {l1=0x04, l2=»END;«, l3=0x04}
0x01b2…01b5 Line {l1=0x01, l2=» «, l3=0x01}
0x01b5…01e4 Line {l1=0x2d, l2=»PROCEDURE FORSKYD(FULD,TOM,BLTSTART:INTEGER);«, l3=0x2d}
0x01e4…01f7 Line {l1=0x11, l2=»VAR INCR:INTEGER;«, l3=0x11}
0x01f7…01fe Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x01fe…0229 Line {l1=0x29, l2=»  IF TOM>FULD THEN INCR:=-1 ELSE INCR:=1;«, l3=0x29}
0x0229…023f Line {l1=0x14, l2=»  WHILE TOM<>FULD DO«, l3=0x14}
0x023f…0248 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0248…0268 Line {l1=0x1e, l2=»    WITH FILEHEAD(CURRHEAD) DO«, l3=0x1e}
0x0268…0291 Line {l1=0x27, l2=»    COPYKEY(BLTSTART+(TOM-1)*ENTRYSIZE,«, l3=0x27}
0x0291…02ca Line {l1=0x37, l2=»            BLTSTART+(TOM+INCR-1)*ENTRYSIZE,ENTRYSIZE);«, l3=0x37}
0x02ca…02dd Line {l1=0x11, l2=»    TOM:=TOM+INCR«, l3=0x11}
0x02dd…02e4 Line {l1=0x05, l2=»  END«, l3=0x05}
0x02e4…02ea Line {l1=0x04, l2=»END;«, l3=0x04}
0x02ea…02f2 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x02f2…0307 Line {l1=0x13, l2=»BEGIN (*SKAFENTOM*)«, l3=0x13}
0x0307…0326 Line {l1=0x1d, l2=»  WITH FILEHEAD(CURRHEAD) DO «, l3=0x1d}
0x0326…0363 Line {l1=0x3b, l2=»  IF BLKINUSE<NBLK THEN         (*DER FINDES TOMME BLOKKE*)«, l3=0x3b}
0x0363…036c Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x036c…037c Line {l1=0x0e, l2=»    TOMBUC:=0;«, l3=0x0e}
0x037c…03bd Line {l1=0x3f, l2=»    IF Z(BUT+1+(BUCINZONE-1)*ENTRYSIZE)<=RECPRBUC-RECPRBLK THEN«, l3=0x3f}
0x03bd…03f9 Line {l1=0x3a, l2=»    BEGIN (*DER ER CHANCE FOR EN TOM BLOK I DENNE BUCKET*)«, l3=0x3a}
0x03f9…040b Line {l1=0x10, l2=»      TOMBLK:=1;«, l3=0x10}
0x040b…043b Line {l1=0x2e, l2=»      WHILE TOMBUC=0 DO         (*SØG FREMAD*)«, l3=0x2e}
0x043b…045a Line {l1=0x1d, l2=»      IF TOMBLK>BLKPRBUC THEN«, l3=0x1d}
0x045a…048b Line {l1=0x2f, l2=»        TOMBUC:=-1              (*IKKE FUNDET*)«, l3=0x2f}
0x048b…0497 Line {l1=0x0a, l2=»      ELSE«, l3=0x0a}
0x0497…04c6 Line {l1=0x2d, l2=»      IF Z(BLT+1+(TOMBLK-1)*ENTRYSIZE)=0 THEN«, l3=0x2d}
0x04c6…04f2 Line {l1=0x2a, l2=»      BEGIN                     (*FUNDET*)«, l3=0x2a}
0x04f2…050e Line {l1=0x1a, l2=»        TOMBUC:=BUCINZONE;«, l3=0x1a}
0x050e…053c Line {l1=0x2c, l2=»        TOMADR:=Z(BLT+(TOMBLK-1)*ENTRYSIZE);«, l3=0x2c}
0x053c…0576 Line {l1=0x38, l2=»        IF TOMBLK<BLKINZONE THEN BLKINZONE:=BLKINZONE-1;«, l3=0x38}
0x0576…05a0 Line {l1=0x28, l2=»        FORSKYD(BLKINZONE+1,TOMBLK,BLT);«, l3=0x28}
0x05a0…05cd Line {l1=0x2b, l2=»        Z(BLT+BLKINZONE*ENTRYSIZE):=TOMADR;«, l3=0x2b}
0x05cd…05f6 Line {l1=0x27, l2=»        Z(BLT+BLKINZONE*ENTRYSIZE+1):=0«, l3=0x27}
0x05f6…0601 Line {l1=0x09, l2=»      END«, l3=0x09}
0x0601…0638 Line {l1=0x35, l2=»      ELSE TOMBLK:=TOMBLK+1     (*IKKE FUNDET ENDNU*)«, l3=0x35}
0x0638…0642 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x0642…067d Line {l1=0x39, l2=»      (*IKKE FUNDET ENDNU OG PLADS TIL EKSTRA BLOKTABEL*)«, l3=0x39}
0x067d…06b7 Line {l1=0x38, l2=»    IF (TOMBUC<=0) AND (BLTSIZE+ENTRYSIZE<=HELPBLT) THEN«, l3=0x38}
0x06b7…0702 Line {l1=0x49, l2=»    BEGIN                       (*DER SKAL OG KAN LEDES I ANDRE BUCKETS*)«, l3=0x49}
0x0702…071f Line {l1=0x1b, l2=»      CURRBUC:=BUCINZONE+1;«, l3=0x1b}
0x071f…0731 Line {l1=0x10, l2=»      TOMBUC:=0;«, l3=0x10}
0x0731…074a Line {l1=0x17, l2=»      WHILE TOMBUC=0 DO«, l3=0x17}
0x074a…0757 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0757…0792 Line {l1=0x39, l2=»        IF CURRBUC<1 THEN CURRBUC:=2*BUCINZONE+1-CURRBUC;«, l3=0x39}
0x0792…07ce Line {l1=0x3a, l2=»        IF CURRBUC>NBUC THEN CURRBUC:=2*BUCINZONE-CURRBUC;«, l3=0x3a}
0x07ce…07e9 Line {l1=0x19, l2=»        IF CURRBUC>0 THEN«, l3=0x19}
0x07e9…07f8 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x07f8…082b Line {l1=0x31, l2=»          IF Z(IBLTADR+1)<=RECPRBUC-RECPRBLK THEN«, l3=0x31}
0x082b…0870 Line {l1=0x43, l2=»          BEGIN                 (*MULIGHED FOR TOM BLOK I CURRBUC*)«, l3=0x43}
0x0870…08a2 Line {l1=0x30, l2=»            COPSEGS(F,Z(IBLTADR),BLTSIZE,1,LÆS);«, l3=0x30}
0x08a2…08ba Line {l1=0x16, l2=»            TOMBLK:=1;«, l3=0x16}
0x08ba…08d9 Line {l1=0x1d, l2=»            WHILE TOMBUC=0 DO«, l3=0x1d}
0x08d9…08fe Line {l1=0x23, l2=»            IF TOMBLK>BLKPRBUC THEN«, l3=0x23}
0x08fe…0918 Line {l1=0x18, l2=»              TOMBUC:=-1«, l3=0x18}
0x0918…092a Line {l1=0x10, l2=»            ELSE«, l3=0x10}
0x092a…095b Line {l1=0x2f, l2=»            IF Z(2+(TOMBLK-1)*ENTRYSIZE)=0 THEN«, l3=0x2f}
0x095b…097a Line {l1=0x1d, l2=»              TOMBUC:=CURRBUC«, l3=0x1d}
0x097a…098c Line {l1=0x10, l2=»            ELSE«, l3=0x10}
0x098c…09ac Line {l1=0x1e, l2=»              TOMBLK:=TOMBLK+1«, l3=0x1e}
0x09ac…09bc Line {l1=0x0e, l2=»          END;«, l3=0x0e}
0x09bc…09d9 Line {l1=0x1b, l2=»          IF TOMBUC<=0 THEN«, l3=0x1b}
0x09d9…0a13 Line {l1=0x38, l2=»          BEGIN                 (*IKKE PLADS I CURRBUC*)«, l3=0x38}
0x0a13…0a3a Line {l1=0x25, l2=»            IF CURRBUC>BUCINZONE THEN«, l3=0x25}
0x0a3a…0a66 Line {l1=0x2a, l2=»              CURRBUC:=2*BUCINZONE-CURRBUC«, l3=0x2a}
0x0a66…0a78 Line {l1=0x10, l2=»            ELSE«, l3=0x10}
0x0a78…0aa7 Line {l1=0x2d, l2=»              CURRBUC:=2*BUCINZONE+1-CURRBUC;«, l3=0x2d}
0x0aa7…0abe Line {l1=0x15, l2=»            TOMBUC:=0«, l3=0x15}
0x0abe…0acd Line {l1=0x0d, l2=»          END«, l3=0x0d}
0x0acd…0add Line {l1=0x0e, l2=»          ELSE«, l3=0x0e}
0x0add…0b0c Line {l1=0x2d, l2=»            TOMADR:=Z(1+(TOMBLK-1)*ENTRYSIZE)«, l3=0x2d}
0x0b0c…0b19 Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x0b19…0b27 Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x0b27…0b36 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x0b36…0b4c Line {l1=0x14, l2=»          IER:=-106;«, l3=0x14}
0x0b4c…0b63 Line {l1=0x15, l2=»          EXIT(UDFØR)«, l3=0x15}
0x0b63…0b70 Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x0b70…0b7c Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x0b7c…0bcc Line {l1=0x4e, l2=» (*NU ER TOMBUC,TOMBLK,TOMADR IORDEN, OG BLOKTABELLEN MED PLADS I ER INDLÆST*)«, l3=0x4e}
0x0bcc…0bec Line {l1=0x1e, l2=»      IF TOMBUC>BUCINZONE THEN«, l3=0x1e}
0x0bec…0bf9 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0bf9…0c1d Line {l1=0x22, l2=»        IF BLKINZONE=BLKPRBUC THEN«, l3=0x22}
0x0c1d…0c2c Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x0c2c…0c65 Line {l1=0x37, l2=»          (*INDSÆT TOM BLOK I STARTEN AF NÆSTE BUCKET*)«, l3=0x37}
0x0c65…0c7e Line {l1=0x17, l2=»          Z(1):=TOMADR;«, l3=0x17}
0x0c7e…0c91 Line {l1=0x11, l2=»          Z(2):=0«, l3=0x11}
0x0c91…0c9e Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x0c9e…0cac Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x0cac…0cbb Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x0cbb…0cf7 Line {l1=0x3a, l2=»          (*FLYT SIDSTE BLOK TIL STARTEN AF NÆSTE BUCKET*)«, l3=0x3a}
0x0cf7…0d33 Line {l1=0x3a, l2=»          COPYKEY(1,BLT+(BLKPRBUC-1)*ENTRYSIZE,ENTRYSIZE);«, l3=0x3a}
0x0d33…0d5d Line {l1=0x28, l2=»          (*ÅBEN ET HUL I BLOKTABELLEN*)«, l3=0x28}
0x0d5d…0d8b Line {l1=0x2c, l2=»          FORSKYD(BLKINZONE+1,BLKPRBUC,BLT);«, l3=0x2c}
0x0d8b…0db6 Line {l1=0x29, l2=»          (*INDSÆT TOM BLOK I DETTE HUL*)«, l3=0x29}
0x0db6…0de5 Line {l1=0x2d, l2=»          Z(BLT+BLKINZONE*ENTRYSIZE):=TOMADR;«, l3=0x2d}
0x0de5…0e11 Line {l1=0x2a, l2=»          Z(BLT+BLKINZONE*ENTRYSIZE+1):=0;«, l3=0x2a}
0x0e11…0e52 Line {l1=0x3f, l2=»          (*TÆL BUCKETS NUM NED MED NUM FRA DEN FJERNEDE BLOK*)«, l3=0x3f}
0x0e52…0e80 Line {l1=0x2c, l2=»          Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1):=«, l3=0x2c}
0x0e80…0ec6 Line {l1=0x44, l2=»                              Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)-Z(2);«, l3=0x44}
0x0ec6…0ef9 Line {l1=0x31, l2=»          (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY*)«, l3=0x31}
0x0ef9…0f21 Line {l1=0x26, l2=»          IF BLKINZONE+1<BLKPRBUC THEN«, l3=0x26}
0x0f21…0f55 Line {l1=0x32, l2=»            COPYKEY(BUT+(BUCINZONE-1)*ENTRYSIZE+2,«, l3=0x32}
0x0f55…0f90 Line {l1=0x39, l2=»                    BLT+(BLKPRBUC-1)*ENTRYSIZE+2,KEYSIZE)«, l3=0x39}
0x0f90…0fa0 Line {l1=0x0e, l2=»          ELSE«, l3=0x0e}
0x0fa0…0fd4 Line {l1=0x32, l2=»            COPYKEY(BUT+(BUCINZONE-1)*ENTRYSIZE+2,«, l3=0x32}
0x0fd4…100f Line {l1=0x39, l2=»                    BLT+(BLKPRBUC-2)*ENTRYSIZE+2,KEYSIZE)«, l3=0x39}
0x100f…101d Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x101d…103a Line {l1=0x1b, l2=»        CURRBUC:=BUCINZONE;«, l3=0x1b}
0x103a…104a Line {l1=0x0e, l2=»        REPEAT«, l3=0x0e}
0x104a…1069 Line {l1=0x1d, l2=»          CURRBUC:=CURRBUC+1;«, l3=0x1d}
0x1069…10a1 Line {l1=0x36, l2=»          (*INDLÆS NÆSTE BLOKTABEL FORSKUDT ET ENTRY*)«, l3=0x36}
0x10a1…10db Line {l1=0x38, l2=»          COPSEGS(F,Z(IBLTADR),BLTSIZE,1+ENTRYSIZE,LÆS);«, l3=0x38}
0x10db…10fd Line {l1=0x20, l2=»          IF CURRBUC<TOMBUC THEN«, l3=0x20}
0x10fd…110e Line {l1=0x0f, l2=»          BEGIN«, l3=0x0f}
0x110e…114b Line {l1=0x3b, l2=»            (*UDSKRIV BLOKTABEL FORSKUDT ET ENTRY TILBAGE*)«, l3=0x3b}
0x114b…117f Line {l1=0x32, l2=»            COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV);«, l3=0x32}
0x117f…11c8 Line {l1=0x47, l2=»            (*KORRIGER NUM MED DEN INDSKUDTE BLOK - DEN UDSKUDTE BLOK*)«, l3=0x47}
0x11c8…1203 Line {l1=0x39, l2=»            Z(IBLTADR+1):=Z(IBLTADR+1)+Z(2)-Z(2+BLTSIZE);«, l3=0x39}
0x1203…1238 Line {l1=0x33, l2=»            (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY*)«, l3=0x33}
0x1238…127a Line {l1=0x40, l2=»            COPYKEY(IBLTADR+2,(BLKPRBUC-1)*ENTRYSIZE+3,KEYSIZE);«, l3=0x40}
0x127a…12a6 Line {l1=0x2a, l2=»            COPYKEY(1,BLTSIZE+1,ENTRYSIZE)«, l3=0x2a}
0x12a6…12b5 Line {l1=0x0d, l2=»          END«, l3=0x0d}
0x12b5…12d4 Line {l1=0x1d, l2=»        UNTIL CURRBUC=TOMBUC;«, l3=0x1d}
0x12d4…1303 Line {l1=0x2d, l2=»        (*BUCKET MED TOM BLOK ER NU INDLÆST*)«, l3=0x2d}
0x1303…134b Line {l1=0x46, l2=»        FORSKYD(BLKPRBUC+1,TOMBLK+1,1);(*FJERN DEN FUNDNE TOMME BLOK*)«, l3=0x46}
0x134b…137a Line {l1=0x2d, l2=»        IF (Z(IBLTADR+1)=0) AND (Z(2)>0) THEN«, l3=0x2d}
0x137a…13b8 Line {l1=0x3c, l2=»        BEGIN                   (*FORSKYD IND I TOM BUCKET*)«, l3=0x3c}
0x13b8…13d9 Line {l1=0x1f, l2=»          BUCINUSE:=BUCINUSE+1;«, l3=0x1f}
0x13d9…140d Line {l1=0x32, l2=»          (*SÆT BUCKETS NUM,KEY=NY BLOKS NUM,KEY*)«, l3=0x32}
0x140d…1438 Line {l1=0x29, l2=»          COPYKEY(IBLTADR+1,2,KEYSIZE+1) «, l3=0x29}
0x1438…1445 Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x1445…148e Line {l1=0x47, l2=»        ELSE                    (*OPTÆL BUCKETS NUM MED INDSKUDT BLOK*)«, l3=0x47}
0x148e…14ba Line {l1=0x2a, l2=»          Z(IBLTADR+1):=Z(IBLTADR+1)+Z(2);«, l3=0x2a}
0x14ba…14e9 Line {l1=0x2d, l2=»        COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV)«, l3=0x2d}
0x14e9…14f4 Line {l1=0x09, l2=»      END«, l3=0x09}
0x14f4…1500 Line {l1=0x0a, l2=»      ELSE«, l3=0x0a}
0x1500…150d Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x150d…152b Line {l1=0x1c, l2=»        (*TOMBUC<BUCINZONE*)«, l3=0x1c}
0x152b…1548 Line {l1=0x1b, l2=»        IF BLKINZONE=1 THEN«, l3=0x1b}
0x1548…1557 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x1557…158d Line {l1=0x34, l2=»          (*INDSÆT TOM BLOK SIDST I FORRIGE BUCKET*)«, l3=0x34}
0x158d…15ae Line {l1=0x1f, l2=»          Z(BLTSIZE+1):=TOMADR;«, l3=0x1f}
0x15ae…15c9 Line {l1=0x19, l2=»          Z(BLTSIZE+2):=0«, l3=0x19}
0x15c9…15d6 Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x15d6…15e4 Line {l1=0x0c, l2=»        ELSE«, l3=0x0c}
0x15e4…15f3 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x15f3…162e Line {l1=0x39, l2=»          (*FLYT FØRSTE BLOK TIL SIDST I FORRIGE BUCKET*)«, l3=0x39}
0x162e…1666 Line {l1=0x36, l2=»          COPYKEY(1+BLKPRBUC*ENTRYSIZE,BLT,ENTRYSIZE);«, l3=0x36}
0x1666…1690 Line {l1=0x28, l2=»          (*ÅBEN ET HUL I BLOKTABELLEN*)«, l3=0x28}
0x1690…16b7 Line {l1=0x25, l2=»          FORSKYD(BLKINZONE-1,1,BLT);«, l3=0x25}
0x16b7…16e2 Line {l1=0x29, l2=»          (*INDSÆT TOM BLOK I DETTE HUL*)«, l3=0x29}
0x16e2…1715 Line {l1=0x31, l2=»          Z(BLT+(BLKINZONE-2)*ENTRYSIZE):=TOMADR;«, l3=0x31}
0x1715…1745 Line {l1=0x2e, l2=»          Z(BLT+(BLKINZONE-2)*ENTRYSIZE+1):=0;«, l3=0x2e}
0x1745…1786 Line {l1=0x3f, l2=»          (*TÆL BUCKETS NUM NED MED NUM FRA DEN FJERNEDE BLOK*)«, l3=0x3f}
0x1786…17b4 Line {l1=0x2c, l2=»          Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1):=«, l3=0x2c}
0x17b4…17f6 Line {l1=0x40, l2=»               Z(BUT+(BUCINZONE-1)*ENTRYSIZE+1)-Z(BLTSIZE+2)    «, l3=0x40}
0x17f6…1804 Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x1804…1821 Line {l1=0x1b, l2=»        CURRBUC:=BUCINZONE;«, l3=0x1b}
0x1821…1831 Line {l1=0x0e, l2=»        REPEAT«, l3=0x0e}
0x1831…1850 Line {l1=0x1d, l2=»          CURRBUC:=CURRBUC-1;«, l3=0x1d}
0x1850…187f Line {l1=0x2d, l2=»          (*INDLÆS NÆSTE BLOKTABEL ET ENTRY*)«, l3=0x2d}
0x187f…18af Line {l1=0x2e, l2=»          COPSEGS(F,Z(IBLTADR),BLTSIZE,1,LÆS);«, l3=0x2e}
0x18af…18d1 Line {l1=0x20, l2=»          IF CURRBUC>TOMBUC THEN«, l3=0x20}
0x18d1…18e2 Line {l1=0x0f, l2=»          BEGIN«, l3=0x0f}
0x18e2…191e Line {l1=0x3a, l2=»            (*UDSKRIV BLOKTABEL FORSKUDT ET ENTRY FREMAD*)«, l3=0x3a}
0x191e…195c Line {l1=0x3c, l2=»            COPSEGS(F,Z(IBLTADR),BLTSIZE,1+ENTRYSIZE,SKRIV);«, l3=0x3c}
0x195c…19a5 Line {l1=0x47, l2=»            (*KORRIGER NUM MED DEN INDSKUDTE BLOK - DEN UDSKUDTE BLOK*)«, l3=0x47}
0x19a5…19e0 Line {l1=0x39, l2=»            Z(IBLTADR+1):=Z(IBLTADR+1)-Z(2)+Z(2+BLTSIZE);«, l3=0x39}
0x19e0…1a2e Line {l1=0x4c, l2=»            (*SÆT BUCKETS KEY=NY SIDSTE BLOKS KEY, HVIS DER ER NOGET I DEN*)«, l3=0x4c}
0x1a2e…1a52 Line {l1=0x22, l2=»            IF Z(2+BLTSIZE)>0 THEN«, l3=0x22}
0x1a52…1a87 Line {l1=0x33, l2=»              COPYKEY(IBLTADR+2,BLTSIZE+3,KEYSIZE);«, l3=0x33}
0x1a87…1ab3 Line {l1=0x2a, l2=»            COPYKEY(BLTSIZE+1,1,ENTRYSIZE)«, l3=0x2a}
0x1ab3…1ac2 Line {l1=0x0d, l2=»          END«, l3=0x0d}
0x1ac2…1ae1 Line {l1=0x1d, l2=»        UNTIL CURRBUC=TOMBUC;«, l3=0x1d}
0x1ae1…1b10 Line {l1=0x2d, l2=»        (*BUCKET MED TOM BLOK ER NU INDLÆST*)«, l3=0x2d}
0x1b10…1b56 Line {l1=0x44, l2=»        FORSKYD(BLKPRBUC+1,TOMBLK,1);(*FJERN DEN FUNDNE TOMME BLOK*)«, l3=0x44}
0x1b56…1b86 Line {l1=0x2e, l2=»        IF Z((BLKPRBUC-1)*ENTRYSIZE+2)>0 THEN «, l3=0x2e}
0x1b86…1b95 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x1b95…1bcd Line {l1=0x36, l2=»          IF Z(IBLTADR+1)=0 THEN BUCINUSE:=BUCINUSE+1;«, l3=0x36}
0x1bcd…1bf9 Line {l1=0x2a, l2=»          (*SÆT BUCKETS KEY=NY BLOKS KEY*)«, l3=0x2a}
0x1bf9…1c39 Line {l1=0x3e, l2=»          COPYKEY(IBLTADR+2,(BLKPRBUC-1)*ENTRYSIZE+3,KEYSIZE);«, l3=0x3e}
0x1c39…1c6c Line {l1=0x31, l2=»          (*OPTÆL BUCKETS NUM MED INDSKUDT BLOK*)«, l3=0x31}
0x1c6c…1caf Line {l1=0x41, l2=»          Z(IBLTADR+1):=Z(IBLTADR+1)+Z((BLKPRBUC-1)*ENTRYSIZE+2) «, l3=0x41}
0x1caf…1cbd Line {l1=0x0c, l2=»        END;«, l3=0x0c}
0x1cbd…1cec Line {l1=0x2d, l2=»        COPSEGS(F,Z(IBLTADR),BLTSIZE,1,SKRIV)«, l3=0x2d}
0x1cec…1cf7 Line {l1=0x09, l2=»      END«, l3=0x09}
0x1cf7…1d00 Line {l1=0x07, l2=»    END«, l3=0x07}
0x1d00…1d07 Line {l1=0x05, l2=»  END«, l3=0x05}
0x1d07…1d0d Line {l1=0x04, l2=»END;«, l3=0x04}
0x1d0d…1d15 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x1d15…1d27 Line {l1=0x10, l2=»BEGIN (*INSERT*)«, l3=0x10}
0x1d27…1d45 Line {l1=0x1c, l2=»  WITH FILEHEAD(CURRHEAD) DO«, l3=0x1c}
0x1d45…1d59 Line {l1=0x12, l2=»  IF FILEOPEN THEN«, l3=0x12}
0x1d59…1d71 Line {l1=0x16, l2=»  IF NOT FILEINIT THEN«, l3=0x16}
0x1d71…1d7a Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x1d7a…1d87 Line {l1=0x0b, l2=»    IER:=0;«, l3=0x0b}
0x1d87…1dc0 Line {l1=0x37, l2=»    IF INITREC=0 THEN BEGIN IER:=-10; EXIT(INSERT) END;«, l3=0x37}
0x1dc0…1dd8 Line {l1=0x16, l2=»    IF RECINUSE>0 THEN«, l3=0x16}
0x1dd8…1de3 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x1de3…1e12 Line {l1=0x2d, l2=»      EXTRACT(BLK+(BLKENTRY-1)*RECSIZE,KEY1);«, l3=0x2d}
0x1e12…1e29 Line {l1=0x15, l2=»      REXTRACT(KEY2);«, l3=0x15}
0x1e29…1e49 Line {l1=0x1e, l2=»      IF COMPARE(KEY1,KEY2)>=0«, l3=0x1e}
0x1e49…1e75 Line {l1=0x2a, l2=»      THEN BEGIN IER:=-11;EXIT(INSERT) END«, l3=0x2a}
0x1e75…1e7f Line {l1=0x08, l2=»    END;«, l3=0x08}
0x1e7f…1eb0 Line {l1=0x2f, l2=»    K:=RECINUSE MOD IRPRBUC;                   «, l3=0x2f}
0x1eb0…1ee1 Line {l1=0x2f, l2=»    I:=RECINUSE DIV IRPRBUC+1;                 «, l3=0x2f}
0x1ee1…1f0f Line {l1=0x2c, l2=»    READTABLE(F,I);                         «, l3=0x2c}
0x1f0f…1f40 Line {l1=0x2f, l2=»    I:=K DIV IRPRBLK+1;                        «, l3=0x2f}
0x1f40…1f6e Line {l1=0x2c, l2=»    READBLOCK(F,I,1);                       «, l3=0x2c}
0x1f6e…1f9f Line {l1=0x2f, l2=»    BLKENTRY:= K MOD IRPRBLK+1;                «, l3=0x2f}
0x1f9f…1fce Line {l1=0x2d, l2=»    K:=BLK+(BLKENTRY-1)*RECSIZE;             «, l3=0x2d}
0x1fce…1ff5 Line {l1=0x25, l2=»    MOVELEFT(REC^(1),Z(K),2*RECSIZE);«, l3=0x25}
0x1ff5…2029 Line {l1=0x32, l2=»(*  FOR I:=1 TO RECSIZE DO Z(K+I):=REC^(I);     *)«, l3=0x32}
0x2029…2057 Line {l1=0x2c, l2=»    SÆTKEY(BLKENTRY);                       «, l3=0x2c}
0x2057…2084 Line {l1=0x2b, l2=»    ØGNUM;                                 «, l3=0x2b}
0x2084…20b5 Line {l1=0x2f, l2=»    BLKCHG:=TRUE;                              «, l3=0x2f}
0x20b5…20e6 Line {l1=0x2f, l2=»    IF RECINUSE=INITREC THEN FILEINIT:=TRUE    «, l3=0x2f}
0x20e6…2124 Line {l1=0x3c, l2=»  END                                                       «, l3=0x3c}
0x2124…2162 Line {l1=0x3c, l2=»  ELSE                                                      «, l3=0x3c}
0x2162…21a0 Line {l1=0x3c, l2=»  IF RECINUSE<NREC THEN                                     «, l3=0x3c}
0x21a0…21de Line {l1=0x3c, l2=»  BEGIN                                                     «, l3=0x3c}
0x21de…2219 Line {l1=0x39, l2=»    FINDPOST(F);                                         «, l3=0x39}
0x2219…2257 Line {l1=0x3c, l2=»    IF IER=-1 THEN                                          «, l3=0x3c}
0x2257…2295 Line {l1=0x3c, l2=»    BEGIN                                                   «, l3=0x3c}
0x2295…22cf Line {l1=0x38, l2=»      IF (Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)=RECPRBLK) AND«, l3=0x38}
0x22cf…231e Line {l1=0x4d, l2=»        ((Z(BLT+BLKINZONE*ENTRYSIZE+1)=RECPRBLK) OR (BLKINZONE=BLKPRBUC)) AND«, l3=0x4d}
0x231e…236b Line {l1=0x4b, l2=»        ((Z(BLT+(BLKINZONE-2)*ENTRYSIZE+1)=RECPRBLK) OR (BLKINZONE=1)) THEN«, l3=0x4b}
0x236b…237f Line {l1=0x12, l2=»        SKAFENTOM;«, l3=0x12}
0x237f…23bd Line {l1=0x3c, l2=»      IER:=0;                                               «, l3=0x3c}
0x23bd…23fb Line {l1=0x3c, l2=»      IF BLKENTRY<=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1) THEN    «, l3=0x3c}
0x23fb…2436 Line {l1=0x39, l2=»        FSKDIBLK(BLKENTRY);                              «, l3=0x39}
0x2436…2472 Line {l1=0x3a, l2=»      K:=BLK+(BLKENTRY-1)*RECSIZE;                        «, l3=0x3a}
0x2472…249b Line {l1=0x27, l2=»      MOVELEFT(REC^(1),Z(K),2*RECSIZE);«, l3=0x27}
0x249b…24d9 Line {l1=0x3c, l2=»(*    FOR I:=1 TO RECSIZE DO Z(K+I):=REC^(I);*)             «, l3=0x3c}
0x24d9…2517 Line {l1=0x3c, l2=»      BLKCHG:=TRUE;                                         «, l3=0x3c}
0x2517…2555 Line {l1=0x3c, l2=»      IF Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)=RECPRBLK THEN     «, l3=0x3c}
0x2555…2590 Line {l1=0x39, l2=»        FSKDUBLK(F)                                      «, l3=0x39}
0x2590…25ca Line {l1=0x38, l2=»      ELSE                                              «, l3=0x38}
0x25ca…2619 Line {l1=0x4d, l2=»      IF BLKENTRY=Z(BLT+(BLKINZONE-1)*ENTRYSIZE+1)+1 THEN SÆTKEY(BLKENTRY);  «, l3=0x4d}
0x2619…2653 Line {l1=0x38, l2=»      ØGNUM                                             «, l3=0x38}
0x2653…265c Line {l1=0x07, l2=»    END«, l3=0x07}
0x265c…267c Line {l1=0x1e, l2=»    ELSE IF IER=0 THEN IER:=-7«, l3=0x1e}
0x267c…2683 Line {l1=0x05, l2=»  END«, l3=0x05}
0x2683…26a0 Line {l1=0x1b, l2=»  ELSE IER:=-8 ELSE IER:=-3«, l3=0x1b}
0x26a0…26a6 Line {l1=0x04, l2=»END;«, l3=0x04}
0x26a6…26c0 00 00 20 20 20 4f 4b 3a 3d 54 52 55 45 3b 0f 25 20 20 20 20 20 20 57 48 49 4c                     ┆     OK:=TRUE; %      WHIL┆
0x26c0…26e0 45 20 4c 45 4e 47 54 48 28 4c 49 4e 45 29 3c 46 5e 2e 4c 5b 4e 47 44 45 20 44 4f 25 1c 20 20 20   ┆E LENGTH(LINE)<F^.LÆNGDE DO%    ┆
0x26e0…2700 20 20 20 20 20 49 46 20 46 5e 2e 46 4f 52 41 4e 30 3e 3d 30 20 54 48 45 4e 1c 20 20 20 20 20 63   ┆     IF F^.FORAN0>=0 THEN      c┆

Reduced view