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

⟦a02232a5d⟧

    Length: 10186 (0x27ca)
    Notes: pts_type(SC)
    Names: »TPROC.SC«

Derivation

└─⟦18bf30ff4⟧ Bits:30009692 Philips computer tape "600409"
    └─⟦this⟧ »BDKMON/TPROC.SC« 
└─⟦71472ef1e⟧ Bits:30009661 Philips computer tape "600103"
    └─⟦this⟧ »BDKMON/TPROC.SC« 

PTS(SC)

	IDENT  TPROC 	REL=7.2  DATE=77-09-09 
			UPDATE   #0   77-09-09 
* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TPROC = TOSS LKM PROCESSORS 
*           TIO,TWAIT,TEXIT,TACTOT,TPAUSE 
* 
*   LEVEL     #2  77-09-09
* 
*   RELEASE   #7  77-09-09
* 
**************************************************
* 
* 
* 
*   THIS MODULE CONTAINS MANDATORY LKM PROCESSORS 
*   FOR TOSS. THESE ARE:
* 
*   -TIO     INPUT/OUTPUT 
* 
*   -TWAIT   WAIT 
* 
*   -TEXIT   EXIT 
* 
*   -TACTOT  ACTIVATE/RESTART TERMINAL
**
*   -TPAUSE  PAUSE TERMINAL 
* 
	EJECT
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TIO	I/O PROCESSOR
* 
	ENTRY	TWAIT	WAIT PROCESSOR 
* 
	ENTRY	TEXIT	EXIT PROCESSOR 
* 
	ENTRY	TACTOT	ACTIVATE/RESTART PROCESSOR
* 
	ENTRY	TPAUSE	PAUSE PROCESSOR 
* 
* 
	EJECT
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	DWTADR	DWT ADDRESS BLOCK POINTER 
	EXTRN	DWTTAB	DWT TTAB ADDRESS
	EXTRN	DWTWAT	WAIT/ACTIVATE INDICATOR 
	EXTRN	FNDDWT	SEARCH DWT
	EXTRN	QTJOB	QUEUE TERM.PROG. FOR DISP. 
	EXTRN	DWTOR	ORDER
	EXTRN	DWTECB	ECB ADDRESS 
	EXTRN	DWTST	STATUS 
	EXTRN	TDISP	DISPATCHER 
	EXTRN	SRUN	POINTER TO RUNNING SEGMENT IN LSBT
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	GETBLK	PUT BLOCK IN PENDING QUEUE
	EXTRN	FREBLK	RELEASE BLOCK FROM PENDING QUEUE
	EXTRN	EXIT	PROGRAM EXIT
	EXTRN	TTMJOB	TTAB-ADDRESS OF MJOBS 
	EXTRN	TTB:PP	PENDING PROGRAM POINTER 
	EXTRN	TTB:ID	TERMINAL IDENTIFICATION 
	EXTRN	FNDTID	SEARCH TERMINAL IDENTIFICATION
	EXTRN	ACTOT	'ACTIVATE' TERMINAL
	EXTRN	TTB:ST	TASK STATUS AND LEVEL 
	EXTRN	TTB:SA	SAVE AREA 
	EJECT
* 
* 
************* 
* CONSTANTS * 
************* 
* 
*   DISPLACEMENT IN DEVICE WORK TABLE AND EVENT CONTROL BLOCK 
* 
DWTTQ	EQU	/0E	TASK QUEUE IN DWT 
DWTSB2	EQU	/1E	STACK BASE 2 IN DWT
DWTECH	EQU	/22	ECHO-DEVICE DWT
ECBEL	EQU	/06	EFFECTIVE LENGTH IN ECB 
ECBRC	EQU	/08	RETURN CODE IN ECB
	EJECT

* 
* 
*	T I O 
* 
* 
* THIS MODULE IS ENTERED WHEN TERMINAL I/O
* IS REQUIRED. IF A REQUEST CANNOT BE SERVICED
* DUE TO E.G. BUSY DEVICE, THE REQUEST IS QUEUED
* AND THE TERMINAL PROGRAM SET IN WAIT STATE. 
* THIS MODULE IS CALLED BY THE LKM HANDLING MODULE
* WITH THE FOLLOWING PARAMETERS:- 
* 
*  A1 = PARAMETER WHEN I/O AND ACTIVATION 
* 
*  A4 = ZERO, NORMAL I/O REQUEST
*       NOT ZERO, I/O AND ACTIVATION
* 
*  A5 = TTAB ADDRESS
* 
*  A7 = CODE
* 
*  A8 = ECB ADDRESS 
* 
* 
* THE 'TIO'-ROUTINE EXITS TO REQUESTED ACTIVATION DRIVER
* WITH THE FOLLOWING REGISTER VAULES:-
* 
*  A5 = STACK BASE 2 IN DWT 
* 
*  A6 = DWT-ADDRESS 
* 
*  A7 = ORDER 
* 
*  A8 = ECB-ADDRESS 
* 
	EJECT
* 
* THE FOLLOWING DWT FIELDS ARE UPDATED:-
* 
*  -DWTOR  DWT-INDEX AND ORDER
*  -DWTECB ECB ADDRESS
*  -DWTST  READY AND ECHO FIELDS
*  -DWTTAB TTAB ADDRESS 
*  -DWTWAT WAIT/ACTIVE INDICATOR
* 
* 
* THE FOLLOWING ECB FIELDS ARE RESET:-
* 
*  -BITS 0-7 IN THE FIRST WORD
*  -ECBEL  EFFECTIVE LENGTH 
*  -ECBRC  RETURN CODE
* 



* 
*	GET DWT ADDRESS AND CHECK IF DEVICE IS BUSY 
* 


TIO	CF	A15,FNDDWT	SEARCH DWT ADDRESS
	LDKL	A3,/8000
	LDR	A6,A6
	RF(Z)	TIOERR	FILE CODE UNKNOWN 

	AN	A3,DWTST,A6 
	RF(Z)	TIOQ20	DEVICE BUSY 
	SC	A2,DWTOR,A6	STORE DWT INDEX 
	LDK	A2,/40	CHECK IF ECHO 
	ANR	A2,A7
	RF(Z)	TIO100	NOT ECHO
	LD	A2,DWTECH,A6	LOAD ECHO DEVICE 
	RF(Z)	TIO100	NO ECHO DEVICE
	AN	A3,DWTST,A2 
	RF(Z)	TIOQ10	ECHO DEVICE BUSY
	LDKL	A3,/A000
	XRS	A3,DWTST,A2	UPDATE BUSY AND ECHO IN DWT


* 
*	UPDATE ECB AND DWT FIELDS 
* 


TIO100	XRS	A3,DWTST,A6	UPDATE BUSY AND ECHO IN DWT
	LDKL	A3,/7FFF
	ANRS	A3,A8	RESET BIT 0 IN ECB FILE-CODE
	CM	ECBEL,A8	 -EFFECTIVE LENGTH 
	CM	ECBRC,A8	 -RETURN CODE
	LDR	A3,A7	SAVE CODE
	ANK	A7,/3F 
	SC	A7,DWTOR+1,A6	STORE ORDER IN DWT
	ST	A5,DWTTAB,A6	 -TTAB ADDRESS 
	ST	A8,DWTECB,A6	 -ECB ADDRESS
	EJECT

* 
*	UPDATE DWTWAT (WAIT/ACTIVE INDICATOR) 
* 

	LDR	A2,A4	CHECK PARAMETER
	RF(NZ)	TIO200	I/O AND ACTIVATION 

	ANK	A3,/80	NORMAL I/O CHECK IF WAIT REQUESTED
	RF(Z)	TIO220	NOT WAIT
	LDK	A4,1	INDICATE WAIT 
	RF	TIO230
TIO200	LD	A3,SRUN	SEGM. POINTER 
	RF(Z)	TIO210	JUMP IF ROOT
	SU	A2,2,A3	RELATIVE ADDRESS

TIO210	CF	A15,GETBLK	SAVE PARAMETER AND DISPATCH ADDRESS
TIO220	CF	A15,QTJOB	QUEUE TASK FOR DISPATCHING

TIO230	ST	A4,DWTWAT,A6	STORE WAIT/ACTIVE INDICATOR
	LDK	A5,DWTSB2	LOAD STACK BASE 2 IN A5
	ADR	A5,A6
	ABI*	DWTADR,A6	GO TO DRIVER ACTIVATION 
	EJECT

* 
*	QUEUE BUSY DEVICE 
* 

TIOQ10	LDR	A6,A2	QUEUE ECHO DEVICE

TIOQ20	ADK	A6,DWTTQ	GET QUEUE ANCHOR
	LC	A1,TTB:ST+1,A5	GET LEVEL
TIOQ30	LDR	A2,A6
	LDR*	A6,A6	FOLLOW QUEUE TO END 
	RF(Z)	TIOQ40	END FOUND 
	CC	A1,TTB:ST+1,A6	COMPARE LEVELS 
	RB(NL)	TIOQ30	TRY NEXT 

TIOQ40	STR	A6,A5	INSERT IN QUEUE
	STR	A5,A2
	SUK	A3,4 
	LDR	A4,A4	CHECK IF ACTIVATION
	RF(Z)	TIOQ50	NO
	SUK	A3,2	YES 
TIOQ50	ADS	A3,TTB:SA,A5	UPDATE PC TO REPEAT LKM 
	RF	TPDIS 


* 
*	ERROR FILE CODE UNKNOWN 
* 

TIOERR	ST	A3,ECBRC,A8	INDICATE ERROR IN ECB 
TPQUE	CF	A15,QTJOB	QUEUE TASK FOR DISPATCING
TPDIS	ABL	TDISP 
	EJECT
* 
* 
*	W A I T 
* 
* THIS MODULE IS ENTERED WHEN THE APPLICATION PROGRAM 
* WANTS TO SYNCHRONIZE WITH A PARTICULAR EVENT. 
* IT IS CALLED BY THE LKM HANDLER WITH THE FOLLOWING
* PARAMETERS:-
* 
*  A5 = TTAB ADDRESS
* 
*  A8 = ECB ADDRESS 
* 
* 
* 
TWAIT	EQU	* 
	CF	A15,FNDDWT	SEARCH DWT ADDRESS 
	LDR	A6,A6
	RF(Z)	TAC010	FILE CODE UNKNOWN 
	LDR*	A1,A8	RETURN IF EVENT COMPLETED 
	RB(N)	TPQUE	COMPLETED
	IM	DWTWAT,A6	SET WAIT INDICATOR IN DWT 
	RB	TPDIS	GO TO DISPATCHER
	EJECT
* 
* 
*	E X I T 
* 
* 
* THIS MODULE IS ENTERED WHEN A TERMINAL PROGRAM
* EXITS. IF ANY PROGRAM IS PENDING FOR THE
* TERMINAL IT IS STARTED. 
* THIS MODULE IS CALLED BY THE LKM HANDLER
* WITH THE FOLLOWING PARAMETERS:- 
* 
*  A5 = TTAB ADDRESS
* 
* 
TEXIT	EQU	* 
	CF	A15,EXIT	CALL PROGRAM EXIT
	RB	TPDIS	GO TO DISPATCHER
	EJECT
* 
* 
*	T A C T O T 
* 
* 
* THIS MODULE IS ENTERED FROM THE LKM HANDLER 
* WHEN A TERMINAL HAS TO BE ACTIVATED.
* 
* THE FOLLOWING PARAMETERS ARE SUPPLIED:- 
*  A1 = PARAMETER WHEN A4 NOT ZERO
*  A4 = START ADDRESS AT ACTIVATION, ELSE ZERO
*  A5 = TTAB
*  A7 = IDENTIFICATION FOR TERMINAL TO BE ACTIVATED 
* 
* 
TACTOT	EQU	*
	CF	A15,FNDTID	FIND TTAB ADDRESS
	LDR	A2,A2
TAC010	EQU	*
	ABL(Z)	LKMRQE	TERMINAL NOT IN SYSTEM 
	CF	A15,QTJOB	QUEUE CALLING TERMINAL FOR DISPATCHING
	LDR	A5,A2
	LDR	A2,A4
	RB(Z)	TPQUE	RESTART: QUEUE FOR DISPATCHING 
	LD	A3,SRUN	SEGMENT POINTER 
	RF(E)	TAC020	JUMP IF ROOT
	SU	A2,2,A3	RELATIVE ADDRESS
TAC020	EQU	*
	CF	A15,ACTOT	ACTIVATION
	RB	TPDIS	GO TO DISPACHER 
	EJECT
* 
* 
*	T P A U S E 
* 
* 
TPAUSE	EQU	TPDIS	GO TO DISPATCHER 
* 
	END

Full view