File: TA.TK of Tape: Sources/Multi8/multi8-1
(Source file text) 

/TA.TK 3-MAR-80

/THIS TASK CAN BE CALLED BY A GIANT IOT (4). IT WILL ACCEPT ONE
/LINE, WHICH SHOULD START WITH ONE DIGIT. THE DIGIT IS THE
/NUMBER OF THE TERMINAL TO WHICH THE REST OF THE LINE IS SEND.
/IF THE NUMBER IS "0", THEN THE MESSAGE IS SEND TO ALL TERMINALS
/SUCCESSIVLY
/IT WILL NOT WAIT FOR ANSWERS.

	*0
	CDF 10		/GIGATB IS IN FIELD 1
	GIGATB+4
	"T^100+"A&3777
N="T^100+"0&3777
	*200

FROM,	"T^100+"A&3777	/TASK NAME IS "TALK"
	200		/ONE PAGE IS SUFFICIENT
ALLFLG,	0

TA,	DCA STAT
	TAD STAT
	TAD (UTTY
	JMS DEFER
	TAD (-TCBTAB
	CLL RAR
	CLL RAR
	CLL RAR
	TAD (NAMLST
	CDF 0		/NAMLST IS IN FIELD 0 !
	JMS DEFER
	TAD (-N+"0
	DCA FROM
	CDF 10		/BGTABLES ARE IN FIELD 1
	TAD I STAT
	TAD (-EMULATE+INCORE
	DCA I STAT
	JMS MONITOR
	   SIGNAL
	   BSSLOT
	TAD STAT
	TAD (USLOT
	JMS DEFER
	DCA .+3
	JMS MONITOR
	   WAIT
	   0
	TAD C6201
	DCA CDFSUB+1
TALK,	CLA
	TAD (1000
	DCA PNT		/POINTS TO CCL INPUT BUFFER
	JMS CDFSUB
TALOOK,	ISZ PNT
	TAD I PNT	/SEARCH FOR SPACE
	SNA		/END OF LINE ?
	 JMP TAEXIT	/YES, QUIT
	TAD (-240
	SZA CLA
	 JMP TALOOK
TAL1,	ISZ PNT
	TAD I PNT	/SEARCH FOR NON-SPACE
	SNA		/END OF LINE ?
	 JMP TAEXIT	/YES, QUIT
	TAD (-240
	SNA CLA
	 JMP TAL1
	TAD PNT
	DCA SAVPNT	/SAVE THIS POINTER
	TAD I PNT	/THIS SHOULD CONTAIN THE NUMBER
	TAD (-260	/OF THE ADDRESSED TERMINAL
	SNA
	 JMP TAALL	/SEND TO ALL TERMINALS
	SPA
	 JMP TAEXIT	/NOT A VALID NUMBER
	TAD (-TTYMAX
	SMA SZA
	 JMP TAEXIT	/BAD NUMBER, QUIT
	TAD ("T^100+"0&3777+TTYMAX /MAKE TASK NAME
	DCA NAME
	TAD (207
	JMS TYPE
	JMS CRLF
	TAD FROM
	JMS TYPE
	TAD (":
	JMS TYPE
TALOOP,	JMS CDFSUB
	ISZ PNT
	TAD I PNT
	CDTOIF
	SNA
	 JMP TAOUT	/END OF LINE
	JMS TYPE
	JMP TALOOP
CDFSUB,	0
	HLT		//CDF TO BACKGROUND FIELD
	JMP I CDFSUB

TAOUT,	JMS CRLF	/ADD CRLF
	AC4000	/RELEASE THE TERMINAL
	JMS TYPE
	TAD ALLFLG
	SZA CLA		/MORE TO DO ?
	 JMP TANEXT	/YES
TAEXIT,	CLA CLL
	JMS MONITOR
	   EXIT SWPOUT

TYPE,	0
	TAD (4000
TYPE1,	ISZ COUNT
	SKP
	JMP TAEXIT	/CAN'T WAIT ANY LONGER
	JMS MONITOR
	   CALL
NAME,	   0
	 JMP TYPE1
	CLA CLL
	DCA COUNT
	JMP I TYPE

CRLF,	0
	TAD C215
	JMS TYPE
	TAD C212
	JMS TYPE
	JMP I CRLF

SAVPNT=TA+3
COUNT=TA+2
PNT=TA+1
STAT=TA

TAALL,	ISZ ALLFLG	/SET BROADCAST FLAG
TANEXT,	JMS CDFSUB
	ISZ I SAVPNT	/INCREMENT THE TERMINAL ADDRESS
	JMP TALK
	PAGE
	$-$-$