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

⟦c06dc6f92⟧

    Length: 20524 (0x502c)
    Notes: pts_type(SC)
    Names: »DPECCY.SC«

Derivation

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

PTS(SC)

 IDENT DPECCY EXCHANGE CURRENCY
	DDUM	DEMODD			
	PDIV				
	EXPROC	PAJRN			 
	EXPROC	PCVCH			 
	EXPROC	XBFMT			 
	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'0',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					
	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			
	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				

Full view