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

⟦10999f2d8⟧ Q1_Text, reclen=79

    Length: 12561 (0x3111)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »V131«

Derivation

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

Text

/* V13 KOPIERAR ETT ANTAL FILER FRÅN DRIVE 2 TILL DRIV 4                       
                                                                               
                                                                               
   PRG JÅ 781004 */                                                            
                                                                               
DCL 1 FSTR1,                                                                   
      2 INFIL FILE;                                                            
                                                                               
DCL 1 FSTR2,                                                                   
      2 UTFIL FILE;                                                            
                                                                               
DCL 1 KATALOG_STR,                                                             
      2 KATALOG FILE;                                                          
                                                                               
DCL 1 STR,                                                                     
      2 XN CHAR(24);                                                           
                                                                               
DCL 1 INDEX_STR,                                                               
      2 TAL           BINARY,                                                  
      2 INDEX_XN      CHAR(8),                                                 
      2 REC_ANT       BINARY,                                                  
      2 LENGD         BINARY,                                                  
      2 DIV           BINARY,                                                  
      2 F_TRACK       BINARY,                                                  
      2 L_TRACK       BINARY,                                                  
      2 UNUSED        BINARY,                                                  
      2 REC#_B        BINARY;                                                  
                                                                               
DCL 1 K_STR,                                                                   
      2 L_VERNR FIXED(5),                                                      
      2 H_VERNR FIXED(5),                                                      
      2 DATUM CHAR(6);                                                         
      /* 14 BYTES */                                                           
                                                                               
DCL 1 TRANS_STR,                                                               
      2 KONTONR FIXED(11),                                                     
      2 VERNR FIXED(5),                                                        
      2 REST CHAR(25);                                                         
                                                                               
                                                                               
DCL 1 AREA,                                                                    
      2 CH(255) CHAR(100);                                                     
                                                                               
DCL SVAR       CHAR(25),                                                       
    T1         CHAR(1),                                                        
    T8         CHAR(8),                                                        
    MAX        BINARY,                                                         
    SP         BINARY,                                                         
    VERSION CHAR(47) INIT('  V13 Version 1.2                        790323'),  
    TEXT CHAR(52) INIT('DISK A 4 7 XXXXXX_Y 34 COPY TRANSFIL XXXXXX_Y 2 4 V7');
                                                                               
                                                                               
                                                                               
MOVEBUFF:PROC;                                                                 
        FSTR1=STR;                                                             
        FSTR2=STR;                                                             
        CALL CHOOSE(2);                                                        
        OPEN INFIL;                                                            
        CALL CHOOSE(4);                                                        
        OPEN UTFIL;                                                            
        CALL SEOF(INFIL);                                                      
        I=UNSPEC(INFIL);                                                       
        IF I=0 THEN RETURN;                                                    
        UNSPEC(INFIL)=0;                                                       
        J=255;                                                                 
B1:     IF J>I THEN J=I;                                                       
        I=I-J;                                                                 
        CALL RD(INFIL,AREA,J,K);                                               
        IF K¬=0 THEN PUT SKIP LIST('LÄSFEL I',XN,K);                           
        CALL WR(UTFIL,AREA,J,K);                                               
        IF K¬=0 THEN PUT SKIP LIST('SKRIVFEL I',XN,K);                         
        IF I>0 THEN GO TO B1;                                                  
        CLOSE UTFIL;                                                           
        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:  CALL LOAD('┣0d┫',1);                                                      
        GET SKIP LIST(SVAR);                                                   
        PUT FILE(D) SKIP EDIT(VERSION)(A(94));                                 
        CALL DATCHECK(DATUM);                                                  
                                                                               
        XN='  KONTOP  ';                                                       
        PUT FILE(D) EDIT(XN)(A(47));                                           
        CALL MOVEBUFF;                                                         
        XN='  UKONTOP ';                                                       
        PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));                      
        CALL MOVEBUFF;                                                         
        XN='  KSKONTOP';                                                       
        PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));                      
        CALL MOVEBUFF;                                                         
        XN='  TRANSFIL';                                                       
        PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));                      
        FSTR1=STR;                                                             
        OPEN INFIL;                                                            
        CLOSE INFIL;                                                           
        CALL CHOOSE(0);                                                        
        OPEN INFIL;                                                            
        ON ERROR GO TO L1;                                                     
        READ FILE(INFIL) INTO(TRANS_STR);                                      
        L_VERNR=VERNR;                                                         
L1:     CALL SEOF(INFIL);                                                      
        MAX=UNSPEC(INFIL);                                                     
        UNSPEC(INFIL)=MAX-1;                                                   
        ON ERROR GO TO L2;                                                     
        READ FILE(INFIL) INTO(TRANS_STR);                                      
        H_VERNR=VERNR;                                                         
L2:     SP=(MAX+147)/148;                                                      
        CALL CHOOSE(4);                                                        
I1:     PUT FILE(D) SKIP EDIT(VERSION)(A(94))('  KATALOG')(A(47));             
        ON ERROR GO TO L3;                                                     
        OPEN KATALOG;                                                          
        INDEX_STR=KATALOG_STR;                                                 
        IF F_TRACK=2 THEN GO TO L4;                                            
L3:     PUT FILE(D) SKIP EDIT(VERSION)(A(96))                                  
        ('FEL DISKET I DRIVE# 4')(A(47))('SÄTT IN ARKIVDISKET')(A(47));        
        CALL OUTPUT(1,6);                                                      
        GET SKIP LIST('');                                                     
        GO TO I1;                                                              
L4:     XN='  INDEX   ';                                                       
        PUT FILE(D) SKIP EDIT(VERSION)(A(94))(XN)(A(47));                      
        FSTR1=STR;                                                             
        OPEN INFIL;                                                            
        INDEX_STR=FSTR1;                                                       
        UNSPEC(INFIL)=REC_ANT-1;                                               
        READ FILE(INFIL) INTO(INDEX_STR);                                      
        IF 76 < L_TRACK+SP THEN DO;                                            
           PUT FILE(D) SKIP EDIT(VERSION)(A(96))('ARKIVDISKETTEN ÄR FULL')     
           (A(47))('BYT DISKETT')(A(47));                                      
           CALL OUTPUT(1,6);                                                   
           GET SKIP LIST('');                                                  
           GO TO I1;                                                           
        END;                                                                   
        CALL SEOF(KATALOG);                                                    
        WRITE FILE(KATALOG) FROM(K_STR);                                       
        CLOSE KATALOG;                                                         
                                                                               
        T1='1';                                                                
        UNSPEC(INFIL)=0;                                                       
        ON ERROR GO TO I2;                                                     
        READ KEY(DATUM) FILE(INFIL) INTO(INDEX_STR) KEYTO(INDEX_XN);           
L5:     T1=SUBSTR(INDEX_XN,8,1)+1;                                             
        T8=DATUM CAT '_' CAT T1;                                               
        ON ERROR GO TO I3;                                                     
        READ KEY(T8) FILE(INFIL) INTO(INDEX_STR) KEYTO(INDEX_XN);              
        GO TO L5;                                                              
                                                                               
I2:     T8=DATUM CAT '_' CAT T1;                                               
I3:     CALL CHOOSE(0);                                                        
        T1=SP;                                                                 
        IF SP>0 THEN SUBSTR(TEXT,10,1)=T1;                                     
        SUBSTR(TEXT,12,8)=T8;                                                  
        SUBSTR(TEXT,38,8)=T8;                                                  
                                                                               
                                                                               
        CALL LOAD(TEXT,52);                                                    
END;