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

⟦4526d3ef3⟧

    Length: 7772 (0x1e5c)
    Notes: pts_type(SC)
    Names: »TPROC.SC«

Derivation

└─⟦110b7ed5e⟧ Bits:30009664 Philips computer tape "600106"
    └─⟦this⟧ »TOSSWORK/TPROC.SC« 
└─⟦726a6c4ca⟧ Bits:30009685 Philips computer tape "600309"
    └─⟦this⟧ »M:PTB/TPROC.SC« 
    └─⟦this⟧ »M:PTD/TPROC.SC« 
└─⟦781e933ac⟧ Bits:30009686 Philips computer tape "600310"
    └─⟦this⟧ »M:92T1/TPROC.SC« 
└─⟦7e2393f80⟧ Bits:30009710 Philips computer tape "M_KONV"
    └─⟦this⟧ »M:KONV/TPROC.SC« 
└─⟦7f25f14aa⟧ Bits:30009683 Philips computer tape "600307"
    └─⟦this⟧ »M:92F4/TPROC.SC« 
└─⟦f740ae34d⟧ Bits:30009708 Philips computer tape "M_92F3"
    └─⟦this⟧ »M:92F3/TPROC.SC« 

PTS(SC)

	IDENT TPROC 	REL 9.2 79-11-16  870105040920

* 
* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TPROC = TOSS LKM PROCESSORS 
* 
* 
* 
* 
* 
* 
**************************************************
* 
* 
*   THIS MODULE CONTAINS THE FOLLOWING
*   TOSS LKM PROCESSORS:
* 
*   - TWAIT  = WAIT 
* 
*   - TEXIT  = EXIT 
* 
*   - TACTOT = ACTIVATE/RESTART TASK
* 
*   - TPAUSE = PAUSE TASK 
* 
*   - TMWAIT = MULTIPLE WAIT
* 
* 
	EJECT			TPROC
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TWAIT	WAIT PROCESSOR 
	ENTRY	TEXIT	EXIT PROCESSOR 
	ENTRY	TACTOT	ACTIVATE/RESTART PROCESSOR
	ENTRY	TPAUSE	PAUSE PROCESSOR 
	ENTRY	TMWAIT	MULTIPLE WAIT PROCESSOR 



* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	QTJOB	QUEUE TASK FOR DISPATCHING 
	EXTRN	TDISP	DISPATCHER 
	EXTRN	LKMQDI	QUEUE TASK AND DISPATCH 
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	EXIT	PROGRAM EXIT
	EXTRN	FNDDWT	FIND DWT ADDRESS FROM FILE CODE 
	EXTRN	FNDTID	FIND TTAB ADDRESS FROM TASK ID
	EXTRN	ACTOT	ACTIVATE TASK
	EXTRN	TTB:SA	TTAB SAVE AREA
	EXTRN	DWTST	DWT STATUS 
	EXTRN	DWTTAB	TTAB ADDRESS
	EXTRN	DWTWAT	WAIT/ACTIVATE INDICATOR 
	EJECT			TPROC
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	0
* 
	EJECT			TPROC
* 
* 
********
* WAIT *
********
* 
* 
*   THIS IS THE WAIT LKM PROCESSOR. 
* 
*   THIS MODULE IS ENTERED WHEN THE TASK
*   WANTS TO SYNCHRONIZE WITH A PARTICULAR EVENT. 
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A8 = ECB ADDRESS
* 
* 
TWAIT	CF	A15,FNDDWT	SEARCH DWT ADDRESS
	ADK	A6,0	SET CR
	RF(Z)	TP:RQE	FILE CODE NOT FOUND?
* 
	IFT	MMUPAG=0 
	LDR*	A1,A8	RETURN IF EVENT COMPLETED 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A1,A8	RETURN IF EVENT COMPLETED
	XIF
* 
	RF(N)	TP:QDI	I/O ALREADY COMPLETED?
	IM	DWTWAT,A6	NO, SET WAIT INDICATOR IN DWT 
	RF	T:DISP	GO TO DISPATCHER 
* 
	EJECT			TPROC
* 
* 
********
* EXIT *
********
* 
* 
*   THIS IS THE EXIT LKM PROCESSOR. 
* 
*   THIS MODULE IS ENTERED WHEN A TASK
*   EXITS. IF ANY PROGRAM IS PENDING FOR THE
*   TASK IT IS STARTED. 
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
* 
* 
TEXIT	EQU	* 
	CF	A15,EXIT	CALL PROGRAM EXIT
* 
T:DISP	ABL	TDISP	GO TO DISPATCHER 
* 
	EJECT			TPROC
* 
* 
**********
* TACTOT *
**********
* 
* 
*   THIS IS THE ACTIVATE/RESTART TASK LKM PROCESSOR.
* 
*   THIS MODULE IS ENTERED FROM THE LKM HANDLER 
*   WHEN A TASK 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 TASK TO BE ACTIVATED
* 
* 
TACTOT	EQU	*
	CF	A15,FNDTID	FIND TTAB ADDRESS
	ADK	A2,0	SET CR
	RF(Z)	TP:RQE	TASK NOT IN SYSTEM
	CF	A15,QTJOB	QUEUE CALLING TASK FOR DISPATCHING
	LD	A3,TTB:SA+6,A5	GET SEGMENT NUMBER 
	LDR	A5,A2
	LDR	A2,A4
	RF(Z)	TP:QDI	RESTART: QUEUE FOR DISPATCHING
	CF	A15,ACTOT	ACTIVATION
	RB	T:DISP	GO TO DISPATCHER 
* 
	EJECT			TPROC
* 
* 
**********
* TPAUSE *
**********
* 
* 
*   THIS IS THE PAUSE LKM PROCESSOR.
* 
*   THIS MODULE IS ENTERED FROM THE LKM HANDLER WHEN A
*   TASK WANTS TO (TEMPORARILY) HALT IT'S PROCESSING. 
* 
* 
TPAUSE	EQU	T:DISP	GO TO DISPATCHER
* 
	EJECT			TPROC
* 
* 
**********
* TMWAIT *
**********
* 
* 
*   THIS IS THE MULTIPLE WAIT LKM PROCESSOR.
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A7 = ECBBLK ADDRESS 
* 
*   WHEN ONE OF THE SPECIFIED EVENTS IS COMPLETED,
*   RETURN IS MADE TO THE CALLING TASK VIA TENDIO 
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A8 = ECB ADDRESS OF COMPLETED EVENT 
* 
*   IF REQUEST ERROR, A7 := -1 (AND NO RETURN VIA TENDIO).
* 
*   NOTICE THAT ALL EVENTS MUST HAVE
*   BEEN ISSUED IN THE NO WAIT MODE.
* 
* 
	EJECT			TPROC
* 
* 
TMWAIT	EQU	*	MULTIPLE WAIT ENTRY
	LDK	A3,0 
* 
	IFT	MMUPAG=0 
	LDR*	A1,A7	GET NO OF ECB:S IN ECBBLK 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A1,A7	GET NO OF ECB:S IN ECBBLK
	XIF
* 
	RF(NP)	TP:RQE	REQUEST ERROR IF <= 0
* 
TMW:10	EQU	*
	ADK	A7,2	POINT TO NEXT ECB ADDRESS IN ECBBLK 
* 
	IFT	MMUPAG=0 
	LDR*	A8,A7	GET ECB ADDRESS 
	LDR*	A2,A8	GET FIRST WORD OF ECB 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A8,A7	GET ECB ADDRESS
	ELR	A2,A8	GET FIRST WORD OF ECB
	XIF
* 
	RF(N)	TMW:30	I/O ALREADY COMPLETED?
	CF	A15,FNDDWT	NO, SEARCH DWT ADDRESS FROM FILE CODE
	ADK	A6,0	SET CR
	RF(Z)	TP:RQE	NOT FOUND?
* 
	EJECT			TPROC
* 
* 
	LD	A2,DWTST,A6	GET DWT STATUS
	RF(N)	TP:RQE	NOT BUSY? 
	CW	A5,DWTTAB,A6
	RF(NE)	TP:RQE	REQUEST NOT ISSUED BY THIS TASK? 
	LD	A2,DWTWAT,A6	GET WAIT/ACTIVATE INDICATOR
	RF(NZ)	TP:RQE	REQUEST ISSUED WITH WAIT?
	ORK	A6,1	SET BIT 15
	ADK	A3,0	CHECK FLAG IF FIRST ECB TO WAIT FOR 
	RF(NZ)	TMW:20	NOT THE FIRST ECB IN ECBBLK? 
	LDR	A9,A6	SAVE FIRST DWT ADDRESS 
	LDR	A3,A6
* 
TMW:20	EQU	*
	ST	A6,DWTWAT,A9	CHAIN THIS DWT WITH THE ONE BEFORE 
	LDR	A9,A6	SAVE THIS DWT ADDRESS
	SUK	A1,1 
	RB(P)	TMW:10	MORE ECB:S IN ECBBLK? 
	ST	A3,DWTWAT,A9	NO, SET FIRST DWT ADDRESS IN THE LAST
	RB	T:DISP	GO TO DISPATCHER 
* 
TMW:30	EQU	*
	ST	A8,TTB:SA+16,A5	UPDATE A8 IN TTAB SAVE AREA 
	ADK	A3,0	CHECK FLAG IF FIRST ECB TO WAIT FOR 
	RF(Z)	TP:QDI	FIRST ECB IN ECBBLK?
* 
TMW:40	ADKL	A3,DWTWAT	POINT TO WAIT/ACTIVATE INDICATOR
	LDR*	A2,A3	GET NEXT DWT ADDRESS
	RF(Z)	TP:QDI	NO MORE DWT:S?
	CMR	A3	SET TO NO WAIT AGAIN
	LDR	A3,A2
	RB	TMW:40
* 
	EJECT			TPROC
* 
* 
TP:RQE	EQU	*
	ABL	LKMRQE	LKM REQUEST ERROR 
* 
TP:QDI	EQU	*
	ABL	LKMQDI	QUEUE TASK AND DISPATCH 
* 
* 
* 
	END

Full view