DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦0dc8e5820⟧

    Length: 23188 (0x5a94)
    Notes: pts_type(SC)
    Names: »DKDSTM.SC«

Derivation

└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
    └─⟦this⟧ »DEMO6800/DKDSTM.SC« 
└─⟦e276fd206⟧ Bits:30009696 Philips computer tape "600413"
    └─⟦this⟧ »DEMO6800/DKDSTM.SC« 

PTS(SC)

         IDENT    DKDSTM                DAILY STATEMENTS
	DDUM	DEMODD			
	PDIV				
	EXPROC	PAJRN			 
	EXPROC	PVATTP
	EXPROC	PWDETP
	EXPROC	PXSKIP
	EXPROC	PZPOSD
	EXPROC	QENTRS			 
	EXPROC	QGATYP			 
	EXPROC	XCLAMP
	EXPROC	XEERR 
	EXPROC	ZCRDD			 
	EXPROC	ZDRWRD			 
	EXPROC	ZMRDF 
	ENTRY	DKDSTM 
	ENTRY	EQPDS
************************************************************************
**
*   PROCEDURE:    DKDSTM*
*   FUNCTIONAL DESCRIPTION:*
*      PRINT DAILY STATEMENTS FOR:*
*      1. AN INDIVIDUAL (CHEQUE OR SAVINGS) ACCOUNT ON A TTP/TEP *
*      2. ALL CHEQUE ACCOUNTS ON A GTP OR LP.*
*      CHECKS ON THE PRINTER TYPE HAVE BEEN DONE IN CEGACT.*
*      FOR THE ALL ACCOUNT OPTION THE ACCOUNT RECORDS MUST BE READ,*
*      OTHERWISE THE ACCOUNT RECORD HAS BEEN READ IN CEGACT.*
*      (THE LOGICAL RECORD NUMBER IS IN NDLRN1) 
*      THE ACCOUNT RECORD MUST BE UNDER EXCLUSIVE ACCES AND AVAILABLE*
*      IN UWB 'UA1'.*
*      THE TRANSACTION RECORDS ARE READ INTO UWB 'UT2', SO 'UT1'*
*      REMAINS UNCHANGED.*
*      'FCBUFFER' IS THE ONLY BUFFER USED BY THIS ROUTINE.*
*      FOR EACH UNSTATEMENTED TRANSACTION OF AN ACCOUNT A*
*      DAILY-STATEMENT LINE IS PRINTED.*
*      FOR CHEQUE ACCOUNTS ADLASTRS IS UPDATED,    THE STATUS*
*      IS SET TO 3 IF IT WAS 2 BEFORE *
*      AND THE ACCOUNT RECORD IS REWRITTEN
*   USE OF VARIABLES:*
*      IDACTNR1: CONTAINS THE NUMBER OF THE ACCOUNT FOR WHICH*
*                STATEMENTING MUST BE PERFORMED.*
*                IF IDACTNR1 = 0 THEN ALL CHEQUE ACCOUNTS MUST BE DONE*
*      IDACTNR2: USED TO SAVE THE INITIAL VALUE OF IDACTNR1.*
*      SBCHQACT: IS THE ACCOUNT A CHEQUE ACCOUNT ?*
*      IDAMT1:   DEBIT AMOUNT IN PRINT LINE*
*      IDAMT2:   CREDIT AMOUNT IN PRINT LINE*
*      SBFIRST:  USED TO PRINT THE STATEMENT DATE ONLY ONCE FOR*
*                EACH ACCOUNT.*
*      NDPRTTRS:   POINTS TO THE NEXT TRANSACTION TO BE PRINTED.*
*      NDNEWLINE:  POINTS TO THE LINE ON WHICH MUST BE PRINTED.*
*      UA1 (UWB):  CONTAINS THE ACCOUNT RECORD.*
*      UT2 (UWB):  USED TO READ THE TRANSACTION RECORDS.*
*      FCBUFFER:   BUFFER FOR DATABASE-I/O AND FORMAT-I/O.*
**
************************************************************************
DKDSTM	PROC				
DK000					
	SET	SBDSTM			
	MOVE	TDTRSCDE,=D'72'			
	PERF	PAJRN,=W'1'	IDENTIFICATION PRINT		
* *
* IF IDACTNR1 = 0 THEN STATEMENTING MUST BE PERFORMED ON ALL CHEQUE*
* ACCOUNTS, ELSE IDACTNR1 CONTAINS THE NUMBER OF THE ACCOUNT TO BE*
* HANDLED AND THE ACCOUNT RECORD IS AVAILABLE IN UWB UA1*
* *
	MOVE	IDACTNR2,IDACTNR1	SAVE IDACTNR1 FOR FUTURE TESTS		
**
* DISPLAY MESSAGE TO MOUNT THE APROPRIATE STATIONARY IN/ON PRINTER*
* *
	PERF	XCLAMP,KW4,KW1	LAMP 4 ON
	CBE	IDACTNR2,=D'0',DK050	ALL ACCOUNT OPTION
* TELLER PRINTER*
	PERF	PVATTP,DSVCHPRT	ATTACH PRINTER
	CBNE	RDPRTTYP,=D'0',DK010
* 
* 6371-PRINTER CONTROL
* 
	MOVE	WW1,=W'18'
	MOVE	VCDOCPAR,=C'1010313801100030000000' 
	DSC2	DSVCHPRT,X'11',KW0,VCDOCPAR,WW1 
	DSC1	DSVCHPRT,X'00',KW0
	MOVE	WW1,=X'8066'
	DSC1	DSVCHPRT,X'0D',WW1
DK010 
	PERF	XEERR,=W'63',KW3	TTP OR TEP		 
	B	DK100			
DK050					
	CBE	YDMLPINT,=D'0',DK060 
* LINE PRINTER
	PERF	PVATTP,DSLNEPRT 
	B	DK090
* GENERAL PRINTER 
DK060 
	PERF	PVATTP,SPDSPRT
DK090 
	PERF	XEERR,=W'62',KW3	LP OR GTP		
DK100 
	PERF	XCLAMP,KW4,KW0	LAMP 4 OFF 
	TBT	SBCANCEL,DK980 
	CBG	IDACTNR2,=D'0',DK300	SINGLE ACCOUNT		
* *
* SCAN ALL CHEQUE ACCOUNTS*
* *
	MOVE	IDACTNR1,=D'167998'	INITIALISE		 
* *
* NEXT CHEQUE ACCOUNT*
* *
DK200					
	ADD	IDACTNR1,=D'2'			
	CBG	IDACTNR1,YDLASCHQ,DK800	NO MORE CHEQUE ACCOUNTS
* *
* READ THE ACCOUNT RECORD*
* *
	MOVE	ADACTRNR,IDACTNR1			
	MUL	ADACTRNR,KDSHIFT			
	PERF	ZCRDD,ADACTRNR,NDLRN1,KW1			
	TBT	SBCANCEL,DK980			
	TBF	SBRECAVB,DK200	NEXT CHEQUE ACCOUNT		
* *
* THE ACCOUNT RECORD HAS BEEN READ*
* *
	CBE	ADSTATUS,=D'3',DK200	CLOSED WITH STATEMENTING		
	CBE	ADSTMTRS,ADLASTRS,DK200	NO TRANS. TO BE STATEM.
* *
* A NON CLOSED ACCOUNT HAS BEEN READ*
* *
DK300					
	PERF	QGATYP,IDACTNR1	SET SBCHQACT ACC. TO TYPE 
	TBT	SBRVS,DK304
	PERF	PAJRN,=W'2'	ACCOUNT NR. AND TRANS. CODE		
	B	DK308
* 
* IF THE REVERSAL SWITCH IS ON, IT MUST BE TEMPORARILY CLEARED
* FOR THE PRINTING OF LINE TYPE 2 
* 
DK304 
	CLEAR	SBRVS
	PERF	PAJRN,=W'2' 
	SET	SBRVS
DK308 
* *
* PRINT THE HEADER LINE*
* *
	MOVE	ICTEXT2,ACNAME			
	CBG	IDACTNR2,=D'0',DK320	SINGLE ACCOUNT ON TTP/TEP 
	CBNE	YDMLPINT,=D'1',DK310
* PRINT ON THE LINE PRINTER 
	EDWRT	DSLNEPRT,PRT013
	B	DK350
DK310 
* PRINT ON THE GTP
	PERF	PXSKIP,SPDSPRT	SKIP A LINE
	EDWRT	SPDSPRT,PRT013			
	B	DK350
* PRINT ON THE TTP/TEP
DK320 
	MOVE	NDNEWLNE,=D'46' 
	PERF	PZPOSD,NDNEWLNE	POSITION VOUCHER
	EDWRT	DSVCHPRT,PRT013
	SUB	NDNEWLNE,=D'14'	SKIP LINES 
DK350 
	SET	SBFIRST	PRINT STATM. DATE ONLY ONCE		
	MOVE	NDPRTTRS,ADSTMTRS	WORKFIELD		
* *
* NEXT TRANSACTION TO BE STATEMENTED*
* *
DK400					
	CBE	ADSTMTRS,ADLASTRS,DK700	NO MORE TRANSACTIONS		
	PERF	QENTRS,NDPRTTRS	NEXT TRANS. TO BE STATEMENTED		
* *
* READ THE TRANSACTION RECORD IN UWB UT2*
* *
	MOVE	UDTRSRNR,ADACTRNR			
	ADD	UDTRSRNR,NDPRTTRS	TRANS. RECORD KEY		
	PERF	ZCRDD,UDTRSRNR,WDEC1,KW1			
	TBT	SBCANCEL,DK980			
	TBF	SBRECAVB,DK700	TRANS. RECORD NOT FOUND		
* *
* TRANSACTION RECORD HAS BEEN FOUND, PRINT A LINE*
* *
DK500					
	PERF	EQPDS	PRINT A DAILY STATEMENT LINE
* *
* UPDATE LAST TRANSACTION STATEMENTED, FOR A SAVINGS ACCOUNT THE*
* ACCOUNT RECORD WILL NOT BE REWRITTEN, SO UPDATING OF THIS FIELD IN*
* THE UWB WILL DO NO HARM*
* *
	MOVE	ADSTMTRS,NDPRTTRS			
	B	DK400	NEXT TRANSACTION		
* *
* ALL TRANSACTIONS OF THE SPECIFIED ACCOUNT HAVE BEEN PRINTED,*
* UPDATE AND REWRITE THE ACCOUNT RECORD (FOR CHEQUE ACCOUNTS ONLY).*
* *
DK700					
	CBG	IDACTNR2,=D'0',DK705	SINGLE ACCOUNT
	CBE	YDMLPINT,=D'1',DK705	LINE PRINTER
	PERF	PXSKIP,SPDSPRT	LINE FEED ON A GTP 
DK705 
	TBF	SBCHQACT,DK750			
	CBNE	ADSTATUS,=D'2',DK710			
	CBNE	ADSTMTRS,ADLASTRS,DK710	ALL TRANS. STATEMENTED ?		
	MOVE	ADSTATUS,=D'3'	CLOSED WITH STATEMENTING		
* 
* REWRITE THE ACCOUNT RECORD
* 
DK710					
	PERF	ZDRWRD,ADACTRNR,NDLRN1			
	TBT	SBCANCEL,DK980			
DK750					
	CBG	IDACTNR2,=D'0',DK800	SINGLE ACCOUNT
	B	DK200	ALL ACCOUNT OPTION 
* *
* ALL ACCOUNTS HAVE BEEN DONE*
* *
DK800					
DK980					
	CBE	IDACTNR2,=D'0',DK984 
* 
* RELEASE VOUCHER FOR TTP/TEP 
* 
	DSC0	DSVCHPRT,1
	PERF	PWDETP,DSVCHPRT 
	B	DK990
* 
* ALL ACCOUNT OPTION, GIVE A TRANSACTION SEQUENCE NUMBER
* 
DK984 
	ADD	YDLASSEQ,=D'1' 
	MOVE	TDTRSSEQ,YDLASSEQ 
	CBE	YDMLPINT,=D'0',DK986 
* LINE PRINTER
	PERF	PWDETP,DSLNEPRT	DETACH LNE PRINTER
	B	DK990
* GENERAL PRINTER 
DK986 
	PERF	PWDETP,SPDSPRT
* 
* EXIT FROM D-S 
* 
DK990 
	CLEAR	SBDSTM 
	RET				
	PEND				
************************************************************************
* *
* DAILY-STATEMENT ACCOUNT HEADER LINE*
**
************************************************************************
PRT013	FRMT				
	FTEXT	'01'			
	FTAB	3			
	FMEL	'999999',IDACTNR1			
	FTAB	12			
	FCOPY	ICTEXT2			
	FTAB	32			
	FILLR	' ',8			
	FMEND				
************************************************************************
* 
* PRINT A DAILY STATEMENT LINE
* (SUBROUTINE FOR DKDSTM) 
* 
************************************************************************
EQPDS	PROC
EQ000 
* CLEAR SWITCHES USED*
	CLEAR	SBDSDEP			
	CLEAR	SBDSWDR			
	CLEAR	SBDSTRF			
	CLEAR	SBDSRVS			
* SET SWITCHES DEPENDING ON THE TRANSACTION CODE
	CBE	UDTRSCDE,=D'1',EQ100	IN		
	CBE	UDTRSCDE,=D'7',EQ100	NOBOOK IN		
	CBE	UDTRSCDE,=D'2',EQ120	OUT		
	CBE	UDTRSCDE,=D'16',EQ120	CHEQUE OUT		
	CBE	UDTRSCDE,=D'12',EQ140	TRANSFER (FROM)		
	CBE	UDTRSCDE,=D'11',EQ140	TRANSFER (TO)		
	B	EQ180			
EQ100					
	SET	SBDSDEP			
	B	EQ180			
EQ120					
	SET	SBDSWDR			
	B	EQ180			
EQ140					
	SET	SBDSTRF			
EQ180					
	CBNL	UDAMOUNT,=D'0',EQ200			
	SET	SBDSRVS			
* 
* MUST AMOUNT BE PRINTED AS A DEBIT OR CREDIT AMOUNT ?
* 
EQ200					
	CBE	UDTRSCDE,=D'1',EQ250	IN		
	CBE	UDTRSCDE,=D'7',EQ250	NOBOOK IN		
	CBE	UDTRSCDE,=D'11',EQ250	TRANSFER (TO)		
* TRANSACTION CODE IS 2, 16 OR 12*
	TBT	SBDSRVS,EQ290	REVERSAL		
	B	EQ270			
* TRANSACTION CODE IS 1, 7 OR 11*
EQ250					
	TBF	SBDSRVS,EQ290	NOT REVERSAL		
* *
* AMOUNT MUST BE PRINTED AS DEBIT AMOUNT*
* *
EQ270					
	MOVE	IDAMT1,UDAMOUNT			
	MOVE	IDAMT2,=D'0'			
	B	EQ300			
* *
* AMOUNT MUST BE PRINTED AS CREDIT AMOUNT*
* *
EQ290					
	MOVE	IDAMT1,=D'0'			
	MOVE	IDAMT2,UDAMOUNT			
* *
* PRINT A LINE ON LP, GTP OR TTP/TEP*
* *
EQ300					
	MOVE	SPBINW4,=W'61'
	PERF	ZMRDF,SPBINW4,KW1	READ INTO FCBUFFER
	CBG	IDACTNR2,=D'0',EQ320	SINGLE ACCOUNT
	CBNE	YDMLPINT,=D'1',EQ310			
* PRINT ON LINE PRINTER*
	EDWRT	DSLNEPRT,FCBUFFER
	B	EQ990
EQ310					
* PRINT ON A GTP*
	EDWRT	SPDSPRT,FCBUFFER			
	B	EQ990			
EQ320					
* PRINT ON A TTP/TEP*
	SUB	NDNEWLNE,=D'2'	NEXT LINE 
	PERF	PZPOSD,NDNEWLNE	POSITION VOUCHER
	EDWRT	DSVCHPRT,FCBUFFER			
EQ990					
	CLEAR	SBFIRST	PRINT STATEMENT DATE ONLY ONCE		
	RET
	PEND 
************************************************************************
	END				

Full view