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

⟦3addc6b26⟧ TextFile

    Length: 10112 (0x2780)
    Types: TextFile
    Notes: Mikados_K
    Names: »OBE1.K«

Derivation

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

Mikados K File

(*$P*)
PROCEDURE OBEY;
VAR I:INTEGER;
 
PROCEDURE PEXTRACT(RESPOS:INTEGER);
(*UDTRÆK NØGLE AF POST , OG GEM I KEYS*)
VAR I:INTEGER;
    J,KP :POSTADR;
BEGIN
  WITH FILEHEAD DO
  FOR I:=1 TO KEYFLDS DO            
  BEGIN                             
    KP:=KEYPOS(I)-1;                
    FOR J:=1 TO KEYLNG(I) DO        
    BEGIN                           
      KEYS(RESPOS):=REC^(KP+J);        
      RESPOS:=RESPOS+1              
    END                             
  END                               
END;
(*$P*)
PROCEDURE OUVRIR;
BEGIN 
  WITH USER(CURRUSER) DO
  IF STATUS(CURRFILE)=LUKKET THEN
  BEGIN
    CASE BESKED.IREC OF
    2:STATUS(CURRFILE):=LÆS;
    3:
    BEGIN
      STATUS(CURRFILE):=SKRIV;
      FOR I:=1 TO MAXUSERS DO
      IF USER(I).STATUS(CURRFILE)=XXCLUSIV THEN
      BEGIN
        IER:=-26;
        I:=MAXUSERS
      END 
    END;
    5:
    BEGIN
      STATUS(CURRFILE):=XXCLUSIV;
      FOR I:=1 TO MAXUSERS DO
      IF USER(I).STATUS(CURRFILE) IN (.SKRIV..XXCLUSIV.) THEN
      BEGIN
        IER:=-27;
        I:=MAXUSERS
      END 
    END 
    OTHERWISE IER:=-28;
    IF IER<>0 THEN BEGIN STATUS(CURRFILE):=LUKKET;EXIT(OBEY) END;
    IF NOT FILEHEAD.FILEOPEN THEN IER:=-3;
    IF IER<>0 THEN EXIT(OBEY);
    IF NOT FILEHEAD.FILEINIT THEN IER:=-12;
  END ELSE IER:=-25
END;
(*$P*)
PROCEDURE REED;
VAR K,KI,I,J:INTEGER;
BEGIN
  WITH USER(CURRUSER) DO WITH FILEHEAD DO
  BEGIN
    K:=KEYSTART;
    PEXTRACT(K);
    IF CURRFUNC=LÆSPOSTX THEN
    BEGIN
      FOR I:=1 TO MAXUSERS DO
      IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN
      BEGIN
        KI:=(I-1)*KEYSIZE;
        FOR J:=1 TO KEYSIZE DO
        IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;
        IF J<10000 THEN
        BEGIN
          STATUS(CURRFILE):=SKRIV;
          IER:=-31;
          EXIT(OBEY)
        END
      END
    END;
    GETREC;  
    IF CURRFUNC=LÆSPOSTX THEN
    BEGIN
      IF STATUS(CURRFILE)=SKRIV THEN STATUS(CURRFILE):=XCLUSIV
    END
    ELSE
      IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV
  END   
END;
(*$P*)
PROCEDURE NÆKST;
VAR K,KI,I,J:INTEGER;
BEGIN
  WITH USER(CURRUSER) DO WITH FILEHEAD DO
  BEGIN
    K:=KEYSTART;
    NEXTREC;
    PEXTRACT(K);
    IF CURRFUNC=NÆSTEX THEN
    BEGIN
      FOR I:=1 TO MAXUSERS DO
      IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN
      BEGIN
        KI:=(I-1)*KEYSIZE;
        FOR J:=1 TO KEYSIZE DO
        IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;
        IF J<10000 THEN
        BEGIN
          STATUS(CURRFILE):=SKRIV;
          IER:=-31;
          EXIT(OBEY)
        END
      END
    END;
    IF CURRFUNC=NÆSTEX THEN
    BEGIN
      IF STATUS(CURRFILE)=SKRIV THEN STATUS(CURRFILE):=XCLUSIV
    END
    ELSE
      IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV
  END   
END;
(*$P*)
PROCEDURE ERASAVE;  
VAR K,KI,I,J:INTEGER;
    HKEY:ARRAY (.1..MAXKEYSIZE.) OF INTEGER;
BEGIN
  WITH USER(CURRUSER) DO WITH FILEHEAD DO
  BEGIN
    K:=KEYSTART;
    IF STATUS(CURRFILE)=XCLUSIV THEN
    BEGIN
      (*
      FOR I:=1 TO FILEHEAD.KEYSIZE DO
          HKEY(I):=KEY(I-1+FILES(CURRHEAD).KEYSTART);
      *)
      MOVELEFT(KEYS(K),HKEY(1),2*KEYSIZE);
      PEXTRACT(K);
      FOR I:=1 TO KEYSIZE DO
          IF KEYS(I-1+K)<>HKEY(I) THEN I:=10000;
      IF I>10000 THEN 
      BEGIN
        STATUS(CURRFILE):=SKRIV;
        IER:=-33;
        EXIT(OBEY)
      END
    END;
    IF CURRFUNC=GEMPOST THEN
      PUTREC
    ELSE
    BEGIN
      DELETE;
      PEXTRACT(K);
      IF CURRFUNC=SLETX THEN                                               
      BEGIN                                                                 
        FOR I:=1 TO MAXUSERS DO                                             
        IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN  
        BEGIN                                                               
          KI:=(I-1)*KEYSIZE;
          FOR J:=1 TO KEYSIZE DO                         
          IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;
          IF J<10000 THEN                                                   
          BEGIN                                                             
            STATUS(CURRFILE):=SKRIV;                                  
            IER:=-31;                                                       
            EXIT(OBEY)                                                      
          END                                                               
        END                                                                 
      END                                                                   
    END;
    IF CURRFUNC IN (.SLET,GEMPOST.) THEN
       IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV
  END
END;
(*$P*)
BEGIN (*OBEY*)
  WITH USER(CURRUSER) DO       
  BEGIN
(*PAS PÅ DATASTRUKTUR NÅR OBEY MISLYKKES*)
    CASE PROGRAMNR OF
    -1:IF CURRFUNC IN
       (.ÅBEN..INITIER,UAFMELD..PAFMELD,RETURNHEAD,RETURNSTAT.) THEN IER:=-22;
     0:IF CURRFUNC IN                                                         
       (.ÅBEN..INITIER,PAFMELD,RETURNHEAD,RETURNSTAT.) THEN IER:=-24 
       ELSE IF CURRFUNC IN (.UTILMELD,STOPSYS.) THEN IER:=-21 
    OTHERWISE
       IF CURRFUNC IN (.UTILMELD..PTILMELD,STOPSYS.) THEN IER:=-23;
    IF IER<>0 THEN EXIT(OBEY);
 
    IF CURRFUNC IN (.LÆSPOST..INITIER,RETURNHEAD.) THEN
       IF STATUS(CURRFILE)=LUKKET THEN BEGIN IER:=-3;EXIT(OBEY) END;
     
    IF CURRFUNC IN (.LÆSPOSTX,NÆSTEX,INDSÆT,INITIER.) THEN
       IF STATUS(CURRFILE)=LÆS THEN BEGIN IER:=-30;EXIT(OBEY) END;
 
    IF CURRFUNC IN (.SLET,SLETX,GEMPOST.) THEN
       IF NOT (STATUS(CURRFILE) IN (.XCLUSIV,XXCLUSIV.)) THEN
       BEGIN
         IER:=-32;
         EXIT(OBEY)
       END;
 
    CASE CURRFUNC OF                                                          
    ÅBEN:OUVRIR;
    LUK :STATUS(CFILE):=LUKKET;(*IKKE NØDV.CURRFILE, ZONEN BRUGES IKKE*)
    LÆSPOST,LÆSPOSTX:REED;
    NÆSTE,NÆSTEX:NÆKST;
    SLET,SLETX,GEMPOST:ERASAVE;
 
    INDSÆT:BEGIN
             INSERT;
             PEXTRACT(KEYSTART);
             IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV
           END;
 
    INITIER:BEGIN
              IREC:=BESKED.IREC;
              INITIATE
            END;
 
    UTILMELD:                                                                 
    BEGIN                                                                     
      PROGRAMNR:=0;                                            
      IF NROFUSERS=MAXUSERS THEN
      BEGIN
        IER:=-34;
        EXIT(OBEY)
      END;
      NROFUSERS:=NROFUSERS+1                                                  
    END;
 
    UAFMELD:                                                                  
    BEGIN                                                                     
      PROGRAMNR:=-1;                                           
      NROFUSERS:=NROFUSERS-1;                                                 
      FOR CFILE:=1 TO NROFFILES DO STATUS(CFILE):=LUKKET
    END;
 
    PTILMELD:PROGRAMNR:=BESKED.INFO;
 
    PAFMELD:PROGRAMNR:=0;
 
    STOPSYS:BEGIN
              IF BESKED.INFO=1 THEN NROFUSERS:=0;
              IER:=NROFUSERS 
            END;
 
    RETURNHEAD:RETURNEZ;
     
    RETURNSTAT:
    BEGIN
      REC^(1):=USER(STATUSER).PROGRAMNR;
      FOR CFILE:=1 TO NROFFILES DO
        IF ZONEPOST(CFILE)=0 THEN REC^(CFILE+1):=ORD(LUKKET)
        ELSE 
        REC^(CFILE+1):=ORD(USER(STATUSER).STATUS(CFILE))
    END 
 
    END (*CASE CURRFUNC*)
  END   
END; (*OBEY*)

Mikados K File

0x0000…0008 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0008…0019 Line {l1=0x0f, l2=»PROCEDURE OBEY;«, l3=0x0f}
0x0019…0029 Line {l1=0x0e, l2=»VAR I:INTEGER;«, l3=0x0e}
0x0029…002c Line {l1=0x01, l2=» «, l3=0x01}
0x002c…0051 Line {l1=0x23, l2=»PROCEDURE PEXTRACT(RESPOS:INTEGER);«, l3=0x23}
0x0051…007b Line {l1=0x28, l2=»(*UDTRÆK NØGLE AF POST , OG GEM I KEYS*)«, l3=0x28}
0x007b…008b Line {l1=0x0e, l2=»VAR I:INTEGER;«, l3=0x0e}
0x008b…009f Line {l1=0x12, l2=»    J,KP :POSTADR;«, l3=0x12}
0x009f…00a6 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x00a6…00ba Line {l1=0x12, l2=»  WITH FILEHEAD DO«, l3=0x12}
0x00ba…00e0 Line {l1=0x24, l2=»  FOR I:=1 TO KEYFLDS DO            «, l3=0x24}
0x00e0…0106 Line {l1=0x24, l2=»  BEGIN                             «, l3=0x24}
0x0106…012c Line {l1=0x24, l2=»    KP:=KEYPOS(I)-1;                «, l3=0x24}
0x012c…0152 Line {l1=0x24, l2=»    FOR J:=1 TO KEYLNG(I) DO        «, l3=0x24}
0x0152…0178 Line {l1=0x24, l2=»    BEGIN                           «, l3=0x24}
0x0178…01a1 Line {l1=0x27, l2=»      KEYS(RESPOS):=REC^(KP+J);        «, l3=0x27}
0x01a1…01c7 Line {l1=0x24, l2=»      RESPOS:=RESPOS+1              «, l3=0x24}
0x01c7…01ed Line {l1=0x24, l2=»    END                             «, l3=0x24}
0x01ed…0213 Line {l1=0x24, l2=»  END                               «, l3=0x24}
0x0213…0219 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0219…0221 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0221…0234 Line {l1=0x11, l2=»PROCEDURE OUVRIR;«, l3=0x11}
0x0234…023c Line {l1=0x06, l2=»BEGIN «, l3=0x06}
0x023c…0256 Line {l1=0x18, l2=»  WITH USER(CURRUSER) DO«, l3=0x18}
0x0256…0279 Line {l1=0x21, l2=»  IF STATUS(CURRFILE)=LUKKET THEN«, l3=0x21}
0x0279…0282 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0282…029b Line {l1=0x17, l2=»    CASE BESKED.IREC OF«, l3=0x17}
0x029b…02b9 Line {l1=0x1c, l2=»    2:STATUS(CURRFILE):=LÆS;«, l3=0x1c}
0x02b9…02c1 Line {l1=0x06, l2=»    3:«, l3=0x06}
0x02c1…02cc Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x02cc…02ec Line {l1=0x1e, l2=»      STATUS(CURRFILE):=SKRIV;«, l3=0x1e}
0x02ec…030b Line {l1=0x1d, l2=»      FOR I:=1 TO MAXUSERS DO«, l3=0x1d}
0x030b…033c Line {l1=0x2f, l2=»      IF USER(I).STATUS(CURRFILE)=XXCLUSIV THEN«, l3=0x2f}
0x033c…0349 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0349…035c Line {l1=0x11, l2=»        IER:=-26;«, l3=0x11}
0x035c…0371 Line {l1=0x13, l2=»        I:=MAXUSERS«, l3=0x13}
0x0371…037d Line {l1=0x0a, l2=»      END «, l3=0x0a}
0x037d…0387 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x0387…038f Line {l1=0x06, l2=»    5:«, l3=0x06}
0x038f…039a Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x039a…03bd Line {l1=0x21, l2=»      STATUS(CURRFILE):=XXCLUSIV;«, l3=0x21}
0x03bd…03dc Line {l1=0x1d, l2=»      FOR I:=1 TO MAXUSERS DO«, l3=0x1d}
0x03dc…041b Line {l1=0x3d, l2=»      IF USER(I).STATUS(CURRFILE) IN (.SKRIV..XXCLUSIV.) THEN«, l3=0x3d}
0x041b…0428 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0428…043b Line {l1=0x11, l2=»        IER:=-27;«, l3=0x11}
0x043b…0450 Line {l1=0x13, l2=»        I:=MAXUSERS«, l3=0x13}
0x0450…045c Line {l1=0x0a, l2=»      END «, l3=0x0a}
0x045c…0466 Line {l1=0x08, l2=»    END «, l3=0x08}
0x0466…047f Line {l1=0x17, l2=»    OTHERWISE IER:=-28;«, l3=0x17}
0x047f…04c2 Line {l1=0x41, l2=»    IF IER<>0 THEN BEGIN STATUS(CURRFILE):=LUKKET;EXIT(OBEY) END;«, l3=0x41}
0x04c2…04ee Line {l1=0x2a, l2=»    IF NOT FILEHEAD.FILEOPEN THEN IER:=-3;«, l3=0x2a}
0x04ee…050e Line {l1=0x1e, l2=»    IF IER<>0 THEN EXIT(OBEY);«, l3=0x1e}
0x050e…053b Line {l1=0x2b, l2=»    IF NOT FILEHEAD.FILEINIT THEN IER:=-12;«, l3=0x2b}
0x053b…0550 Line {l1=0x13, l2=»  END ELSE IER:=-25«, l3=0x13}
0x0550…0556 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0556…055e Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x055e…056f Line {l1=0x0f, l2=»PROCEDURE REED;«, l3=0x0f}
0x056f…0586 Line {l1=0x15, l2=»VAR K,KI,I,J:INTEGER;«, l3=0x15}
0x0586…058d Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x058d…05b8 Line {l1=0x29, l2=»  WITH USER(CURRUSER) DO WITH FILEHEAD DO«, l3=0x29}
0x05b8…05c1 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x05c1…05d3 Line {l1=0x10, l2=»    K:=KEYSTART;«, l3=0x10}
0x05d3…05e5 Line {l1=0x10, l2=»    PEXTRACT(K);«, l3=0x10}
0x05e5…0604 Line {l1=0x1d, l2=»    IF CURRFUNC=LÆSPOSTX THEN«, l3=0x1d}
0x0604…060f Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x060f…062e Line {l1=0x1d, l2=»      FOR I:=1 TO MAXUSERS DO«, l3=0x1d}
0x062e…0672 Line {l1=0x42, l2=»      IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN«, l3=0x42}
0x0672…067f Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x067f…069b Line {l1=0x1a, l2=»        KI:=(I-1)*KEYSIZE;«, l3=0x1a}
0x069b…06bb Line {l1=0x1e, l2=»        FOR J:=1 TO KEYSIZE DO«, l3=0x1e}
0x06bb…06ee Line {l1=0x31, l2=»        IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;«, l3=0x31}
0x06ee…0707 Line {l1=0x17, l2=»        IF J<10000 THEN«, l3=0x17}
0x0707…0716 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x0716…073a Line {l1=0x22, l2=»          STATUS(CURRFILE):=SKRIV;«, l3=0x22}
0x073a…074f Line {l1=0x13, l2=»          IER:=-31;«, l3=0x13}
0x074f…0765 Line {l1=0x14, l2=»          EXIT(OBEY)«, l3=0x14}
0x0765…0772 Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x0772…077d Line {l1=0x09, l2=»      END«, l3=0x09}
0x077d…0787 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x0787…0796 Line {l1=0x0d, l2=»    GETREC;  «, l3=0x0d}
0x0796…07b5 Line {l1=0x1d, l2=»    IF CURRFUNC=LÆSPOSTX THEN«, l3=0x1d}
0x07b5…07c0 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x07c0…0800 Line {l1=0x3e, l2=»      IF STATUS(CURRFILE)=SKRIV THEN STATUS(CURRFILE):=XCLUSIV«, l3=0x3e}
0x0800…0809 Line {l1=0x07, l2=»    END«, l3=0x07}
0x0809…0813 Line {l1=0x08, l2=»    ELSE«, l3=0x08}
0x0813…0853 Line {l1=0x3e, l2=»      IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV«, l3=0x3e}
0x0853…085d Line {l1=0x08, l2=»  END   «, l3=0x08}
0x085d…0863 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0863…086b Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x086b…087d Line {l1=0x10, l2=»PROCEDURE NÆKST;«, l3=0x10}
0x087d…0894 Line {l1=0x15, l2=»VAR K,KI,I,J:INTEGER;«, l3=0x15}
0x0894…089b Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x089b…08c6 Line {l1=0x29, l2=»  WITH USER(CURRUSER) DO WITH FILEHEAD DO«, l3=0x29}
0x08c6…08cf Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x08cf…08e1 Line {l1=0x10, l2=»    K:=KEYSTART;«, l3=0x10}
0x08e1…08ef Line {l1=0x0c, l2=»    NEXTREC;«, l3=0x0c}
0x08ef…0901 Line {l1=0x10, l2=»    PEXTRACT(K);«, l3=0x10}
0x0901…091e Line {l1=0x1b, l2=»    IF CURRFUNC=NÆSTEX THEN«, l3=0x1b}
0x091e…0929 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x0929…0948 Line {l1=0x1d, l2=»      FOR I:=1 TO MAXUSERS DO«, l3=0x1d}
0x0948…098c Line {l1=0x42, l2=»      IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN«, l3=0x42}
0x098c…0999 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0999…09b5 Line {l1=0x1a, l2=»        KI:=(I-1)*KEYSIZE;«, l3=0x1a}
0x09b5…09d5 Line {l1=0x1e, l2=»        FOR J:=1 TO KEYSIZE DO«, l3=0x1e}
0x09d5…0a08 Line {l1=0x31, l2=»        IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;«, l3=0x31}
0x0a08…0a21 Line {l1=0x17, l2=»        IF J<10000 THEN«, l3=0x17}
0x0a21…0a30 Line {l1=0x0d, l2=»        BEGIN«, l3=0x0d}
0x0a30…0a54 Line {l1=0x22, l2=»          STATUS(CURRFILE):=SKRIV;«, l3=0x22}
0x0a54…0a69 Line {l1=0x13, l2=»          IER:=-31;«, l3=0x13}
0x0a69…0a7f Line {l1=0x14, l2=»          EXIT(OBEY)«, l3=0x14}
0x0a7f…0a8c Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x0a8c…0a97 Line {l1=0x09, l2=»      END«, l3=0x09}
0x0a97…0aa1 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x0aa1…0abe Line {l1=0x1b, l2=»    IF CURRFUNC=NÆSTEX THEN«, l3=0x1b}
0x0abe…0ac9 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x0ac9…0b09 Line {l1=0x3e, l2=»      IF STATUS(CURRFILE)=SKRIV THEN STATUS(CURRFILE):=XCLUSIV«, l3=0x3e}
0x0b09…0b12 Line {l1=0x07, l2=»    END«, l3=0x07}
0x0b12…0b1c Line {l1=0x08, l2=»    ELSE«, l3=0x08}
0x0b1c…0b5c Line {l1=0x3e, l2=»      IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV«, l3=0x3e}
0x0b5c…0b66 Line {l1=0x08, l2=»  END   «, l3=0x08}
0x0b66…0b6c Line {l1=0x04, l2=»END;«, l3=0x04}
0x0b6c…0b74 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0b74…0b8a Line {l1=0x14, l2=»PROCEDURE ERASAVE;  «, l3=0x14}
0x0b8a…0ba1 Line {l1=0x15, l2=»VAR K,KI,I,J:INTEGER;«, l3=0x15}
0x0ba1…0bcf Line {l1=0x2c, l2=»    HKEY:ARRAY (.1..MAXKEYSIZE.) OF INTEGER;«, l3=0x2c}
0x0bcf…0bd6 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0bd6…0c01 Line {l1=0x29, l2=»  WITH USER(CURRUSER) DO WITH FILEHEAD DO«, l3=0x29}
0x0c01…0c0a Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x0c0a…0c1c Line {l1=0x10, l2=»    K:=KEYSTART;«, l3=0x10}
0x0c1c…0c42 Line {l1=0x24, l2=»    IF STATUS(CURRFILE)=XCLUSIV THEN«, l3=0x24}
0x0c42…0c4d Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x0c4d…0c57 Line {l1=0x08, l2=»      (*«, l3=0x08}
0x0c57…0c7e Line {l1=0x25, l2=»      FOR I:=1 TO FILEHEAD.KEYSIZE DO«, l3=0x25}
0x0c7e…0cb5 Line {l1=0x35, l2=»          HKEY(I):=KEY(I-1+FILES(CURRHEAD).KEYSTART);«, l3=0x35}
0x0cb5…0cbf Line {l1=0x08, l2=»      *)«, l3=0x08}
0x0cbf…0ceb Line {l1=0x2a, l2=»      MOVELEFT(KEYS(K),HKEY(1),2*KEYSIZE);«, l3=0x2a}
0x0ceb…0cff Line {l1=0x12, l2=»      PEXTRACT(K);«, l3=0x12}
0x0cff…0d1d Line {l1=0x1c, l2=»      FOR I:=1 TO KEYSIZE DO«, l3=0x1c}
0x0d1d…0d4f Line {l1=0x30, l2=»          IF KEYS(I-1+K)<>HKEY(I) THEN I:=10000;«, l3=0x30}
0x0d4f…0d67 Line {l1=0x16, l2=»      IF I>10000 THEN «, l3=0x16}
0x0d67…0d74 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x0d74…0d96 Line {l1=0x20, l2=»        STATUS(CURRFILE):=SKRIV;«, l3=0x20}
0x0d96…0da9 Line {l1=0x11, l2=»        IER:=-33;«, l3=0x11}
0x0da9…0dbd Line {l1=0x12, l2=»        EXIT(OBEY)«, l3=0x12}
0x0dbd…0dc8 Line {l1=0x09, l2=»      END«, l3=0x09}
0x0dc8…0dd2 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x0dd2…0df0 Line {l1=0x1c, l2=»    IF CURRFUNC=GEMPOST THEN«, l3=0x1c}
0x0df0…0dfe Line {l1=0x0c, l2=»      PUTREC«, l3=0x0c}
0x0dfe…0e08 Line {l1=0x08, l2=»    ELSE«, l3=0x08}
0x0e08…0e13 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x0e13…0e22 Line {l1=0x0d, l2=»      DELETE;«, l3=0x0d}
0x0e22…0e36 Line {l1=0x12, l2=»      PEXTRACT(K);«, l3=0x12}
0x0e36…0e83 Line {l1=0x4b, l2=»      IF CURRFUNC=SLETX THEN                                               «, l3=0x4b}
0x0e83…0ed1 Line {l1=0x4c, l2=»      BEGIN                                                                 «, l3=0x4c}
0x0ed1…0f1f Line {l1=0x4c, l2=»        FOR I:=1 TO MAXUSERS DO                                             «, l3=0x4c}
0x0f1f…0f67 Line {l1=0x46, l2=»        IF (USER(I).STATUS(CURRFILE)=XCLUSIV) AND (I<>CURRUSER) THEN  «, l3=0x46}
0x0f67…0fb5 Line {l1=0x4c, l2=»        BEGIN                                                               «, l3=0x4c}
0x0fb5…0fd3 Line {l1=0x1c, l2=»          KI:=(I-1)*KEYSIZE;«, l3=0x1c}
0x0fd3…100e Line {l1=0x39, l2=»          FOR J:=1 TO KEYSIZE DO                         «, l3=0x39}
0x100e…1043 Line {l1=0x33, l2=»          IF KEYS(J+KI)<>KEYS(J-1+K) THEN J:=10000;«, l3=0x33}
0x1043…1091 Line {l1=0x4c, l2=»          IF J<10000 THEN                                                   «, l3=0x4c}
0x1091…10df Line {l1=0x4c, l2=»          BEGIN                                                             «, l3=0x4c}
0x10df…1127 Line {l1=0x46, l2=»            STATUS(CURRFILE):=SKRIV;                                  «, l3=0x46}
0x1127…1175 Line {l1=0x4c, l2=»            IER:=-31;                                                       «, l3=0x4c}
0x1175…11c3 Line {l1=0x4c, l2=»            EXIT(OBEY)                                                      «, l3=0x4c}
0x11c3…1211 Line {l1=0x4c, l2=»          END                                                               «, l3=0x4c}
0x1211…125f Line {l1=0x4c, l2=»        END                                                                 «, l3=0x4c}
0x125f…12ad Line {l1=0x4c, l2=»      END                                                                   «, l3=0x4c}
0x12ad…12b7 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x12b7…12e1 Line {l1=0x28, l2=»    IF CURRFUNC IN (.SLET,GEMPOST.) THEN«, l3=0x28}
0x12e1…1322 Line {l1=0x3f, l2=»       IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV«, l3=0x3f}
0x1322…1329 Line {l1=0x05, l2=»  END«, l3=0x05}
0x1329…132f Line {l1=0x04, l2=»END;«, l3=0x04}
0x132f…1337 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x1337…1347 Line {l1=0x0e, l2=»BEGIN (*OBEY*)«, l3=0x0e}
0x1347…1368 Line {l1=0x1f, l2=»  WITH USER(CURRUSER) DO       «, l3=0x1f}
0x1368…1371 Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x1371…139d Line {l1=0x2a, l2=»(*PAS PÅ DATASTRUKTUR NÅR OBEY MISLYKKES*)«, l3=0x2a}
0x139d…13b4 Line {l1=0x15, l2=»    CASE PROGRAMNR OF«, l3=0x15}
0x13b4…13cb Line {l1=0x15, l2=»    -1:IF CURRFUNC IN«, l3=0x15}
0x13cb…141b Line {l1=0x4e, l2=»       (.ÅBEN..INITIER,UAFMELD..PAFMELD,RETURNHEAD,RETURNSTAT.) THEN IER:=-22;«, l3=0x4e}
0x141b…146b Line {l1=0x4e, l2=»     0:IF CURRFUNC IN                                                         «, l3=0x4e}
0x146b…14b2 Line {l1=0x45, l2=»       (.ÅBEN..INITIER,PAFMELD,RETURNHEAD,RETURNSTAT.) THEN IER:=-24 «, l3=0x45}
0x14b2…14f2 Line {l1=0x3e, l2=»       ELSE IF CURRFUNC IN (.UTILMELD,STOPSYS.) THEN IER:=-21 «, l3=0x3e}
0x14f2…1501 Line {l1=0x0d, l2=»    OTHERWISE«, l3=0x0d}
0x1501…1546 Line {l1=0x43, l2=»       IF CURRFUNC IN (.UTILMELD..PTILMELD,STOPSYS.) THEN IER:=-23;«, l3=0x43}
0x1546…1566 Line {l1=0x1e, l2=»    IF IER<>0 THEN EXIT(OBEY);«, l3=0x1e}
0x1566…1569 Line {l1=0x01, l2=» «, l3=0x01}
0x1569…15a2 Line {l1=0x37, l2=»    IF CURRFUNC IN (.LÆSPOST..INITIER,RETURNHEAD.) THEN«, l3=0x37}
0x15a2…15e8 Line {l1=0x44, l2=»       IF STATUS(CURRFILE)=LUKKET THEN BEGIN IER:=-3;EXIT(OBEY) END;«, l3=0x44}
0x15e8…15ef Line {l1=0x05, l2=»     «, l3=0x05}
0x15ef…162b Line {l1=0x3a, l2=»    IF CURRFUNC IN (.LÆSPOSTX,NÆSTEX,INDSÆT,INITIER.) THEN«, l3=0x3a}
0x162b…166f Line {l1=0x42, l2=»       IF STATUS(CURRFILE)=LÆS THEN BEGIN IER:=-30;EXIT(OBEY) END;«, l3=0x42}
0x166f…1672 Line {l1=0x01, l2=» «, l3=0x01}
0x1672…16a2 Line {l1=0x2e, l2=»    IF CURRFUNC IN (.SLET,SLETX,GEMPOST.) THEN«, l3=0x2e}
0x16a2…16e1 Line {l1=0x3d, l2=»       IF NOT (STATUS(CURRFILE) IN (.XCLUSIV,XXCLUSIV.)) THEN«, l3=0x3d}
0x16e1…16ef Line {l1=0x0c, l2=»       BEGIN«, l3=0x0c}
0x16ef…1703 Line {l1=0x12, l2=»         IER:=-32;«, l3=0x12}
0x1703…1718 Line {l1=0x13, l2=»         EXIT(OBEY)«, l3=0x13}
0x1718…1725 Line {l1=0x0b, l2=»       END;«, l3=0x0b}
0x1725…1728 Line {l1=0x01, l2=» «, l3=0x01}
0x1728…1778 Line {l1=0x4e, l2=»    CASE CURRFUNC OF                                                          «, l3=0x4e}
0x1778…178a Line {l1=0x10, l2=»    ÅBEN:OUVRIR;«, l3=0x10}
0x178a…17d4 Line {l1=0x48, l2=»    LUK :STATUS(CFILE):=LUKKET;(*IKKE NØDV.CURRFILE, ZONEN BRUGES IKKE*)«, l3=0x48}
0x17d4…17f0 Line {l1=0x1a, l2=»    LÆSPOST,LÆSPOSTX:REED;«, l3=0x1a}
0x17f0…1809 Line {l1=0x17, l2=»    NÆSTE,NÆSTEX:NÆKST;«, l3=0x17}
0x1809…182a Line {l1=0x1f, l2=»    SLET,SLETX,GEMPOST:ERASAVE;«, l3=0x1f}
0x182a…182d Line {l1=0x01, l2=» «, l3=0x01}
0x182d…183f Line {l1=0x10, l2=»    INDSÆT:BEGIN«, l3=0x10}
0x183f…1855 Line {l1=0x14, l2=»             INSERT;«, l3=0x14}
0x1855…1877 Line {l1=0x20, l2=»             PEXTRACT(KEYSTART);«, l3=0x20}
0x1877…18be Line {l1=0x45, l2=»             IF STATUS(CURRFILE)=XCLUSIV THEN STATUS(CURRFILE):=SKRIV«, l3=0x45}
0x18be…18cf Line {l1=0x0f, l2=»           END;«, l3=0x0f}
0x18cf…18d2 Line {l1=0x01, l2=» «, l3=0x01}
0x18d2…18e5 Line {l1=0x11, l2=»    INITIER:BEGIN«, l3=0x11}
0x18e5…1907 Line {l1=0x20, l2=»              IREC:=BESKED.IREC;«, l3=0x20}
0x1907…191f Line {l1=0x16, l2=»              INITIATE«, l3=0x16}
0x191f…1931 Line {l1=0x10, l2=»            END;«, l3=0x10}
0x1931…1934 Line {l1=0x01, l2=» «, l3=0x01}
0x1934…1984 Line {l1=0x4e, l2=»    UTILMELD:                                                                 «, l3=0x4e}
0x1984…19d4 Line {l1=0x4e, l2=»    BEGIN                                                                     «, l3=0x4e}
0x19d4…1a15 Line {l1=0x3f, l2=»      PROGRAMNR:=0;                                            «, l3=0x3f}
0x1a15…1a37 Line {l1=0x20, l2=»      IF NROFUSERS=MAXUSERS THEN«, l3=0x20}
0x1a37…1a44 Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x1a44…1a57 Line {l1=0x11, l2=»        IER:=-34;«, l3=0x11}
0x1a57…1a6b Line {l1=0x12, l2=»        EXIT(OBEY)«, l3=0x12}
0x1a6b…1a77 Line {l1=0x0a, l2=»      END;«, l3=0x0a}
0x1a77…1ac7 Line {l1=0x4e, l2=»      NROFUSERS:=NROFUSERS+1                                                  «, l3=0x4e}
0x1ac7…1ad1 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x1ad1…1ad4 Line {l1=0x01, l2=» «, l3=0x01}
0x1ad4…1b24 Line {l1=0x4e, l2=»    UAFMELD:                                                                  «, l3=0x4e}
0x1b24…1b74 Line {l1=0x4e, l2=»    BEGIN                                                                     «, l3=0x4e}
0x1b74…1bb5 Line {l1=0x3f, l2=»      PROGRAMNR:=-1;                                           «, l3=0x3f}
0x1bb5…1c05 Line {l1=0x4e, l2=»      NROFUSERS:=NROFUSERS-1;                                                 «, l3=0x4e}
0x1c05…1c3f Line {l1=0x38, l2=»      FOR CFILE:=1 TO NROFFILES DO STATUS(CFILE):=LUKKET«, l3=0x38}
0x1c3f…1c49 Line {l1=0x08, l2=»    END;«, l3=0x08}
0x1c49…1c4c Line {l1=0x01, l2=» «, l3=0x01}
0x1c4c…1c72 Line {l1=0x24, l2=»    PTILMELD:PROGRAMNR:=BESKED.INFO;«, l3=0x24}
0x1c72…1c75 Line {l1=0x01, l2=» «, l3=0x01}
0x1c75…1c90 Line {l1=0x19, l2=»    PAFMELD:PROGRAMNR:=0;«, l3=0x19}
0x1c90…1c93 Line {l1=0x01, l2=» «, l3=0x01}
0x1c93…1ca6 Line {l1=0x11, l2=»    STOPSYS:BEGIN«, l3=0x11}
0x1ca6…1cd9 Line {l1=0x31, l2=»              IF BESKED.INFO=1 THEN NROFUSERS:=0;«, l3=0x31}
0x1cd9…1cf8 Line {l1=0x1d, l2=»              IER:=NROFUSERS «, l3=0x1d}
0x1cf8…1d0a Line {l1=0x10, l2=»            END;«, l3=0x10}
0x1d0a…1d0d Line {l1=0x01, l2=» «, l3=0x01}
0x1d0d…1d27 Line {l1=0x18, l2=»    RETURNHEAD:RETURNEZ;«, l3=0x18}
0x1d27…1d2e Line {l1=0x05, l2=»     «, l3=0x05}
0x1d2e…1d3f Line {l1=0x0f, l2=»    RETURNSTAT:«, l3=0x0f}
0x1d3f…1d4a Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x1d4a…1d74 Line {l1=0x28, l2=»      REC^(1):=USER(STATUSER).PROGRAMNR;«, l3=0x28}
0x1d74…1d98 Line {l1=0x22, l2=»      FOR CFILE:=1 TO NROFFILES DO«, l3=0x22}
0x1d98…1dd6 Line {l1=0x3c, l2=»        IF ZONEPOST(CFILE)=0 THEN REC^(CFILE+1):=ORD(LUKKET)«, l3=0x3c}
0x1dd6…1de5 Line {l1=0x0d, l2=»        ELSE «, l3=0x0d}
0x1de5…1e1f Line {l1=0x38, l2=»        REC^(CFILE+1):=ORD(USER(STATUSER).STATUS(CFILE))«, l3=0x38}
0x1e1f…1e29 Line {l1=0x08, l2=»    END «, l3=0x08}
0x1e29…1e2c Line {l1=0x01, l2=» «, l3=0x01}
0x1e2c…1e47 Line {l1=0x19, l2=»    END (*CASE CURRFUNC*)«, l3=0x19}
0x1e47…1e51 Line {l1=0x08, l2=»  END   «, l3=0x08}
0x1e51…1e60 Line {l1=0x0d, l2=»END; (*OBEY*)«, l3=0x0d}
0x1e60…1e80 00 00 45 4e 44 3b 20 28 2a 4f 42 45 59 2a 29 0d 00 00 59 46 4c 44 53 20 44 4f 20 20 20 20 20 20   ┆  END; (*OBEY*)   YFLDS DO      ┆
0x1e80…1ea0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63   ┆cccccccccccccccccccccccccccccccc┆
            […0x47…]

Reduced view