|
|
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: 26994 (0x6972)
Notes: pts_type(SC)
Names: »DNTRF.SC«
└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
└─⟦this⟧ »PTSDEMO/DNTRF.SC«
IDENT DNTRF TRANSFER
DDUM DEMODD
PDIV
ENTRY DNTRF
ENTRY SPAP19
ENTRY SPAP20
EXPROC DKDSTM
EXPROC PAJRN
EXPROC PBBOOK
EXPROC PCVCH
EXPROC QENTRS
EXPROC QGATYP
EXPROC XBFMT
EXPROC ZCRDD
EXPROC ZDRWRD
EXPROC ZHWRID
EXPROC ZGREA
************************************************************************
* PROCEDURE NAME:*
* DNTRF TRANSFER*
* FUNCTIONAL DESCRIPTION:*
* THE PROCEDURE TRANSFERS AN AMOUNT FROM ONE ACCOUNT-*
* RECORD TO ANOTHER.*
* THE ACCOUNT-RECORD(FROM) IS READ INTO UA1-WORKBLOCK.*
* THE ACCOUNT-RECORD (TO) IS READ INTO UA2-WORKBLOCK.*
* THE TWO ACOUNT-RECORDS ARE UPDATED.*
* UT1-WORKBLOCK, TRANSACTION-RECORD FOR THE *
* ACCOUNT-RECORD(FROM), IS FILLED WITH THE USUAL DATA.*
* UT2-WORKBLOCK, SAME FOR ACCOUNT-RECORD(TO).*
**
* BOTH TRANSACTION AND BOTH ACCOUNT-RECORDS ARE*
* REWRITTEN TO THE DATABASE.*
**
* THE OPERATOR-BALANCE IS UPDATED.*
**
* IN CASE OF A TERMINAL-PRINTER AND A SAVINGS-ACCOUNT,*
* MODULE PBBOOK IS PERFORMED FOR ACCOUNT-RECORD(FROM).*
**
* IN CASE OF A TERMINAL-PRINTER AND A CHEQUE-ACCOUNT,*
* MODULE PCVCH IS PERFORMED FOR ACOOUNT-RECORD(FROM).*
**
* PROCEDURES USED:*
**
* PAJRN PRINT JOURNAL-ROLL*
* PBBOOK PRINT BOOK*
* PCVCH PRINT VOUCHER*
* XBFMT SCREEN-CONTROL*
* ZCRDD READ DATABASE
* ZDRWRD WRITE DATABASE*
* ZGREA RELEASE EXCLUSIVE ACCESS *
* ZHWRID REWRITE OR INSERT RECORD ON DATABASE*
**
************************************************************************
DNTRF PROC
DN000
MOVE IDACTNR1,=D'0'
*
* THE INPUTFIELDS IN LINE 2 OF THE TRANSFERSCREEN ARE CLEARED
* IF THE ACCOUNTNR. KEYED-IN IS A CHEQUE-ACCOUNT, LINE 2
* IS REDISPLAYED IN ANOTHER FORMAT
*
*
* DISPLAY SCREEN: DEFAULT FOR SAVINGS-ACCOUNT
*
TBF SBFT80,DN010
PERF XBFMT,=W'71'
B DN020
DN010
PERF XBFMT,=W'45'
DN020
TBF SBCANCEL,DN050
PERF PAJRN,=W'2'
B DN999
* *
* UA1-WORKBLOCK CONTAINS ACCOUNT-RECORD(FROM); ADNEWBAL IS UPDATED*
* UA2-WORKBLOCK CONTAINS ACCOUNT-RECORD(TO); TDAMOUNT CONTAINS*
* THE AMOUNT OF THE TRANSFER*
**
DN050
**
* PRINT JOURNAL-ROLL*
**
MOVE IDACTNR1,ADACTRNR
DIV IDACTNR1,KDSHIFT
MOVE TDTRSCDE,=D'12'
PERF PAJRN,=W'2'
MOVE ICTEXT3,YCCCY(KW4) SYSTEM CURRENCY
PERF PAJRN,=W'4'
MOVE UDTRSCDE,=D'11'
PERF PAJRN,=W'8'
DN100
**
* UPDATE ACCOUNT-RECORD(FROM)*
**
PERF QENTRS,ADLASTRS UPDATE LAST TRANSACTION
*
* TDAMOUNT CONTAINS AMOUNT KEYED IN BY THE OPERATOR
*
TBF SBRVS,DN110
MUL TDAMOUNT,=D'-1'
DN110
SUB ADBAL,TDAMOUNT
ADD ADWDRCUM,TDAMOUNT
ADD YDLASSEQ,=D'1'
MOVE ADLASSEQ,YDLASSEQ
DN200
**
* UPDATE ACCOUNT-RECORD(TO)*
**
ADD BDBAL,TDAMOUNT
PERF QENTRS,BDLASTRS UPDATE LAST TRANS.
DN210
ADD BDDEPCUM,TDAMOUNT
MOVE BDLASSEQ,ADLASSEQ
DN300
**
* UPDATE TRANSACTION-RECORD(FROM)*
**
MOVE TDTRSRNR,ADACTRNR
ADD TDTRSRNR,ADLASTRS
MOVE TDTRSSEQ,ADLASSEQ
MOVE TDNEWBAL,ADBAL
DN400
*
* UPDATE TRANSACTION-RECORD(TO)
*
MOVE UDTRSRNR,BDACTRNR
ADD UDTRSRNR,BDLASTRS
MOVE UDTRSSEQ,BDLASSEQ
MOVE UDAMOUNT,TDAMOUNT
MOVE UDNEWBAL,BDBAL
MOVE UDACTFRM,IDACTNR1
DN500
**
* (RE)WRITE ACCOUNT- AND TRANSACTIONRECORDS*
**
PERF ZHWRID,TDTRSRNR,NDLRN3
TBT SBCANCEL,DN999
PERF ZHWRID,UDTRSRNR,NDLRN3
TBT SBCANCEL,DN999
PERF ZDRWRD,ADACTRNR,NDLRN1
TBT SBCANCEL,DN999
PERF ZDRWRD,BDACTRNR,NDLRN2
TBT SBCANCEL,DN999
*
* UPDATE OPERATOR BALANCES
*
ADD ODCASH(KW2,KW2),TDAMOUNT
*
* PRINT PASSBOOK OR VOUCHER
*
DN700
CBE RDPRTTYP,=D'3',DN705
CBG RDPRTTYP,=D'1',DN999
DN705
TBT SBCHQACT,DN710
PERF ZCRDD,ADACTRNR,NDLRN1,KW1 READ ACCOUNT FOR PBBOOK
TBT SBCANCEL,DN999
PERF PBBOOK
B DN999
DN710
PERF PCVCH,=W'2'
DN999
RET
PEND
************************************************************************
SPAP19 PROC XWRET
PBIN XWRET
S19000
*
* RELEASE EXCLUSIVE ACCES FIRST
*
PERF ZGREA
*
* THE VALUES OF SPBINW2 AND SPINPUT ARE DESTROYED BY
* THE KI-INSTRUCTIONS IN PBBOOK OR DKDSTM, SO SAVE THEM
* SPBINW2 IS SAVED IN IWINDEX1
* SPINPUT IS ALREADY SAVED IN IDACTNR1
*
MOVE IWINDEX1,SPBINW2
**
* ACCOUNTRECORD IN RANGE ?*
**
CBL IDACTNR1,=D'168000',S19100
CBG IDACTNR1,=D'168999',S19100
B S19300
S19100
MOVE XWRET,=W'1'
MOVE SPBINW4,=W'1' 'VALUE NOT IN RANGE'
B S19999
*
* READ ACCOUNT(FROM)-RECORD VIA INDEXFILE01
*
S19300