|
|
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: 10428 (0x28bc)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »COLTRANP«
└─⟦dbbef6eca⟧ Bits:30008596 DDMQ1-0028_DEMONSTRATION_DISK_LMC_SOURCE_Sept_77
└─⟦this⟧ »COLTRANP«
/* THIS IS A SOURCE LISTING FOR COLONIAL STOCK TRANSACTION LISTING 7/07/77 */
DCL 1 TRAN,
2 TDATE CHAR (6),
2 TCODE CHAR(1),
2 T# CHAR (5),
2 TITEM# CHAR (3),
2 TPART# CHAR (8),
2 TDESCRIPT CHAR (25),
2 TREF# CHAR (6),
2 TQUANTITY FIXED (5),
2 TBALANCE FIXED (6);
DCL 1 MATERIAL,
2 PART# CHAR(8),
2 DESCRIPT CHAR(25),
2 STOCK_ON_HAND FIXED(6),
2 LASTDATE CHAR(6),
2 FSCH(5) FIXED(5),
2 DEALPRICE(5) FIXED(5,2),
2 DIRPRICE(5) FIXED(5,2),
2 DIS FIXED(2),
2 UNITQTY BINARY;
DCL TFILE FILE,S# CHAR (1),S CHAR (1),A CHAR (1),SDATE CHAR (6),INVFILE FILE;
DCL BQUAN FIXED (11),BENTRY FIXED (11),CHITEM# CHAR (3),ADATE CHAR (6);
DCL PPDATE CHAR (8),PMONTH CHAR (2),PDATE CHAR (2),PYEAR CHAR(2),B CHAR (1);
DCL ATCODE CHAR(1),APART# CHAR(8),ADESCRIPT CHAR(25),DATE CHAR(6);
DCL SQUANTITY FIXED(6),CHT# CHAR(5),AITEM# CHAR(3),ATREF# CHAR(6);
START: OPEN TFILE;
PUT FILE (DISPLAY)SKIP LIST ('THIS IS A TRANSACTION LISTING PROGRAM');
PUT FILE (DISPLAY)LIST ('HAVE YOU SORTED TFILE ');GET SKIP LIST (A);
PUT FILE (DISPLAY) LIST (A);PUT FILE (DISPLAY)LIST(' ');
IF (A='N') THEN DO;CALL TYPIST ('SORT TFILE SCRATCH COLLIST┣0d┫',27);STOP;END;
IF (A¬='Y') THEN GOTO START;
CH: PUT FILE (DISPLAY) LIST (' DO YOU WANT TO CHANGE TFILE ? ');
GET SKIP LIST(A);PUT FILE (DISPLAY)LIST (A);
PUT FILE (DISPLAY)LIST (' ');IF (A='Y') THEN DO;OPEN INVFILE;
RECH: PUT FILE (DISPLAY) SKIP LIST ('DATE : ');GET SKIP LIST (TDATE);
IF (TDATE='END ') THEN GOTO START;PUT FILE (DISPLAY) LIST(TDATE);
PUT FILE (DISPLAY)LIST (' ');
PUT FILE (DISPLAY) LIST ('REF#1 : ');
GET SKIP LIST(CHT#);PUT FILE (DISPLAY) LIST (CHT#);
PUT FILE (DISPLAY)LIST (' ');
PUT FILE (DISPLAY)LIST ('ITEM# : ');GET SKIP LIST (CHITEM#);
PUT FILE (DISPLAY) LIST (CHITEM#);
PUT FILE (DISPLAY)LIST (' ');
PUT FILE (DISPLAY) LIST ('IS THE INFORMATION CORRECT ? ');GET SKIP LIST (A);
IF (A='N') THEN GOTO RECH;IF (A¬='Y') THEN GOTO RECH;
ON ERROR GOTO MESG;
READ KEY (TDATE) FILE (TFILE) INTO (TRAN);
IF (CHT#=T#)THEN GOTO RUP;ON ERROR GOTO MESG;
READ KEY (CHT#) FILE (TFILE)INTO (TRAN)KEYTO (T#);
RUP: IF TITEM#=CHITEM# THEN GOTO CHUP;ON ERROR GOTO MESG;
READ KEY (CHITEM#) FILE (TFILE) INTO (TRAN) KEYTO (TITEM#);
CHUP: PUT FILE (DISPLAY)SKIP LIST('DATE : ');GET SKIP LIST (ADATE);
IF (ADATE ¬=' ') THEN TDATE=ADATE;PUT FILE (DISPLAY)LIST(TDATE);
PUT FILE (DISPLAY) LIST (' ');
PUT FILE (DISPLAY)LIST('ITEM # : ');GET SKIP LIST(AITEM#);
IF AITEM#¬=' ' THEN TITEM#=AITEM#;PUT FILE(DISPLAY)LIST(TITEM#);
PUT FILE(DISPLAY)LIST(' REF# 1 : ');
GET SKIP LIST(CHT#);IF CHT#¬=' ' THEN T#=CHT#;PUT FILE(DISPLAY)LIST(T#);
PUT FILE(DISPLAY)LIST(' REF# 2 : ');
GET SKIP LIST(ATREF#);IF ATREF#¬=' ' THEN TREF#=ATREF#;
PUT FILE(DISPLAY)LIST(TREF#);PUT FILE(DISPLAY)LIST(' ');
PUT FILE (DISPLAY)LIST('PART# : ');
GET SKIP LIST (APART#); IF APART#¬=' ' THEN TPART#=APART#;
PUT FILE (DISPLAY)LIST(TPART#);PUT FILE(DISPLAY)LIST(' ');
PUT FILE (DISPLAY)LIST('DESCRIPT: ');GET SKIP LIST (ADESCRIPT);
IF ADES¬=' ' THEN DESCRIPT=ADES;
PUT FILE (DISPLAY)LIST(TDESCRIPT);
PUT FILE (DISPLAY)LIST (' ');
SQUANTITY=TQUANTITY;
PUT FILE (DISPLAY)LIST (' QUANTITY: ');
GET SKIP LIST (TQUANTITY); PUT FILE (DISPLAY) EDIT(TQUANTITY)(P'ZZ,ZZ9');
PUT FILE (DISPLAY)LIST (' ');
READ KEY(TPART#)FILE (INVFILE) INTO (MATERIAL);
IF SQUANTITY=TQUANTITY THEN GOTO HHCH;IF SQUANTITY>TQUANTITY THEN DO;
IF TCODE='1' THEN STOCK_ON_HAND=STOCK_ON_HAND + (SQUANTITY-TQUANTITY);
IF TCODE='2' THEN STOCK_ON_HAND=STOCK_ON_HAND - (SQUANTITY-TQUANTITY);
END; IF SQUANTITY<TQUANTITY THEN DO;
IF TCODE='1' THEN STOCK_ON_HAND=STOCK_ON_HAND - (TQUANTITY-SQUANTITY);
IF TCODE='2' THEN STOCK_ON_HAND=STOCK_ON_HAND + (TQUANTITY-SQUANTITY);
END;REWRITE FILE (INVFILE)FROM (MATERIAL); TBALANCE=STOCK_ON_HAND;
HHCH: REWRITE FILE(TFILE)FROM(TRAN);GOTO RECH;
MESG: PUT FILE (DISPLAY) SKIP LIST ('NO SUCH TRANSACTION! TRY AGAIN. ');
GET SKIP LIST ('');GOTO START;
END;
PUT FILE (DISPLAY)SKIP LIST('DO YOU WANT TO UPDATE THE DAILY ');
PUT FILE (DISPLAY)LIST('TRANSACTION ONTO THE HISTORY FILE ? ');
GET SKIP LIST (A);IF A='Y' THEN DO;
PUT FILE (DISPLAY) SKIP LIST('PUT HISTFL INTO DRIVE! ');GET SKIP LIST('');
CALL TYPIST('JOIN HISTFL TFILE CL ┣0d┫',22); STOP;END;
ASKALL: PUT FILE (DISPLAY) LIST (' DO YOU WANT ALL TO BE LISTED ? ');
GET SKIP LIST (A);IF (A='Y') THEN DO;S='1';GOTO PAPARR;END;
IF (A¬='N') THEN GOTO ASKALL;
PUT FILE (DISPLAY) LIST (A,' ');
PUT FILE (DISPLAY) LIST ('DATE OF TRANSACTION : ');GET SKIP LIST (DATE);
PUT FILE (DISPLAY) LIST (DATE);
PAPARR: PUT FILE (DISPLAY) LIST (' ARRANGE PAPER PLEASE ! ');
GET SKIP LIST ('');
TRPRINT: ON ENDFILE GOTO FINISH;READ FILE (TFILE) INTO (TRAN);
IF S¬='1' THEN DO;
IF (DATE¬=TDATE) THEN GOTO TRPRINT; END; SDATE=TDATE;
PMONTH=SUBSTR(TDATE,1,2);PDATE=SUBSTR(TDATE,3,2);PYEAR=SUBSTR(TDATE,5,2);
PPDATE=PMONTH CAT '/' CAT PDATE CAT '/' CAT PYEAR;
HEAD: PUT SKIP (3) LIST ('COLONIAL SYSTEMS STOCK TRANSACTION LISTING');
PUT LIST (' DATE: ',PPDATE);
PUT SKIP (3) LIST('T# IT# PART# REF#1 DESCRIPTION REF#2 ');
PUT LIST (' IN OUT BALANCE'); BQUAN=0;BENTRY=0;
TLST: PUT SKIP LIST (TCODE,' ',TITEM#,' ',TPART#,' ',T#,' ',TDESCRIPT);
BQUAN=TQUANTITY+BQUAN;BENTRY=BENTRY+1;
IF(TREF#='A')THEN DO;S#=SUBSTR(TREF#,1,1);TREF#=' ' CAT S# CAT ' ';END;
IF(TREF#='D')THEN DO;S#=SUBSTR(TREF#,1,1);TREF#=' ' CAT S# CAT ' ';END;
PUT LIST (TREF#,' ');
IF (TCODE='1') THEN DO;PUT LIST (' ');PUT EDIT (TQUANTITY)(P'ZZ,ZZ9');
END; IF (TCODE='2') THEN DO; PUT EDIT (TQUANTITY)(P'ZZ,ZZ9');
PUT LIST (' ');
END;IF (TCODE='3') THEN DO;IF (TREF#=' A ') THEN DO;
PUT EDIT (TQUANTITY)(P'ZZ,ZZ9');PUT LIST (' ');END;
IF(TREF#=' D ')THEN DO;PUT LIST (' ');PUT EDIT(TQUANTITY)(P'ZZ,ZZ9');
END;END; PUT LIST (' '); PUT EDIT (TBALANCE)(P'ZZZ,ZZ9');
ON ENDFILE GOTO FINISH;
READ FILE (TFILE) INTO (TRAN);
IF (S¬='1') THEN DO;
IF (DATE¬=TDATE) THEN GOTO FINISH;END;
IF (S='1')THEN DO;IF(TDATE¬=SDATE)THEN DO;PUT SKIP(3)LIST('TOTAL # OF ENTRY=');
PUT EDIT (BENTRY)(P'ZZ,ZZZ,ZZZ,ZZ9');
PUT LIST (' BATCH QUANTITY TOTAL= ');
PUT EDIT (BQUAN)(P'ZZ,ZZZ,ZZZ,ZZ9');
UNSPEC(TFILE)=UNSPEC(TFILE)-1; GOTO TRPRINT;END;END;GOTO TLST;
FINISH: PUT SKIP (3) LIST ('TOTAL # OF ENTRY= ');
PUT EDIT (BENTRY)(P'ZZ,ZZZ,ZZZ,ZZ9');
PUT LIST (' BATCH QUANTITY TOTAL= ');PUT EDIT (BQUAN)(P'ZZ,ZZZ,ZZZ,ZZ9');
PUT SKIP LIST ('');GOTO START;END;