|
|
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: 7674 (0x1dfa)
Notes: pts_type(SC)
Names: »TLDSEG.SC«
└─⟦025d39960⟧ Bits:30009672 Philips computer tape "600133"
└─⟦this⟧ »M:DSB/TLDSEG.SC«
└─⟦1fa4b7c7b⟧ Bits:30009694 Philips computer tape "600410A"
└─⟦this⟧ »MODMON/TLDSEG.SC«
└─⟦245262b9f⟧ Bits:30009679 Philips computer tape "600220"
└─⟦this⟧ »M:92LP/TLDSEG.SC«
└─⟦this⟧ »M:92NA/TLDSEG.SC«
└─⟦38a30a456⟧ Bits:30009662 Philips computer tape "600104"
└─⟦this⟧ »M:92OD/TLDSEG.SC«
└─⟦470bcbfc6⟧ Bits:30009709 Philips computer tape "M_92LP"
└─⟦this⟧ »M:92LP/TLDSEG.SC«
└─⟦6349b94c6⟧ Bits:30009684 Philips computer tape "600308"
└─⟦this⟧ »M:92D1/TLDSEG.SC«
└─⟦726a6c4ca⟧ Bits:30009685 Philips computer tape "600309"
└─⟦this⟧ »M:92D2/TLDSEG.SC«
└─⟦9ad21746d⟧ Bits:30009682 Philips computer tape "600304"
└─⟦this⟧ »M:92NA/TLDSEG.SC«
└─⟦a25d6defe⟧ Bits:30009676 Philips computer tape "600210"
└─⟦this⟧ »M:92NA/TLDSEG.SC«
IDENT TLDSEG REL 9.2 79-11-16 870105040920 * * ************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * TLDSEG = LOAD SEGMENT * * * * ************************************************** * * * THIS MODULE CONTAINS THE LOAD SEGMENT LKM PROCESSOR, * USED IN TOSS MEMORY MANAGEMENT SYSTEMS. * * EJECT TLDSEG * * *********** * ENTRIES * *********** * * ENTRY TLDSEG LOAD SEGMENT ENTRY TLDS15 ENTRY USED BY LDTASK ENTRY TLDS20 ENTRY USED BY LDTASK EJECT TLDSEG * * ************* * EXTERNALS * ************* * * EXTRN PRUN TTAB ADDRESS OF RUNNING PROGRAM EXTRN TDISP DISPATCHER EXTRN LKM030 LKM REQUEST ERROR EXTRN PAG:QB QUEUE LINK BACKWARDS EXTRN PAG:PA PAGE ADDRESS EXTRN SEG:DS DISC SECTOR ADDRESS EXTRN SEG:PB PAGE BLOCK ADDRESS EXTRN T:ACSB CURRENT SEGMENT BASE EXTRN TTB:SA TTAB SAVE AREA EXTRN TTB:MT MMU TABLE EXTRN TTB:SB SEGMENT BLOCK ADDRESS EXTRN QLTDSK ACTIVATE LDTASK AT ENTRY LT:DSK EXTRN SCTSEG SEGTAB ADDRESS EXTRN SCTNOS NUMBER OF SEGMENTS EXTRN SCTMMP MMU TABLE PAGE ENTRY EXTRN SCTNPE NUMBER OF PAGE ENTRIES EXTRN SCTLAP LOGICAL ADDRESS OF PAGES EJECT TLDSEG * * ***************************************** * * CONDITIONAL ASSEMBLY * ***************************************** * * A PROGRAM VERSION USING TOSS MMU PAGING * IS OBTAINED BY SETTING MMUPAG EQU 1. * MMUPAG EQU 1 * * * A PROGRAM VERSION USING THE EXTENDED INSTRUCTION * SET IS OBTAINED BY SETTING CPU852 EQU 0. * CPU852 EQU 0 * * * A PROGRAM VERSION USING TOSS DISC PAGING * IS OBTAINED BY SETTING DSKPAG EQU 1. * DSKPAG EQU 0 * * * A PROGRAM VERSION USING TOSS ASSEMBLER OVERLAY * IS OBTAINED BY SETTING ASSOLY EQU 1. * ASSOLY EQU 0 * EJECT TLDSEG * * ********** * TLDSEG * ********** * * * THIS IS THE LOAD SEGMENT LKM PROCESSOR. * * IT IS ENTERED FROM THE LKM HANDLER * WITH THE FOLLOWING PARAMETERS: * * A2 = DISPATCH ADDRESS (NOT UPDATED BY IHLKM) * A5 = TTAB ADDRESS * A7 = SEGMENT NUMBER * A13 = T:A ADDRESS (FOR CREDIT APPLICATIONS) * * IT RETURNS TO CALLING TASK WITH * THE FOLLOWING PARAMETERS: * * A7 = UNCHANGED IF SEGMENT LOADING IS SUCCESSFUL, ELSE * A7 = -1 IF REQUEST ERROR, ELSE * A7 = -2 IF DISC I/O ERROR, ELSE * A7 = -3 IF DISC NOT OPERABLE * * WHEN REQUESTED SEGMENT IS ALREADY IN CORE: * THE REQUEST WILL NOT GO THROUGH THE DISPATCHER AFTER * COMPLETION, THUS NO TASK SWITCHING WILL BE PERFORMED, * IN PURPOSE TO MAKE THE REQUEST AS FAST AS POSSIBLE. * * WHEN REQUESTED SEGMENT IS NOT IN CORE TLDSEG WILL * ACTIVATE LDTASK WHICH WILL LOAD SEGMENT INTO CORE. * * EJECT TLDSEG * * CHECK VALIDITY OF SEGMENT NUMBER * TLDSEG EQU * LOAD SEGMENT LDR A1,A7 CHECK IF SEGMENT NUMBER < 0 RF(N) TLDERR REQUEST ERROR? CW A1,SCTNOS CHECK IF SEGMENT NUMBER TOO BIG RF(NG) TLDS00 OK? * TLDERR LDK A6,/FF INDICATE ERROR ABL LKM030 BRANCH TO LKM REQUEST ERROR * * GET SEGMENT BLOCK ADDRESS. * UPDATE RETURN ADDRESS * TLDS00 EQU * LDR A3,A5 GET TTAB ADDRESS SLL A1,3 ADJUST FOR INDEXING IN SEGTAB AD A1,SCTSEG ADD SEGTAB ADDRESS ADK A2,2 UPDATE DISPATCH ADDRESS * IFT DSKPAG=0 SUKL A15,4 ADJUST STACKPOINTER ST A2,4,A15 SET DISPATCH ADDRESS ON STACK XIF * ADK A7,0 CHECK SEGMENT NUMBER RF(NZ) TLDS05 NOT SEGMENT 0? ST A7,TTB:SB,A3 RESET SEGMENT BLOCK ADDRESS LD A1,SEG:DS,A1 GET LOGICAL ADDRESS OF SEGMENT 0 * IFT DSKPAG=1 SUKL A15,4 ADJUST STACKPOINTER ST A2,4,A15 SET DISPATCH ADDRESS ON STACK XIF * RF TLDS40 * EJECT TLDSEG * * TLDS05 EQU * IFT DSKPAG=1 ST A1,TTB:SB,A3 UPDATE SEGMENT BLOCK ADDRESS LDR* A4,A1 GET SEGMENT STATUS RF(N) TLDS10 SEGMENT LOADED IN CORE? ST A2,TTB:SA,A3 CM PRUN * * ACTIVATE LOAD TASK * CF A15,QLTDSK ACTIVATE LOAD TASK AT ENTRY LT:DSK ABL TDISP GO TO DISPATCHER XIF * TLDS10 LD A1,SEG:PB,A1 GET PAGE BLOCK ADDRESS * IFT DSKPAG=1 SUKL A15,4 ADJUST STACKPOINTER ST A2,4,A15 SET DISPATCH ADDRESS ON STACK * * REMOVE PAGE BLOCK FROM PAGE QUEUE * XIF * TLDS15 EQU * ENTRY USED BY LDTASK IFT DSKPAG=1 LDR* A2,A1 GET QUEUE LINK FORWARD RF(Z) TLDS20 PAGE BLOCK NOT IN QUEUE? LD A4,PAG:QB,A1 GET QUEUE LINK BACKWARD CMR A1 RESET QUEUE LINK FORWARD OF REMOVED BLK STR A2,A4 UPDATE QUEUE LINKS ST A4,PAG:QB,A2 XIF * EJECT TLDSEG * * GET PAGE ADDRESS OF REQUESTED SEGMENT * TLDS20 EQU * ENTRY USED BY LDTASK LD A1,PAG:PA,A1 GET PAGE ADDRESS * IFT MMUPAG=1 ECR A2,A1 ANK A2,/FC * * GET PAGE ENTRY/ENTRIES TO UPDATE IN MMU TABLE * AD A3,SCTMMP POINT TO FIRST USED PAGE ENTRY LD A4,SCTNPE GET NUMBER OF PAGE ENTRIES * * UPDATE PAGE ENTRY/ENTRIES * TLDS25 EQU * SCR A2,A3 UPDATE PAGE ENTRY SUK A4,1 RF(NP) TLDS30 NO MORE PAGE ENTRIES? ADK A3,2 POINT TO NEXT PAGE ENTRY ADK A2,4 UPDATE PAGE ADDRESS RB TLDS25 * EJECT TLDSEG * * TLDS30 ANKL A1,/300 COMPUTE CURRENT SEGMENT BASE SLL A1,2 OR A1,SCTLAP TL TTB:MT,A5 LOAD MMU REGISTERS * TLDS40 EQU * IFT ASSOLY=0 ES A1,T:ACSB,A13 UPDATE CURRENT SEGMENT BASE XIF * IFT MMUPAG=0 TLDS40 EQU * ST A1,T:ACSB,A13 UPDATE CURRENT SEGMENT BASE XIF * IFT CPU852=0 LDR A6,A5 ML 6,TTB:SA+2,A6 RESTORE A1-A6 RTN A15 RETURN TO CALLING TASK XIF * IFT CPU852=1 LD A1,TTB:SA+2,A5 RESTORE A1-A6 LD A2,TTB:SA+4,A5 LD A3,TTB:SA+6,A5 LD A4,TTB:SA+8,A5 LD A6,TTB:SA+12,A5 LD A5,TTB:SA+10,A5 RTN A15 RETURN TO CALLING TASK XIF * * * END