|
|
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: 20610 (0x5082)
Notes: pts_type(SC)
Names: »DPECCY.SC«
└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
└─⟦this⟧ »PTSDEMO/DPECCY.SC«
IDENT DPECCY EXCHANGE CURRENCY DDUM DEMODD PDIV EXPROC PAJRN EXPROC PCVCH EXPROC XBFMT EXPROC TNDCAB ENTRY DPECCY ENTRY SPAP26 ************************************************************************ * * * PROCEDURE: DPECCY* * FUNCTIONAL DESCRIPTION:* * EXCHANGE CURRENCY (BUYING OR SELLING)* * - IF THE FUNCTON-CHOISE INPUT-FIELD IS EMPTY A CURRENCY RECORD* * READ INTO THE CURRENCY BUFFER,* * OTHERWISE THE CURRENCY BUFFER HAS BEEN INITIALISED AND* * CCCCYCDE CONTAINS THE CURRENCY CODE FROM THE INPUT-FIELD.* * - IN THE LAST CASE THE CURRENCY BUFFER IS FURTHER INITIALISED* * BY DISPLAYING THE CURRENCY UPDATE SCREEN.* * - THEN THE CURRENCY EXCHANGE SCREEN IS DISPLAYED* * (THE COUNTER VALUE OF THE AMOUNT QUOTED IS CALCULATED* * IN SPAP26).* * - THE AMOUNT QUOTED AND THE AMOUNT CALCULATED ARE PRINTED* * AND THE OPERATOR BALANCES ARE UPDATED.* * USE OF VARIABLES:* * NWKTBIX: INDEX IN THE FUNCTION KEYTABLE (SET IN BESELF)* * SBFLDEMP: INPUT-FIELD EMPTY ? (SET IN BESELF)* * IDNR1: RATE 1 (BUYING OR SELLING)* * IDNR2: RATE 2 (BUYING OR SELLING)* * IDNR3: THE RATE ACTUALLY USED FOR THE EXCHANGE* * IDAMT1: AMOUNT QUOTED* * IDAMT2: AMOUNT CALCULATED (COUNTER VALUE OF IDAMT1)* * ICTEXT1: CURRENCY CODE FOR IDAMT1* * ICTEXT2: CURRENCY CODE FOR IDAMT2* * * ************************************************************************ DPECCY PROC DP000 SET SBECCY PERF PAJRN,=W'1' IDENTIFICATION PRINT * * * IF THE INPUT-FIELD CONTAINS A CURRENCY CODE THEN THE CURRENCY* * UPDATE SCREEN MUST BE DISPLAYED TO CREATE A NON-STANDARD* * CURRENCY RECORD IN THE CURRENCY BUFFER* * * TBT SBFLDEMP,DP100 FIELD EMPTY PERF XBFMT,=W'15' CURRENCY UPDATE TBT SBCANCEL,DP980 DP100 CBE NWKTBIX,=W'9',DP200 'IN', BUYING ** * 'OUT': CURRENCY SELLING* * * MOVE TDTRSCDE,=D'91' MOVE IDNR1,CDSEL1 RATE 1 MOVE IDNR2,CDSEL2 RATE 2 B DP300 * * * 'IN': CURRENCY BUYING* * * DP200 SET SBCCYIN TO CONTROL CCY EXCHANGE FORMAT MOVE TDTRSCDE,=D'92' MOVE IDNR1,CDBUY1 RATE 1 MOVE IDNR2,CDBUY2 RATE 2 * * * DISPLAY THE CURRENCY EXCHANGE SCREEN* * * DP300 MOVE IDNR4,=D'1' INIT CONTINUATION FIELD MOVE ICTEXT1,=C' ' INIT CURRENCY CODE 1 MOVE ICTEXT2,=C' ' INIT CURRENCY CODE 2 MOVE IDAMT2,=D'0' INIT COUNTER VALUE SET SBCCYKTB USE KTAB WITH CURRENCY KEYS PERF XBFMT,=W'58' CURRENCY EXCH. SCREEN TBT SBCANCEL,DP980 CBE IDNR4,=D'1',DP300 RESTART * NORMAT EXIT FROM CCY EXCHANGE* ADD YDLASSEQ,=D'1' MOVE TDTRSSEQ,YDLASSEQ TRANSACTION SEQUENCE NR. * * * PRINT AMOUNT QUOTED AND AMOUNT CALCULATED* * * MOVE ICTEXT3,ICTEXT1 CURRENCY CODE MOVE TDAMOUNT,IDAMT1 PERF PAJRN,=W'4' AMOUNT QUOTED MOVE ICTEXT3,ICTEXT2 CURRENCY CODE MOVE TDAMOUNT,IDAMT2 PERF PAJRN,=W'7' AMOUNT CALCULATED * * * IF THE AMOUNT QUOTED IS IN A FOREIGN CURRENCY (I.E. AMOUNT IS CLOSED* * WITH A CURRENCY KEY), THEN SWAP IDAMT1 AND IDAMT2.* * THEN IDAMT1 CONTAINS THE AMOUNT IN THE SYSTEM CURRENCY* * AND IDAMT2 CONTAINS THE AMOUNT IN THE FOREIGN CURRENCY* * * TBT SBEOI,DP700 * SWAP IDAMT1 AND IDAMT2* MOVE WDEC1,IDAMT1 MOVE IDAMT1,IDAMT2 MOVE IDAMT2,WDEC1 * * * UPDATE THE OPERATOR BALANCES, IF THE INPUT-FIELD IS EMPTY* * * DP700 TBF SBFLDEMP,DP800 TBT SBCCYIN,DP750 * * * 'OUT': CURRENCY SELLING* * * ADD ODCASH(KW1,KW4),IDAMT1 CASH BALANCE SUB ODCASH(KW1,SWCCY),IDAMT2 BALANCE CURRENCY <N> ADD ODCASH(KW3,KW4),IDAMT1 ACCUM. CCY. SOLD - LOCAL VALUE ADD ODCASH(KW3,SWCCY),IDAMT2 ACC.CCY BOUGHT & SOLD B DP800 * * * 'IN': CURRENCY BUYING* * * DP750 MOVE TDAMOUNT,IDAMT1 SUB ODCASH(KW1,KW4),IDAMT1 CASH BALANCE ADD ODCASH(KW1,SWCCY),IDAMT2 BALANCE CURRENCY <N> ADD ODCASH(KW3,KW5),IDAMT1 ACCUM. CCY. BOUGHT - LOC. VAL. ADD ODCASH(KW3,SWCCY),IDAMT2 ACC.CCY BOUGHT & SOLD * * * PRINT CURRENCY EXCHANGE VOUCHER IF A TELLER PRINTER IS AVAILABLE* * * DP800 CBE RDPRTTYP,=D'2',DP999 CBE RDPRTTYP,=D'4',DP999 PERF PCVCH,=W'3' CURRENCY EXCH. VOUCHER DP980 DP999 CLEAR SBECCY CLEAR SBCCYIN RET PEND ************************************************************************ * * * PROCEDURE: SPAP26* * PARAMETERS:* * XWRET: RETURN CODE FOR SPAPPL* * FUNCTIONAL DESCRIPTION:* * CALCULATE CURRENCY EXCHANGE COUNTER VALUE (DPECCY (FMTO58)),* * DISPLAY THE COUNTER VALUE ON THE SCREEN AND* * FILL THE CURRENCY CODES ON THE SCREEN.* * IF RATE 2 IS NOT ZERO AND THE VALUE OF THE EXCHANGE * IN THE SYSTEM CURRENCY IS LARGER THAN CDLIMIT, * THEN RATE 2 MUST BE USED FOR THE EXCHANGE. * USE OF VARIABLES:* * IDNR1: RATE 1 (BUYING OR SELLING)* * IDNR2: RATE 2 (BUYING OR SELLING)* * IDNR3: WILL CONTAIN THE RATE ACTUALLY USED* * IDAMT1: AMOUNT QUOTED* * IDAMT2: WILL CONTAIN AMOUNT CALCULATED* * CCCCYCDE: CONTAINS THE CURRENCY CODE OF THE FOREIGN CCY USED* * SBEOI: WILL INDICATE WHETHER THE AMOUNT QUOTED IS CLOSED WITH * AN EOI OR NOT ** ************************************************************************ SPAP26 PROC XWRET PBIN XWRET S26000 MOVE IDNR3,IDNR1 INITIALISE AT RATE 1 CLEAR SBEOI * * KWSPCONT IS THE LAST NON APPLICATION FUNCTION KEY * KEYS WITH A HIGHER INDEX ARE CURRENCY KEYS * CBNG SPBINW2,KWSPCONT,S26400 * * * AMOUNT IS CLOSED WITH A CURRENCY KEY,* * THEN THE AMOUNT QUOTED IS IN A FOREIGN CURRENCY* * * * TO PREVENT EXIT FROM SCREEN MANAGEMENT, ADAPT SPBINW2 * MOVE SPBINW2,KWSPEOI ADAPT KEYTABLE INDEX MOVE ICTEXT1,CCCCYCDE FOREIGN CURRENCY MOVE ICTEXT2,YCCCY(KW4) SYSTEM CURRENCY * * * COUNTER VALUE = IDAMT1 * 0.01 * RATE / CDRELAT * IF THE COUNTER VALUE USING RATE 1 IS LARGER THEN CDLIMIT* * AND RATE 2 IS NOT ZERO, USE RATE 2 FOR THE EXCHANGE* * * * START THE CALCULATION WITH RATE 1* ** MOVE IDAMT2,IDAMT1 MUL IDAMT2,IDNR1 DVR IDAMT2,CDRELAT DVR IDAMT2,=D'100' CBE IDNR2,=D'0',S26800 RATE 2 = 0 CBNG IDAMT2,CDLIMIT,S26800 VALUE =< CDLIMIT * USE RATE 2 FOR THE EXCHANGE* MOVE IDNR3,IDNR2 SAVE RATE 2 MOVE IDAMT2,IDAMT1 MUL IDAMT2,IDNR2 DVR IDAMT2,CDRELAT DVR IDAMT2,=D'100' B S26800 * * * AMOUNT IS CLOSED WITH EOI,* * THEN THE AMOUNT QUOTED IS IN THE SYSTEM CURRENCY* * * S26400 SET SBEOI INDICATE EOI MOVE ICTEXT1,YCCCY(KW4) SYSTEM CURRENCY MOVE ICTEXT2,CCCCYCDE FOREIGN CURRENCY * * * COUNTER VALUE = IDAMT1 * CDRELAT / (0.01 * RATE) * * MOVE IDAMT2,IDAMT1 MUL IDAMT2,CDRELAT MUL IDAMT2,=D'100' * * * IF RATE 2 = 0 OR IDAMT1 =< CDLIMIT THEN RATE 1 MUST BE USED* * ELSE USE RATE 2* * * CBE IDNR2,=D'0',S26600 RATE 2 = 0 CBNG IDAMT1,CDLIMIT,S26600 IDAMT1 =< CDLIMIT * USE RATE 2* MOVE IDNR3,IDNR2 SAVE RATE 2 DVR IDAMT2,IDNR2 B S26800 * USE RATE 1* S26600 DVR IDAMT2,IDNR1 * * * REDISPLAY THE CURRENT LINE AND THE NEXT ONE* * * S26800 ERASE 0,KW3,KW4 DISPLAY 4,KW3,KW4 S26999 RET PEND ************************************************************************ END