|
|
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: 7762 (0x1e52)
Notes: pts_type(SC)
Names: »INIMON.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »TOSSWORK/INIMON.SC«
IDENT INIMON REL 8.2 78-09-15 870105040820 ** *************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * INIMON = 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. * 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: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 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 ATT:CH ATTACH CHAIN ANCHOR EXTRN ITADI INTERTASK ACTIVATION READ EXTRN ITADO INTERTASK ACTIVATION WRITE * 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 LDKL A2,/80FF ANS A2,TTB:ST,A5 RESET STATUS CM TTB:PP,A5 RESET PENDING POINTER CM TTB:SA,A5 RESET DISPATCH 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 * * * 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 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 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