DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦fac0dd38c⟧

    Length: 7762 (0x1e52)
    Notes: pts_type(SC)
    Names: »INIMON.SC«

Derivation

└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
    └─⟦this⟧ »TOSSWORK/INIMON.SC« 

PTS(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

Full view