|
|
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: 7834 (0x1e9a)
Notes: pts_type(SC)
Names: »TPROC.SC«
└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
└─⟦this⟧ »M:DEMO/TPROC.SC«
└─⟦4358b8014⟧ Bits:30009669 Philips computer tape "600124"
└─⟦this⟧ »MON10/TPROC.SC«
└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
└─⟦this⟧ »M:DENJ/TPROC.SC«
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
└─⟦this⟧ »M:DECE/TPROC.SC«
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
└─⟦this⟧ »M:DENJ/TPROC.SC«
└─⟦this⟧ »MON10/TPROC.SC«
IDENT TPROC REL 10.0 80-03-14 870105041000 * * ************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * TPROC = TOSS LKM PROCESSORS * * * * * * ************************************************** * * * THIS MODULE CONTAINS THE FOLLOWING * TOSS LKM PROCESSORS: * * - TWAIT = WAIT * * - TMWAIT = MULTIPLE WAIT * * - TACTOT = ACTIVATE/RESTART TASK * EJECT TPROC * * *********** * ENTRIES * *********** * * ENTRY TWAIT WAIT PROCESSOR ENTRY TMWAIT MULTIPLE WAIT PROCESSOR ENTRY TACTOT ACTIVATE/RESTART PROCESSOR EJECT TPROC * * ************* * EXTERNALS * ************* * * EXTRN TDISP DISPATCHER EXTRN QTJOB QUEUE TASK FOR DISPATCHING EXTRN LKMQDI QUEUE TASK AND DISPATCH EXTRN ACTDIS ACTIVATE TASK AND DISPATCH EXTRN LKMRQE LKM REQUEST ERROR EXTRN FNDDWT FIND DWT ADDRESS FROM FILE CODE EXTRN FNDTID FIND TTAB ADDRESS FROM TASK ID EXTRN TTB:SA TTAB SAVE AREA EXTRN DWTST DWT STATUS EXTRN DWTTAB TTAB ADDRESS EXTRN DWTWAT WAIT/ACTIVATE INDICATOR EJECT TPROC * * ***************************************** * * CONDITIONAL ASSEMBLY * ***************************************** * * A PROGRAM VERSION USING TOSS MMU PAGING * IS OBTAINED BY SETTING MMUPAG EQU 1. * MMUPAG EQU 1 * EJECT TPROC * * ******** * WAIT * ******** * * * THIS IS THE WAIT LKM PROCESSOR. * * THIS MODULE IS ENTERED WHEN THE TASK * WANTS TO SYNCHRONIZE WITH A PARTICULAR EVENT. * * IT IS ENTERED FROM THE LKM HANDLER * WITH THE FOLLOWING PARAMETERS: * * A5 = TTAB ADDRESS * A8 = ECB ADDRESS * * TWAIT CF A15,FNDDWT SEARCH DWT ADDRESS ADK A6,0 SET CR RF(Z) TP:RQE FILE CODE NOT FOUND * IFT MMUPAG=0 LDR* A1,A8 RETURN IF EVENT COMPLETED XIF * IFT MMUPAG=1 ELR A1,A8 RETURN IF EVENT COMPLETED XIF * RF(N) TP:QDI I/O ALREADY COMPLETED IM DWTWAT,A6 NO, SET WAIT INDICATOR IN DWT * T:DISP ABL TDISP GO TO DISPATCHER * EJECT TPROC * * ********** * TACTOT * ********** * * * THIS IS THE ACTIVATE/RESTART TASK LKM PROCESSOR. * * THIS MODULE IS ENTERED FROM THE LKM HANDLER * WHEN A TASK HAS TO BE ACTIVATED. * * THE FOLLOWING PARAMETERS ARE SUPPLIED:- * * A1 = PARAMETER WHEN A4 NOT ZERO * A4 = START ADDRESS AT ACTIVATION, ELSE ZERO * A5 = TTAB * A7 = IDENTIFICATION FOR TASK TO BE ACTIVATED * * TACTOT EQU * CF A15,FNDTID FIND TTAB ADDRESS ADK A2,0 SET CR RF(Z) TP:RQE TASK NOT IN SYSTEM CF A15,QTJOB QUEUE CALLING TASK FOR DISPATCHING LD A3,TTB:SA+6,A5 GET SEGMENT NUMBER LDR A5,A2 LDR A2,A4 RF(Z) TP:QDI RESTART: QUEUE FOR DISPATCHING ABL ACTDIS ACTIVATE TASK AND DISPATCH * EJECT TPROC * * ********** * TMWAIT * ********** * * * THIS IS THE MULTIPLE WAIT LKM PROCESSOR. * * IT IS ENTERED FROM THE LKM HANDLER * WITH THE FOLLOWING PARAMETERS: * * A5 = TTAB ADDRESS * A7 = ECBBLK ADDRESS * * WHEN ONE OF THE SPECIFIED EVENTS IS COMPLETED, * RETURN IS MADE TO THE CALLING TASK VIA TENDIO * WITH THE FOLLOWING PARAMETERS: * * A8 = ECB ADDRESS OF COMPLETED EVENT * * IF REQUEST ERROR, A7 := -1 (AND NO RETURN VIA TENDIO). * * NOTICE THAT ALL EVENTS MUST HAVE * BEEN ISSUED IN THE NO WAIT MODE. * * EJECT TPROC * * TMWAIT EQU * MULTIPLE WAIT ENTRY LDK A3,0 * IFT MMUPAG=0 LDR* A1,A7 GET NO OF ECB:S IN ECBBLK XIF * IFT MMUPAG=1 ELR A1,A7 GET NO OF ECB:S IN ECBBLK XIF * RF(NP) TP:RQE REQUEST ERROR IF <= 0 * TMW:10 EQU * ADK A7,2 POINT TO NEXT ECB ADDRESS IN ECBBLK * IFT MMUPAG=0 LDR* A8,A7 GET ECB ADDRESS LDR* A2,A8 GET FIRST WORD OF ECB XIF * IFT MMUPAG=1 ELR A8,A7 GET ECB ADDRESS ELR A2,A8 GET FIRST WORD OF ECB XIF * RF(N) TMW:30 I/O ALREADY COMPLETED CF A15,FNDDWT NO, SEARCH DWT ADDRESS FROM FILE CODE ADK A6,0 SET CR RF(Z) TP:RQE NOT FOUND * EJECT TPROC * * LD A2,DWTST,A6 GET DWT STATUS RF(N) TP:RQE NOT BUSY CW A5,DWTTAB,A6 RF(NE) TP:RQE REQUEST NOT ISSUED BY THIS TASK LD A2,DWTWAT,A6 GET WAIT/ACTIVATE INDICATOR RF(NZ) TP:RQE REQUEST ISSUED WITH WAIT ORK A6,1 SET BIT 15 ADK A3,0 CHECK FLAG IF FIRST ECB TO WAIT FOR RF(NZ) TMW:20 NOT THE FIRST ECB IN ECBBLK LDR A9,A6 SAVE FIRST DWT ADDRESS LDR A3,A6 * TMW:20 EQU * ST A6,DWTWAT,A9 CHAIN THIS DWT WITH THE ONE BEFORE LDR A9,A6 SAVE THIS DWT ADDRESS SUK A1,1 RB(P) TMW:10 MORE ECB:S IN ECBBLK ST A3,DWTWAT,A9 NO, SET FIRST DWT ADDRESS IN THE LAST RB T:DISP GO TO DISPATCHER * TMW:30 EQU * ST A8,TTB:SA+16,A5 UPDATE A8 IN TTAB SAVE AREA ADK A3,0 CHECK FLAG IF FIRST ECB TO WAIT FOR RF(Z) TP:QDI FIRST ECB IN ECBBLK * TMW:40 ADKL A3,DWTWAT POINT TO WAIT/ACTIVATE INDICATOR LDR* A2,A3 GET NEXT DWT ADDRESS RF(Z) TP:QDI NO MORE DWT:S CMR A3 SET TO NO WAIT AGAIN LDR A3,A2 RB TMW:40 * EJECT TPROC * * TP:RQE EQU * ABL LKMRQE LKM REQUEST ERROR * TP:QDI EQU * ABL LKMQDI QUEUE TASK AND DISPATCH * * * END