|
|
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: 10866 (0x2a72)
Notes: pts_type(SC)
Names: »INIMOM.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »TOSSWORK/INIMOM.SC«
IDENT INIMOM REL 8.2 78-09-15 870105040820 ** *************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * INIMOM = INITIALIZE MONITOR * * * * * * *************************************************** * NOTE! THIS VERSION OF INIMON IS ONLY USED IN * PROGRAM DEBUGGING PHASE *************************************************** * * THIS MODULE IS USED TO INITIALIAZE THE MONITOR * AND START THE DISPATCHER. IT IS STARTED AFTER * PROGRAM LOAD. * * MEMORY MANAGEMENT VERSION * EJECT * * THE FOLLOWING TTAB FIELDS ARE RESET:- * * TTB:SA PROGRAM COUNTER * TTB:PP PENDING PROGRAM POINTER * * * THE FOLLOWING DWT FIELDS ARE RESET:- * * DWTST STATUS IS SET TO /8000 * DWTTQ TERMINAL ON QUEUE FOR THIS DEVICE * DWTECB DWT-ADDRESS * * INTERTASK COM. DWT ONLY: FIRST WORD IS RESET * * PRUN IS SET TO FIRST USER TERMINAL * * THE STACKBASE IS LOADED INTO REGISTER A15 AND * THE STACK IS INITIATED TO PERMIT START OF * THE SYSTEM WITH THE FIRST USER PROGRAM IN TCTAB * * TIMER QUEUE IS RESET. * MOREOVER ADDRESSES TO TIMER POINTERS DECLARED * IN FIRST WORD IN SECOND PART OF A TIMER BLOCK * SECTION ARE RESET. * * * ALL BLOCKS IN THE BLOCK SECTION ARE SET FREE. * * BUFFER QUEUE IS RESET. * * ATTACH CHAIN IS RESET * EJECT * * ENTRY POINTS * ENTRY INIMON MODULE ENTRY POINT * * EXTERNAL REFERENCES * EXTRN TCTAB EXTRN TTB:SS SEGMENT START ADDRESS EXTRN TTB:SP POINTER TO SEGMENT IN LSBT EXTRN TTB:SA SAVE AREA FOR TERMINAL EXTRN TTB:PP PENDING PROGRAM POINTER EXTRN TTB:ST STATUS EXTRN TTB:ID TERMINAL IDENTIFICATION EXTRN TTB:TD TERMINAL DEVICES EXTRN DWTST STATUS EXTRN DWTADR ACTIVATION ADDRESS EXTRN DWTECB DWT-ADDRESS EXTRN DWTTQ TERMINAL ON QUEUE EXTRN BLOCKL LENGTH OF BLOCK POOL EXTRN FREQUE FREE BLOCK IN QUEUE EXTRN GBQUE START OF BUFFER QUEUE EXTRN STB STACK BASE EXTRN DISQUE JOB QUEUE ANCHOR EXTRN TIMQUE TIMER QUEUE ANCHOR EXTRN PRUN TTAB FOR RUNNING PROGRAM EXTRN SRUN RUNNING SEGMENT EXTRN LRUQUE POINTER TO LRU-LINK EXTRN PFINIT INIT AFTER MASTER CLEAR EXTRN CDTAB COMMON DEVICE TABLE EXTRN APL APPLICATION LOADER EXTRN CVTMSZ MEMORY SIZE EXTRN CVTSBA BEGINNING OF BUFFER POOL EXTRN CVTEBA END OF BUFFER POOL EXTRN CVTSTB STACK BASE IN CVT EXTRN CVTAPS APPLICATION START ADDRESS EXTRN INIFLG INITIALIZATION FLAG EXTRN LOOP IDLE LOOP EXTRN BLOCKS COMMON BLOCK POOL EXTRN LDPEND LOAD PENDING INDICATOR EXTRN NUMPAR NUMBER OF PARTITIONS EXTRN PARLEN PARTITION LENGTH EXTRN FREPAR FREE PARTITION LINK EXTRN CVTLSB START ADDRESS OF LSB-TABLE EXTRN ATT:CH ATTACH CHAIN EXTRN ITADI ACTIVATION ADDRESS INTERTASK REQUEST EXTRN ITADO ACTIVATION ADDRESS INTERTASK REQUEST * EJECT * * * RESET TTAB FIELDS AND TERMINAL DEVICES * * INIMON EQU * INH INHIBIT INTERRUPTS LDK A7,0 LD* A1,TCTAB TCTAB LENGTH AD A1,TCTAB + BASE ADDRESS INI100 SUK A1,2 CW A1,TCTAB RF(E) INI200 ALL TERMINALS INITIALIZED LDR* A5,A1 TTAB ADDRESS SC A7,TTB:ST,A5 RESET STATUS CM TTB:PP,A5 RESET PENDING POINTER CM TTB:SA,A5 RESET DISPATCH ADDRESS CM TTB:SP,A5 RESET SEGMENT POINTER CM TTB:SS,A5 RESET SEGMENT START ADDRESS LDKL A14,INI100 RETURN ADDRESS LDKL A2,TTB:TD ADR A2,A5 TTAB CONFIGURATION PART ADDRESS ABL RSTDEV RESET TERMINAL DEVICES EJECT * * * RESET COMMON DEVICES * * INI200 EQU * LDKL A14,INI210 ACTION AFTER RESET LD A2,CDTAB DEVICE TABLE ADDRESS ABL RSTDEV EJECT * * * RESET DEVICES FOR A TERMINAL/COMMON * * ENTRY PARAMETERS: * * A2 = TABLE ADDRESS * A14= RETURN ADDRESS * * A1 AND A5 MAY NOT BE DESTRYED * * RSTDEV EQU * LDR* A3,A2 GET TABLE LENGTH LDR A4,A2 LDKL A8,/80 RST100 EQU * SUK A3,4 ABR(N) A14 ALL DEVICES RESET ADK A4,4 ADJUST ADDRESS TO DWT LDR* A6,A4 GET DWT ADDRESS RB(Z) RST100 DWT NOT IN SYSTEM LDKL A9,ITADI CW A9,DWTADR,A6 INTERTASK DWT? RF(E) RST120 YES! LDKL A9,ITADO CW A9,DWTADR,A6 INTERTASK DWT? RF(NE) RST130 NO! RST120 CMR A6 RESET WORD 0 RST130 EQU * SC A8,DWTST,A6 RESET DWT STATUS CM DWTECB,A6 RESET ECB CM DWTTQ,A6 RESET TERMINAL QUEUE RB RST100 NEXT DEVICE EJECT * * * RESET BLOCK POOL * * INI210 EQU * LDKL A4,TIMQUE TIMER QUEUE INI214 EQU * LDR* A4,A4 NEXT TIMER BLOCK IN QUEUE RF(Z) INI218 NO MORE LD* A3,2,A4 GET TIMER POINTER ADDRESS RB(Z) INI214 CMR A3 RESET TIMER POINTER RB INI214 INI218 EQU * CM TIMQUE RESET TIMER QUEUE LD A1,BLOCKL LENGTH OF BLOCK POOL LD A2,BLOCKS BLOCK POOL ADDRESS ST A2,FREQUE INITIALIZE FREE QUEUE POINTER INI220 EQU * SUK A1,6 RF(N) INI230 ALL DONE LDR A3,A2 ADK A2,6 STR A2,A3 STORE ADDRESS TO NEXT FREE POSITION RB INI220 INI230 CMR A3 END OF FREE BLOCKS * * RESET BUFFER QUEUE * CM GBQUE EJECT * * RESET ATTACH CHAIN * CM ATT:CH * * CLEAR PENDING LOAD OF LOAD TASK * CM LDPEND * * CLEAR LRU-QUEUE. INDICATE SEGMENTS UNLOADED * CM LRUQUE CLEAR LRU-LINK LD A4,CVTLSB GET ADDRESS TO LSBT LDR* A3,A4 GET LENGTH OF LSBT ADR A3,A4 UPPER LIMIT INILRU ADK A4,12 POINTER OF SEGMENT END CWR A4,A3 END OF SEGMENTS? RF(G) INIPAR LDK A1,/80 INDICATE SEGMENT NOT LOADED SC A1,-10,A4 CM -2,A4 CLEAR PRECEDENT CMR A4 CLEAR SUCCEDENT RB INILRU * * LINK FREE PARTITIONS * INIPAR EQU * LDKL A4,NUMPAR GET NUMBER OF PARTITIONS LD A3,CVTSBA ST A3,FREPAR SET FREE PARTITION POINTER INI240 SUK A4,1 LAST PARTITION? RF(Z) INI245 LDR A2,A3 AD A3,PARLEN ADD LENGTH STR A3,A2 STORE LINK RB INI240 INI245 CMR A3 EJECT * * * INITIALIZE STACK * INI250 LD A15,CVTSTB LOAD STACK BASE LDKL A1,LOOP STR A1,A15 LDKL A1,/FC00 STR A1,A15 SUKL A15,28 LDK A1,0 STR A1,A15 STR A1,A15 SRUN IDLE-LOOP EJECT * * * FIND FIRST USER PROGRAM * * LD A1,TCTAB TCTAB ADDRESS LDR* A4,A1 TCTAB LENGTH INIM50 ADK A1,2 SUK A4,2 RF(NZ) INIM60 HLT NO USER TASK FOUND INIM60 LDR* A5,A1 TTAB ADDRESS LD A2,TTB:ID,A5 TASK IDENTIFICATION RB(N) INIM50 MONITOR TASK ST A5,PRUN SET TTAB FOR RUNNING PROGRAM CM SRUN SET ROOTSEGMENT CMR A5 LD A7,TTB:ST,A5 GET USER LEVEL SRC A7,6 CM DISQUE NO JOBS ON QUEUE EJECT * * * START SYSTEM * * INI510 EQU * CM INIFLG IM INIFLG LDKL A13,WAITIS STR A13,A15 USER START ADDRESS STR A7,A15 AND LEVEL ABL PFINIT INITIALIZE DEVICES WAITIS EQU * LDKL A8,10 LKM DATA 6 ABI CVTAPS END