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

⟦ea7298f74⟧ Q1_Text, reclen=79

    Length: 5925 (0x1725)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »HUVBOK«

Derivation

└─⟦3e550eca6⟧ Bits:30008695 DDMQ1-0135_DUBBEL
    └─⟦this⟧ »HUVBOK« 

Text

DCL 1 VER,                                                                     
    2 VENR CHAR(6),                                                            
     2 DATUM CHAR(6),                                                          
    2 KOSTST CHAR(4) INIT('    '),                                             
    2 DEBET CHAR(4)INIT('    '),                                               
    2 KREDIT CHAR(4)INIT('    '),                                              
    2 BELOPP FIXED(11,2),                                                      
    2 VTEXT CHAR(20),                                                          
    2 KOD CHAR(2)INIT('  ');                                                   
DCL 1 BOK,                                                                     
    2 KONTONR CHAR(4),                                                         
    2 TEXT CHAR(25);                                                           
DCL 1 BALANS,                                                                  
    2 KONTO CHAR(4),                                                           
    2 DSALDO(12) FIXED(10,2),                                                  
    2 KSALDO(12) FIXED(10,2);                                                  
DCL VERIFILE FILE;   DCL BKONTO FILE;  DCL SALREG FILE;                        
DCL RUB1 CHAR(50)INIT('M  S T E N H A R D T  A B        PROGR: A101');         
DCL RUB2 CHAR(55)INIT('                 H U V U D B O K           DATUM ');    
DCL RUB3 CHAR(50)INIT('KONTO   BENÄMNING');                                    
DCL RUB4 CHAR(40)INIT('TEXT');                                                 
DCL RUB5 CHAR(55)INIT('VERIF.NR    DATUM      DEBET      KREDIT      SALDO');  
DCL DAT CHAR(8); PUT FILE(DISP)SKIP LIST('ANGE DATUM '); GET LIST(DAT);        
PUT SKIP(3) EDIT(RUB1) (A(50)) (RUB2) (A(50)) (DAT) (A(15));PUT LIST('SIDA');  
S = 1;  PUT EDIT(S) (P'ZZZ');                                                  
        PUT SKIP(2) EDIT(RUB3) (A(40)) (RUB4) (A(25));PUT LIST(RUB5);          
PUT SKIP(2) LIST(' ');                                                         
OPEN VERIFILE;  OPEN BKONTO;  OPEN SALREG;                                     
DCL SUM1 FIXED(11,2) INIT(0),  SUM2 FIXED(11,2)INIT(0);                        
DCL TOTS1 FIXED(12,2)INIT(0), TOTS2 FIXED(12,2)INIT(0);                        
DCL SAL FIXED(11,2)INIT(0),  TOTSAL FIXED(11,2)INIT(0);                        
RADR = 6;    DCL MAN CHAR(2); A = 0; B = 0; DCL C CHAR(1)INIT(' ');            
PUT FILE(DISP) SKIP LIST('ANGE AKTUELL MÅNAD '); GET LIST(MAN);                
START:  ON ENDFILE GO TO SLUT;                                                 
READ FILE(BKONTO) INTO(BOK);                          OPEN VERIFILE;           
OMIG:   ON ENDFILE GO TO PRI;                                                  
READ FILE(VERIFILE) INTO(VER);                                                 
IF(SUBSTR(DATUM,3,2) ¬= MAN) THEN GO TO OMIG;                                  
IF(DEBET  = KONTONR ) THEN GO TO DEB;                                          
IF(KREDIT  = KONTONR) THEN GO TO KRED;      GO TO OMIG;                        
DEB:A = A + 1;   SUM1 = SUM1 + BELOPP;  TOTS1 = TOTS1 + BELOPP;                
IF(A = 1) THEN PUT SKIP(2)EDIT(KONTONR) (A(8)) (TEXT) (A(34));                 
PUT      EDIT(VTEXT) (A(27));                                                  
PUT EDIT(VENR) (A(8)) (DATUM) (A(6))(BELOPP) (P'-------9V.99');                
RADR = RADR + 1; IF(RADR = 43) THEN GO TO NYR;   PUT SKIP EDIT(C)(A(42));      
B = 1;    GO TO OMIG;                                                          
KRED: B = B + 1;   SUM2 = SUM2 + BELOPP;  TOTS2 = TOTS2 + BELOPP;              
IF(B = 1) THEN PUT SKIP(2) EDIT(KONTONR) (A(8)) (TEXT) (A(34));                
PUT      EDIT(VTEXT) (A(27));                                                  
PUT EDIT(VENR) (A(8)) (DATUM) (A(19)) (BELOPP)(P'--------9V.99');              
RADR = RADR + 1;  IF(RADR = 43) THEN GO TO NYR; PUT SKIP EDIT(C)(A(42));       
A = 1;     GO TO OMIG;                                                         
PRI:  IF(SUM1 = 0 & SUM2 = 0) THEN GO TO START; A = 0; B = 0;                  
    PUT SKIP EDIT(SUM1) (X(83),P'-------9V.99')(SUM2)(P'----------9V.99');     
SAL = SUM1 - SUM2; PUT EDIT(SAL) (P'-------ZV.99');   M = MAN;                 
DSALDO(M) = SUM1; KSALDO(M) = SUM;  KONTO = KONTONR;                           
PUT FILE(DISP) SKIP; ON ERROR GO TO BAD;                                       
READ KEY(KONTO) FILE(SALREG) INTO(BALANS);                                     
REWRITE FILE(SALREG) FROM (BALANS);                                            
GO TO NY;                                                                      
BAD: IF(ONCODE = 4) THEN DO;                                                   
CALL SEOF(SALREG); WRITE FILE(SALREG) FROM(BALANS); CLOSE SALREG;              
OPEN SALREG;   END;    NY:SUM1 = 0; SUM2 = 0;  PUT SKIP LIST(' ');             
RADR = RADR + 3;  IF(RADR = 43) THEN GO TO NYR;  GO TO START;                  
NYR:  PUT SKIP(8)EDIT(RUB1) (A(50)) (RUB2) (A(50)) (DAT) (A(15));              
S = S + 1; PUT LIST('SIDA '); PUT EDIT(S) (P'ZZZ');                            
PUT SKIP(2)EDIT(RUB3) (A(40)) (RUB4) (A(25)); PUT LIST(RUB5);                  
PUT SKIP(2) LIST(42(' ')); RADR = 6; GO TO OMIG;                               
SLUT:  PUT SKIP(2) EDIT(TOTS1)(X(83),P'-------9V.99')(TOTS2)(P'--------9V.99');
TOTSAL = TOTS1 - TOTS2;                                                        
PUT EDIT(TOTSAL) (P'---------9V.99');                                          
END;