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

⟦14a0d8064⟧

    Length: 7834 (0x1e9a)
    Notes: pts_type(SC)
    Names: »TPROC.SC«

Derivation

└─⟦173d42e04⟧ Bits:30009663 Philips computer tape "600105"
    └─⟦this⟧ »TOSSWORK/TPROC.SC« 
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »M:TU10/TPROC.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »M:TU10/TPROC.SC« 

PTS(SC)

	IDENT TPROC 	REL 10.0 80-03-14 870105041000

* 
* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TPROC = TOSS LKM PROCESSORS 
* 
* 
* 
* 
* 
* 
**************************************************
* 
* 
*   THIS MODULE CONTAINS THE FOLLOWING
*   TOSS LKM PROCESSORS:
* 
*   - TWAIT  = WAIT 
* 
*   - TMWAIT = MULTIPLE WAIT
* 
*   - TACTOT = ACTIVATE/RESTART TASK
* 
	EJECT			TPROC
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TWAIT	WAIT PROCESSOR 
	ENTRY	TMWAIT	MULTIPLE WAIT PROCESSOR 
	ENTRY	TACTOT	ACTIVATE/RESTART PROCESSOR
	EJECT			TPROC
* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	TDISP	DISPATCHER 
	EXTRN	QTJOB	QUEUE TASK FOR DISPATCHING 
	EXTRN	LKMQDI	QUEUE TASK AND DISPATCH 
	EXTRN	ACTDIS	ACTIVATE TASK AND DISPATCH
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	FNDDWT	FIND DWT ADDRESS FROM FILE CODE 
	EXTRN	FNDTID	FIND TTAB ADDRESS FROM TASK ID
	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 
* 
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
	ABL	ACTDIS	ACTIVATE TASK AND DISPATCH
* 
	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