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

⟦53722803f⟧

    Length: 6478 (0x194e)
    Notes: pts_type(SC)
    Names: »TNDOPN.SC«

Derivation

└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
    └─⟦this⟧ »PTSDEMO/TNDOPN.SC« 

PTS(SC)

	IDENT	TNDOPN	OPEN TELLER NOTE DISPENSER
	DDUM	DEMODD
****************
* 
*        PROCEDURE-NAME 
*               TNDOPN
* 
*        FUNCTIONAL DESCRIPTION 
*               THIS ROUTINE PERFORMS THE OPEN FUNCTIONS FOR
*               THE TND:
*                          CHECKS THE DENOMINATION TABLE, 
*                          GETS THE LOADED NUMBER OF NOTES PER CASSETTE 
*                          CHECKS THE CASSETTE SERIAL NUMBERS AFTER LOAD
* 
*                BOOLEAN TNDOPF IS SET TO INDICATE THAT THE OPEN
*                HAS BEEN EXECUTED SUCCESFULLY
* 
*        PROCEDURES USED: 
*                XBFMT   SCREEN MANAGEMENT
*                XEERR   DISPLAY ERROR-MESSAGE
*         VARIABLES USED: 
* 
* 
*          SB  CANCEL       CANCEL SWITCH 
*          NDDUMP         NO. OF REJECTED NOTES PER CASSETTE
*          TNDST          ERROR-STATUS
*          CASMAX         NUMBER OF USED CASSETTES
*          NOTES(..)      DENOMINATION TABLE
*          NDDATA1(..,..) TND TABLE (SEE DATA DIV.) 
*          TNDRCF         REJECT CASSETTE EMPTY 
*          TNDBAD         UNCONTROLLED (=BAD ) TND STATUS 
*          TND OPF         OPEN INDICATOR FOR TND 
************************************************************************
	PDIV 
	EXPROC	XBFMT 
	EXPROC	XEERR 
	EXPROC	IOTND 
	ENTRY	SPAP33 
	ENTRY	TNDOPN 
	ENTRY	TNDINI 
TNDOPN	PROC 
	TBF	SBTND,TO999
	B	TO035
TO010 
	PERF	XBFMT,=W'75'	'MOUNT CASSETTES'
	TBT	SBCANCEL,TO999 
			SEND LIFTS UP
	PERF	IOTND,KW1,TNDSET,WW1,WW2,WW3,WDEC1,WCSTRG6,TNDBFF 
	CBE	TNDST,KW0,TO040	LIFTS UP SUCCESSFULL?
TO030 
	PERF	XEERR,=W'79',KW3	MESSAGE 'OPEN FAILURE' 
* 
	TBT	SBCANCEL,TO999	STOP IF CANCELED, ELSE RETRY
TO035 
	PERF	IOTND,KW2,TNDSET,WW1,WW2,WW3,WDEC1,WCSTRG6,TNDBFF 
			TND LIFTS DOWN, RETRY
	B	TO010
TO040 
	MOVE	TNDCIX,KW1	TND OPEN OK
TO050 
	PERF	TNDINI	INIT TND REGISTERS 
* 
* CHECK CASSETTE SERIAL OF REJECT CASSETTE
* CHECK CASSETTE SEQUENCE 
TO060 
	MOVE	WCSTRG6,=C' '	INIT CASSETTE ID
	MOVE	WW1,KW5	POINT TO REJECT CASS. SERIAL
	COPY	WCSTRG6,KW1,KW5,TNDBFF,WW1

	MOVE	WDEC1,WCSTRG6	CONVERT TO DECIMAL
	SUB	WDEC1,NDRCID	CHECK IF SAME REJECT CASSETTE 
	BZ	TO070	IF EQUAL,CONTINUE 
TO065 
	PERF	XEERR,=W'78',KW3	MESSAGE 'CASS. SERIAL ERROR' 
	TBT	SBCANCEL,TO999	STOP IF CANCELED
	B	TO035	RETRY
TO070 
	MOVE	TNDCIX,KW0
TO080 
	ADD	TNDCIX,KW1 
	CBG	TNDCIX,CASMAX,TO100	HANDLED ALL CASSETTES? 
	MOVE	WCSTRG6,=C' ' 
	ADD	WW1,KW5	POINT OT NEXT SERIAL NO. 
	COPY	WCSTRG6,KW1,KW5,TNDBFF,WW1
	MOVE	WDEC1,WCSTRG6	CONVERT IT TO DECIMAL 
	SUB	WDEC1,=D'0'	IS IT ZERO?
	BZ	TO080	....THEN LOOP, ELSE 
TO090 
	MOVE	WW2,NDDATA2(KW1,TNDCIX)	GET LOGICAL POINTER 
	SUB	WW2,KW0	IS IT ZERO 
	BZ	TO080	....THEN LOOP BACK
	SUB	WW2,KW1	SET TO INDEX EQUIVALENT
	MOVE	WW3,KW5 
	MATCH	WCSTRG6,WW3,KW1,NDMAP,WW2,KW1 CHECK 1 DIGIT
	BNE	TO065	IF NOT SAME, CASSETTE ERROR
	ADD	WW2,KW1	RESET TO POINTER 
	MOVE	NDDATA1(KW4,WW2),WCSTRG6
	B	TO080	GET NEXT ONE 
* 
* 
* 
TO100			GET NUMBER OF NOTES AND 
	MOVE	WW1,KW1 
T110
	CBG	WW1,KW4,T120 
	DIV	NOTES(WW1),=D'100' 
	ADD	WW1,KW1
	B	T110 
T120
	MOVE	TNDCIX,KW1	    THEIR DENOMINATIONS
	PERF	XBFMT,=W'76'
	MOVE	WW1,KW1 
T131
	CBG	WW1,KW4,T135 
	MUL	NOTES(WW1),=D'100' 
	ADD	WW1,KW1
	B	T131 
T135
	TBT	SBCANCEL,TO999	CANCELED? 
	SET	TNDOPF	TNDOPENED 
	CLEAR	TNDRCF	REJECT CASSETTE FULL
	CLEAR	TNDBAD	TND-STATUS OK 
TO999 
	RET
	PEND 
* 
****************************
* 
* 
*          INITIALISATION ROUTINE FOR THE TND REGISTERS 
* 
***************************** 
TNDINI	PROC 
	MOVE	WW1,KW1	INIT TND REGISTERS
INI010
	CBG	WW1,KW5,INI999	5 ROWS TO INIT
	MOVE	TNDCIX,KW1
INI020
	CBG	TNDCIX,KW4,INI040	..... AND 4 COLUMNS PER ROW
	CBNE	WW1,KW2,INI030
	MOVE	NDDATA2(WW1,TNDCIX),=D'0' 
INI030
	MOVE	NDDATA1(WW1,TNDCIX),=D'0' 
	ADD	TNDCIX,KW1	INCREASE COLUMN NO. 
	B	INI020 
INI040
	ADD	WW1,KW1	INCREASE ROW NO. 
	B	INI010 
INI999
	MOVE	NDDUMP,=D'0'
	RET
	PEND 
* 
************************************
* 
*          KEYBOARD INPUT ATTRIBUTE ROUTINE, USED 
*          WHEN ENTERING THE NUMBER OF NOTES FOR A CERTAIN
*          CASSETTE 
* 
************************************* 
* 
SPAP33	PROC	XWRET 
	PBIN	XWRET 
	GETABX	TNDCIX	GET INDEX (FIELDNO.) 
	MOVE	WDEC1,SPINPUT 
	CBE	WDEC1,=D'0',SP33001
	MOVE	NDDATA2(KW2,TNDCIX),=D'1' NOTES HAVE BEEN LOADED
	ADD	TNDCIX,KW1	.... FOR THIS CASSETTE
	RET		INCREASE REGISTER INDEX 
SP33001 
	MOVE	SPBINW4,KW5	ERROR, VALUE MUST BE ENTERED
	MOVE	XWRET,KW1	RETURN AND REPEAT INPUT 
	RET
	PEND 
	END

Full view