|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5214 (0x145e) Types: Q1_Text, reclen=79 Notes: q1file Names: »COLORBK«
└─⟦dbbef6eca⟧ Bits:30008596 DDMQ1-0028_DEMONSTRATION_DISK_LMC_SOURCE_Sept_77 └─⟦this⟧ »COLORBK«
/* 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;