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

⟦b61494982⟧ Q1_Text, reclen=79

    Length: 5214 (0x145e)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »COLORBK«

Derivation

└─⟦dbbef6eca⟧ Bits:30008596 DDMQ1-0028_DEMONSTRATION_DISK_LMC_SOURCE_Sept_77
    └─⟦this⟧ »COLORBK« 

Text

/* THIS IS THE SOURCE LISTING FOR COLONIAL SYSTEMS ORDER BOOK PRINT-OUT        
VERSION 7/16/77  */                                                            
DCL   1 HORDER,                                                                
      2 HUSER FIXED(5),                                                        
      2 HORDERDATE CHAR(6),                                                    
      2 HINV# CHAR(5),                                                         
      2 HUSERNAME CHAR(30),                                                    
      2 HPART# CHAR(8),                                                        
      2 HORDERQTY FIXED(6),                                                    
      2 HDISPRICE FIXED(5,2),                                                  
      2 HDISRUN FIXED(5,2),                                                    
      2 HORUNITQTY BINARY;                                                     
DCL BINV# CHAR(5),MM CHAR(2),DD CHAR(2),YY CHAR(2),BORDERDATE CHAR(8);         
DCL A CHAR(1),BUSER FIXED(5),B CHAR(1);                                        
DCL HOFILE FILE;                                                               
S: PUT FILE(D)SKIP LIST('HAVE YOU SORTED THE CUSTOMER CARDS ? ');              
    GET SKIP LIST(A);IF A='N' THEN DO;                                         
    PUT FILE(D)SKIP LIST('PLEASE PUT CUSTOMER CARD SORT DISK IN DRIVE !');     
   GET SKIP LIST('');CALL TYPIST('SORT HOFILE CSCRATCH CUSCARD┣0d┫',29);STOP;     
   END;                                                                        
START: PUT FILE(D)SKIP EDIT('THIS IS THE COLONIAL SYSTEMS ORDER')(A(37))       
('BOOK APPLICATION')(A(37))('(1) INDIVIDUAL CUSTOMER CARD OR')(A(37))          
    ('(2) ALL CUSTOMER CARD')(A(37));GET SKIP LIST(B);IF B='E' THEN STOP;      
    IF (VERIFY(B,'12E')=0) THEN GOTO START;OPEN HOFILE;                        
ASK:  PUT FILE(D)SKIP LIST('TODAY''S DATE : ');GET SKIP LIST(HORDERDATE);      
    MM=SUBSTR(HORDERDATE,1,2);DD=SUBSTR(HORDERDATE,3,2);                       
  YY=SUBSTR(HORDERDATE,5,2);BORDERDATE=MM CAT '/' CAT DD CAT '/' CAT YY;       
    PUT FILE(D) LIST(BORDERDATE,' ? ');GET SKIP LIST(A);                       
    IF A='Y' THEN GOTO PR;GOTO ASK;                                            
PUT FILE(D)SKIP LIST('ARRANGE PLEASE');GET SKIP LIST('');                      
PR: PUT SKIP EDIT('COLONIAL SYSTEMS')(X(13),A);                                
   PUT SKIP EDIT('CUSTOMER CARDS')(X(15),A);                                   
    PUT SKIP(2) LIST('TODAY''S DATE : ',BORDERDATE );                          
    IF B='1' THEN DO;                                                          
ASK#: PUT FILE(D)SKIP LIST('ENTER CUSTOMER # ');GET SKIP LIST(HUSER);          
    PUT FILE(D)EDIT(HUSER)(P'99999')(' ? ')(A);GET SKIP LIST(A);               
    IF A¬='Y' THEN GOTO ASK#;ON ERROR GOTO MESG;                               
    READ KEY(HUSER)FILE(HOFILE)INTO(HORDER);UNSPEC(HOFILE)=UNSPEC(HOFILE)-1;   
    GTOTAL=0;GK=0;END;                                                         
BINV#='ZZZZZ';LK=0;BUSER=0;GTOTAL=0;                                           
BKAG: ON ENDFILE GOTO FIN;READ FILE(HOFILE)INTO(HORDER);                       
 IF HUSER¬=BUSER & LK¬=0 THEN DO;PUT EDIT('ORDER TOTAL = ')(X(2),A(14))        
  (GTOTAL)(P'ZZZ,ZZ9V.99');GTOTAL=0;LK=0;GK=1;END;                             
    IF HUSER¬=BUSER THEN DO;IF B='1' & GK¬=0 THEN GOTO START;                  
    PUT SKIP (2)EDIT('USER  # : ')(A)(HUSER)(P'99999');                        
    PUT SKIP EDIT('USER NAME: ')(A)(HUSERNAME)(A);END;                         
IF HINV#¬=BINV# & LK¬=0 THEN DO;PUT EDIT('ORDER TOTAL = ')(X(2),A(14))         
    (GTOTAL)(P'ZZZ,ZZ9V.99');GTOTAL=0;GK=1;END;                                
MM=SUBSTR(HORDERDATE,1,2);DD=SUBSTR(HORDERDATE,3,2);YY=SUBSTR(HORDERDATE,5,2); 
    BORDERDATE=MM CAT '/' CAT DD CAT '/' CAT YY;                               
    IF HINV#¬= BINV# THEN PUT SKIP EDIT(BORDERDATE)(A(9))(HINV#)(A(6));        
    ELSE PUT SKIP EDIT(' ')(A(15));                                            
    PUT EDIT(HPART#)(A(9))(HORDERQTY)(P'ZZZ,ZZ9');                             
    KQ=((HORDERQTY/HORUNITQTY)*HDISPRICE);                                     
    IF SUBSTR(HPART#,1,2)='SP' THEN KQ=HORDERQTY*HDISPRICE;BINV#=HINV#;LK=1;   
    BUSER=HUSER;GTOTAL=GTOTAL+KQ;                                              
    PUT EDIT(KQ)(P'ZZZ,ZZ9V.99');                                              
    IF HDISRUN¬=0 & SUBSTR(HPART#,1,2)='SP' THEN DO;                           
    PUT SKIP EDIT('RUNNING CHARGE')(X(15),A(17))                               
(HDISRUN*(BSQ/HORDERQTY))(P'ZZZ,ZZ9V.99');                                     
GTOTAL=GTOTAL+(DISRUN*(BSQ/HORUNITQTY));                                       
END;BSQ=ORDERQTY;GOTO BKAG;                                                    
MESG: PUT FILE(D)SKIP LIST('NO SUCH CUSTOMER # ');GET SKIP LIST('');           
    GOTO START;                                                                
FIN:PUT EDIT('ORDER TOTAL = ')(X(2),A(14))(GTOTAL)(P'ZZZ,ZZ9V.99');PUT SKIP(5);
    GOTO START;END;