DataMuseum.dk

Presents historical artifacts from the history of:

Q1 computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Q1 computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦12c34a7aa⟧ Q1_Text, reclen=79

    Length: 47084 (0xb7ec)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »V21«

Derivation

└─⟦256585323⟧ Bits:30008759 50001598
    └─⟦this⟧ »V21« 

Text

/* V21 ÄR EN RUTIN FÖR INMATNING AV KONTERINGAR                                
   KONTERINGARNA ÄR ORDNADE UNDER VERNUMMER                                    
   INKNAPPNING OCH ÄNDRING HANDHAS AV SAMMA RUTIN                              
   EN AUTOMATISK INSERT & DELETE SER TILL ATT KONTERINGARNA ALLTID LIGGER      
   SAMMLADE PÅ FILEN                                                           
   VERSION 1:5 Nya konton för PG 0011 och MOMS 0311. 800701.                   
   PRG JÅ 780829 */                                                            
                                                                               
                                                                               
DCL 1 HJSTR,                                                                   
      2 VERNR BINARY,                                                          
      2 LUFT CHAR(58);                                                         
      /* 60 BYTES */                                                           
                                                                               
DCL 1 AREA,                 /* ARBETSAREA FÖR KONTON */                        
      2 POST3(110) CHAR(34);                                                   
      /* 3740 BYTES */                                                         
                                                                               
DCL PF POINTER,                                                                
    1 FSTR BASED(PF),       /* KONTOPOST */                                    
      2 KONTOF FIXED(11),   /* KONTONUMMER 11 SIFRIGT */                       
      2 VERNRF FIXED(5),    /* VERNUMMER */                                    
      2 DATUMF FIXED(5),    /* BOKFÖRINGSDATUM */                              
      2 PDATUMF FIXED(5),   /* PERDATUM BASÅR 78 */                            
      2 BELOPPF FIXED(11),  /* BELOPP I ÖREN */                                
      2 TEXTF CHAR(13),     /* TEXT */                                         
    RECLN BINARY INIT(34);  /* FSTR's REKODLÄNGD */                            
      /* 34 BYTES */                                                           
                                                                               
DCL PD POINTER,                                                                
    1 DAREA BASED(PD),      /* PAKNINGSSTRUKTUR */                             
      2 POST1 CHAR(34),                                                        
      2 POST2 CHAR(34);                                                        
      /* 68 BYTES */                                                           
                                                                               
DCL 1 DUMMY,                /* INSERT & DELIT AREA */                          
      2 POST4(100) CHAR(34);                                                   
      /* 3400 BYTES */                                                         
                                                                               
DCL KFIL FILE,              /* HJÄLPFIL INEHÅLLER VERNR */                     
    TRANSFIL FILE;          /* TRANAKTIONSFIL INEHÅLLER KONTERINGAR */         
                                                                               
DCL P POINTER,                                                                 
    D BASED(P) CHAR(6),     /* ANVÄNDES AV DATCHECK */                         
    DATUM CHAR(6),          /* DAGENSDATUM */                                  
    ANTKONT BINARY,         /* ANTAL KONT PÅ AVERNR */                         
    AKTKONT BINARY,         /* KONTERING SOM BEHANDLAS NUMMER I AREA */        
    PAREA BINARY,           /* ADRESSEN FÖR AREA PROGRAMKONSTANT */            
    WFLAGG BINARY,          /* WRITE-FLAGGA 1 OM SKRIVNING */                  
    ADDKONT BINARY,         /* ANTAL NYA KONTERINGAR PÅ AVERNR */              
    REKTOT BINARY,          /* ANTAL REKODS I TRANSFIL */                      
    AVERNR FIXED(5),        /* AKTUELT VERNUMMER */                            
    AREC BINARY,            /* FÖRSTA KONTERING's (MED AVERNR) RECNUMMER */    
    RCODE BINARY,           /* RETURKOD FRÅN RE WR */                          
    DRAD BINARY,            /* AKTUEL RAD PÅ DISPLAY-2 */                      
    FRTYP BINARY,           /* FRÅGA NUMMER */                                 
    KEYT BINARY,            /* SENAST REG. FUNKTIONSTANGGENT */                
    RBELOPP CHAR(15),       /* REDIGERAT BELOPP */                             
    RKONTO CHAR(15),        /* REDIGERAT KONTO */                              
    KONTO FIXED(11),                                                           
    BELOPP FIXED(11),                                                          
    PERDAG FIXED(6),                                                           
    BUFF CHAR(25),                                                             
    ACK1 FIXED(13),                                                            
    ACK2 FIXED(13),                                                            
    BAS BINARY,                                                                
    PDATUM FIXED(6),                                                           
    FX5 FIXED(5),           /* DAGENS DATUM MED 78 SOM BASÅR FÖR PERDAGINIT */ 
    FX6 FIXED(6),                                                              
    FX13 FIXED(13),                                                            
    P1 CHAR(8) INIT('  999999'),/* PIKTURE FÖR PERDAG */                       
    P2 CHAR(14) INIT('---------9.99V'),                                        
    P3 CHAR(15) INIT('-------------9V'),                                       
    T2 CHAR(2),                                                                
    T3 CHAR(3),                                                                
    T5 CHAR(5),                                                                
    T9 CHAR(9),                                                                
    T10 CHAR(10),                                                              
    TT11 CHAR(11),                                                             
    T13 CHAR(13),                                                              
    T16 CHAR(16),                                                              
    T25 CHAR(25),                                                              
    PERARMAX                        CHAR (2),                                  
    PERARMIN                        CHAR (2),                                  
    DATKOLL                         BINARY,                                    
    PP POINTER,                                                                
    1 STR BASED(PP),                                                           
      2 X CHAR(2),                                                             
      2 Y CHAR(2),                                                             
      2 FIRMA CHAR(1),                                                         
    VERSION CHAR(47) INIT('  V21 Version 1:5                        800701');  
                                                                               
BELRED:PROC;                                                                   
        IF BELOPPF>=100 ö BELOPPF<=-100 THEN DO;                               
           T13=BELOPPF;                                                        
           JJ=LENGTH(T13);                                                     
           RBELOPP='           :-- ';                                          
      IF SUBSTR(T13,JJ-1,2)¬='00' THEN SUBSTR(RBELOPP,13,2)=SUBSTR(T13,JJ-1,2);
           SUBSTR(RBELOPP,14-JJ,JJ-2)=SUBSTR(T13,1,JJ-2);                      
           RETURN;                                                             
        END;                                                                   
        IF BELOPPF=0 THEN DO;                                                  
           RBELOPP='          0:-- ';                                          
           RETURN;                                                             
        END;                                                                   
        T13=BELOPPF/100;                                                       
        JJ=LENGTH(T13);                                                        
        JJJ=INDEX(T13,'.');                                                    
        RBELOPP='           :00 ';                                             
        SUBSTR(RBELOPP,13,JJ-JJJ)=SUBSTR(T13,JJJ+1,JJ-JJJ);                    
        SUBSTR(RBELOPP,13-JJJ,JJJ-1)=SUBSTR(T13,1,JJJ-1);                      
        RETURN;                                                                
END;                                                                           
                                                                               
KONTORED:PROC;                                                                 
DCL T11 CHAR(11);                                                              
        T11=KONTOF;                                                            
        RKONTO='  ' CAT SUBSTR(T11,1,5) CAT '.---.---';                        
        IF SUBSTR(T11,6,3)¬='000' THEN SUBSTR(RKONTO,9,3)=SUBSTR(T11,6,3);     
        IF SUBSTR(T11,9,3)¬='000' THEN SUBSTR(RKONTO,13,3)=SUBSTR(T11,9,3);    
        RETURN;                                                                
END;                                                                           
                                                                               
DELIT:PROC;                                                                    
        IF ANTKONT=1 THEN DO;                                                  
           CALL OUTPUT(1,6);                                                   
           RETURN;                                                             
        END;                                                                   
      IF AKTKONT > ANTKONT THEN DO;                                            
          AKTKONT = ANTKONT;                                                   
          UNSPEC (PF) = PAREA + (ANTKONT - 1) * RECLN;                         
      END;                                                                     
        ACK1=ACK1-BELOPPF;                                                     
        ACK2=ACK2-KONTOF;                                                      
        ANTKONT=ANTKONT-1;                                                     
        DO I=AKTKONT-1 TO ANTKONT;                                             
           UNSPEC(PD)=PAREA+I*RECLN;                                           
           POST1=POST2;                                                        
        END;                                                                   
        WFLAGG=1;                                                              
        ADDKONT=ADDKONT-1;                                                     
        J=34;                                                                  
        CALL MOVEBUFF(J);                                                      
        PUT FILE(D) EDIT(ACK1)(PP2);                                           
        RETURN;                                                                
END;                                                                           
                                                                               
DAGTEST:PROC;                                                                  
        PUT FILE(D) SKIP EDIT(VERSION)(A(47));                                 
        OPEN TRANSFIL;                                                         
        CALL SEOF(TRANSFIL);                                                   
        REKTOT=UNSPEC(TRANSFIL);                                               
        OPEN TRANSFIL;                                                         
        PUT FILE(D) EDIT('  TRANSAKTIONERNA KOMMER ATT DATERAS')(A(37))        
        (DATUM)(A(12))('TRANSAKTIONSFILEN INNEHÅLLER')(A(29))                  
        (REKTOT)(P'----9')(' POSTER')(A(13))                                   
        ('ÄR OVANSTÅENDE KORREKT? "J" ELLER "N"')(A(44));                      
        GET SKIP LIST(T2);                                                     
        IF T2¬='J ' THEN DO;                                                   
           D=DATUM;                                                            
           CALL PLOAD('Q       ');                                             
        END;                                                                   
        OPEN KFIL;                                                             
        READ FILE(KFIL) INTO(HJSTR);                                           
        FX5=DATUM-780000;                                                      
        RETURN;                                                                
END;                                                                           
                                                                               
HOPPA_TILL_Q:PROC;                                                             
        D=DATUM;                                                               
        REWRITE FILE(KFIL) FROM(HJSTR);                                        
        CALL PLOAD('Q       ');                                                
        RETURN;                                                                
END;                                                                           
                                                                               
VERIN:PROC;                                                                    
      AVERNR = VERNR + 1;                                                      
      DO I = 0 TO 105;                                                         
          UNSPEC (PF) = PAREA + I * 34;                                        
          KONTOF = 0;                                                          
       VERNRF = AVERNR;                                                        
       DATUMF = FX5;                                                           
       PDATUMF = FX5;                                                          
       BELOPPF = 0;                                                            
     END;                                                                      
V1:                                                                            
     PUT FILE (D) SKIP EDIT ('  VER.NR:') (A(10));                             
     IF REKTOT > 980 THEN DO;                                                  
       CALL OUTPUT (1,6);                                                      
       IF RECTOT > 1020 THEN DO;                                               
              DO J=1 TO 300;END;                                               
              CALL OUTPUT(1,6);                                                
              DO J=1 TO 300;END;                                               
              CALL OUTPUT(1,6);                                                
           END;                                                                
           PUT FILE(D) EDIT('ANTAL KONTERINGAR I TRANSFIL:')(X(37),A(43))      
           (REKTOT)(A);                                                        
           J=10;                                                               
           CALL MOVEBUFF(J);                                                   
        END;                                                                   
        GET SKIP LIST(T5);                                                     
        IF T5='     ' THEN CALL HOPPA_TILL_Q;                                  
        AVERNR=T5;                                                             
        ACK1=0;                                                                
        ACK2=0;                                                                
        IF AVERNR>VERNR+1 THEN DO;                                             
           PUT FILE(D) SKIP EDIT('  VERIFIKATIONSNUMRET')(A(22))               
           (AVERNR)(P'----9')(' GODKÄNNES EJ')(A(22))                          
           ('SENASTE INRAPPORTERADE VER.NR:')(A(30))(VERNR)(P'----9');   ;     
           GET SKIP LIST('');                                                  
           GO TO V1;                                                           
        END;                                                                   
        IF AVERNR=VERNR+1 THEN DO;                                             
           ANTKONT=0;                                                          
           AREC=REKTOT;                                                        
           GO TO V3;                                                           
        END;                                                                   
        IF REKTOT<1 THEN GO TO V1;                                             
        OPEN TRANSFIL;                                                         
        ON ERROR GO TO V1;                                                     
        READ KEY(AVERNR) FILE(TRANSFIL) INTO(FSTR) KEYTO(VERNRF);              
        UNSPEC(TRANSFIL)=UNSPEC(TRANSFIL)-1;                                   
        AREC=UNSPEC(TRANSFIL);                                                 
        I=REKTOT-AREC;                                                         
        IF I>100 THEN I=100;                                                   
        CALL RD(TRANSFIL,AREA,I,RCODE);                                        
        IF RCODE¬=0 THEN PUT SKIP LIST('LÄSFEL',ONCODE);                       
        DO J=0 TO I-1;                                                         
           UNSPEC(PF)=PAREA+J*RECLN;                                           
           IF VERNRF¬=AVERNR THEN GO TO V2;                                    
           ACK1=ACK1+BELOPPF;                                                  
           ACK2=ACK2+KONTOF;                                                   
        END;                                                                   
V2:     ANTKONT=J;                                                             
        DO I = ANTKONT TO 105;                                                 
          UNSPEC (PF) = PAREA + I * 34;                                        
          KONTOF = 0;                                                          
          VERNRF = AVERNR;                                                     
          DATUMF = FX5;                                                        
          PDATUMF = FX5;                                                       
          BELOPP = 0;                                                          
        END;                                                                   
V3:     AKTKONT=1;                                                             
        ADDKONT=0;                                                             
        WFLAGG=0;                                                              
        PUT FILE(D) EDIT(AVERNR)(A(9))('SID:      SALDO:')(A(28))              
        ('  KONTO UKTO KS  PERDAG     BELOPP')(A);                             
        RETURN;                                                                
END;                                                                           
                                                                               
DISPPUT:PROC;                                                                  
D1:     I=(AKTKONT-1)/10;                                                      
        IF I>=9 THEN CALL OUTPUT(1,6);                                         
        IF I=10 THEN DO;                                                       
           IF KEYT=22 THEN AKTKONT=100;                                        
           ELSE AKTKONT=1;                                                     
           DO J=1 TO 400;END;                                                  
           CALL OUTPUT(1,6);                                                   
           GO TO D1;                                                           
        END;                                                                   
        J=24;                                                                  
        CALL MOVEBUFF(J);                                                      
        PUT FILE(D) EDIT(I+1)(A);                                              
        II=ANTKONT-10*I;                                                       
        IF II>9 THEN II=10;                                                    
        J=94;                                                                  
        CALL MOVEBUFF(J);                                                      
        L=10;                                                                  
        DO J=I*10 TO I*10+II-1;                                                
           UNSPEC(PF)=PAREA+J*RECLN;                                           
           CALL KONTORED;                                                      
           CALL BELRED;                                                        
          PUT FILE(D) EDIT(RKONTO)(A(15))(PDATUMF+780000)(PP1)(RBELOPP)(A(24));
        L=L-1;                                                                 
        END;                                                                   
        DO J=1 TO L;                                                           
           PUT FILE(D) EDIT(' ')(A(47));                                       
        END;                                                                   
        DRAD=(AKTKONT-1)/10;                                                   
        DRAD=AKTKONT-10*DRAD;                                                  
        FRTYP=1;                                                               
        RETURN;                                                                
END;                                                                           
                                                                               
FRAEGA:PROC;                                                                   
        IF FRTYP=1 THEN DO;                                                    
           UNSPEC(PF)=PAREA+(AKTKONT-1)*RECLN;                                 
           J=(DRAD+1)*47;                                                      
           CALL MOVEBUFF(J);                                                   
           IF AKTKONT>ANTKONT THEN RETURN;                                     
           CALL KONTORED;                                                      
           CALL TYPIST(RKONTO,15);                                             
           CALL TYPIST('┣10┫',1);                                                 
           RETURN;                                                             
        END;                                                                   
        IF FRTYP=2 THEN DO;                                                    
           T9='        ┣10┫';                                                     
           SUBSTR(T9,3,6)=PDATUMF+780000;                                      
           CALL TYPIST(T9,9);                                                  
           RETURN;                                                             
        END;                                                                   
        IF FRTYP=3 THEN DO;                                                    
           IF AKTKONT>ANTKONT THEN RETURN;                                     
           CALL BELRED;                                                        
           T16=RBELOPP CAT '┣10┫';                                                
           CALL TYPIST(T16,16);                                                
           RETURN;                                                             
        END;                                                                   
        PUT SKIP LIST('FEL FRTYP',FRTYP);                                      
        RETURN;                                                                
END;                                                                           
                                                                               
POSTFLYT:PROC;                                                                 
        UNSPEC(TRANSFIL)=BAS;                                                  
        J=J-I;                                                                 
        CALL RD(TRANSFIL,DUMMY,I,RCODE);                                       
        IF RCODE¬=0 THEN PUT SKIP LIST('LÄSFEL I PROC POST',ONCODE);           
        UNSPEC(TRANSFIL)=BAS+ADDKONT;                                          
        CALL WR(TRANSFIL,DUMMY,I,RCODE);                                       
        IF RCODE¬=0 THEN PUT SKIP LIST('SKRIVFEL I PROC POST',ONCODE);         
        RETURN;                                                                
END;                                                                           
                                                                               
FILIN:PROC;                                                                    
        J=REKTOT-AREC-ANTKONT+ADDKONT;                                         
        K=0;                                                                   
        BAS=REKTOT;                                                            
F1:     I=J;                                                                   
        IF I>100 THEN I=100;                                                   
        BAS=BAS-I;                                                             
        CALL POSTFLYT;                                                         
        IF K=0 THEN DO;                                                        
           CLOSE TRANSFIL;                                                     
           OPEN TRANSFIL;                                                      
           K=1;                                                                
        END;                                                                   
        IF J¬=0 THEN GO TO F1;                                                 
        OPEN TRANSFIL;                                                         
        CALL SEOF(TRANSFIL);                                                   
        REKTOT=UNSPEC(TRANSFIL);                                               
        RETURN;                                                                
END;                                                                           
                                                                               
FILUT:PROC;                                                                    
        BAS=AREC+ANTKONT-ADDKONT;                                              
        J=REKTOT-BAS;                                                          
        K=1;                                                                   
F2:     I=J;                                                                   
        IF I>100 THEN I=100;                                                   
        CALL POSTFLYT;                                                         
        BAS=BAS+I;                                                             
        IF  J¬=0 THEN GO TO F2;                                                
        CLOSE TRANSFIL;                                                        
        OPEN TRANSFIL;                                                         
        CALL SEOF(TRANSFIL);                                                   
        REKTOT=UNSPEC(TRANSFIL);                                               
        RETURN;                                                                
END;                                                                           
                                                                               
        GO TO START;                                                           
                                                                               
SVAR:                                                                          
        IF FRTYP=1 THEN DO;                                                    
           IF KEYT=5 THEN KONTO=FIRMA*10000000000+0311000000; /* K1 = MOMS */  
           IF KEYT=6 THEN KONTO=FIRMA*10000000000+0011000000; /* K2 = PG */    
           IF (KEYT=5) ö (KEYT=6) THEN GO TO S1;                               
           J=1;                                                                
           IF SUBSTR(BUFF,1,2)='  ' THEN J=3;                                  
           KONTO=SUBSTR(BUFF,J,5);                                             
           KONTO=KONTO*1000;                                                   
           IF INDEX('0123456789',SUBSTR(BUFF,J+6,1))¬=0 THEN DO;               
              KONTO=KONTO+SUBSTR(BUFF,J+6,3);                                  
              J=J+3;                                                           
           END;                                                                
           IF SUBSTR(BUFF,J+6,1)='-' THEN J=J+3;                               
           KONTO=KONTO*1000;                                                   
           IF INDEX('0123456789',SUBSTR(BUFF,J+7,1))¬=0 THEN DO;               
              KONTO=KONTO+SUBSTR(BUFF,J+7,3);                                  
           END;                                                                
S1:        TT11=KONTO;                                                         
           IF SUBSTR(TT11,1,1)¬=FIRMA THEN GO TO L3;                           
           IF KONTOF¬=KONTO THEN DO;                                           
              ACK2=ACK2-KONTOF+KONTO;                                          
              KONTOF=KONTO;                                                    
              WFLAGG=1;                                                        
           END;                                                                
           CALL KONTORED;                                                      
           PUT FILE(D) EDIT(RKONTO)(A(15));                                    
        END;                                                                   
        IF FRTYP=2 THEN DO;                                                    
           IF SUBSTR(BUFF,1,2)¬='  ' THEN J=1;                                 
           ELSE J=3;                                                           
           FX6=SUBSTR(BUFF,J,6);                                               
           IF FX6<700000 ö FX6>990000 THEN GO TO S3;                           
           DATKOLL = J;                                                        
           IF SUBSTR (BUFF,DATKOLL,2) > PERARMAX THEN GO TO S3;                
           IF SUBSTR (BUFF,DATKOLL,2) < PERARMIN THEN GO TO S3;                
           IF SUBSTR (BUFF,DATKOLL+2,2) > '12' THEN GO TO S3;                  
           IF SUBSTR (BUFF,DATKOLL+2,2) < '01' THEN GO TO S3;                  
           IF SUBSTR (BUFF,DATKOLL+4,2) > '31' THEN GO TO S3;                  
           IF SUBSTR (BUFF,DATKOLL+4,2) < '01' THEN GO TO S3;                  
           PUT FILE(D) EDIT(FX6)(PP1);                                         
           PDATUM=FX6-780000;                                                  
           IF PDATUM¬=PDATUMF THEN DO;                                         
              PDATUMF=PDATUM;                                                  
              WFLAGG=1;                                                        
           END;                                                                
        END;                                                                   
        IF FRTYP=3 THEN DO;                                                    
           IF KEYT¬=138 & KEYT¬=139 THEN DO;                                   
              BELOPP=BELOPPF;                                                  
              GO TO S2;                                                        
           END;                                                                
           IF SUBSTR(BUFF,12,1)=':' THEN DO;                                   
              IF SUBSTR(BUFF,13,1)='-' THEN DO;                                
                 SUBSTR(BUFF,12,2)='00';                                       
              END;                                                             
              ELSE DO;                                                         
                 T2=SUBSTR(BUFF,13,2);                                         
                 SUBSTR(BUFF,12,2)=T2;                                         
                 SUBSTR(BUFF,14,2)='  ';                                       
              END;                                                             
           END;                                                                
           BELOPP=BUFF;                                                        
           IF KEYT=138 & BELOPP>0 THEN BELOPP=-BELOPP;                         
           IF KEYT=139 & BELOPP<0 THEN BELOPP=-BELOPP;                         
S2:        IF BELOPP¬=BELOPPF THEN DO;                                         
              ACK1=ACK1-BELOPPF+BELOPP;                                        
              J=34;                                                            
              CALL MOVEBUFF(J);                                                
              PUT FILE(D) EDIT(ACK1)(PP2);                                     
              CALL MOVEBUFF(J);                                                
              BELOPPF=BELOPP;                                                  
              WFLAGG=1;                                                        
           END;                                                                
           CALL BELRED;                                                        
           PUT FILE(D) EDIT(RBELOPP)(A(24));                                   
        END;                                                                   
        FRTYP=FRTYP+1;                                                         
        IF FRTYP=4 THEN DO;                                                    
           AKTKONT=AKTKONT+1;                                                  
           IF AKTKONT>ANTKONT+1 THEN DO;                                       
              ANTKONT=ANTKONT+1;                                               
              ADDKONT=ADDKONT+1;                                               
           END;                                                                
           DRAD=DRAD+1;                                                        
           IF DRAD=11 THEN DO;                                                 
              CALL DISPPUT;                                                    
           END;                                                                
           FRTYP=1;                                                            
        END;                                                                   
        GO TO L3;                                                              
S3:                                                                            
        CALL OUTPUT (1,6);                                                     
        GO TO L3;                                                              
UT:                                                                            
        IF ANTKONT=0 THEN GO TO L3;                                            
        J=47;                                                                  
        CALL MOVEBUFF(J);                                                      
        DO J=1 TO 11;                                                          
           PUT FILE(D) EDIT(' ')(A(47));                                       
        END;                                                                   
        IF WFLAGG=0 THEN GO TO U0;                                             
        J=94;                                                                  
        CALL MOVEBUFF(J);                                                      
        IF ACK1¬=0 THEN DO;                                                    
           PUT FILE(D) EDIT('  DIFFERENS')(A(23))(ACK1)(PP2);                  
           CALL OUTPUT(1,6);                                                   
           GET SKIP LIST('');                                                  
           AKTKONT=1;                                                          
           J=47;                                                               
           CALL MOVEBUFF(J);                                                   
           PUT FILE(D) EDIT('  KONTO UKTO KS  PERDAG     BELOPP')(A);          
           GO TO L2;                                                           
        END;                                                                   
        PUT FILE(D) EDIT('  KONTONUMMERSUMMA')(A(23));                         
        GET SKIP LIST(FX13);                                                   
        IF (FX13¬=ACK2) & (FX13¬=ACK2/1000000) THEN DO;                        
           J=94;                                                               
           CALL MOVEBUFF(J);                                                   
           PUT FILE(D) EDIT('  KONOTONUMMERSUMMERINGEN STÄMMER EJ')(A(49))     
           ('DIFFERANS:')(A(23))(FX13-ACK2)(PP3);                              
           CALL OUTPUT(1,6);                                                   
           GET SKIP LIST(T25);                                                 
           AKTKONT=1;                                                          
           J=47;                                                               
           CALL MOVEBUFF(J);                                                   
           PUT FILE(D) EDIT('  KONTO UKTO KS  PERDAB     BELOPP')(A);          
           GO TO L2;                                                           
        END;                                                                   
U0:     J=68;                                                                  
        CALL MOVEBUFF(J);                                                      
        PUT FILE(D) EDIT('┣0e┫')(A(26))('  TEXT.')(A(9));                         
        UNSPEC(PF)=PAREA;                                                      
        IF AREC=REKTOT THEN TEXTF='             ';                             
        CALL TYPIST(TEXTF,13);                                                 
        CALL TYPIST('┣10┫',1);                                                    
        CALL CORED(0);                                                         
U1:     GET SKIP LIST(T25);                                                    
        DO I=25 TO 14 BY -1;                                                   
           IF SUBSTR(T25,I,1)¬=' ' THEN DO;                                    
              CALL TYPIST(T25,25);                                             
              CALL TYPIST('┣10┫',1);                                              
              CALL OUTPUT(1,6);                                                
              GO TO U1;                                                        
           END;                                                                
        END;                                                                   
        IF SUBSTR(T25,1,13)='             ' THEN DO;                           
           CALL OUTPUT(1,6);                                                   
           GO TO U1;                                                           
        END;                                                                   
        IF (SUBSTR(T25,1,13)=TEXTF) & (WFLAGG=0) THEN GO TO L1;                
        DO I=1 TO ANTKONT;                                                     
           UNSPEC(PF)=PAREA+(I-1)*RECLN;                                       
          TEXTF=SUBSTR(T25,1,13);                                              
        END;                                                                   
        IF AREC<REKTOT THEN DO;                                                
           IF ADDKONT>0 THEN CALL FILIN;                                       
           IF ADDKONT<0 THEN CALL FILUT;                                       
        END;                                                                   
        IF REKTOT>0 THEN UNSPEC(TRANSFIL)=AREC;                                
        CALL WR(TRANSFIL,AREA,ANTKONT,RCODE);                                  
        IF RCODE¬=0 THEN PUT SKIP LIST('SKRIVFEL I UT',ONCODE);                
        IF AREC=REKTOT THEN DO;                                                
           CLOSE TRANSFIL;                                                     
           OPEN TRANSFIL;                                                      
           CALL SEOF(TRANSFIL);                                                
           REKTOT=UNSPEC(TRANSFIL);                                            
           UNSPEC(TRANSFIL)=0;                                                 
           IF AVERNR=VERNR+1 THEN VERNR=AVERNR;                                
        END;                                                                   
        GO TO L1;                                                              
                                                                               
                                                                               
                                                                               
/*  H Ä R   B Ö R J A R   H U V U D P R O G R A M M E T  */                    
                                                                               
START:                                                                         
        CALL DATCHECK(DATUM);                                                  
        IF DATUM='0     ' THEN CALL PLOAD('Q       ');                         
        PERARMAX = SUBSTR (DATUM,1,2);                                         
        PERARMAX = PERARMAX + 1;                                               
        PERARMIN = SUBSTR (DATUM,1,2);                                         
        PERARMIN = PERARMIN - 1;                                               
        UNSPEC(P)=16570;                                                       
        D='0';                                                                 
        UNSPEC(PP)=16616;                                                      
        PF=ADDR(AREA);                                                         
        PAREA=UNSPEC(PF);                                                      
        CALL DAGTEST;                                                          
L1:     CALL VERIN;                                                            
L2:     CALL DISPPUT;                                                          
L3:     CALL FRAEGA;                                                           
L4:     GET SKIP LIST(BUFF);                                                   
        CALL KEYFUN(KEYT);                                                     
        IF KEYT=22 THEN DO;                    /* BACKAR EN KONTERING */       
           AKTKONT=AKTKONT-1;                                                  
           IF AKTKONT<1 THEN DO;                                               
              AKTKONT=ANTKONT+1;                                               
              GO TO L2;                                                        
           END;                                                                
           ELSE DO;                                                            
              DRAD=DRAD-1;                                                     
              IF DRAD<1 THEN GO TO L2;                                         
           END;                                                                
           M=16;                                                               
           IF FRTYP=2 THEN M=8;                                                
           PUT FILE(D) EDIT(SUBSTR(BUFF,1,M))(A);                              
           FRTYP=1;                                                            
           GO TO L3;                                                           
        END;                                                                   
        IF KEYT=23 THEN DO;                    /* FRAM EN RAD */               
           AKTKONT=AKTKONT+1;                                                  
           IF AKTKONT>ANTKONT+1 THEN DO;                                       
              AKTKONT=1;                                                       
              GO TO L2;                                                        
           END;                                                                
           ELSE DO;                                                            
              DRAD=DRAD+1;                                                     
              IF DRAD>10 THEN GO TO L2;                                        
           END;                                                                
           M=16;                                                               
           IF FRTYP=2 THEN M=8;                                                
           FRTYP=1;                                                            
           PUT FILE(D) EDIT(SUBSTR(BUFF,1,M))(A);                              
           GO TO L3;                                                           
        END;                                                                   
        IF KEYT=140 THEN GO TO UT;             /* AVSTÄMNING AV VERIFIKATION */
        IF KEYT=17 THEN CALL HOPPA_TILL_Q;                                     
        IF KEYT=19 THEN DO;                    /* TAR BORT KONTERING */        
           CALL DELIT;                                                         
           GO TO L2;                                                           
        END;                                                                   
        GO TO SVAR;                                                            
                                                                               
END;