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

⟦8c2881972⟧ Q1_Text, reclen=79

    Length: 10902 (0x2a96)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »UPPDAT2«

Derivation

└─⟦4578d4c41⟧ Bits:30008744 50001576
    └─⟦this⟧ »UPPDAT2« 

Text

/*  PROGRAM-ID.                 UPPDAT                                       */
/*  DATE-WRITTEN.               1978-08-18                                   */
/*  AUTHOR.                     OLLE                                         */
/*  REMARKS.                    PROGRAMMET UPPDATERAR PERS-REG MED NYA OCH   */
/*                              ÄNDRADE POSTER                               */
/*                                                                           */
/*  WORKING-STORAGE SECTION.                                                 */
    DCL     PREGI FILE,                                                        
            PREGU FILE,                                                        
            PTRANS FILE;                                                       
    DCL     RIACC               BINARY      INIT (0);                          
    DCL     RUACC               BINARY      INIT (0);                          
    DCL     TACC                BINARY      INIT (0);                          
    DCL     RIANT               BINARY      INIT (0);                          
    DCL     TIANT               BINARY      INIT (0);                          
    DCL     KOD                 BINARY      INIT (0);                          
    DCL     1   REG,                                                           
                2   RFILLER         CHAR (511);                                
    DCL     R   POINTER;                                                       
    DCL     RAREA BASED (R) CHAR (1);                                          
    DCL     1   WREG,                                                          
                2   ANSTNR      CHAR (6),                                      
                2   RES1        CHAR (2),                                      
                2   ENAMN       CHAR (20),                                     
                2   FNAMN       CHAR (12),                                     
                2   TITEL       CHAR (11),                                     
                2   ADRESS      CHAR (25),                                     
                2   GATUNR      CHAR (4),                                      
                2   ING         CHAR (4),                                      
                2   POSTNR      CHAR (6),                                      
                2   RES2        CHAR (6),                                      
                2   ORTNAMN     CHAR (11),                                     
                2   RIKTNR      CHAR (4),                                      
                2   TELNR       CHAR (6),                                      
                2   RRES3       CHAR (16);                                     
    DCL     1   TRANS,                                                         
                2   TFILLER     CHAR (511);                                    
    DCL     T POINTER;                                                         
    DCL     TAREA   BASED (T) CHAR (1);                                        
    DCL     1   WTRANS,                                                        
            2   TANSTNR     CHAR (6),                                          
                2   TKOD        CHAR (2),                                      
                2   TENAMN      CHAR (20),                                     
                2   TFNAMN      CHAR (12),                                     
                2   TTITEL      CHAR (11),                                     
                2   TADRESS     CHAR (25),                                     
                2   TGATUNR     CHAR (4),                                      
                2   TING        CHAR (4),                                      
                2   TPOSTNR     CHAR (6),                                      
                2   TRES2       CHAR (2),                                      
                2   TORTNAMN    CHAR (11),                                     
                2   TRIKTNR     CHAR (4),                                      
                2   TTELNR      CHAR (6),                                      
                2   TRES3       CHAR (16);                                     
/*  PROCEDURE DIVISION.                                                      */
    R100:                                                                      
            PROC;                                                              
            J = RIANT;                                                         
            IF J > 25 THEN J = 25;                                             
            RIANT = RIANT - J;                                                 
            R = ADDR REG;                                                      
            CALL BLOCKARE  (PREGI, RAREA,  J, KOD);                            
            IF J ¬= 0 THEN                                                     
                    PUT FILE (D) EDIT ('LÄSFEL INREG') (A(45));                
            RIACC = RIACC + J;                                                 
            RETURN;                                                            
            END;                                                               
    T100:                                                                      
            PROC;                                                              
            I = TIANT;                                                         
            IF I > 25 THEN I = 25;                                             
            TIANT = TIANT - I;                                                 
            T = ADDR TRANS;                                                    
            CALL BLOCKARE  (PTRANS,  TAREA, I, KOD);                           
            IF I ¬= 0 THEN                                                     
                    PUT FILE (D) EDIT ('LÄSFEL TRANS') (A(45));                
            TIACC = TIACC + 1;                                                 
            RETURN;                                                            
            END;                                                               
    A100:                                                                      
            OPEN PREGI;                                                        
            CALL SEOF (PREGI);                                                 
            RIANT = UNSPEC (PREGI);                                            
            OPEN PREGU;                                                        
            OPEN PTRANS;                                                       
            CALL SEOF (PTRANS);                                                
            TIANT = UNSPEC (PTRANS);                                           
            PUT FILE (D) SKIP EDIT ('              BEARBETNING PÅGÅR') (A(47));
    A200:                                                                      
            WREG = REG (J);                                                    
            IF ANSTNR = '999999' THEN GO TO A250;                              
            IF J = 25 THEN CALL R100;                                          
            J = J + 1;                                                         
    A250:                                                                      
            WTRANS = TRANS (I);                                                
            IF TANSTNR = '999999' THEN GO TO A300;                             
            IF I = 25 THEN CALL T100;                                          
            I = I + 1;                                                         
    A300:                                                                      
            IF TANSTNR = ANSTNR THEN GO TO B100;                               
            IF TANSTNR > ANSTNR THEN GO TO C100;                               
            IF TANSTNR < ANSTNR THEN GO TO D100;                               
            PUT FILE (D) SKIP EDIT ('FEL I UPPDAT') (A(47));                   
            GET SKIP LIST (TRES3);                                             
            WRITE FILE (PREGU) FROM (WTRANS);                                  
    B100:                                                                      
            IF ANSTNR = '999999' THEN GO TO G100;                              
            IF TKOD = DL THEN GO TO D200;                                      
            WRITE FILE (PREGU) FROM (WTRANS);                                  
            RUACC = RUACC + 1;                                                 
            GO TO A200;                                                        
    C100:                                                                      
            WRITE FILE (PREGU) FROM (WREG);                                    
            RUACC = RUACC + 1;                                                 
            IF ANSTNR = '999999' THEN GO TO A300;                              
            IF J = 25 THEN CALL R100;                                          
            J = J + 1;                                                         
            WREG = REG (J);                                                    
            GO TO A300;                                                        
    D100:                                                                      
            WRITE FILE (PREGU) FROM (WTRANS);                                  
            RUACC = RUACC + 1;                                                 
    D200:                                                                      
            IF TANSTNR = '999999' THEN GO TO A300;                             
            IF I = 25 THEN CALL T100;                                          
            I = I + 1;                                                         
            WTRANS = TRANS (I);                                                
            GO TO A300;                                                        
    G100:                                                                      
            WRITE FILE (PREGU) FROM (REG);                                     
            RUACC = RUACC + 1;                                                 
            CLOSE PREGI;                                                       
            CLOSE PREGU;                                                       
            CLOSE PTRANS;                                                      
            PUT SKIP (5) EDIT ('ANTAL REGPOSTER IN') (A(25)) (RIACC) (P'ZZZ9');
            PUT SKIP (1) EDIT ('ANTAL REGPOSTER UT') (A(25)) (RUACC) (P'ZZZ9');
            PUT SKIP (1) EDIT ('ANTAL TRANSPOSTER') (A(25)) (TACC) (P'ZZZ9');  
            END;