|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 23188 (0x5a94)
Notes: pts_type(SC)
Names: »DKDSTM.SC«
└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
└─⟦this⟧ »DEMO6800/DKDSTM.SC«
└─⟦e276fd206⟧ Bits:30009696 Philips computer tape "600413"
└─⟦this⟧ »DEMO6800/DKDSTM.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