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

⟦ca2f5a8bb⟧

    Length: 7252 (0x1c54)
    Notes: pts_type(SC)
    Names: »TMMLKM.SC«

Derivation

└─⟦7a1dcd5a9⟧ Bits:30009673 Philips computer tape "600134"
    └─⟦this⟧ »PTMON/TMMLKM.SC« 
└─⟦7b35573c9⟧ Bits:30009690 Philips computer tape "600402"
    └─⟦this⟧ »M:AF/TMMLKM.SC« 
└─⟦928b1fd3e⟧ Bits:30009671 Philips computer tape "600131"
    └─⟦this⟧ »PTMON/TMMLKM.SC« 
└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
    └─⟦this⟧ »MONGEN/TMMLKM.SC« 

PTS(SC)

	IDENT TMMLKM 	REL 11.0 81-01-26 870105041100 

* 
* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TMMLKM = TOSS MMU LKM PROCESSORS
* 
* 
* 
* 
**************************************************
* 
* 
*   THIS MODULE CONTAINS THE FOLLOWING
*   TOSS MMU LKM PROCESSORS:
* 
*   - TCHPAG = CHANGE MMU PAGE
* 
*   - TCHMMU = CHANGE MMU TABLE 
* 
*   - TLUSEG = LOCK/UNLOCK SEGMENT
* 
* 
	EJECT			TMMLKM 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TCHPAG	CHANGE MMU PAGE 
	ENTRY	TCHMMU	CHANGE MMU TABLE
	ENTRY	TLUSEG	LOCK/UNLOCK SEGMENT 
	EJECT			TMMLKM 
* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	FNDTID	FIND TTAB ADDRESS FROM TASK ID
	EXTRN	RELPAG	RELEASE PAGE
	EXTRN	LKMQDI	QUEUE TASK FOR DISPATCHING
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	TTB:MT	MMU TABLE DISPLACEMENT IN TTAB
	EXTRN	TTB:SP	SEGMENT TABLE ADDRESS 
	EXTRN	SEG:NS	NUMBER OF SEGMENTS
	EJECT			TMMLKM 
* 
* 
**********
* TCHPAG *
**********
* 
* 
*   THIS IS THE CHANGE MMU PAGE LKM PROCESSOR.
* 
*   TCHPAG WILL CHANGE THE LOGICAL ADDRESSING SPACE OF A TASK.
*   ONLY ONE PHYSICAL PAGE (4 KB) CAN BE CHANGED AT A TIME. 
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A7 = PAGE TO BE CHANGED, 0 - 15 
*   A8 = NEW LOCATION OF PAGE, 0 - 63 
* 
*   IT RETURNS TO CALLING TASK WITH A7 AND A8 UNCHANGED.
* 
TCHPAG	EQU	*	CHANGE MMU PAGE
	ANK	A7,/F	SKIP IRRELEVANT BITS (IF ANY)
	ADR	A7,A7	ADJUST FOR INDEXING IN MMU TABLE 
	ADR	A7,A5	ADD TTAB ADDRESS 
	LDR	A2,A8	NEW PAGE LOCATION
	ANK	A2,/3F	SKIP IRRELEVANT BITS (IF ANY) 
	SLL	A2,2 
	SC	A2,TTB:MT,A7	STORE NEW LOCATION OF PAGE IN MMU TABLE
* 
T:DISP	ABL	LKMQDI	QUEUE TASK FOR DISPATCHING
* 
	EJECT			TMMLKM 
* 
* 
**********
* TCHMMU *
**********
* 
* 
*   THIS IS THE CHANGE MMU TABLE LKM PROCESSOR. 
* 
*   TCHMMU WILL CHANGE THE MMU TABLE CONTENTS OF REQUESTING TASK
*   TO THE MMU TABLE CONTENTS OF SPECIFIED TASK.
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A7 = TASK IDENTIFICATION OF SEARCHED TASK 
* 
*   IT RETURNS TO CALLING TASK WITH 
*   THE FOLLOWING PARAMETER:
* 
*   A7 = UNCHANGED IF REQUEST SUCCESSFUL, ELSE
*   A7 = -1 IF TASK NOT IN SYSTEM 
* 
TCHMMU	EQU	*	CHANGE MMU TABLE 
	CF	A15,FNDTID	GET TTAB ADDRESS TO A2 
	ADK	A2,0	SET CR
	RF(Z)	TLCERR	TTAB NOT FOUND
	TL	TTB:MT,A2	LOAD SEARCHED MMU TABLE CONTENTS
	TS	TTB:MT,A5	STORE IN MMU TABLE OF CALLING TASK
	RB	T:DISP	QUEUE TASK FOR DISPATCHING 
* 
	EJECT			TMMLKM 
* 
* 
**********
* TLUSEG *
**********
* 
* 
*   THIS IS THE LOCK/UNLOCK SEGMENT LKM PROCESSOR.
* 
*   THE LOCK SEGMENT REQUEST WILL MAKE A SEGMENT CORE RESIDENT, 
*   UNTIL AN UNLOCK SEGMENT REQUEST IS ISSUED FOR THAT SEGMENT. 
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A7 = SEGMENT NUMBER 
*   A8 = 0 IF LOCK SEGMENT REQUEST
*      = 1 IF UNLOCK SEGMENT REQUEST
* 
*   IT RETURNS TO CALLING TASK WITH 
*   THE FOLLOWING PARAMETERS: 
* 
*   A7 = UNCHANGED IF REQUEST SUCCESSFUL, ELSE
*   A7 = -1 IF REQUEST ERROR
* 
* 
	EJECT			TMMLKM 
* 
* 
TLUSEG	EQU	*	LOCK/UNLOCK SEGMENT
	LD	A4,TTB:SP,A5	SEGTAB ADDRESS 
	LDR	A3,A7	CHECK IF SEGMENT NUMBER < 0
	RF(NP)	TLCERR	REQUEST ERROR
	CW	A3,SEG:NS,A4	CHECK IF SEGMENT NUMBER TOO BIG
	RF(NG)	TLUS00	OK 
* 
TLCERR	EQU	*
	ABL	LKMRQE	BRANCH TO LKM REQUEST ERROR 
* 
TLUS00	EQU	*
	SLL	A3,3	ADJUST FOR INDEXING IN SEGTAB 
	ADR	A3,A4	ADD SEGTAB ADDRESS 
	LCR	A4,A3	GET SEGMENT STATUS 
	ANK	A4,/8
	RB(NZ)	TLCERR	CORE RESIDENT
* 
	LDKL	A4,/200 
	LDR	A8,A8	CHECK WHAT REQUEST IT IS 
	RF(NZ)	TLUS10	UNLOCK SEGMENT 
* 
	EJECT			TMMLKM 
* 
*	LOCK SEGMENT
* 
	ORRS	A4,A3	INDICATE SEGMENT TO BE CORE RESIDENT
	RB	T:DISP
* 
*	UNLOCK SEGMENT
* 
TLUS10	EQU	*
	C1R	A4,A4	A4 := /FDFF
	ANRS	A4,A3	INDICATE SEGMENT NOT CORE RESIDENT
	CF	A15,RELPAG	RELEASE PAGE 
	RB	T:DISP
* 
* 
* 
	END

Full view