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

⟦45fd0c009⟧

    Length: 7094 (0x1bb6)
    Notes: pts_type(SC)
    Names: »TMMLKM.SC«

Derivation

└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
    └─⟦this⟧ »M:DEMO/TMMLKM.SC« 
└─⟦4358b8014⟧ Bits:30009669 Philips computer tape "600124"
    └─⟦this⟧ »MON10/TMMLKM.SC« 
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »M:DE10/TMMLKM.SC« 
└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
    └─⟦this⟧ »M:DENJ/TMMLKM.SC« 
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
    └─⟦this⟧ »M:DECE/TMMLKM.SC« 
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
    └─⟦this⟧ »M:DENJ/TMMLKM.SC« 
    └─⟦this⟧ »MON10/TMMLKM.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »M:DE10/TMMLKM.SC« 

PTS(SC)

	IDENT TMMLKM 	REL 10.0 80-03-14 870105041000 

* 
* 
**************************************************
* 
*   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