|
|
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: 7962 (0x1f1a)
Notes: pts_type(SC)
Names: »TMMLKM.SC«
└─⟦110b7ed5e⟧ Bits:30009664 Philips computer tape "600106"
└─⟦this⟧ »TOSSWORK/TMMLKM.SC«
IDENT TMMLKM REL 9.2 79-11-16 870105040920 * * ************************************************** * * 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 * * ************* * EXTERNALS * ************* * * EXTRN FNDTID FIND TTAB ADDRESS FROM TASK ID EXTRN LKMQDI QUEUE TASK FOR DISPATCHING EXTRN LKMRQE LKM REQUEST ERROR EXTRN TTB:MT MMU TABLE DISPLACEMENT IN TTAB EXTRN SCTSEG SEGTAB ADDRESS EXTRN SCTNOS 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 SEGMENT LOADING IS SUCCESSFUL, ELSE * A7 = -1 IF REQUEST ERROR, ELSE * * EJECT TMMLKM * * TLUSEG EQU * LOCK/UNLOCK SEGMENT LDR A1,A7 CHECK IF SEGMENT NUMBER < 0 RF(NP) TLCERR REQUEST ERROR? CW A1,SCTNOS CHECK IF SEGMENT NUMBER TOO BIG RF(NG) TLUS00 OK? * TLCERR EQU * ABL LKMRQE BRANCH TO LKM REQUEST ERROR * TLUS00 EQU * SLL A1,3 ADJUST FOR INDEXING IN SEGTAB AD A1,SCTSEG ADD SEGTAB ADDRESS LCR A4,A1 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,A1 INDICATE SEGMENT TO BE CORE RESIDENT RB T:DISP * * UNLOCK SEGMENT * TLUS10 EQU * C1R A4,A4 A4 := /FDFF ANRS A4,A1 INDICATE SEGMENT NOT CORE RESIDENT RB T:DISP * * * END