(*$P*)*PROCEDURE OUTHEAD(VAR F:ISF);             *VAR     I:INTEGER;BEGIN  WITH FILEHEAD(CURRHEAD) DO  BEGIN3    F^(1):=NBUC;                                   33    F^(2):=NBLK;                                   33    F^(3):=NREC;                                   33    F^(4):=BLKPRBUC;                               33    F^(5):=RECPRBUC;                               33    F^(6):=RECPRBLK;                               33    F^(7):=KEYFLDS;                                32    F^(8):=AZSIZE;                                23    F^(9):=BUTSIZE;                                33    F^(10):=BLTSIZE;                               33    F^(11):=BLKSIZE;                               33    F^(12):=RECSIZE;                               33    F^(13):=KEYSIZE;                               33    F^(14):=SEGINFLH;                              33    F^(15):=SEGINBUT;                              33    F^(16):=SEGINBUC;                              33    F^(17):=SEGINBLT;                              33    F^(18):=SEGINBLK;                              33    F^(19):=INITREC;                               33    F^(20):=BUCINUSE;                              33    F^(21):=BLKINUSE;                              33    F^(22):=RECINUSE;                              33    IF FILEINIT THEN F^(23):=1 ELSE F^(23):=0;     31    IF FILEOPEN THEN F^(24):=1 ELSE F^(24):=0;   11    FOR I:=1 TO 9 DO                             11    BEGIN                                        11      F^(22+I*3):=KEYPOS(I);                     11      F^(23+I*3):=KEYLNG(I);                     11      F^(24+I*3):=KEYSGN(I)                      11    END;                                         11    SEEK(F,1);                                   1    IOC;1    PUT(F);                                      1    IOC1  END                                            1END;(*$P*)(PROCEDURE IOPEN(VAR F:ISF);             (+       (*F ER ]BNET F\R KALD; MED REWRITE*)+!VAR I,J,NUM,BUC,K,BLKNUM:INTEGER;!BEGIN  WITH FILEHEAD(CURRHEAD) DO  BEGIN    SEEK(F,1);    IOC;    GET(F);    IOC;    NBUC       := F^(1);    NBLK       := F^(2);    NREC       := F^(3);    BLKPRBUC   := F^(4);    RECPRBUC   := F^(5);    RECPRBLK   := F^(6);    KEYFLDS    := F^(7);    BUTSIZE    := F^(9);    BLTSIZE    := F^(10);    BLKSIZE    := F^(11);    RECSIZE    := F^(12);    KEYSIZE    := F^(13);    SEGINFLH   := F^(14);    SEGINBUT   := F^(15);    SEGINBUC   := F^(16);    SEGINBLT   := F^(17);    SEGINBLK   := F^(18);    INITREC    := F^(19);    BUCINUSE   := F^(20);    BLKINUSE   := F^(21);    RECINUSE   := F^(22);    FILEINIT   := F^(23)=1;    FILEOPEN   := F^(24)=1;    FOR I:=1 TO 9 DO	    BEGIN	       KEYPOS(I):= F^(22+I*3);       KEYLNG(I):= F^(23+I*3);       KEYSGN(I):= F^(24+I*3)    END;    BUTCHG:=FALSE;    BLTCHG:=FALSE;    BLKCHG:=FALSE;    BUCINZONE:=0;    BLKINZONE:=0;    BLKENTRY:=0;(    BUT:=CURRZONE;                      (.    AZSIZE:=Z(BUT+1);(*ANVENDT ZONEST\RRELSE*).    BLT:=BUT+BUTSIZE;    BLK:=BLT+BLTSIZE;    KEY1:=BLK+BLKSIZE+RECSIZE;    KEY2:=BLK+BLKSIZE;    ENTRYSIZE:=KEYSIZE+2;I    IF Z(BUT)<>BUTSIZE+BLTSIZE+BLKSIZE+RECSIZE+KEYSIZE  (*ZONEST\RRELSE*)I    THEN	    BEGIN	      IER:=-4;      EXIT(IOPEN)      (*FILEN ER IKKE ISF*)    END;>    IF RECSIZE>MAXRECSIZE THEN BEGIN IER:=-17;EXIT(IOPEN) END;>;    IF BLTSIZE>HELPBLT THEN BEGIN IER:=-35;EXIT(IOPEN) END;;2    IF FILEINIT THEN COPSEGS(F,2,BUTSIZE,BUT,L[S);2    IF FILEOPEN THEN	    BEGIN	1      IF NOT FILEINIT THEN                       11      BEGIN                                      11        IER:=-19;                                11        INITREC:=0;                              11        BUCINUSE:=0;                             11        BLKINUSE:=0;                             11        RECINUSE:=0                              11      END                                        11      ELSE                                       11      BEGIN                                      11        BUCINUSE:=0;                             11        BLKINUSE:=0;                             11        RECINUSE:=0;                             11        FOR I:=1 TO NBUC DO                      11        BEGIN                                    11          BUC:=BUT+(I-1)*ENTRYSIZE+1;            1/          COPSEGS(F,Z(BUC-1),BLTSIZE,BLT,L[S); /1          NUM:=0;                                11          FOR J:=1 TO BLKPRBUC DO                11          BEGIN                                  1+            BLKNUM:=BLT+1+(J-1)*ENTRYSIZE; ++            IF Z(BLKNUM)>0 THEN            ++            BEGIN                          ++              NUM:=NUM+Z(BLKNUM);          ++              BLKINUSE:=BLKINUSE+1;        ++              K:=BLKNUM                    ++            END                            ++          END;                             ++          IF NUM>0 THEN                    ++          BEGIN                            ++            RECINUSE:=RECINUSE+NUM;        ++            BUCINUSE:=BUCINUSE+1;          +;            FOR J:=1 TO KEYSIZE DO Z(BUC+J):=Z(K+J)        ;+          END;                             ++          BUTCHG:=TRUE;                    ++          Z(BUC):=NUM                      ++        END;   (*FOR I*)                   +/        IER:=-18;                              /+        BUCINZONE:=NBUC                    ++      END                                  ++    END;  (*FILEOPEN*)                     +    FILEOPEN:=TRUE;    I:=IER;    OUTHEAD(F);1    IER:=I                                       1  ENDEND  (*IOPEN*);  :=NBUC                    ++      END                                  ++    END;  (*FILEOPEN*)                     +    FILEOPEN:=TRUE;    I:=IER;    OUTHEAD(F);    IF IER<>0 THEN EXIT(IOPEN);1    IER:=I                                       1  ENDEND  (*IOPEN*);  ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc