|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7252 (0x1c54)
Notes: pts_type(SC)
Names: »TMMLKM.SC«
└─⟦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«
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