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

⟦8e75ecb28⟧ Q1_Text, reclen=79

    Length: 11613 (0x2d5d)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »V11«

Derivation

└─⟦256585323⟧ Bits:30008759 50001598
    └─⟦this⟧ »V11« 
└─⟦81d2ef3a9⟧ Bits:30008755 50001593
    └─⟦this⟧ »V11« 

Text

/* V1 LÄGER UPP OCH ÄNDRAR OP-TILLTRÄDE TILL RUTINERNA                         
V 1:0                                                                          
 RG JÅ 780818 */                                                               
                                                                               
DCL 1 KSTR,                                                                    
      2 GEN CHAR(4),                                                           
      2 TVEKTOR(12) BINARY,                                                    
      2 ANM CHAR(32);                                                          
                                                                               
      /* 60 BYTES */                                                           
                                                                               
DCL P POINTER,                                                                 
    D BASED(P) CHAR(6),                                                        
    PP POINTER,                                                                
    1 STR BASED(PP),                                                           
      2 X CHAR(2),                                                             
      2 Y CHAR(2),                                                             
    DATUM CHAR(6),                                                             
    TAB(12) CHAR(12),                                                          
    T3 CHAR(3),                                                                
    T4 CHAR(4),                                                                
    T12 CHAR(12),                                                              
    T32 CHAR(32),                                                              
    SVAR CHAR(1),                                                              
    FLAGG BINARY,                                                              
    KFIL FILE;                                                                 
                                                                               
TABGEN:PROC;                                                                   
      DO I=1 TO 12;                                                            
         K=1;                                                                  
         DO J=1 TO 12;                                                         
            IF (TVEKTOR(I) & K) = K THEN SUBSTR(TAB(I),J,1)='1';               
            ELSE SUBSTR(TAB(I),J,1)='0';                                       
            K=K*2;                                                             
         END;                                                                  
      END;                                                                     
      RETURN;                                                                  
END;                                                                           
                                                                               
                                                                               
VECKGEN:PROC;                                                                  
      DO I=1 TO 12;                                                            
         K=1;                                                                  
         L=0;                                                                  
         DO J=1 TO 12;                                                         
            IF SUBSTR(TAB(I),J,1)='1' THEN L=L+K;                              
            K=K*2;                                                             
         END;                                                                  
         TVEKTOR(I)=L;                                                         
      END;                                                                     
      RETURN;                                                                  
END;                                                                           
                                                                               
                                                                               
      GO TO L0;                                                                
                                                                               
S1:   PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3))               
      ('OPERATÖRSKOD:')(A(14));                                                
        CALL TYPIST(GEN,4);                                                    
        CALL TYPIST('┣10┫',1);                                                    
        CALL CORED(0);                                                         
      GET SKIP LIST(T4);                                                       
      IF T4¬=GEN THEN DO;                                                      
         GEN=T4;                                                               
         FLAGG=1;                                                              
      END;                                                                     
      PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));              
      GO TO L2;                                                                
                                                                               
S2:   DO I=1 TO 12;                                                            
         PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3))            
         ('TILLTRÄDE TILL HUVUDRUTIN NUMMER')(A(43))(I)(A(4))                  
         ('UNDERRUTIN NR   1 3 5 7 9111')(A(64))('2 4 6 8 012')(A(46));        
        CALL TYPIST(TAB(I),12);                                                
         CALL TYPIST('┣10┫',1);                                                   
         CALL CORED(0);                                                        
         GET SKIP LIST(T12);                                                   
         IF T12¬=TAB(I) THEN DO;                                               
            TAB(I)=T12;                                                        
            FLAGG=1;                                                           
         END;                                                                  
      END;                                                                     
      PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));              
      GO TO L2;                                                                
                                                                               
                                                                               
S3:   PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(4))               
      ('ANMÄRKNING:')(A(15));                                                  
      CALL TYPIST(ANM,32);                                                     
      CALL TYPIST('┣10┫',1);                                                      
      CALL CORED(0);                                                           
      GET SKIP LIST(T32);                                                      
      IF T32¬=ANM THEN DO;                                                     
         ANM=T32;                                                              
         FLAGG=1;                                                              
      END;                                                                     
      PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44))(T3)(A(3));              
      GO TO L2;                                                                
                                                                               
                                                                               
S4:   PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44));                        
      IF FLAGG=1 THEN DO;                                                      
         CALL VECKGEN;                                                         
         REWRITE FILE(KFIL) FROM(KSTR);                                        
      END;                                                                     
      GO TO L1;                                                                
                                                                               
                                                                               
/*  H Ä R   B Ö R J A R   H U V U D P R O G R A M E T  */                      
                                                                               
L0:   UNSPEC(P)=16570;                                                         
      UNSPEC(PP)=16616;                                                        
      CALL DATCHECK(DATUM);                                                    
      IF DATUM='0     ' THEN GO TO UT;                                         
      D='0';                                                                   
                                                                               
      PUT FILE(D) SKIP EDIT('OPERATÖRSNUMMER:')(A(44));                        
      OPEN KFIL;                                                               
L1:   GET SKIP LIST(T3);                                                       
      PUT FILE(D) EDIT(T3)(A(3));                                              
      I=T3;                                                                    
      IF I<1 ö I>100 THEN GO TO UT;                                            
      UNSPEC(KFIL)=I;                                                          
      READ FILE(KFIL) INTO(KSTR);                                              
      CALL TABGEN;                                                             
      FLAGG=0;                                                                 
L2:   PUT FILE(D) EDIT('VAD SKALL ÄNDRAS')(A(47))('1 = OPERATÖRSKOD')(A(47))   
      ('2 = TILLTRÄDE')(A(47))                                                 
      ('3 = ANMÄRKNING')(A(47))                                                
      ('N = ANNAN OPERATÖR')(A(47))                                            
      ('S = AVSLUTNING AV RUTINEN')(A(47));                                    
      GET SKIP LIST(SVAR);                                                     
                                                                               
      IF SVAR='1' THEN GO TO S1;                                               
      IF SVAR='2' THEN GO TO S2;                                               
      IF SVAR='3' THEN GO TO S3;                                               
      IF SVAR='N' THEN GO TO S4;                                               
                                                                               
UT:   IF FLAGG=1 THEN DO;                                                      
         CALL VECKGEN;                                                         
         REWRITE FILE(KFIL) FROM(KSTR);                                        
      END;                                                                     
                                                                               
      D=DATUM;                                                                 
      CALL PLOAD('Q       ');                                                  
                                                                               
END;