perm filename NWORLD.DIF[S,AIL] blob sn#202942 filedate 1976-02-22 generic text, type T, neo UTF8

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 1,1

******** NWORLD **** PAGE 1  LINE 2
1)	RECORD PAGE   DESCRIPTION
1)	 00001 00001
1)	 00009 00002	HISTORY
1)	 00014 00003	 MANY DECLARATIONS
1)	 00020 00004	PROCESS VARIABLE NUMBERS
1)	 00023 00005	COMMENT event variables
1)	 00024 00006	COMMENT procedure descriptors & null process skeleton
1)	 00026 00007	DSCR SPROUT -- THE PROCESS SPROUTER
1)	 00033 00008
1)	 00040 00009
1)	 00041 00010	COMMENT routines for inserting & deleting set elements
1)	 00045 00011	USER REQUESTED SCHEDULING
1)	 00050 00012	HERE(RESUME)
1)	 00054 00013	COMMENT SUSPEND and TERMINATE runtime routines
1)	 00057 00014	COMMENT The JOIN runtime routine
1)	 00059 00015	COMMENT THE MAIN PROCESS INITIALIZER
1)	 00061 00016	COMMENT CALLER , MYPROC, AND PSTATUS 
1)	 00063 00017	COMMENT  PRISET -- ROUTINE USER CALLS TO CHANGE PRIORITY 
1)	 00064 00018	COMMENT SPECIAL GC ROUTINE FOR PROCESSES
1)	 00065 00019	COMMENT INTERRUPT ROUTINES
1)	 00069 00020	COMMENT THE INTERRUPT PROCESS
1)	 00072 00021
1)	 00073 00022	COMMENT  CAUSE 
1)	 00075 00023	COMMENT CAUSE1 -- ROUTINE TO DO ACTUAL WORK 
1)	 00078 00024	COMMENT ANSWER -- subroutine used by CAUSE
1)	 00080 00025	COMMENT DELWRQ -- delete all wait requests
1)	 00082 00026	COMMENT INTERROGATE
1)	 00084 00027	COMMENT ASK -- used by INTERROGATE
1)	 00087 00028	COMMENT MKEVTT,SETCP,& SETIP
1)	 00089 00029	SPARE HERE TABLE ENTRIES
1)	 00090 00030	COMPIL(IRP,,,,,,DUMMYFORGDSCISS)
1)	 00092 00031	HERE(INTTBL)
1)	 00095 00032	PROCEDURES TO ENABLE FOR INTERRUPTS
1)	 00097 00033	
1)	 00098 00034	HERE(INTTBL)
1)	 00101 00035	DSCR
1)	 00106 00036	HERE(PSIDISMS)
1)	 00108 00037	HERE(PSIRUNTM)
1)	 00112 00038	HERE(KPSITIME)
1)	 00113 00039
1)	 00114 00040
1)	 00115 ENDMK
1)	⊗;
1)	COMMENT ⊗HISTORY
*** NWORLD.NEW *** PAGE 1  LINE 2
2)	C REC  PAGE   DESCRIPTION
2)	C00001 00001

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 1,1

2)	C00004 00002	HISTORY
2)	C00009 00003	 MANY DECLARATIONS
2)	C00015 00004	PROCESS VARIABLE NUMBERS
2)	C00018 00005	COMMENT event variables
2)	C00019 00006	COMMENT procedure descriptors & null process skeleton
2)	C00021 00007	DSCR SPROUT -- THE PROCESS SPROUTER
2)	C00028 00008
2)	C00035 00009
2)	C00036 00010	COMMENT routines for inserting & deleting set elements
2)	C00040 00011	USER REQUESTED SCHEDULING
2)	C00045 00012	HERE(RESUME)
2)	C00050 00013	COMMENT SUSPEND and TERMINATE runtime routines
2)	C00053 00014	COMMENT The JOIN runtime routine
2)	C00055 00015	COMMENT THE MAIN PROCESS INITIALIZER
2)	C00057 00016	COMMENT CALLER , MYPROC, AND PSTATUS 
2)	C00059 00017	COMMENT  PRISET -- ROUTINE USER CALLS TO CHANGE PRIORITY 
2)	C00060 00018	COMMENT SPECIAL GC ROUTINE FOR PROCESSES
2)	C00061 00019	COMMENT INTERRUPT ROUTINES
2)	C00065 00020	COMMENT THE INTERRUPT PROCESS
2)	C00068 00021
2)	C00069 00022	COMMENT  CAUSE 
2)	C00071 00023	COMMENT CAUSE1 -- ROUTINE TO DO ACTUAL WORK 
2)	C00074 00024	COMMENT ANSWER -- subroutine used by CAUSE
2)	C00076 00025	COMMENT DELWRQ -- delete all wait requests
2)	C00078 00026	COMMENT INTERROGATE
2)	C00080 00027	COMMENT ASK -- used by INTERROGATE
2)	C00083 00028	COMMENT MKEVTT,SETCP,& SETIP
2)	C00085 00029	SPARE HERE TABLE ENTRIES
2)	C00086 00030	COMPIL(IRP,,,,,,DUMMYFORGDSCISS)
2)	C00088 00031	HERE(INTTBL)
2)	C00091 00032	PROCEDURES TO ENABLE FOR INTERRUPTS
2)	C00093 00033	
2)	C00094 00034	HERE(INTTBL)
2)	C00097 00035	DSCR
2)	C00102 00036	HERE(PSIDISMS)
2)	C00104 00037	HERE(PSIRUNTM)
2)	C00108 00038	HERE(KPSITIME)
2)	C00109 00039
2)	C00110 00040
2)	C00111 ENDMK
2)	C⊗;
2)	COMMENT ⊗HISTORY


******** NWORLD **** PAGE 6  LINE 34
1)		FPDE	(PD.DSW,STKBAS)
*** NWORLD.NEW *** PAGE 6  LINE 34
2)		FPDE	(PD.ID1,6)

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 6,6

2)		FPDE	(PD.ID2,<<POINT 7,[ASCII/SPROUT/]>>)
2)		FPDE	(PD.DSW,STKBAS)


******** NWORLD **** PAGE 7  LINE 55
1)		ERR	<NOT ENOUGH CORE -- SPROUT >
1)		MOVN	C,C		;MAKE PDP
*** NWORLD.NEW *** PAGE 7  LINE 55
2)		ERR	<SPROUT: No core>
2)		MOVN	C,C		;MAKE PDP


******** NWORLD **** PAGE 7  LINE 66
1)		ERR	<NOT ENOUGH CORE -- SPROUT >
1)		MOVE	PB,B		;PROCESS BASE
*** NWORLD.NEW *** PAGE 7  LINE 66
2)		ERR	<SPROUT: No core>
2)		MOVE	PB,B		;PROCESS BASE


******** NWORLD **** PAGE 7  LINE 135
1)		ADD	NSP,TMP		;BUMP OLD STACK
1)		SUB	SP,TMP		;DECREMENT OLD STACK
*** NWORLD.NEW *** PAGE 7  LINE 135
2)		ADD	NSP,TMP		;BUMP NEW STACK
2)		JUMPL	NSP,.+2
2)		 ERR	<SPROUT: SP PDLOV>
2)		SUB	SP,TMP		;DECREMENT OLD STACK


******** NWORLD **** PAGE 7  LINE 144
1)		SUB	P,TMP
*** NWORLD.NEW *** PAGE 7  LINE 146
2)		JUMPL	NP,.+2
2)		 ERR	<SPROUT: P PDLOV>
2)		SUB	P,TMP


******** NWORLD **** PAGE 8  LINE 22
1)		MOVEM	C,PRCITM(PB)		;REMEMBER IT
*** NWORLD.NEW *** PAGE 8  LINE 22
2)		JUMPN	C,.+2
2)		 ERR	<SPROUT: Illegal process item >,7
2)		MOVEM	C,PRCITM(PB)		;REMEMBER IT


******** NWORLD **** PAGE 11  LINE 59
1)		SKIPN	A,PLISTE(PB)		;ONLY ONE ON THE LIST?

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 11,11

1)		JRST	RDYTHS			;YES
1)		TRNN	A,-1			;ALREADY AT END?
*** NWORLD.NEW *** PAGE 11  LINE 59
2)		SKIPE	A,PLISTE(PB)		;ONLY ONE ON THE LIST?
2)		TRNN	A,-1			;ALREADY AT END?


******** NWORLD **** PAGE 12  LINE 10
1)		ERR	<ATTEMPT TO RESUME SOMETHING NOT A PROCESS>
1)		MOVE	PB,@DATAB(TEMP)	;GET THE DATUM
1)		TLNE	PB,TERM		;WAS IT TERMINATED?
1)		ERR	<ATTEMPT TO RESUME A TERMINATED PROCESS>
1)		MOVE	B,PRCITM(USER)	;MY NAME
*** NWORLD.NEW *** PAGE 12  LINE 10
2)		 JRST	[	MOVEI	LPSA,ER.NPI
2)			RESERR:	MOVSI	TEMP,[ASCIZ/RESUME/]
2)				PUSH	P,PCW(USER)	;ENTRY CONVENTION OF ER.ITN
2)				JRST	(LPSA)]
2)		MOVE	PB,@DATAB(TEMP)	;GET THE DATUM
2)		TLNE	PB,TERM		;WAS IT TERMINATED?
2)		 JRST	[MOVEI	LPSA,ER.TRP
2)			JRST	RESERR]
2)		MOVE	B,PRCITM(USER)	;MY NAME


******** NWORLD **** PAGE 12  LINE 18
1)		ERR	<ATTEMPT TO RESUME NON-SUSPENDED PROCESS>,1,<@PCW(USER)>
1)		JUMPN	OPTS,NS.RSM	;NONSTANDARD IF JUMP
*** NWORLD.NEW *** PAGE 12  LINE 21
2)		 JRST	[MOVEI	LPSA,ER.SUS
2)			JRST	RESERR]
2)		JUMPN	OPTS,NS.RSM	;NONSTANDARD IF JUMP


******** NWORLD **** PAGE 13  LINE 1
1)	COMMENT ⊗SUSPEND and TERMINATE runtime routines⊗
*** NWORLD.NEW *** PAGE 12  LINE 98
2)	ER.SUS:	HRRI	TEMP,[ASCIZ/Non-suspended process/]
2)		JRST	ER.ITN
2)	ER.TRP:	TROA	TEMP,[ASCIZ/Terminated process/]
2)	ER.NPI:	HRRI	TEMP,[ASCIZ/Non-process item/]
2)	ER.ITN:
2)			;ENTER WITH (P)=RETURN WORD, TEMP=[ASCIZ/routine/],,[ASCIZ/msg/]
2)			;C=ITEM NUMBER
2)		MOVE	LPSA,RUNNER	;STORE STATE
2)		POP	P,PCW(LPSA)	;RETURN WORD
2)		MOVEM	P,ACP(LPSA)
2)		MOVEM	SP,ACSP(LPSA)

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 13,12

2)		MOVEM	RF,ACF(LPSA)
2)		MOVEI	LPSA,(C)	;ITEM NUMBER (ERRSPL USES FF THRU D)
2)		ERRSPL	1,[[ASCIZ/
2)	@A: @A #@D/]
2)			PLEFT	TEMP	;routine
2)			PRIGHT	TEMP	;msg
2)			PRIGHT	LPSA]	;item number
2)		MOVE	PB,RUNNER	;TRY TO IGNORE THE CALL THAT GAVE THE ERROR
2)		SETZ	A,		;RETURN 0 (=ANY) IF IT MATTERS
2)		JRST	RPSPF		;RESTORE P, SP, F AND CONTINUE
2)	COMMENT ⊗SUSPEND and TERMINATE runtime routines⊗


******** NWORLD **** PAGE 13  LINE 23
1)		MOVE	TABL,GOGTAB	;
*** NWORLD.NEW *** PAGE 13  LINE 5
2)		MOVSI	TEMP,[ASCIZ/SUSPEND/]
2)		MOVE	TABL,GOGTAB	;


******** NWORLD **** PAGE 13  LINE 23
1)		ERR	<ATTEMPT TO SUSPEND A NON PROCESS ITEM>
1)		MOVE	PB,@DATAB(TABL)
1)	        TLNE	PB,TERM		;IF TERMINATED , 
1)		ERR	<SUSPENDING A TERMINATED ITEM>
1)		CAME	PB,RUNNER	;IS IT THE RUNNER
*** NWORLD.NEW *** PAGE 13  LINE 9
2)		 JRST	ER.NPI
2)		MOVE	PB,@DATAB(TABL)
2)	        TLNE	PB,TERM		;IF TERMINATED , 
2)		 JRST	ER.TRP
2)		CAME	PB,RUNNER	;IS IT THE RUNNER


******** NWORLD **** PAGE 13  LINE 28
1)		ERR	<TERMINATING A NON-PROCESS>
1)		MOVE	PB,@DATAB(TABL)	;POINT AT PROCESS
*** NWORLD.NEW *** PAGE 13  LINE 29
2)		 JRST	[	MOVSI	TEMP,[ASCIZ/TERMINATE/]
2)			NPIPOP:	POP	P,-1(P)	;MOVE RETURN WORD BACK
2)				JRST	ER.NPI]
2)		MOVE	PB,@DATAB(TABL)	;POINT AT PROCESS


******** NWORLD **** PAGE 14  LINE 24
1)		ERR	<ATTEMPT TO DO JOIN ON NON-PROCESS>
1)		MOVE	B,@DATAB(TABL)	;GET DATUM
*** NWORLD.NEW *** PAGE 14  LINE 24

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 14,14

2)		 JRST	[MOVSI	TEMP,[ASCIZ/JOIN/]
2)			JRST	ER.NPI]
2)		MOVE	B,@DATAB(TABL)	;GET DATUM


******** NWORLD **** PAGE 16  LINE 5
1)		ERR	<NOT A PROCESS ITEM>
1)		TLNE	A,TERM
1)		ERR	<PROCESS IS TERMINATED>
1)		MOVE	A,RSMR(A)
*** NWORLD.NEW *** PAGE 16  LINE 5
2)		 JRST	[MOVSI	TEMP,[ASCIZ/CALLER/]
2)			JRST	NPIPOP]
2)		TLNE	A,TERM
2)		 JRST	[	MOVSI	TEMP,[ASCIZ/CALLER/]
2)			TRPPOP:	POP	P,-1(P)	;BACK UP RETURN WORD
2)				JRST	ER.TRP]
2)		MOVE	A,RSMR(A)


******** NWORLD **** PAGE 16  LINE 20
1)		ERR	<NOT A PROCESS ITEM>
1)		TLNN	A,TERM
*** NWORLD.NEW *** PAGE 16  LINE 23
2)		 JRST	[MOVSI	TEMP,[ASCIZ/PSTATUS/]
2)			JRST	NPIPOP]
2)		TLNN	A,TERM


******** NWORLD **** PAGE 17  LINE 8
1)		ERR	<ATTEMPT TO SET PRIORITY OF NON PROCESS ITEM>
1)		MOVE	PB,@DATAB(TABL)	;GET DATUM
1)		TLNE	PB,TERM
1)		ERR	<ATTEMPT TO SET PRIORITY OF TERMINATED PROCESS>
1)		PUSHJ	P,REMPRI	;TAKE OFF MY LIST
*** NWORLD.NEW *** PAGE 17  LINE 8
2)		 JRST	[	MOVEI	LPSA,NPIPOP
2)			PRIERR:	MOVSI	TEMP,[ASCIZ/PRISET/]
2)				POP	P,-1(P)
2)				JRST	(LPSA)]
2)		MOVE	PB,@DATAB(TABL)	;GET DATUM
2)		TLNE	PB,TERM
2)		 JRST	[MOVEI	LPSA,TRPPOP
2)			JRST	PRIERR]
2)		PUSHJ	P,REMPRI	;TAKE OFF MY LIST


******** NWORLD **** PAGE 17  LINE 16

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 17,17

1)		ERR	<ERR ATTEMPT TO GIVE A PROCESS AN ILLEGAL PRIORITY>
1)		PUSHJ	P,SETPRI
1)		SUB	P,X33
1)		JRST	@3(P)
1)	COMMENT ⊗SPECIAL GC ROUTINE FOR PROCESSES⊗
*** NWORLD.NEW *** PAGE 17  LINE 20
2)		 JRST	[MOVEI	LPSA,ER.IPR
2)			JRST	PRIERR]
2)		PUSHJ	P,SETPRI
2)	RET.3:	SUB	P,X33
2)		JRST	@3(P)
2)	ER.IPR:	HRRI	TEMP,[ASCIZ/Illegal priority/]
2)		POP	P,-1(P)
2)		POP	P,-1(P)
2)		JRST	ER.ITN
2)	COMMENT ⊗SPECIAL GC ROUTINE FOR PROCESSES⊗


******** NWORLD **** PAGE 24  LINE 16
1)		ERR	<NOT A PROCESS ITEM>
1)	;THE REST OF THIS IS CALLED INTERNALLY 
*** NWORLD.NEW *** PAGE 24  LINE 16
2)		 JRST	[MOVSI	TEMP,[ASCIZ/ANSWER/]
2)			JRST	ER.NPI]
2)	;THE REST OF THIS IS CALLED INTERNALLY 


******** NWORLD **** PAGE 28  LINE 31
1)		ERR	<NO CORE LEFT -- MKEVT>
1)		MOVE	C,-1(P)
*** NWORLD.NEW *** PAGE 28  LINE 31
2)		ERR	<MKEVT: No core>
2)		MOVE	C,-1(P)


******** NWORLD **** PAGE 31  LINE 9
1)		ERR <NOT ENOUGH SPACE FOR INTSET>
1)		SKIPN	D,DISPAT(USER)	;ALREADY HABE ONE?
*** NWORLD.NEW *** PAGE 31  LINE 9
2)		ERR <INTSET: No core>
2)		SKIPN	D,DISPAT(USER)	;ALREADY HABE ONE?


******** NWORLD **** PAGE 34  LINE 9
1)		  ERR <NOT ENOUGH SPACE FOR INTSET>
1)		SKIPN	D,DISPAT(USER)	;ALREADY HABE ONE?
*** NWORLD.NEW *** PAGE 34  LINE 9
2)		  ERR <INTSET: No core>

	1) NWORLD vs. 2) NWORLD.NEW	SRCCOM	02-22-76	16:34	PAGES 34,34

2)		SKIPN	D,DISPAT(USER)	;ALREADY HABE ONE?