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

⟦811bb0823⟧ Q1_Text, reclen=79

    Length: 13193 (0x3389)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »V41_1:2«

Derivation

└─⟦60d3ae5fc⟧ Bits:30008760 50001599
    └─⟦this⟧ »V41_1:2« 

Text

/* V4 ÄR ETT PROGRAM FÖR UTSKRIFT AV KONTO,UKONTO & IK-SLAG.                   
   V 0:1                                                                       
   PRG JÅ 780907 */                                                            
                                                                               
                                                                               
DCL 1 KONTOSTR,                                                                
      2 KONTO5 CHAR(5),                                                        
      2 SDATUM5 FIXED(6),                                                      
      2 TEXT5 CHAR(32),                                                        
      2 UHMARK5 CHAR(1),                                                       
      2 LISTB BINARY,                                                          
      2 IKB BINARY;                                                            
      /* 46 BYTES */                                                           
                                                                               
                                                                               
DCL 1 UKSTR,                                                                   
      2 KONTO3 CHAR(3),                                                        
      2 SDATUM3 FIXED(6),                                                      
      2 TEXT CHAR(32),                                                         
      2 UHMARK CHAR(1);                                                        
      /* 40 BYTES */                                                           
                                                                               
                                                                               
DCL 1 FSTR,                                                                    
      2 FIL1 FILE;                                                             
                                                                               
DCL 1 STR,                                                                     
      2 XN CHAR(24) INIT('  KONTOP  ');                                        
                                                                               
DCL T70 CHAR(70) INIT                                                          
('KONTO  TEXT                              SDATUM  UM  LISTM  UK  IKSLAG'),    
    T74 CHAR(74) INIT                                                          
('                                                     12345      0123456789'),
    TAB(5) CHAR(25) INIT('KONTOPLAN ',                                         
                          'U-KONTOTABELL ',                                    
                          'K-SLAGSTABELL ',                                    
                          'ALLA KONTON ',                                      
                          'ENDAST 5-SIFFRIGA KONTON '),                        
    LISTM CHAR(5),                                                             
    UK CHAR(1),                                                                
    IKSLAG CHAR(10),                                                           
    TOM CHAR(10) INIT('          '),                                           
    NAMN(2) CHAR(10) INIT('KVV/KWAROS','AROS'),                                
    SDATUM CHAR(6),                                                            
    KONTO CHAR(5),                                                             
    FIL BINARY,                                                                
    SIDA BINARY INIT(0),                                                       
    R BINARY INIT(0),                                                          
    S CHAR(1),                                                                 
    DATUM CHAR(6),                                                             
    P POINTER,                                                                 
    D BASED(P) CHAR(6),                                                        
    PP POINTER,                                                                
    1 STRX BASED(PP),                                                          
      2 X CHAR(2),                                                             
      2 Y CHAR(2),                                                             
      2 FIRMA CHAR(1),                                                         
        2  OP_KOD BINARY,                                                      
        2  RADANT BINARY,                                                      
      VERSION CHAR (47) INIT ('  V41 Version 1.2                      790412');
                                                                               
                                                                               
STRGEN:PROC;                                                                   
        IF FIL=1 THEN DO;                                                      
           LISTM=TOM;                                                          
           IKSLAG=TOM;                                                         
           J=1;                                                                
           DO I=1 TO 5;                                                        
              IF (J&LISTB)=J THEN SUBSTR(LISTM,I,1)='1';                       
              J=J*2;                                                           
           END;                                                                
           J=1;                                                                
           DO I=0 TO 9;                                                        
              UK=I;                                                            
              IF (J&IKB)=J THEN SUBSTR(IKSLAG,I+1,1)=UK;                       
              J=J*2;                                                           
           END;                                                                
           UK=' ';                                                             
           IF (J & IKB) = J THEN UK='1';                                       
           SDATUM=SDATUM5;                                                     
           TEXT=TEXT5;                                                         
           UHMARK=UHMARK5;                                                     
           RETURN;                                                             
        END;                                                                   
        ELSE DO;                                                               
           SDATUM=SDATUM3;                                                     
           RETURN;                                                             
        END;                                                                   
END;                                                                           
                                                                               
RUB:PROC;                                                                      
        SIDA=SIDA+1;                                                           
        PUT SKIP(R+4) EDIT(NAMN(FIRMA-7))(A(19))(TAB(FIL))(A)(TAB(S+3))(A)     
        (' ')(A(6))('19')(A)(DATUM)(A(2))('-')(A)(SUBSTR(DATUM,3,2))(A(2))     
        ('-')(A)(SUBSTR(DATUM,5,2))(A(5))('SID')(A(4))(SIDA)(A) SKIP(2);       
        IF FIL=1 THEN PUT EDIT(T70)(A)SKIP EDIT(T74)(A)SKIP;                   
        ELSE PUT EDIT(T70)(A(51))SKIP(2);                                      
        R= RADANT - 8;                                                         
        RETURN;                                                                
END;                                                                           
                                                                               
SKRIV:PROC;                                                                    
        PUT SKIP EDIT(KONTO)(A(7))(TEXT)(A(34));                               
        IF SDATUM=0 THEN PUT EDIT(TOM)(A(8))(UHMARK)(A(4));                    
        ELSE PUT EDIT(SDATUM)(A(8))(UHMARK)(A(4));                             
        IF FIL=1 THEN PUT EDIT(LISTM)(A(7))(UK)(A(4))(IKSLAG)(A);              
        R=R-1;                                                                 
        RETURN;                                                                
END;                                                                           
                                                                               
FRAEGA:PROC;                                                                   
        PUT FILE(D) SKIP EDIT('SKA ALLA KONTO SKRIVAS UT, ELLER')(A(47))       
        ('BARA DE')(A(8))(J)(A)('-SIFFRIGA')(A(38))                            
        ('DVS DE SOMM ÄR AKTUELLA VID KONTERING')(A(47))                       
        ('1 = ALLA')(A(47))('2 = ENDAST')(A(11))(J)(A)('-SIFFRIGA')(A(35));    
        GET SKIP LIST(S);                                                      
        IF VERIFY(S,'12')=0 THEN GO TO UT;                                     
        PUT FILE(D) SKIP EDIT(VERSION)(A(105))('*** UTSKRIFT PÅGÅR ***')       
                                (A(36));                                       
        CALL CORED(0);                                                         
        RETURN;                                                                
END;                                                                           
                                                                               
                                                                               
/*   H Ä R   B Ö R J A R   H U V U D P R O G R A M M E T   */                  
                                                                               
                                                                               
START:                                                                         
        UNSPEC(P)=16570;                                                       
        UNSPEC(PP)=16616;                                                      
        CALL DATCHECK(DATUM);                                                  
        IF DATUM='0     ' THEN GO TO UT;                                       
        D='0';                                                                 
                                                                               
        J=5;                                                                   
        FIL=Y;                                                                 
        IF FIL¬=1 THEN DO;                                                     
           SUBSTR(TAB(5),8,1)='3';                                             
           J=3;                                                                
        END;                                                                   
        IF FIL=2 THEN XN='  UKONTOP ';                                         
        IF FIL=3 THEN XN='  KSKONTOP';                                         
        FSTR=STR;                                                              
        OPEN FIL1;                                                             
                                                                               
        CALL FRAEGA;                                                           
L0:     IF R<5 THEN CALL RUB;                                                  
L1:     IF FIL=1 THEN DO;                                                      
           ON ENDFILE GO TO UT;                                                
           READ FILE(FIL1) INTO(KONTOSTR);                                     
           KONTO=KONTO5;                                                       
        END;                                                                   
        ELSE DO;                                                               
           ON ENDFILE GO TO UT;                                                
           READ FILE(FIL1) INTO(UKSTR);                                        
           KONTO=KONTO3;                                                       
        END;                                                                   
        IF (SUBSTR(KONTO,J,1)=' ') & (S='2') THEN GO TO L1;                    
        CALL STRGEN;                                                           
        CALL SKRIV;                                                            
        GO TO L0;                                                              
                                                                               
UT:     D=DATUM;                                                               
        PUT SKIP(R);                                                           
        CALL PLOAD('Q       ');                                                
                                                                               
END;