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

⟦ae95222c7⟧

    Length: 8142 (0x1fce)
    Notes: pts_type(SC)
    Names: »DRDN01.SC«

Derivation

└─⟦13e5fd45a⟧ Bits:30009699 Philips computer tape "600507"
    └─⟦this⟧ »TOSSWORK/DRDN01.SC« 
└─⟦bc20f3abf⟧ Bits:30009670 Philips computer tape "600126"
    └─⟦this⟧ »TOSSWORK/DRDN01.SC« 

PTS(SC)

	IDENT DRDN01 	REL 11.0 81-03-27 870105041100 

			=2,ASM-ORDER 05 REMOVED
			REL 11.0 81-01-26
			=1 ADAPTED TO NEW INTERFACE (PLC)
			REL 10.0 79-12-07
* 
* 
*************************************************** 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   DRDN01 = DRIVER NUMERIC DISPLAY 
* 
* 
* 
* 
* 
* 
*************************************************** 
* 
* 
*    THIS DRIVER HANDLES THE NUMERIC DISPLAY
*    ON INDICATOR UNIT PTS 6241 CONNECTED TO
*    THE SYSTEM VIA CHLT OR CHRT. 
* 
*    THE DISPLAY MAY BE USED AS AN ORDINARY 
*    OUTPUT DEVICE WHERE NUMERIC INFORMATION
*    ARE DISPLAYED FROM THE USER PROGRAM. IT
*    MAY ALSO BE USED AS AN ECHO-DEVICE TO
*    ANY KEYBOARD THAT WORKS UNDER THE GENERAL
*    KEYBOARD DRIVER DRKB04.
* 
*    THE DRIVER CONSISTS OF FOLLOWING PARTS:
* 
*    A C D N       ACTIVATION PART
* 
*    I H D N       INTERRUPT HANDLER
* 
*    R C D N       RECOVERY ROUTINE 
* 
*    E C H O D N   ECHO FUNCTIONS 
	EJECT			DRDN01 
* 
* 
*    THE FOLLOWING ORDERS ARE THREATED: 
* 
*    ORDER 31: ERASE NUMERIC DISPLAY
*          06: WRITE NUMERIC DISPLAY
* 
* 
*    NORMAL REGISTER USAGE: 
* 
*    REGISTER: A1 = RETURN CODE 
*              A2 = OUTPUT CHARACTER
*              A3 = BUFFER INDEX
*              A4 = WORK REGISTER 
*              A5 = STACK BASE
*              A6 = DWT-ADDRESS 
*              A7 = ORDER 
*              A8 = ECB-ADDRESS 
* 
* 
*    SYSTEM ADAPTATION
* 
*    BY MEANS OF CONDITIONAL ASSEMBLY ORDER 06
*    WRITE NUMERIC DISPLAY MAY BE EXCLUDED. 
*    TO BE USED IN SYSTEMS WHERE THE DISPLAY
*    FIGURES ONLY AS AN ECHO-DEVICE.
* 
* 
	EJECT			DRDN01 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	DNAD	ADDRESS TO ADDRESS-BLOCK
* 
* 
********************************************
*    EXTERNAL TOSS MODULE ENTRIES          *
********************************************
* 
* 
	EXTRN	LENDER	I/O REQUEST ERROR	=1
	EXTRN	OUTPUT	SEND CHARACTER	=1 
	EXTRN	LDISP	DISPATCHER	=1
	EXTRN	NDGET8	RELOAD REGISTERS AND RETURN	=1
	EXTRN	TENDIO	END I/O	=1
	EXTRN	ECHRTN	RETURN TO KEYBOARD AFTER ECHO	=1
	EXTRN	GETCHR	GET CHARACTER FROM ECB BUFFER	=1
	EXTRN	STABLK	START OF BLOCK	=1 
	EXTRN	ENDBLK	END OF BLOCK	=1 
* 
* 
****************************
*    DWT PARAMETERS        *
****************************
* 
* 
	EXTRN	DWTST	STATUS 
	EXTRN	DWTDEV	DEVICE STATUS	=1
	EXTRN	DWTECB	ECB ADDRESS 




DWTBC	EQU	/0	BYTE COUNTER	=1
BLKSI	EQU	/50	MAX BLOCK SIZE	=1 
	EJECT			DRDN01 
* 
* 
**************************
*  CONDITIONAL ASSEMBLY  *
**************************
* 
*    BY SETTING X:A = 0 THIS DRIVER HANDLES 
*    ONLY ORDER 05 ERASE NUMERIC DISPLAY
* 
X:A	EQU	1 
DNWRIT	EQU	X:A	ORDER 6
* 
*   MEMORY MANAGEMENT BUFFER SIZE 
* 
X:B	EQU	16
DVBLEN	EQU	X:B
* 
***************** 
*    CONSTANTS  * 
***************** 
* 
CCERR	EQU	/4	CODE CHECK ERROR 
* 
	EJECT			DRDN01 
* 
* 
**************
*    TABLES  *
**************
* 
* 
	DATA	DVBLEN	MMU BUFFER SIZE
	DATA	2	DEVICE  INDEX 
DNAD	EQU	*	ADDRESS BLOCK
	DATA	ACDN	ACTIVATION PART
	DATA	0	ABORT ROUTINE ADDRESS 
	DATA	0	INTERRUPT HANDLER 
	DATA	RCDN	RECOVERY ROUTINE 
	DATA	ECHODN	DEVICE-DEPENDENT ECHO-SUBROUTINE 
* 
	EJECT			DRDN01 
* 
*    A C D N
* 
*    ACDN = ACTIVATION DRIVER NUMERIC DISPLAY 
* 
*    THE FOLLOWING ORDERS ARE THREATED: 
* 
*    ORDER 31: ERASE NUMERIC DISPLAY
*    ORDER 06: WRITE ON NUMERIC DISPLAY 
* 
*    IF ORDER 31 ERASE CHARACTER /40 IS SENT TO DISPLAY.
*    IF ORDER 6 CHARACTERS IN ECB-BUFFER ARE SENT TO DISPLAY
* 
ACDN	EQU	*
				=2
	SUK	A7,/31 
	RF(Z)	ADN010 
				=2
* 
	IFT	DNWRIT=1 
* 
	ADK	A7,/2B	ORDER 6 ?	=2
	RF(E)	ADN015 
* 
	XIF
* 
	ABL	LENDER	I/O REQUEST ERROR	=1
* 
	EJECT			DRDN01 
* 
*    ORDER 31 
* 
ADN010	EQU	*
	LDK	A2,1	BLOCK SIZE	=! 
	CF	A5,STABLK	START OF BLOCK	=1 
	RF(NZ)	DNERR	ERROR 	=1 
	LDK	A2,/40	ERASE DISPLAY 
	CF	A5,OUTPUT	SEND CHARACTER
	RF(NZ)	DNERR	ERROR END I/O	=!
	RF	ENDIO 
* 
*    ORDER 06 
* 
	IFT	DNWRIT=1 
* 
ADN015	EQU	*
	LDK	A3,0	RESET BUFFER INDEX
	LDK	A2,BLKSI	MAX BLOCK SIZE	=1 
	CF	A5,STABLK	START OF BLOCK	=1 
	RF(NZ)	DNERR	ERROR END I/O	=1
ADN020	CF	A15,GETCHR	GET CHARACTER
	LDR	A1,A1	FOUND? 
	RF(NP)	ENDIO	NO, READY ! 
* 
	EJECT			DRDN01 
* 
*    CHECK CHARACTER
* 
	LDR	A4,A2
	SUK	A4,/3F	BLANK?
	RF(E)	ADN025 
	ADK	A4,6	KEY > /39?
	RF(P)	ADN030 
	ADK	A4,9	KEY < /30 
	RF(N)	ADN030 
ADN025	EQU	*
	CF	A5,OUTPUT	SEND CHARACTER
	RF(NZ)	DNERR	ERROR END I/O	=1
	RB	ADN020
ADN030	LDK	A1,CCERR	INDICATE CODE CHECK ERROR 
	ORS	A1,8,A8	RETURN CODE
	RB	ADN020
* 
	XIF
* 
ENDIO	EQU	*	END REQUEST	=1
	CF	A5,ENDBLK	END OF BLOCK	=1 

	CF	A15,TENDIO	END I/O REQUEST	=1 
EXIT	EQU	*	DISPATCH 
	ABL	LDISP	DISPATCH	=1
* 
	EJECT			DRDN01 
* 
*    R C D N
* 
*    RECOVERY 
* 
RCDN	EQU	*
	LDKL	A2,/7FFF	 
	ANS	A2,DWTST,A6	SET DEVICE BUSY
	LDK	A2,1	BLOCK SIZE	=1 
	CF	A5,STABLK	START OF BLOCK	=1 
	RF(NZ)	DNERR	ERROR END I/O	=1
	LDK	A2,/40	ERASE CHARACTER 
	CF	A5,OUTPUT	SEND ERASE
	RF(NZ)	DNERR	ERROR END I/O	=!
	CF	A5,ENDBLK	END OF BLOCK	=1 
	RF(NZ)	DNERR	ERROR END I/O	=1
	LD	A8,DWTECB,A6
	RB(E)	ENDIO
	RB	ACDN	RETURN TO ACTIVATINO PARTONI 
* 
	EJECT			DRDN01 
* 
*    E C H O D N
* 
*    ECHO-ROUTINE 
* 
ECHODN	EQU	*
	LDR	A7,A7	EOR? 
	RF(N)	ECH060 
	LDR	A3,A2
	LDR	A4,A2	SAVE CHARACTER	=1
	SUK	A3,/8	BACKSPACE? 
	RF(E)	ECH050 
	SUK	A3,/10	CLEAR?
	RF(NE)	ECH040	NO 
	LDK	A4,/40	ERASE DISPLAY	=1
ECH040	EQU	*
	LDK	A2,1	BLOCK SIZE	=1 
	CF	A5,STABLK	START OF BLOCK	=1 
	RF(NZ)	ECH050	ERROR END ECHO 
	LDR	A2,A4	GET CHARACTER	=1 
	CF	A5,OUTPUT	SEND CHARACTER	=1 
	RF(NZ)	ECH050	ERROR END ECHO 
	CF	A5,ENDBLK	END OF BLOCK	=1 

ECH050	ABL	ECHRTN	RETURN TO KEYBOARD DRIVER 
* 
ECH060	EQU	*
	CF	A15,TENDIO	END I/O	=! 
	ABL	ECHRTN	RETURN TO KEYBOARD DRIVER 
* 
* 
	EJECT			DRDN01 
* 
* 
****************************************************
* 
*	D N E R R 	 
* 
*	ERROR ROUTINE 
* 
****************************************************
* 
* 
DNERR	EQU	*		=1 
	ANK	A1,/10	OUTPUT ERROR	=1 
	RB(NZ)	RCDN	YES DO RECOVERY	=1 
	LDK	A1,1	SET NOT OPERABEL IN RETURN CODE	=1
	RB	ENDIO	END I/O REQUEST	=1
	END

Full view