File: ENDTSS.PA of Disk: Disks/PDP8-Net/multos8
(Source file text) 

/END TIME SHARING				27-AUG-79
/
/THIS PROGRAM SEND MESSAGES TO EACH TERMINAL TELLING THE
/OPERATOR TO LOG OFF ASAP..... WHEN NO JOBS ARE LOGED IN
/OTHER THAN THE CONSOLE OR 5 MIN IS UP....TIME SHARING WILL END
/
	/DEFINATIONS
/
	TSS=6111	/SKIP IF IN TIME SHARING
	SPR=6125	/READ SYSTEM PARAMETERS
	TALK=6124	/SEND MESSAGE TO ANOTHER TERMINAL
	RSA=6123	/RETURN TO STAND ALONE OPERATION
	STM=6121	/SUSPEND TASK
/
	*20
/
BUF,	ZBLOCK 4
CLKCNT,	ZBLOCK 2
/
/
	*200
/
	CLL CLA
	TSS		/ARE WE IN TIME SHARING
	JMP EXIT	/NOT SO PROGRAM IS INVALID
	SPR		/READ THE SYSTEM PARAMETERS
	BUF		/INTO BUF
	CLL CLA CMA	/SET AC = -1
	TAD BUF		/GET THE TASK NO....
	SZA CLA		/MUST BE TASK ONE
	JMP EXIT
	TAD BUF+2
	AND (1700
	SNA CLA		/IF NO JOBS ARE ACTIVE EXIT
	JMP ENDTSS	/DO IT NOW....!!!!!
	JMS GMSG	/GIVE 1 ST 5 MIN WARNING
	DECIMAL
	4
	3945		/CLOCK FOR 3 MIN SUSPENSION
	OCTAL
	TXMS1		/FIRST WARING MESSAGE
	SPR		/READ THE BUFFER AGAIN
	BUF
	TAD BUF+2
	AND (1700
	SNA CLA		/IF NO JOBS ARE ACTIVE EXIT
	JMP ENDTSS	/DO IT NOW....!!!!!
	JMS GMSG	/GIVE 2 ND  WARNING
	DECIMAL
	1
	1904		/CLOCK FOR 1 MIN SUSPENSION
	OCTAL
	TXMS2		/FIRST WARING MESSAGE
	SPR
	BUF		/READ THE STATUS AGAIN
	TAD BUF+2
	AND (1700
	SNA CLA		/IF NO JOBS ARE ACTIVE EXIT
	JMP ENDTSS	/DO IT NOW....!!!!!
	JMS GMSG	/GIVE  1 MIN WARNING
	DECIMAL
	0
	3000		/CLOCK FOR 3 SEC SUSPENSION
	OCTAL
	TXMS3		/FIRST WARING MESSAGE
/
ENDTSS,	JMS I (PTXT
	TXMSG5		/TIME SHARING IS NOW OVER!
	RSA		/RETURN TO OS 8
/
EXIT,	CIF CDF 0
	JMP I (7600	/RETURN TO MONITOR
/
	PAGE
GMSG,	0
	TAD I GMSG	/GET THE HIGH ORDER TIME
	DCA CLKCNT
	ISZ GMSG
	TAD I GMSG
	DCA CLKCNT+1
	ISZ GMSG
	TAD I GMSG
	DCA .+2
	JMS I (PTXT
	NOP
	STM		/SUSPEND FOR THE TIME BEING
	CLKCNT		/AMOUNT OF TIME TO SUSPEND FOR
	ISZ GMSG
	JMP I GMSG	/GO BACK FOR THE NEXT ONE
/
/TEXT UNPACKING AND OUTPUTTING ROUTINE.
/ASSUMES CALLING FIELD IS DATA FIELD AND THAT THE TEXT
/TO BE PRINTED IS IN THAT FIELD.
/SAVES CONTENTS OF THE AC. AND MQ.
/
PTXT,	0
	TAD I PTXT	/GET POINTER
	DCA COL
	ISZ PTXT	/ADVANCE RETURN POINTER
PXT,	TAD I COL	/GET 1 WORD
	BSW
	JMS PTST	/UNPACK,TEST,PRNT
	TAD I COL
	JMS PTST	/UNPACK,TEST,PRNT
	ISZ COL	
	JMP PXT		/GET NXT PNT
STRA,	CLL CLA
	JMP I PTXT
/
PTST,	0		/UNPACK,TEST,PRNT
	AND (77		/NO. IN AC SO MASK IT
	MQL		/TEMP SAVE IT
	MQA		/GET IS AGAIN & TEST IT
	SNA		/WAS IT ZERO ??
	JMP STRA	/JMP OUT  FINISHED !!
	TAD (-43	/FOR A LINE FEED     '#' IMPLIES  L.F.
	SZA CLA
	JMP PTSA
	TAD (212	/DO THE LINE FEED FIRST
	JMS TERM	/OUTPUT IT
	TAD (215	/NOW MAKE IT A RETURN
	JMS TERM	/OUTPUT IT
	CLA
	JMP I PTST	/GET NXT CHARCTER
PTSA,	MQA
	AND (40		/WAS IT A NUMBER ?
	SNA CLA		/NON ZERO = NUMBER
	TAD (100	/CONVER TO ASCII
	TAD (200
	MQA		/PUT IN CHARCTER PART NOW
	JMS TERM	/OUTPUT IT
	JMP I PTST
/
COL,	0
/
/
TERM,	0
	TAD (1000	/SEND FIRST TO TERM 1
	TALK
	NOP
	TAD (1000	/SEND NO TO TERM 2
	TALK
	NOP
	TAD (1000	/SEND TO TERM 3
	TALK
	NOP
	TAD (1000	/SEND TO TERM 4
	TALK
	NOP
	CLL CLA
	JMP I TERM
/
	PAGE
TXMSG5,	TEXT *TIME SHARING IS NOW OVER !!!!!!!#######*
TXMSG4,	TEXT *##OPERATOR;    PLEASE LOGOFF....TIME SHARING ENDS IN 30 SECONDS !##*
TXMS3,	TEXT *##OPERATOR;    PLEASE LOGOFF....TIME SHARING ENDS IN 1 MINUTE !##*
TXMS2,	TEXT *##OPERATOR;    PLEASE LOGOFF....TIME SHARING ENDS IN 2 MINUTES !##*
TXMS1,	TEXT *##OPERATOR;    PLEASE LOGOFF....TIME SHARING ENDS IN 5 MINUTES !##*