Google
 

Trailing-Edge - PDP-10 Archives - BB-R598A-RM_1983 - swskit-v3/listings/utilities/sethos.list
There is 1 other file named sethos.list in the archive. Click here to see a list.
 16-Mar-81 11:51:32 by GRANT
    33					;Don't say "[TYPE ^Y, etc.]" until connection has been established
    34					;Don't say "Reason n" when reporting the disconnect reeason
    35					;Time out the attempted connection
    36					;Don't say "Connection broken" when there really wasn't a connection
    37					;If received configuration message doesn't support TOPS-20, say so
    38					; UPD ID= 1646, SNARK:<5.UTILITIES>SETHOS.MAC.2,   4-Mar-81 12:14:55 by GRANT
    39					;MAKE "SETHOST NODE::" CONNECT TO OBJECT 23 INSTEAD OF 123
    40					;<MURPHY.MON>SETHOS.MAC.8, 20-Jan-81 16:07:11, EDIT BY MURPHY
    41					;SH%LPM to prevent sending XON, XOFF
    42					;<MURPHY.MON>SETHOS.MAC.7, 21-Nov-80 17:36:15, EDIT BY MURPHY
    43					;<MURPHY.MON>SETHOS.MAC.4, 10-Oct-80 13:47:05, EDIT BY MURPHY
    44					;<MURPHY.MON>SETHOST.MAC.2, 20-Aug-80 14:54:44, EDIT BY MURPHY
    45					;USE .MOSNH FUNCTION TO MAKE MONITOR DO THE WORK
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 2
SETHOS	MAC	 3-Jan-83 18:17	

    46
    47						TITLE	SETHOS - Program to permit logins to remote network host
    48
    49
    50
    51
    52					;                    COPYRIGHT (c) 1980, 1981, 1982
    53					;                    DIGITAL EQUIPMENT CORPORATION
    54					;                        Maynard, Massachusetts
    55					;
    56					;     This software is furnished under a license and may  be  used
    57					;     and copied only in accordance with the terms of such license
    58					;     and with the inclusion of the above copyright notice.   This
    59					;     software  or any other copies thereof may not be provided or
    60					;     otherwise made available to any other person.  No  title  to
    61					;     and ownership of the software is hereby transferred.
    62					;
    63					;     The information  in  this  software  is  subject  to  change
    64					;     without  notice  and should not be construed as a commitment
    65					;     by DIGITAL EQUIPMENT CORPORATION.
    66					;
    67					;     DIGITAL assumes no responsibility for the use or reliability
    68					;     of  its  software  on  equipment  which  is  not supplied by
    69					;     DIGITAL.
    70
    71
    72						SALL			; Keep listing uncluttered, no macro expansion
    73						SEARCH	MONSYM,MACSYM,CMD ; Universals to search
    74						.REQUIRE SYS:MACREL,SYS:CMD ; Make LINK load these automatically
    75
    76					; This program will allow a user to login in to a remote system in a
    77					; DECnet network from a TOPS-20 host system. It demonstrates use of the
    78					; TOPS-20 DECnet functionality in a program which performs a real function.
    79					; The remote system must provide a program which acts as a server to
    80					; this program. The MCBNRT program is an example of a program written for
    81					; TOPS-20 which will perform that function on that system. Programs for
    82					; other systems must perform functionally similar to MCBNRT. 
    83					;
    84
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 3
SETHOS	MAC	 3-Jan-83 18:17		DECLARED SYMBOLS

    85						SUBTTL	DECLARED SYMBOLS
    86
    87			000000		IPTYF==0			;Use PTY if 1, otherwise use .MOSNH
    88
    89			000001			T1=:1			; AC definitions
    90			000002			T2=:2
    91			000003			T3=:3
    92			000004			T4=:4
    93			000005			Q1==:5
    94			000006			Q2==:6
    95			000016			CX=:16
    96			000017			P=:17
    97
    98			000100			NPDL==100		; Size of pushdown list
    99			000050			INSIZ==50		; Terminal input buffer size, in words
   100			000310			MAXINP==INSIZ*5		; Maximum number of terminal input characters
   101			100000			DBUFFR==100000		; Data buffer on page 100
   102			000200			 SDBUF==200		;ASSUMED SIZE OF DBUFFR
   103			101000			MEMBUF==101000		;MEMORY BFR FOR TTY OUTPUT
   104			000777			 NMEMBF==777		;SIZE THEREOF
   105
   106			000010			TOPS20==^D8
   107			000011			TOPS10==^D9
   108
   109			000005			VMAJOR==5		;MAJOR VERSION NUMBER
   110			000000			VMINOR==0		;MINOR VERSION NUMBER
   111			000001			VEDIT==1		;EDIT NUMBER
   112			000000			VWHO==0			;LAST EDITOR (0 = DEC DEVELOPMENT)
   113
   114		000500	000001			VSETHOS==<VWHO>B2+<VMAJOR>B11+<VMINOR>B17+VEDIT
   115
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 4
SETHOS	MAC	 3-Jan-83 18:17		IMPURE STORAGE

   116						SUBTTL	IMPURE STORAGE
   117
   118	000000'				STATUS:	BLOCK 3
   119	000003'				STIMSK:	BLOCK 1			; Terminal interrupt word mask for STIW 
   120	000004'				UESCCH:	BLOCK 1			; User escape char
   121	000005'				LOCAL:	BLOCK 2			; Local node name
   122	000007'				DCNJFN:	BLOCK 1			; JFN of logical link to MCBNRT server
   123	000010'				INSTR:	BLOCK INSIZ		; Terminal input stream buffer
   124	000060'				CTRLY:	BLOCK 1			;CTRL/Y FLAG
   125	000061'				NODE0:	BLOCK 20
   126	000101'				ROUTE:	BLOCK 40
   127	000141'				DESTND:	BLOCK 2			;SPACE FOR DESTINATION NODE NAME
   128	000143'				SAVACE:	BLOCK 4			; Register save area for AC's 1 - 4
   129	000147'				SAVSTS:	BLOCK 1			;SAVE LOC FOR LINK STATUS
   130	000150'				NAME:	BLOCK 50		; File spec name of logical link to MCBNRT
   131	000220'				FORK:	BLOCK 1			; Handle of inferior process to read from TTY
   132	000221'	000000	000000		PTYF:	IPTYF			;PTY/.MOSNH FLAG
   133	000222'				MEMPTR:	BLOCK 1			;PTR TO MEM BFR FOR TTY OUTPUT
   134	000223'				NMSPC:	BLOCK 1			;SPACE REMAINING IN MEM BFR
   135	000224'	777777	777777		VIRGIN:	EXP -1			; Flag to indicate fresh start, initially -1
   136	000225'				PC:	BLOCK 3			; Storage for PC on interrupts
   137	000230'	000000	000225'		LEVTAB:	PC			; Software interrupt level table
   138	000231'	000000	000226'			PC+1
   139	000232'	000000	000227'			PC+2
   140	000233'	000000	000000		CHNTAB:	0			; Software interrupt channel table
   141	000234'	000001	002040'			1,,ESC			; Panic character (default ^Y)
   142	000235'	000000	000000			0
   143						REPEAT ^D33,<0>		;FILL REST OF CHN TABLE
   144	000236'	000000	000000
   145	000237'	000000	000000
   146	000240'	000000	000000
   147	000241'	000000	000000
   148	000242'	000000	000000
   149	000243'	000000	000000
   150	000244'	000000	000000
   151	000245'	000000	000000
   152	000246'	000000	000000
   153	000247'	000000	000000
   154	000250'	000000	000000
   155	000251'	000000	000000
   156	000252'	000000	000000
   157	000253'	000000	000000
   158	000254'	000000	000000
   159	000255'	000000	000000
   160	000256'	000000	000000
   161	000257'	000000	000000
   162	000260'	000000	000000
   163	000261'	000000	000000
   164	000262'	000000	000000
   165	000263'	000000	000000
   166	000264'	000000	000000
   167	000265'	000000	000000
   168	000266'	000000	000000
   169	000267'	000000	000000
   170	000270'	000000	000000
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 4-1
SETHOS	MAC	 3-Jan-83 18:17		IMPURE STORAGE

   171	000271'	000000	000000
   172	000272'	000000	000000
   173	000273'	000000	000000
   174	000274'	000000	000000
   175	000275'	000000	000000
   176	000276'	000000	000000
   177	000277'				PDL:	BLOCK NPDL		; Pushdown list (STACK)
   178
   179	000761'	000000	000000		CMDSTG				; Command parser storage (from CMDS)
   180	000762'	000000	000000
   181
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 5
SETHOS	MAC	 3-Jan-83 18:17		START  -  Start of SETHOST program

   182						SUBTTL	START  -  Start of SETHOST program
   183
   184	001163'	254 00 0 00 001166'	EVEC:	JRST START		;INITIAL START
   185	001164'	254 00 0 00 002113'		JRST REENT		;CONTINUE EXISTING CONNECTION
   186	001165'	000500	000001			EXP VSETHOS		;VERSION
   187
   188	001166'	104 00 0 00 000147 	START:	RESET			; Intialize ourself
   189	001167'	200 17 0 00 002247'		MOVE P,[IOWD NPDL,PDL]	; and set up pushdown list
   190	001170'	350 00 0 00 000224'		AOS VIRGIN		; Bump count of times we come through here
   191	001171'	260 17 0 00 000000*		CALL CMDINI		; Initialize command parser
   192	001172'	336 00 0 00 000221'		SKIPN PTYF		;USING PTY?
   193	001173'	254 00 0 00 001202'		IFSKP.
   194	001174'	402 00 0 00 000223'		  SETZM NMSPC		;NOTE MEM BFR HAS NO SPACE
   195	001175'	205 01 0 00 400000 		  MOVX T1,CR%MAP	;YES, Create process to read from TTY
   196	001176'	402 00 0 00 000002 		  SETZM T2
   197	001177'	104 00 0 00 000152 		  CFORK			; Make the process, same address map
   198						   JRST [JSHLT		; on error... halt and allow continue
   199	001200'	254 00 0 00 002250'			JRST START]
   200	001201'	202 01 0 00 000220'		  MOVEM T1,FORK		; Save the process handle obtained
   201	001202'					ENDIF.
   202	001202'	201 01 0 00 400000 		MOVEI T1,.FHSLF		; Our process handle
   203	001203'	104 00 0 00 000150 		RPCAP			; Get our capabilities
   204	001204'	661 03 0 00 400000 		TXO T3,SC%CTC		; allow ^C trapping for job
   205	001205'	104 00 0 00 000151 		EPCAP			; Enable new set of capabilities
   206	001206'	200 02 0 00 002252'		MOVE T2,[LEVTAB,,CHNTAB] ; Address of software interrupt system tables
   207	001207'	104 00 0 00 000125 		SIR			; Give them to monitor
   208	001210'	205 02 0 00 200000 		MOVX T2,1B1		; Channel number
   209	001211'	104 00 0 00 000131 		AIC			; Activate software interrupt channels
   210	001212'	104 00 0 00 000126 		EIR			; Enable software interrupt system
   211	001213'	260 17 0 00 001566'		CALL ALLON		; Turn on all TTY interrupts
   212	001214'	260 17 0 00 001723'		CALL PRESCN		; Prescan EXEC line for host name...
   213	001215'	254 00 0 00 001242'		 JRST PREHST		; Got it - skip the prompting
   214	001216'	254 00 0 00 001217'		JRST ESCHAR		; Otherwise get it now
   215
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 6
SETHOS	MAC	 3-Jan-83 18:17		ESCHAR - Obtain the escape character user wants to use

   216						SUBTTL	ESCHAR - Obtain the escape character user wants to use
   217
   218	001217'	561 01 0 00 002253'	ESCHAR:	PROMPT <Escape character(^Y):> ; Put out prompt to users terminal
   219	001220'	260 17 0 00 000000*
   220	001221'	201 01 0 00 002271'		MOVEI T1,[FLDDB. (.CMTXT,CM%SDH,,<Character for interrupting connection>,<>)]
   221	001222'	260 17 0 00 000000*		CALL CFIELD		; Read the escape character
   222	001223'	135 01 0 00 002275'		LDB T1,[POINT 7,ATMBUF,6] ; Get character itself
   223	001224'	202 01 0 00 000004'		MOVEM T1,UESCCH		;SAVE IT
   224	001225'	303 01 0 00 000032 		CAILE T1,.TICCZ		; Is it a valid character? (^A to ^Z)
   225						 JRST [	HRROI T1,[ASCIZ /Invalid character/] ; No, tell user
   226							ESOUT
   227	001226'	254 00 0 00 002302'			JRST ESCHAR]	; and try again
   228	001227'	211 02 0 01 000000 		MOVNI T2,0(T1)		; Save the character
   229	001230'	507 00 0 00 000001 		HRLS T1			; Character value is terminal code
   230	001231'	541 01 0 00 000001 		HRRI T1,1		; Channel number
   231	001232'	104 00 0 00 000137 		ATI			; Assign terminal code to software interrupt channel
   232	001233'	205 01 0 00 400000 		MOVX T1,1B0		; Get a bit
   233	001234'	242 01 0 02 000000 		LSH T1,0(T2)		; Make terminal interrupt word mask for character
   234	001235'	660 01 0 00 000020 		TXO T1,1B<.TICTI>	; Allow typein
   235	001236'	202 01 0 00 000003'		MOVEM T1,STIMSK		; Save for use later
   236	001237'	254 00 0 00 001240'		JRST HSTNAM		; Get the host name
   237
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 7
SETHOS	MAC	 3-Jan-83 18:17		HSTNAM - Get the host name user wants to login on

   238						SUBTTL	HSTNAM - Get the host name user wants to login on
   239
   240	001240'	561 01 0 00 002305'	HSTNAM:	PROMPT <Host name: >	; Put out prompt to users terminal
   241	001241'	260 17 0 00 001220*
   242	001242'	201 01 0 00 002316'	PREHST:	MOVEI T1,[FLDDB. (.CMTXT,CM%SDH,,<Name of system to connect to>)]
   243	001243'	260 17 0 00 001222*		CALL CFIELD		; Read host name
   244	001244'	561 01 0 00 000010'		HRROI T1,INSTR		; Pointer to destination buffer
   245	001245'	561 02 0 00 000560'		HRROI T2,ATMBUF		; Pointer to source buffer
   246	001246'	201 03 0 00 000000 		MOVEI T3,0		; An ASCIZ string
   247	001247'	104 00 0 00 000053 		SOUT			; Copy the host name
   248	001250'	205 01 0 00 774000 		MOVX T1,177B6		; See if real host name given
   249	001251'	616 01 0 00 000010'		TDNN T1,INSTR		; Was one?
   250						JRST [	HRROI T1,[ASCIZ /
   251					[CONNECTING TO LOCAL HOST- /]		; No, tell user what's happening
   252							PSOUT
   253							MOVEI T1,.NDGLN		; Function code to get local node name
   254							MOVEI T2,T3
   255							HRROI T3,INSTR
   256							NODE			; Obtain local node name
   257							HRROI T1,INSTR
   258							PSOUT			; Output to user's TTY
   259							HRROI T1,[ASCIZ /]
   260					/]
   261							PSOUT			; Finish the message nicely
   262	001252'	254 00 0 00 002330'			JRST .+1]
   263	001253'	254 00 0 00 001254'		JRST SETTMD		; Have name. Now set TTY modes
   264
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 8
SETHOS	MAC	 3-Jan-83 18:17		SETTMD - Set TTY modes

   265						SUBTTL	SETTMD - Set TTY modes
   266
   267	001254'	201 01 0 00 000100 	SETTMD:	MOVEI T1,.PRIIN		; Primary input
   268	001255'	104 00 0 00 000107 		RFMOD			; Get current JFN mode word
   269	001256'	660 02 0 00 170000 		TXO T2,TT%WAK		; Wake on all
   270	001257'	620 02 0 00 004300 		TXZ T2,TT%ECO!TT%DAM	; Echoes off and binary data mode
   271	001260'	104 00 0 00 000110 		SFMOD			; Set new JFN mode word
   272	001261'	201 01 0 00 777773 		MOVX T1,.FHJOB		; Set terminal interrupt word for entire job
   273	001262'	200 02 0 00 000003'		MOVE T2,STIMSK		; Get terminal interrupt word saved earlier
   274	001263'	104 00 0 00 000174 		STIW			; Set it to allow only panic interrupts
   275	001264'	260 17 0 00 001576'		CALL COLDSH		; Convert digraph :: to -
   276	001265'	561 01 0 00 000150'		HRROI T1,NAME		; Build network file spec to MCBNRT
   277	001266'	561 02 0 00 002343'		HRROI T2,[ASCIZ /DCN:/]	; The DECnet device for making connection
   278	001267'	402 00 0 00 000003 		SETZM T3
   279	001270'	104 00 0 00 000053 		SOUT
   280	001271'	200 02 0 00 002344'		MOVE T2,[POINT 7,NODE0]
   281	001272'	104 00 0 00 000053 		SOUT			; Copy node name as well
   282	001273'	561 02 0 00 002345'		HRROI T2,[ASCIZ /-23/]	; MCBNRT's object type
   283	001274'	332 00 0 00 000101'		SKIPE ROUTE		; Doing routing?
   284	001275'	561 02 0 00 002346'		HRROI T2,[ASCIZ /-123/]	;PSTHRU'S OBJECT TYPE
   285	001276'	104 00 0 00 000053 		SOUT
   286	001277'	205 01 0 00 000001 	DOJFN:	MOVX T1,GJ%SHT		; Do a short form GTJFN
   287	001300'	561 02 0 00 000150'		HRROI T2,NAME		; Using the spec just built
   288	001301'	104 00 0 00 000020 		GTJFN			; Get DCN connection
   289						 JRST [	JSERR			; If error, tell user
   290							CALL ALLON		; Reset TTY to normal mode
   291							HALTF			;STOP
   292	001302'	254 00 0 00 002347'			JRST HSTNAM]		; And go back to get host name
   293	001303'	202 01 0 00 000007'		MOVEM T1,DCNJFN		; Save JFN for the connection
   294						;MOVEI T1,.PRIOU		; Check if parity OK on this TTY
   295						;GDSTS			; Get device status
   296						;ERJMP [SETZM T2			; If error, set all status off
   297						;	JRST .+1]		; And continue along
   298						;MOVE T1,DCNJFN		; Restore the JFN for network connection
   299						;TXNE T2,GD%PAR		; Does terminal allow parity?
   300	001304'	200 02 0 00 002353'		MOVE T2,[FLD(^D8,OF%BSZ)!FLD(.GSSMB,OF%MOD)!OF%RD!OF%WR]
   301									 ; Yes, 8 bit bytes and read/write access
   302	001305'	104 00 0 00 000021 		OPENF			; Open the network connection
   303						 ERJMP [JSERR			; If failed, tell user
   304							MOVE T1,DCNJFN		; And release the JFN
   305							RLJFN
   306							 JFCL
   307							CALL ALLON		; Reset TTY to normal mode
   308							TMSG <
   309					>
   310	001306'	320 16 0 00 002355'			JRST HSTNAM]		; And go back to get host name
   311	001307'	201 04 0 00 000006 		MOVEI T4,6		;6 TRIES FOR THE CONNECTION
   312	001310'	201 01 0 00 003720 	TSTCON:	MOVEI T1,^D2000		;2 SECONDS BETWEEN TRIES
   313	001311'	104 00 0 00 000167 		DISMS			;WAIT
   314	001312'	200 01 0 00 000007'		MOVE T1,DCNJFN		;GET BACK THE JFN
   315	001313'	201 02 0 00 000025 		MOVX T2,.MORLS		;READ LINK STATUS
   316	001314'	104 00 0 00 000077 		MTOPR
   317	001315'	320 16 0 00 001316'		 ERJMP .+1
   318	001316'	603 03 0 00 400000 		TXNE T3,MO%CON		;CONNECTED?
   319	001317'	254 00 0 00 001326'		JRST GOTCON		;YES, GO TO IT
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 8-1
SETHOS	MAC	 3-Jan-83 18:17		SETTMD - Set TTY modes

   320	001320'	603 03 0 00 100000 		TXNE T3,MO%WFC		;NO, WAITING FOR A CONNECT?
   321	001321'	254 00 0 00 001324'		JRST TSTCO1		;YES, WAIT FOR A BIT
   322	001322'	603 03 0 00 010000 		TXNE T3,MO%ABT		;NO, CONNECT BEEN REJECTED?
   323						JRST [	HRROI T1,[ASCIZ/
   324					? Remote system rejected connection - /]
   325							PSOUT
   326	001323'	254 00 0 00 002376'			JRST NOTCON]
   327	001324'				TSTCO1:	SOJE T4,[HRROI T1,[ASCIZ/
   328					? Remote node not responding
   329
   330					/]
   331					TSTCO2:		PSOUT
   332							MOVE T1,DCNJFN		; And release the JFN
   333							CLOSF
   334							 JFCL
   335							CALL ALLON		; Reset TTY to normal mode
   336	001324'	362 04 0 00 002410'			JRST HSTNAM]		; And go back to get host name
   337	001325'	254 00 0 00 001310'		JRST TSTCON		;TRY AGAIN
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 9
SETHOS	MAC	 3-Jan-83 18:17		SETTMD - Set TTY modes

   338
   339					;CONNECTION TO REMOTE NODE HAS BEEN ESTABLISHED
   340
   341
   342	001326'	336 00 0 00 000101'	GOTCON:	SKIPN ROUTE		; want to route-through?
   343	001327'	254 00 0 00 001352'		JRST NOR		; No. Go on
   344
   345					;Here to do pass-through
   346
   347	001330'	200 01 0 00 000007'		MOVE T1,DCNJFN		;GET BACK JFN
   348	001331'	561 02 0 00 000101'		HRROI T2,ROUTE		;Get message
   349	001332'	402 00 0 00 000003 		SETZM T3
   350	001333'	104 00 0 00 000532 		SOUTR			; Send it
   351	001334'	320 16 0 00 001435'		 ERJMP RTERR
   352	001335'	561 02 0 00 100000 	RT0:	HRROI T2,DBUFFR
   353	001336'	211 03 0 00 000310 		MOVNI T3,^D200
   354	001337'	104 00 0 00 000531 		SINR			; Get message
   355	001340'	320 16 0 00 001435'		 ERJMP RTERR
   356	001341'	402 00 0 00 000004 		SETZM T4
   357	001342'	136 04 0 00 000002 		IDPB T4,T2		; tie it off
   358	001343'	135 04 0 00 002417'		LDB T4,[POINT 7,DBUFFR,6]
   359	001344'	367 04 0 00 001435'		SOJG T4,RTERR0		; bad
   360	001345'	322 04 0 00 001352'		JUMPE T4,NOR
   361	001346'	200 01 0 00 002417'		MOVE T1,[POINT 7,DBUFFR,6]
   362	001347'	104 00 0 00 000076 		PSOUT
   363	001350'	200 01 0 00 000007'		MOVE T1,DCNJFN
   364	001351'	254 00 0 00 001335'		JRST RT0
   365
   366	001352'	336 00 0 00 000221'	NOR:	SKIPN PTYF		;IF USING PTY...
   367	001353'	254 00 0 00 001360'		IFSKP.
   368	001354'	200 01 0 00 000220'		  MOVE T1,FORK		; Restore the process handle obtained
   369	001355'	201 02 0 00 002143'		  MOVEI T2,DOINP0	; The start address
   370	001356'	104 00 0 00 000157 		  SFORK			; Start the process to read input from TTY
   371						   ERJMP [RESET			; If failed, reset ourself
   372							JSHLT			; Tell user and halt
   373	001357'	320 16 0 00 002420'			JRST START]		; Go back to beginning if continued
   374	001360'					ENDIF.
   375	001360'	200 01 0 00 000007'		MOVE T1,DCNJFN
   376	001361'	200 02 0 00 002423'		MOVE T2,[POINT ^D8,DBUFFR]
   377	001362'	211 03 0 00 000200 		MOVNI 3,SDBUF
   378	001363'	104 00 0 00 000531 		SINR				; Read status message
   379	001364'	320 16 0 00 001774'		 ERJMP BADCON
   380	001365'	135 01 0 00 002424'		LDB T1,[POINT ^D8,DBUFFR,7]
   381						SOJN T1,[MOVEI T4,SDBUF(T3) ;GeT count received-1
   382	001366'	366 01 0 00 002425'			 JRST GOTDAX]
   383	001367'	135 01 0 00 002427'		LDB T1,[POINT ^D8,DBUFFR+1,7]
   384	001370'	301 01 0 00 000000 		CAIL T1,0		;IS OPERATING SYSTEM
   385	001371'	303 01 0 00 000015 		CAILE T1,HSTTYN		; TYPE LEGAL?
   386	001372'	604 00 0 00 000000 		IFNSK.			;NO
   387	001373'	254 00 0 00 001377'
   388						  TMSG <
   389					? Remote system sent an illegal configuration message
   390	001374'	561 01 0 00 002430'	>
   391	001375'	104 00 0 00 000076 
   392	001376'	254 00 0 00 001443'		   JRST QUIT		;BYE
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 9-1
SETHOS	MAC	 3-Jan-83 18:17		SETTMD - Set TTY modes

   393	001377'					ENDIF.
   394	001377'	302 01 0 00 000010 		CAIE T1,TOPS20		;TOPS-20?
   395	001400'	306 01 0 00 000011 		CAIN T1,TOPS10		;OR TOPS10?
   396	001401'	334 00 0 00 000000 		SKIPA			;OK
   397	001402'	604 00 0 00 000000 		IFNSK.			;NO
   398	001403'	254 00 0 00 001417'
   399	001404'	261 17 0 00 000001 		   PUSH P,T1		;STASH SYSTEM TYPE
   400						   TMSG <
   401	001405'	561 01 0 00 002444'	? Communication with >
   402	001406'	104 00 0 00 000076 
   403	001407'	262 17 0 00 000001 		   POP P,T1		;RETRIEVE SYSTEM TYPE
   404	001410'	561 01 1 01 001446'		   HRROI T1,@HSTTYP(T1)	;MAKE BP TO REMOTE'S NAME
   405	001411'	104 00 0 00 000076 		   PSOUT		;PRINT IT OUT
   406						   TMSG < not supported by SETHOST
   407					
   408	001412'	561 01 0 00 002451'	>
   409	001413'	104 00 0 00 000076 
   410	001414'	260 17 0 00 001566'		   CALL ALLON		;RESET TTY TO NORMAL MODE
   411	001415'	104 00 0 00 000147 		   RESET		;CLEAR EVERYTHING
   412	001416'	254 00 0 00 001240'		   JRST HSTNAM		;START OVER
   413	001417'					ENDIF.
   414	001417'	336 00 0 00 000060'		SKIPN CTRLY		;TELL USER ABOUT CTRL/Y?
   415	001420'	254 00 0 00 001532'		JRST GOTDA2		;NO, USER SELECTED A CHAR
   416						TMSG	<
   417	001421'	561 01 0 00 002457'	[Type ^Y to return to node > ; Tell user how to get back
   418	001422'	104 00 0 00 000076 
   419	001423'	201 01 0 00 000001 		MOVX T1,.NDGLN
   420	001424'	201 02 0 00 000003 		MOVX T2,T3
   421	001425'	200 03 0 00 002465'		MOVE T3,[POINT 7,LOCAL]
   422	001426'	104 00 0 00 000567 		NODE			; And name of local node
   423	001427'	255 00 0 00 000000 		 JFCL
   424	001430'	561 01 0 00 000005'		HRROI T1,LOCAL
   425	001431'	104 00 0 00 000076 		PSOUT
   426						TMSG	<]
   427	001432'	561 01 0 00 002327'	>				; Finish off nicely
   428	001433'	104 00 0 00 000076 
   429	001434'	254 00 0 00 001532'		JRST GOTDA2
   430
   431	001435'				RTERR:
   432	001435'				RTERR0:	HRROI T1,[ASCIZ /
   433					?DECNET connection aborted by remote server
   434	001435'	561 01 0 00 002466'	/]
   435	001436'	104 00 0 00 000076 		PSOUT
   436	001437'	200 01 0 00 002417'		MOVE T1,[POINT 7,DBUFFR,6]
   437	001440'	104 00 0 00 000076 		PSOUT
   438						HRROI T1,[ASCIZ /
   439	001441'	561 01 0 00 002354'	/]
   440	001442'	104 00 0 00 000076 		PSOUT
   441	001443'	104 00 0 00 000147 	QUIT:	RESET
   442	001444'	104 00 0 00 000170 		HALTF
   443	001445'	254 00 0 00 001166'		JRST START
   444
   445
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 10
SETHOS	MAC	 3-Jan-83 18:17		SETTMD - Set TTY modes

   446					;OPERATING SYSTEM TYPES
   447
   448	001446'	000000	002500'		HSTTYP:	[ASCIZ\RSTS\]
   449	001447'	000000	002501'			[ASCIZ\RT-11\]
   450	001450'	000000	002503'			[ASCIZ\RSTS/E\]
   451	001451'	000000	002505'			[ASCIZ\RSX-11S\]
   452	001452'	000000	002507'			[ASCIZ\RSX-11M\]
   453	001453'	000000	002511'			[ASCIZ\RSX-11D\]
   454	001454'	000000	002513'			[ASCIZ\IAS\]
   455	001455'	000000	002514'			[ASCIZ\VMS\]
   456	001456'	000000	002515'			[ASCIZ\TOPS-20\]
   457	001457'	000000	002517'			[ASCIZ\TOPS-10\]
   458	001460'	000000	002521'			[ASCIZ\RTS-8\]
   459	001461'	000000	002523'			[ASCIZ\OS-8\]
   460	001462'	000000	002524'			[ASCIZ\RSX-11M+\]
   461	001463'	000000	002526'			[ASCIZ\MCB\]
   462			000015		HSTTYN=.-HSTTYP-1		;NUMBER OF DEFINED OPERATING SYSTEM TYPES
   463
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 11
SETHOS	MAC	 3-Jan-83 18:17		GOTDA1 - Read data from network connection

   464						SUBTTL	GOTDA1 - Read data from network connection
   465
   466	001464'	332 00 0 00 000221'	GOTDA1:	SKIPE PTYF		;USING PTY?
   467	001465'	254 00 0 00 001503'	      IFSKP.
   468	001466'	200 01 0 00 000007'		MOVE T1,DCNJFN		;NO, HAND CONNECTION TO MONITOR
   469	001467'	201 02 0 00 000044 		MOVEI T2,.MOSNH
   470	001470'	201 03 0 17 000001 		MOVEI T3,1(P)
   471	001471'	261 17 0 00 002527'		PUSH P,[3]		;PUSH SIZE OF ARG BLOCK
   472	001472'	261 17 0 00 002530'		PUSH P,[.PRIIN]
   473	001473'	550 04 0 00 000004'		HRRZ T4,UESCCH
   474	001474'	661 04 0 00 400000 		TXO T4,SH%LPM		;LOCAL PAGE MODE
   475	001475'	261 17 0 00 000004 		PUSH P,T4
   476	001476'	104 00 0 00 000077 		MTOPR			;CONNECT DCNJFN TO TTY
   477	001477'	320 16 0 00 002531'		 ERJMP [JSHLT]
   478	001500'	105 17 0 00 777775 		ADJSP P,-3		;FLUSH ARG BLOCK
   479	001501'	104 00 0 00 000306 		WAIT
   480	001502'	254 00 0 00 001464'		JRST GOTDA1
   481	001503'				      ENDIF.
   482	001503'	200 01 0 00 000007'		MOVE T1,DCNJFN		; Get the network connection JFN
   483	001504'	200 02 0 00 002423'		MOVE T2,[POINT ^D8,DBUFFR] ; Pointer to buffer
   484	001505'	211 03 0 00 000001 		MOVNI T3,1		; One byte only
   485	001506'	104 00 0 00 000052 		SIN			; Read from logical link
   486	001507'	320 16 0 00 001774'		 ERJMP BADCON			; If error, connection broken
   487	001510'	200 03 0 00 000002 		MOVE T3,T2		; Save byte pointer
   488	001511'	104 00 0 00 000102 		SIBE			; Any more data to read now ?
   489	001512'	254 00 0 00 001515'		IFSKP.
   490	001513'	201 04 0 00 000001 		  MOVEI T4,1		;NO, GO TYPE THE ONE CHARACTER
   491	001514'	254 00 0 00 001523'		  JRST GOTDAX
   492	001515'					ENDIF.
   493	001515'	250 02 0 00 000003 		EXCH T2,T3		; Restore byte pointer
   494	001516'	200 04 0 00 000003 		MOVE T4,T3		; Save count
   495	001517'	213 00 0 00 000003 		MOVNS T3		; Read the exact number available
   496	001520'	104 00 0 00 000052 		SIN			; Read remaining bytes
   497	001521'	320 16 0 00 001774'		 ERJMP BADCON			; If error, connection broken
   498	001522'	271 04 0 00 000001 		ADDI T4,1		;TOTAL COUNT OF BOTH SIN'S
   499
   500	001523'	201 01 0 00 000101 	GOTDAX:	MOVEI T1,.PRIOU		; Output to users terminal
   501	001524'	200 02 0 00 002423'		MOVE T2,[POINT ^D8,DBUFFR] ; Pointer to data from remote host
   502	001525'	210 03 0 00 000004 		MOVN T3,T4		; Output count
   503	001526'	260 17 0 00 001544'		CALL SAVTTO		;SAVE TTY OUTPUT
   504	001527'	104 00 0 00 000053 		SOUT			; Type data on users terminal
   505	001530'	332 00 0 00 000221'		SKIPE PTYF		;USING PTY?
   506	001531'	254 00 0 00 001464'		JRST GOTDA1		;YES
   507	001532'	200 01 0 00 000007'	GOTDA2:	MOVE T1,DCNJFN
   508	001533'	104 00 0 00 000102 		SIBE			;HAVE PROCESSED ALL OF INITIAL MESSAGE?
   509	001534'	304 00 0 00 000000 		 CAIA			;NO
   510	001535'	254 00 0 00 001464'		JRST GOTDA1		;YES, GO SPLICE CONNECTION
   511	001536'	200 04 0 00 000002 		MOVE T4,T2		;GET COUNT OF BYTES REMAINING
   512	001537'	210 03 0 00 000002 		MOVN T3,T2		;READ EXACTLY THAT NUMBER
   513	001540'	200 02 0 00 002423'		MOVE T2,[POINT 8,DBUFFR]
   514	001541'	104 00 0 00 000052 		SIN			; Read remaining bytes
   515	001542'	320 16 0 00 001774'		 ERJMP BADCON
   516	001543'	254 00 0 00 001523'		JRST GOTDAX		;PRINT IT
   517
   518					;SAVE COPY OF OUTPUT GOING TO TERMINAL
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 11-1
SETHOS	MAC	 3-Jan-83 18:17		GOTDA1 - Read data from network connection

   519					;T1-T4 ARE SET FOR SOUT TO TTY
   520
   521	001544'	261 17 0 00 000001 	SAVTTO:	SAVEAC <T1,T2,T3,T4>	;BE TRANSPARENT
   522	001545'	261 17 0 00 000002 
   523	001546'	261 17 0 00 000003 
   524	001547'	261 17 0 00 000004 
   525	001550'	415 16 0 00 002533'
   526	001551'	261 17 0 00 000016 
   527	001552'	214 01 0 00 000003 		MOVM T1,T3		;GET POS COUNT OF CHARS HERE
   528	001553'	315 01 0 00 000223'		CAMGE T1,NMSPC		;MORE THAN SPACE IN MEM BFR?
   529	001554'	254 00 0 00 001561'		IFSKP.
   530					  ; *** CODE COULD BE PUT HERE TO WRITE THE BFR TO A FILE ALSO ***
   531	001555'	200 01 0 00 002543'		  MOVE T1,[POINT 8,MEMBUF] ;YES, RESET BUFFER
   532	001556'	202 01 0 00 000222'		  MOVEM T1,MEMPTR
   533	001557'	201 01 0 00 004773 		  MOVEI T1,NMEMBF*5
   534	001560'	202 01 0 00 000223'		  MOVEM T1,NMSPC
   535	001561'					ENDIF.
   536	001561'	272 03 0 00 000223'		ADDM T3,NMSPC		;REDUCE SPACE BY AMOUNT OF THIS SOUT
   537	001562'	200 01 0 00 000222'		MOVE T1,MEMPTR		;PTR TO MEMORY BUFFER
   538	001563'	104 00 0 00 000053 		SOUT
   539	001564'	202 01 0 00 000222'		MOVEM T1,MEMPTR		;SAVE UPDATED PTR
   540	001565'	263 17 0 00 000000 		RET
   541
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 12
SETHOS	MAC	 3-Jan-83 18:17		ALLON - Restore echoing and interrupts on terminal

   542						SUBTTL	ALLON - Restore echoing and interrupts on terminal
   543
   544	001566'	201 01 0 00 777773 	ALLON:	MOVX T1,.FHJOB		; Set terminal interrupt word for entire job
   545	001567'	476 00 0 00 000002 		SETOM T2		; Terminal interrupt word mask for all codes
   546	001570'	104 00 0 00 000174 		STIW			; Set terminal interrupt word
   547	001571'	201 01 0 00 000100 		MOVEI T1,.PRIIN		; Primary input
   548	001572'	104 00 0 00 000107 		RFMOD			; Read JFN mode word
   549	001573'	660 02 0 00 004300 		TXO T2,TT%ECO!TT%DAM	; Echo on, ASCII data mode, output translation disabled
   550	001574'	104 00 0 00 000110 		SFMOD			; Set new JFN mode word
   551	001575'	263 17 0 00 000000 		RET			; Done, return to caller
   552
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 13
SETHOS	MAC	 3-Jan-83 18:17		ALLON - Restore echoing and interrupts on terminal

   553
   554					;ROUTINE TO SCAN THE STRING IN INSTR AND CONVERT ANY
   555					;INSTANCE OF THE DIGRAPH "::" TO "-". THIS IS DONE
   556					;BECAUSE COLONS ARE DIFFICULT TO PASS VIA FILE
   557					;SPECS BUT DASHES AREN'T.
   558
   559	001576'	200 02 0 00 002544'	COLDSH:	MOVE T2,[POINT 7,INSTR]	; Source string
   560	001577'	200 03 0 00 002344'		MOVE T3,[POINT 7,NODE0]
   561	001600'	402 00 0 00 000101'		SETZM ROUTE
   562	001601'	200 05 0 00 000002 		MOVE Q1,T2		;STASH THE BP
   563	001602'	134 04 0 00 000002 		ILDB T4,T2
   564	001603'	260 17 0 00 001706'		CALL GUDCHR
   565	001604'	254 00 0 00 001620'		 JRST ENDO3
   566	001605'	334 00 0 00 000000 		SKIPA
   567	001606'	134 04 0 00 000002 	COLDS0:	ILDB T4,T2		; Get a byte
   568	001607'	306 04 0 00 000072 		CAIN T4,":"		; Start of a digraph?
   569	001610'	254 00 0 00 001614'		JRST ENDOF		;YES, GO FIGURE IT OUT
   570	001611'	136 04 0 00 000003 		IDPB T4,T3		;NO, stash it
   571	001612'	326 04 0 00 001606'		JUMPN T4,COLDS0		; If more to do, proceed
   572	001613'	254 00 0 00 001671'		JRST DUN		;GO FINISH UP
   573
   574					;here is found : in file spec
   575
   576	001614'	402 00 0 00 000004 	ENDOF:	SETZM T4
   577	001615'	136 04 0 00 000003 		IDPB T4,T3		; Tie it off
   578	001616'	134 04 0 00 000002 		ILDB T4,T2		; get next
   579	001617'	302 04 0 00 000072 		CAIE T4,":"		; Another one?
   580					ENDO3:	JRST [	TMSG <
   581					? Invalid node name format
   582					
   583					>
   584							CALL ALLON
   585	001620'	254 00 0 00 002554'			JRST HSTNAM]
   586	001621'	134 04 0 00 000002 		ILDB T4,T2		;PEEK AHEAD 1 BYTE
   587	001622'	336 00 0 00 000004 		SKIPN T4		;IF NONE, NO ROUTING NEEDED
   588	001623'	254 00 0 00 001671'		JRST DUN		;GO FINISH UP
   589	001624'	260 17 0 00 001706'		CALL GUDCHR		;IS IT LEGIT?
   590					ENDO4:	 JRST [	TMSG <
   591					? Illegal character after ::
   592					
   593					>
   594							CALL ALLON
   595	001625'	254 00 0 00 002567'			JRST HSTNAM]
   596	001626'	474 04 0 00 000000 		SETO T4,		;BACKUP THE
   597	001627'	133 04 0 00 000002 		ADJBP T4,T2		; BYTE
   598	001630'	202 04 0 00 000002 		MOVEM T4,T2		;  POINTER
   599	001631'	200 05 0 00 000002 		MOVE Q1,T2		;STASH THE BP
   600	001632'	200 03 0 00 002573'		MOVE T3,[POINT 7,ROUTE]
   601	001633'	201 04 0 00 000001 		MOVEI T4,1
   602	001634'	136 04 0 00 000003 		IDPB T4,T3
   603	001635'	134 04 0 00 000002 	ENDO0:	ILDB T4,T2		; Get next
   604	001636'	302 04 0 00 000072 		CAIE T4,":"		;A DELIMITER?
   605	001637'	254 00 0 00 001654'		JRST ENDO1		;NO
   606	001640'	134 04 0 00 000002 		ILDB T4,T2		;YES, GET NEXT BYTE
   607	001641'	302 04 0 00 000072 		CAIE T4,":"		;A SECOND DELIMITER?
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 13-1
SETHOS	MAC	 3-Jan-83 18:17		ALLON - Restore echoing and interrupts on terminal

   608	001642'	254 00 0 00 001620'		JRST ENDO3		;NO, CAN'T HAVE THAT
   609	001643'	136 04 0 00 000003 		IDPB T4,T3		;PUT IN :
   610	001644'	136 04 0 00 000003 		IDPB T4,T3		; AGAIN
   611	001645'	134 04 0 00 000002 		ILDB T4,T2		;PEEK AHEAD 1 BYTE
   612	001646'	336 00 0 00 000004 		SKIPN T4		;IF NONE, OK
   613						JRST [	SETO T4,
   614							ADJBP T4,T2
   615							MOVEM T4,T2
   616	001647'	254 00 0 00 002574'			JRST ATEND]
   617	001650'	474 05 0 00 000000 		SETO Q1,		;FAKE A BACK UP
   618	001651'	133 05 0 00 000002 		ADJBP Q1,T2		; AND STASH THE BP
   619	001652'	260 17 0 00 001706'		CALL GUDCHR		;IS IT LEGIT?
   620	001653'	254 00 0 00 001625'		 JRST ENDO4		;NO, TOO BAD
   621	001654'	322 04 0 00 001657'	ENDO1:	JUMPE T4,ATEND		;IF NULL, DONE
   622	001655'	136 04 0 00 000003 		IDPB T4,T3		;STASH IT
   623	001656'	254 00 0 00 001635'		JRST ENDO0		; Copy string
   624	001657'	261 17 0 00 000001 	ATEND:	PUSH P,T1
   625	001660'	135 01 0 00 000003 		LDB T1,T3		; Look at last byte
   626	001661'	302 01 0 00 000072 		CAIE T1,":"		; Finish correctly?
   627						JRST [	MOVEI T1,":"
   628							IDPB T1,T3
   629							IDPB T1,T3
   630	001662'	254 00 0 00 002600'			JRST .+1]
   631	001663'	561 01 0 00 002604'		HRROI T1,[ASCIZ /"23="/]
   632	001664'	200 02 0 00 000003 		MOVE T2,T3
   633	001665'	402 00 0 00 000003 		SETZM T3
   634	001666'	104 00 0 00 000052 		SIN			; Finish string
   635	001667'	262 17 0 00 000001 		POP P,T1
   636	001670'	136 03 0 00 000002 		IDPB T3,T2		; Tie it off
   637
   638	001671'	200 03 0 00 002606'	DUN:	MOVE T3,[POINT 7,DESTND]	;MAKE BP TO DESTINATION NODE NAME
   639	001672'	134 04 0 00 000005 	DUN1:	ILDB T4,Q1		;GET A BYTE
   640	001673'	306 04 0 00 000072 		CAIN T4,":"		;IS IT A DELIMITER?
   641	001674'	604 00 0 00 000000 		IFNSK.			;YES
   642	001675'	254 00 0 00 001700'
   643	001676'	400 04 0 00 000000 		   SETZ T4,		;END OF NODE NAME
   644	001677'	254 00 0 00 001702'		   JRST DUN2		;AND FINISH
   645	001700'					ENDIF.
   646	001700'	303 04 0 00 000132 		CAILE T4,"Z"		;IS IT LOWER CASE?
   647	001701'	275 04 0 00 000040 		SUBI T4,40		;YES, MAKE IT UPPER CASE
   648	001702'	136 04 0 00 000003 	DUN2:	IDPB T4,T3		;PUT IN THE BYTE
   649	001703'	332 00 0 00 000004 		SKIPE T4		;ARE WE DONE?
   650	001704'	254 00 0 00 001672'		JRST DUN1		;NO
   651	001705'	263 17 0 00 000000 		RET			;YES
   652
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 14
SETHOS	MAC	 3-Jan-83 18:17		ALLON - Restore echoing and interrupts on terminal

   653
   654					;ROUTINE TO CHECK FOR LEGITIMATE CHARACTERS IN A NODE NAME
   655					;ACCEPTS:	T4/ ASCIZ OF CHARACTER
   656					;RETURNS:	+1  ILLEGAL
   657					;		+2  OK
   658
   659	001706'	305 04 0 00 000060 	GUDCHR:	CAIGE T4,"0"
   660	001707'	263 17 0 00 000000 		RET
   661	001710'	307 04 0 00 000071 		CAIG T4,"9"
   662	001711'	254 00 0 00 000000*		RETSKP
   663	001712'	305 04 0 00 000101 		CAIGE T4,"A"
   664	001713'	263 17 0 00 000000 		RET
   665	001714'	307 04 0 00 000132 		CAIG T4,"Z"
   666	001715'	254 00 0 00 001711*		RETSKP
   667	001716'	305 04 0 00 000141 		CAIGE T4,"a"
   668	001717'	263 17 0 00 000000 		RET
   669	001720'	307 04 0 00 000172 		CAIG T4,"z"
   670	001721'	254 00 0 00 001715*		RETSKP
   671	001722'	263 17 0 00 000000 		RET
   672
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 15
SETHOS	MAC	 3-Jan-83 18:17		PRESCN - Prescan EXEC command for host name

   673						SUBTTL	PRESCN - Prescan EXEC command for host name
   674
   675	001723'	332 00 0 00 000224'	PRESCN:	SKIPE	VIRGIN		; Starting out fresh?
   676	001724'	254 00 0 00 001721*		RETSKP			; No..., so return +2 to force prompt
   677	001725'	201 01 0 00 000000 		MOVEI	T1,.RSINI	; Make rescan buffer available 
   678	001726'	104 00 0 00 000500 		RSCAN			; as command line to process reading from CTTY
   679	001727'	320 16 0 00 001770'		 ERJMP PRESC1
   680	001730'	201 01 0 00 000001 		MOVX	T1,.RSCNT	; Get count of characters 
   681	001731'	104 00 0 00 000500 		RSCAN			; in rescan buffer
   682	001732'	320 16 0 00 001770'		 ERJMP PRESC1
   683	001733'	322 01 0 00 002607'		JUMPE	T1,[RETSKP]	; None there, so must prompt
   684	001734'	201 01 0 00 000100 		MOVEI	T1,.PRIIN	; Primary input
   685	001735'	104 00 0 00 000050 		BIN			; Read a character
   686	001736'	302 02 0 00 000122 		CAIE	T2,"R"		; RUN or R (program name can't start with "R")
   687	001737'	306 02 0 00 000162 		CAIN	T2,"r"		; Check lowercase also
   688	001740'	254 00 0 00 001764'		JRST PRESC0		; Yes, no prescanning, go eat rest of line
   689	001741'	302 02 0 00 000040 	PRES1:	CAIE	T2," "		; Have we hit a space yet?
   690	001742'	306 02 0 00 000011 		CAIN	T2,"	"	; Also accept a tab
   691	001743'	254 00 0 00 001750'		JRST	PRES2		; Yes, read the node name
   692	001744'	306 02 0 00 000012 		CAIN	T2,.CHLFD	; Have we hit EOL yet?
   693	001745'	254 00 0 00 001724*		RETSKP			; Yes, no node name, skip return to prompt
   694	001746'	104 00 0 00 000050 		BIN			; Read the next character
   695	001747'	254 00 0 00 001741'		JRST	PRES1		; And loop to test
   696
   697	001750'	205 01 0 00 000031 	PRES2:	MOVSI	T1,.TICCY	; Default to ^Y for interrupt character
   698	001751'	206 01 0 00 000004'		MOVSM T1,UESCCH		;SAVE IT FOR MTOPR
   699	001752'	541 01 0 00 000001 		HRRI	T1,1		; And use channel one
   700	001753'	104 00 0 00 000137 		ATI			; Assign terminal code to interrupt channel
   701	001754'	205 01 0 00 400000 		MOVX	T1,1B0		; Get a hi order bit
   702	001755'	242 01 0 00 777747 		LSH	T1,-.TICCY	; Shift bit by value of ^Y code
   703	001756'	660 01 0 00 000020 		TXO	T1,1B<.TICTI>	; Allow typein
   704	001757'	202 01 0 00 000003'		MOVEM	T1,STIMSK	; Save for use later
   705	001760'	476 00 0 00 000060'		SETOM CTRLY		;SAY USE CTRL/Y
   706	001761'	561 01 0 00 002272'		PROMPT	<>		; Null prompt
   707	001762'	260 17 0 00 001241*
   708	001763'	263 17 0 00 000000 		RET			; Done, return no skip to not prompt
   709
   710					;HERE TO FLUSH REST OF EXEC COMMAND LINE
   711
   712	001764'	104 00 0 00 000050 	PRESC0:	BIN			; Get next byte
   713	001765'	302 02 0 00 000012 		CAIE T2,.CHLFD		; The end of line?
   714	001766'	254 00 0 00 001764'		JRST PRESC0		; No, Try again
   715	001767'	254 00 0 00 001745*		RETSKP			; Yes, return +2 to prompt for node
   716
   717					;Here if rescan attempt does not succeed
   718
   719	001770'	561 01 0 00 002610'	PRESC1:	HRROI T1,[ASCIZ/Unexpected error in scanning command line/] ; If error,
   720	001771'	104 00 0 00 000313 		ESOUT			; tell user
   721	001772'	104 00 0 00 000170 		HALTF			; and halt
   722	001773'	254 00 0 00 001166'		JRST START		; Start over if continued...
   723
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 16
SETHOS	MAC	 3-Jan-83 18:17		BADCON - Handle a broken network connection

   724						SUBTTL BADCON - Handle a broken network connection
   725
   726	001774'	104 00 0 00 000141 	BADCON:	CIS			; Prevent further interruption
   727	001775'	260 17 0 00 001566'		CALL ALLON		; Restore TTY modes
   728	001776'	336 00 0 00 000221'		SKIPN PTYF		;IF NON-MONITOR CHAR HANDLING,
   729	001777'	254 00 0 00 002002'		IFSKP.
   730	002000'	200 01 0 00 000220'		  MOVE T1,FORK		; Restore the process handle
   731	002001'	104 00 0 00 000153 		  KFORK			; Kill the terminal input process
   732	002002'					ENDIF.
   733	002002'	200 01 0 00 000007'		MOVE T1,DCNJFN		; Get JFN
   734	002003'	201 02 0 00 000033 		MOVEI T2,.MORDA
   735	002004'	561 03 0 00 000010'		HRROI T3,INSTR
   736	002005'	402 00 0 00 000004 		SETZM T4
   737	002006'	104 00 0 00 000077 		MTOPR			; Get any optional data
   738	002007'	320 16 0 00 002010'		 ERJMP .+1
   739	002010'	402 00 0 00 000001 		SETZM T1
   740	002011'	136 01 0 00 000003 		IDPB T1,T3
   741						HRROI T1,[ASCIZ /
   742	002012'	561 01 0 00 002621'	?Connection broken/]		; Tell user bad news
   743	002013'	104 00 0 00 000076 		PSOUT
   744						JUMPN T4,[HRROI T1,[ASCIZ / at host /]
   745							  PSOUT
   746							  HRROI T1,INSTR
   747							  PSOUT
   748	002014'	326 04 0 00 002630'			  JRST .+1]
   749					;	HRROI T1,[ASCIZ /. Reason: /]
   750	002015'	561 01 0 00 002635'		HRROI T1,[ASCIZ/ - /]
   751	002016'	104 00 0 00 000076 		PSOUT
   752	002017'	200 01 0 00 000007'	NOTCON:	MOVE T1,DCNJFN		; Restore network connection JFN
   753	002020'	201 02 0 00 000025 		MOVEI T2,.MORLS		; Get current link status
   754	002021'	104 00 0 00 000077 		MTOPR
   755						 ERJMP [JSERR		; JFN must be bad
   756	002022'	320 16 0 00 002636'			JRST START]
   757	002023'	550 02 0 00 000003 	NOTCO1:	HRRZ T2,T3		; Get DECnet error reason code
   758					;	MOVEI T1,.PRIOU		; Output to users terminal
   759					;	MOVEI T3,12		; In decimal
   760					;	NOUT			; Type it
   761					;	 JFCL
   762	002024'	307 02 0 00 000062 		CAIG T2,MAXMSG		; Know about this error?
   763	002025'	336 01 0 02 002165'		SKIPN T1,MSGTBL(T2)	; Yes, have one to type?
   764	002026'	334 00 0 00 000000 		SKIPA			; No
   765	002027'	104 00 0 00 000076 		PSOUT			; Yes, type it then
   766						HRROI T1,[ASCIZ /
   767
   768	002030'	561 01 0 00 002407'	/]
   769	002031'	104 00 0 00 000076 		PSOUT			; Pretty it
   770	002032'	200 01 0 00 000007'		MOVE T1,DCNJFN		; Get the JFN for the link
   771	002033'	661 01 0 00 004000 		TXO T1,CZ%ABT		; Abort any operations
   772	002034'	104 00 0 00 000022 		CLOSF			; Close it
   773						 ERJMP [JSERR			;If fails tell why
   774	002035'	320 16 0 00 002640'			JRST .+1]
   775	002036'	104 00 0 00 000170 		HALTF			; Halt here
   776	002037'	254 00 0 00 001166'		JRST START		; And start at beginning if continued
   777
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 17
SETHOS	MAC	 3-Jan-83 18:17		ESC - Handle input of panic escape character from terminal

   778						SUBTTL	ESC - Handle input of panic escape character from terminal
   779
   780					;
   781					; Note: This routine runs at software interrupt level when the user
   782					;	types the specifed escape character. It resets the terminal
   783					;	to its normal mode and halts, thus causing the EXEC to regain
   784					;	control. If the EXEC CONTINUE command is issued data will be
   785					;	again directed to the remote host.
   786					;
   787
   788	002040'	124 01 0 00 000143'	ESC:	DMOVEM T1,SAVACE	; Save AC's we're going to use
   789	002041'	124 03 0 00 000145'		DMOVEM T3,SAVACE+2
   790	002042'	336 00 0 00 000221'		SKIPN PTYF		;PROGRAM PASSING CHARACTERS?
   791	002043'	254 00 0 00 002046'		IFSKP.
   792	002044'	200 01 0 00 000220'		  MOVE T1,FORK		; Restore process handle
   793	002045'	104 00 0 00 000154 		  FFORK			; Freeze the terminal input process
   794	002046'					ENDIF.
   795	002046'	201 01 0 00 000101 		MOVEI T1,.PRIOU		; Users terminal
   796	002047'	104 00 0 00 000107 		RFMOD			; Get current TTY modes
   797	002050'	261 17 0 00 000002 		PUSH P,T2		; Save them
   798	002051'	660 02 0 00 000300 		TXO T2,TT%DAM		; ASCII data mode, output translation disabled
   799	002052'	104 00 0 00 000110 		SFMOD			; Set new JFN mode word
   800	002053'	104 00 0 00 000101 		CFOBF			; Flush any pending terminal output
   801	002054'	201 01 0 00 000100 		MOVEI T1,.PRIIN		; Users terminal
   802	002055'	104 00 0 00 000100 		CFIBF			; Flush terminal type ahead
   803	002056'	200 01 0 00 000007'		MOVE T1,DCNJFN		;GET THE LINK
   804	002057'	201 02 0 00 000025 		MOVEI T2,.MORLS		;READ THE
   805	002060'	104 00 0 00 000077 		MTOPR			; LINK'S STATUS
   806	002061'	320 16 0 00 002075'		 ERJMP ESC1		;TOO BAD
   807	002062'	603 03 0 00 040000 		TXNE T3,MO%WCC		;WAITING FOR CONNECTION TO COME TRUE?
   808	002063'	604 00 0 00 000000 		IFNSK.			;YES, STILL WAITING
   809	002064'	254 00 0 00 002072'
   810						   TMSG <
   811					Attempt to make connection has been aborted
   812					
   813	002065'	561 01 0 00 002642'	>
   814	002066'	104 00 0 00 000076 
   815	002067'	260 17 0 00 001566'		   CALL ALLON		;RESET TTY TO NORMAL MODE
   816	002070'	104 00 0 00 000147 		   RESET		;CLEAR EVERYTHING
   817	002071'	254 00 0 00 001240'		   JRST HSTNAM		;START OVER
   818	002072'					ENDIF.
   819	002072'	202 03 0 00 000147'		MOVEM T3,SAVSTS		;NO, WE'VE BEEN CONNECTED - SAVE THE LINK STATUS
   820	002073'	603 03 0 00 400000 		TXNE T3,MO%CON		;STILL CONNECTED?
   821	002074'	254 00 0 00 002104'		JRST ESC2		;YES
   822					ESC1:	TMSG <
   823					
   824	002075'	561 01 0 00 002654'	Back at node >
   825	002076'	104 00 0 00 000076 
   826	002077'	260 17 0 00 002133'		CALL GETUS		;OUTPUT OUR NODE NAME
   827	002100'	561 01 0 00 002660'		TMSG <, connection broken - >
   828	002101'	104 00 0 00 000076 
   829	002102'	200 03 0 00 000147'		MOVE T3,SAVSTS		;RETRIEVE LINK STATUS
   830	002103'	254 00 0 00 002023'		JRST NOTCO1
   831
   832					ESC2:	TMSG <
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 17-1
SETHOS	MAC	 3-Jan-83 18:17		ESC - Handle input of panic escape character from terminal

   833					
   834	002104'	561 01 0 00 002654'	Back at node >
   835	002105'	104 00 0 00 000076 
   836	002106'	260 17 0 00 002133'		CALL GETUS
   837						HRROI T1,[ASCIZ/ - type CONTINUE to resume connection
   838
   839	002107'	561 01 0 00 002665'	/]				; Let him know how to restart
   840	002110'	104 00 0 00 000076 		PSOUT
   841	002111'	104 00 0 00 000141 		CIS
   842	002112'	104 00 0 00 000170 		HALTF			; Halt here until continued
   843
   844	002113'				REENT:	HRROI T1,[ASCIZ/
   845	002113'	561 01 0 00 002676'	%Continuing at node /]
   846	002114'	104 00 0 00 000076 		PSOUT			; Let user know we are restarting
   847	002115'	561 01 0 00 000141'		HRROI T1,DESTND		;POINT TO NODE NAME
   848	002116'	104 00 0 00 000076 		PSOUT			;PUT IT OUT
   849						TMSG < ....
   850	002117'	561 01 0 00 002703'	>
   851	002120'	104 00 0 00 000076 
   852	002121'	201 01 0 00 000101 		MOVEI T1,.PRIOU		; Users terminal
   853	002122'	262 17 0 00 000002 		POP P,T2		; Desired TTY modes
   854	002123'	104 00 0 00 000110 		SFMOD			; Set new JFN mode word
   855	002124'	336 00 0 00 000221'		SKIPN PTYF		;LOCAL CHARACTER HANDLING?
   856	002125'	254 00 0 00 002130'		IFSKP.
   857	002126'	200 01 0 00 000220'		  MOVE T1,FORK		; Restore process handle
   858	002127'	104 00 0 00 000155 		  RFORK			; Resume the terminal input process
   859	002130'					ENDIF.
   860	002130'	120 01 0 00 000143'		DMOVE T1,SAVACE		; Restore the AC's
   861	002131'	120 03 0 00 000145'		DMOVE T3,SAVACE+2
   862	002132'	254 00 0 00 001464'		JRST GOTDA1
   863
   864
   865					;OUTPUT THE LOCAL NODE NAME
   866					;RETURNS:	+1
   867
   868	002133'	201 01 0 00 000001 	GETUS:	MOVX T1,.NDGLN
   869	002134'	201 02 0 00 000003 		MOVX T2,T3
   870	002135'	200 03 0 00 002465'		MOVE T3,[POINT 7,LOCAL]
   871	002136'	104 00 0 00 000567 		NODE			; Get our node name
   872	002137'	255 00 0 00 000000 		 JFCL
   873	002140'	561 01 0 00 000005'		HRROI T1,LOCAL
   874	002141'	104 00 0 00 000076 		PSOUT			; Type node name to user
   875	002142'	263 17 0 00 000000 		RET
   876
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 18
SETHOS	MAC	 3-Jan-83 18:17		DOINP0 - Read terminal input and send to remote host

   877						SUBTTL	DOINP0 - Read terminal input and send to remote host
   878
   879					;
   880					; Note: This routine runs as a separate process to read characters
   881					;	from the users terminal and send them to the NRTSRV server
   882					;	which is running on the remote host system.
   883					;	It is only started if PTYF is on.
   884
   885	002143'	201 04 0 00 000310 	DOINP0:	MOVEI T4,MAXINP		; Maximum input characters
   886	002144'	200 03 0 00 002544'		MOVE T3,[POINT 7,INSTR]	; Where they are going
   887	002145'	201 01 0 00 000100 		MOVEI T1,.PRIIN		; Primary input
   888	002146'	104 00 0 00 000050 		BIN			; Wait for a byte
   889	002147'	254 00 0 00 002154'		JRST DOIN0		; Got one, go handle it...
   890
   891	002150'	104 00 0 00 000102 	DOINP:	SIBE			; Any bytes?
   892	002151'	334 00 0 00 000000 		 SKIPA			; Yes
   893	002152'	254 00 0 00 002156'		JRST EMPTY		; No
   894	002153'	104 00 0 00 000050 		BIN			; Get another byte
   895	002154'	136 02 0 00 000003 	DOIN0:	IDPB T2,T3		; Stash it in input stream buffer
   896	002155'	367 04 0 00 002150'		SOJG T4,DOINP		; Do it all
   897	002156'	211 03 0 00 000310 	EMPTY:	MOVNI T3,MAXINP		; Maximum characters
   898	002157'	270 03 0 00 000004 		ADD T3,T4		; Compute number to send
   899	002160'	322 03 0 00 002143'		JUMPE T3,DOINP0		; If none, go wait
   900	002161'	200 01 0 00 000007'		MOVE T1,DCNJFN		; The network JFN
   901	002162'	561 02 0 00 000010'		HRROI T2,INSTR		; Pointer to input stream buffer
   902	002163'	104 00 0 00 000532 		SOUTR			; Send this buffer to remote MCBNRT
   903	002164'	254 00 0 00 002143'		JRST DOINP0		; And continue
   904
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 19
SETHOS	MAC	 3-Jan-83 18:17		MSGTBL - Table of DECnet disconnect/abort reason text

   905						SUBTTL MSGTBL - Table of DECnet disconnect/abort reason text
   906
   907					;
   908					; This table is used by the BADCON routine to provide an english
   909					; text translation for the DECnet error codes which indicate why
   910					; the network logical link connection was broken
   911					;
   912
   913					;MACRO TO MAKE ENTRIES IN NSP ERROR TABLE
   914
   915			000062			MAXMSG==^D50		; Maximum number of NSP error messages
   916
   917					DEFINE NSPERR (CODE,TEXT,BASE<MSGTBL>),<
   918						.ORG BASE+CODE
   919						POINT 7,[ASCIZ\ TEXT\]
   920						.ORG
   921					>
   922	002165'				MSGTBL:				;DECNET ERROR TEXT TABLE
   923
   924					REPEAT MAXMSG,<POINT 7,[ASCIZ\: Undefined NSP error\]> ;MAKE TABLE SPACE
   925	002165'	44 07 0 00 002705'
   926	002166'	44 07 0 00 002705'
   927	002167'	44 07 0 00 002705'
   928	002170'	44 07 0 00 002705'
   929	002171'	44 07 0 00 002705'
   930	002172'	44 07 0 00 002705'
   931	002173'	44 07 0 00 002705'
   932	002174'	44 07 0 00 002705'
   933	002175'	44 07 0 00 002705'
   934	002176'	44 07 0 00 002705'
   935	002177'	44 07 0 00 002705'
   936	002200'	44 07 0 00 002705'
   937	002201'	44 07 0 00 002705'
   938	002202'	44 07 0 00 002705'
   939	002203'	44 07 0 00 002705'
   940	002204'	44 07 0 00 002705'
   941	002205'	44 07 0 00 002705'
   942	002206'	44 07 0 00 002705'
   943	002207'	44 07 0 00 002705'
   944	002210'	44 07 0 00 002705'
   945	002211'	44 07 0 00 002705'
   946	002212'	44 07 0 00 002705'
   947	002213'	44 07 0 00 002705'
   948	002214'	44 07 0 00 002705'
   949	002215'	44 07 0 00 002705'
   950	002216'	44 07 0 00 002705'
   951	002217'	44 07 0 00 002705'
   952	002220'	44 07 0 00 002705'
   953	002221'	44 07 0 00 002705'
   954	002222'	44 07 0 00 002705'
   955	002223'	44 07 0 00 002705'
   956	002224'	44 07 0 00 002705'
   957	002225'	44 07 0 00 002705'
   958	002226'	44 07 0 00 002705'
   959	002227'	44 07 0 00 002705'
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page 19-1
SETHOS	MAC	 3-Jan-83 18:17		MSGTBL - Table of DECnet disconnect/abort reason text

   960	002230'	44 07 0 00 002705'
   961	002231'	44 07 0 00 002705'
   962	002232'	44 07 0 00 002705'
   963	002233'	44 07 0 00 002705'
   964	002234'	44 07 0 00 002705'
   965	002235'	44 07 0 00 002705'
   966	002236'	44 07 0 00 002705'
   967	002237'	44 07 0 00 002705'
   968	002240'	44 07 0 00 002705'
   969	002241'	44 07 0 00 002705'
   970	002242'	44 07 0 00 002705'
   971	002243'	44 07 0 00 002705'
   972	002244'	44 07 0 00 002705'
   973	002245'	44 07 0 00 002705'
   974	002246'	44 07 0 00 002705'
   975									; & UNDEFINED ENTRIES
   976
   977	002165'	44 07 0 00 002712'		NSPERR (.DCX0,<No special error>)
   978	002166'	44 07 0 00 002716'		NSPERR (.DCX1,<Resource allocation failure>)
   979	002167'	44 07 0 00 002724'		NSPERR (.DCX2,<Destination node does not exist>)
   980	002170'	44 07 0 00 002733'		NSPERR (.DCX3,<Node shutting down>)
   981	002171'	44 07 0 00 002737'		NSPERR (.DCX4,<Destination NVT process does not exist>)
   982	002172'	44 07 0 00 002747'		NSPERR (.DCX5,<Invalid name field>)
   983	002176'	44 07 0 00 002753'		NSPERR (.DCX9,<NVT server aborted link>)
   984	002200'	44 07 0 00 002760'		NSPERR (.DCX11,<Undefined error>)
   985	002212'	44 07 0 00 002764'		NSPERR (.DCX21,<CI with illegal destination address>)
   986	002215'	44 07 0 00 002774'		NSPERR (.DCX24,<Flow control violation>)
   987	002225'	44 07 0 00 003001'		NSPERR (.DCX32,<Too many connections to node>)
   988	002226'	44 07 0 00 003007'		NSPERR (.DCX33,<Too many connections to destination NVT process>)
   989	002227'	44 07 0 00 003021'		NSPERR (.DCX34,<Access not permitted>)
   990	002230'	44 07 0 00 003026'		NSPERR (.DCX35,<Logical link services mismatch>)
   991	002231'	44 07 0 00 003035'		NSPERR (.DCX36,<Invalid account>)
   992	002232'	44 07 0 00 003041'		NSPERR (.DCX37,<Segment size too small>)
   993	002233'	44 07 0 00 003046'		NSPERR (.DCX38,<NVT process aborted, timed out, or cancelled request>)
   994	002234'	44 07 0 00 003061'		NSPERR (.DCX39,<No path to destination node>)
   995	002235'	44 07 0 00 003067'		NSPERR (.DCX40,<Link aborted due to data loss>)
   996	002236'	44 07 0 00 003076'		NSPERR (.DCX41,<Destination logical link address does not exist>)
   997	002237'	44 07 0 00 003110'		NSPERR (.DCX42,<Confirmation of disconnect initiate>)
   998	002240'	44 07 0 00 003120'		NSPERR (.DCX43,<Image data field too long>)
   999
  1000
  1001		000003	001163'			END 3,,EVEC

NO ERRORS DETECTED

PROGRAM BREAK IS 003126
CPU TIME USED 00:07.187

85P CORE USED
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page S-1
SETHOS	MAC	 3-Jan-83 18:17		SYMBOL TABLE

A		000001		EPCAP	104000	000151	int	OPENF	104000	000021	int	TSTCO1		001324'		
AIC	104000	000131	int	ERJMP	320700	000000	int	P		000017	int	TSTCO2		002411'		
ALLON		001566'		ESC		002040'		PC		000225'		TSTCON		001310'		
ATEND		001657'		ESC1		002075'		PDL		000277'		TT%DAM		000300	sin	
ATI	104000	000137	int	ESC2		002104'		PREHST		001242'		TT%ECO		004000	sin	
ATMBLN		000141	sin	ESCHAR		001217'		PRES1		001741'		TT%WAK		170000	sin	
ATMBUF		000560'	int	ESOUT	104000	000313	int	PRES2		001750'		UESCCH		000004'		
BADCON		001774'		EVEC		001163'		PRESC0		001764'		VEDIT		000001	spd	
BIN	104000	000050	int	FFORK	104000	000154	int	PRESC1		001770'		VIRGIN		000224'		
CALL	260740	000000		FORK		000220'		PRESCN		001723'		VMAJOR		000005	spd	
CFIBF	104000	000100	int	GETUS		002133'		PSOUT	104000	000076	int	VMINOR		000000	spd	
CFIELD		001243'	ext	GJ%SHT	000001	000000	sin	PTYF		000221'		VSETHO	000500	000001	spd	
CFOBF	104000	000101	int	GOTCON		001326'		Q1		000005	sin	VWHO		000000	spd	
CFORK	104000	000152	int	GOTDA1		001464'		Q2		000006	sin	WAIT	104000	000306	int	
CHNTAB		000233'		GOTDA2		001532'		QUIT		001443'		..0005		001202'	spd	
CIS	104000	000141	int	GOTDAX		001523'		REENT		002113'		..0013		001360'	spd	
CJFNBK		000741'	int	GTJFN	104000	000020	int	REPARA		000761'	int	..0021		001377'	spd	
CJFNLN		000020	sin	GUDCHR		001706'		RESET	104000	000147	int	..0027		001417'	spd	
CLOSF	104000	000022	int	HALTF	104000	000170	int	RET	263740	000000		..0035		001503'	spd	
CM%DPP	000002	000000	sin	HSTNAM		001240'		RFMOD	104000	000107	int	..0043		001515'	spd	
CM%FNC	777000	000000	sin	HSTTYN		000015		RFORK	104000	000155	int	..0051		001561'	spd	
CM%HPP	000004	000000	sin	HSTTYP		001446'		RLJFN	104000	000023	int	..0057		001700'	spd	
CM%SDH	000001	000000	sin	INSIZ		000050	spd	ROUTE		000101'		..0065		002002'	spd	
CMDACS		000540'	int	INSTR		000010'		RPCAP	104000	000150	int	..0073		002046'	spd	
CMDBLN		000141	sin	IPTYF		000000	spd	RSCAN	104000	000500	int	..0101		002072'	spd	
CMDBUF		000377'	int	JSERR	000000000000#	pol	RSKP		002607'	ext	..0107		002130'	spd	
CMDFRM		000762'	int	JSERR0		000000	ext	RT0		001335'		..MX1		000003	spd	
CMDINI		001171'	ext	JSHLT	000000000000#	pol	RTERR		001435'		..MX2		000001	spd	
CMDPDL		000763'	int	JSHLT0		000000	ext	RTERR0		001435'		..TX1	400000	000000	spd	
CMDPLN		000200	sin	KFORK	104000	000153	int	SAVACE		000143'		..TX2		000001	spd	
COLDS0		001606'		LEVTAB		000230'		SAVSTS		000147'		..XX	017005	000000	spd	
COLDSH		001576'		LOCAL		000005'		SAVTTO		001544'		.A16		000016	spd	
CR%MAP	400000	000000	sin	MAXINP		000310	spd	SBK		000721'	int	.AC1		000001	spd	
CTRLY		000060'		MAXMSG		000062	spd	SC%CTC	400000	000000	sin	.CHLFD		000012	sin	
CX		000016	int	MEMBUF		101000	spd	SDBUF		000200	spd	.CMTXT		000017	sin	
CZ%ABT	004000	000000	sin	MEMPTR		000222'		SETTMD		001254'		.DCX0		000000	sin	
DBUFFR		100000	spd	MO%ABT	010000	000000	sin	SFMOD	104000	000110	int	.DCX1		000001	sin	
DCNJFN		000007'		MO%CON	400000	000000	sin	SFORK	104000	000157	int	.DCX11		000013	sin	
DESTND		000141'		MO%WCC	040000	000000	sin	SH%LPM	400000	000000	sin	.DCX2		000002	sin	
DISMS	104000	000167	int	MO%WFC	100000	000000	sin	SIBE	104000	000102	int	.DCX21		000025	sin	
DOIN0		002154'		MSGTBL		002165'		SIN	104000	000052	int	.DCX24		000030	sin	
DOINP		002150'		MTOPR	104000	000077	int	SINR	104000	000531	int	.DCX3		000003	sin	
DOINP0		002143'		NAME		000150'		SIR	104000	000125	int	.DCX32		000040	sin	
DOJFN		001277'		NMEMBF		000777	spd	SOUT	104000	000053	int	.DCX33		000041	sin	
DPROMP		001762'	ext	NMSPC		000223'		SOUTR	104000	000532	int	.DCX34		000042	sin	
DUN		001671'		NODE	104000	000567	int	START		001166'		.DCX35		000043	sin	
DUN1		001672'		NODE0		000061'		STATUS		000000'		.DCX36		000044	sin	
DUN2		001702'		NOR		001352'		STIMSK		000003'		.DCX37		000045	sin	
EIR	104000	000126	int	NOTCO1		002023'		STIW	104000	000174	int	.DCX38		000046	sin	
EMPTY		002156'		NOTCON		002017'		T1		000001	int	.DCX39		000047	sin	
ENDO0		001635'		NPDL		000100	spd	T2		000002	int	.DCX4		000004	sin	
ENDO1		001654'		OF%BSZ	770000	000000	sin	T3		000003	int	.DCX40		000050	sin	
ENDO3		001620'		OF%MOD	007400	000000	sin	T4		000004	int	.DCX41		000051	sin	
ENDO4		001625'		OF%RD		200000	sin	TOPS10		000011	spd	.DCX42		000052	sin	
ENDOF		001614'		OF%WR		100000	sin	TOPS20		000010	spd	.DCX43		000053	sin	
SETHOS - Program to permit logins to remote network host	MACRO %53A(1152) 10:31 25-Jan-83 Page S-2
SETHOS	MAC	 3-Jan-83 18:17		SYMBOL TABLE

.DCX5		000005	sin	
.DCX9		000011	sin	
.FHJOB		777773	sin	
.FHSLF		400000	sin	
.GSSMB		000001	sin	
.MORDA		000033	sin	
.MORLS		000025	sin	
.MOSNH		000044	sin	
.N1		000000	spd	
.NAC		000004	spd	
.NDGLN		000001	sin	
.PRIIN		000100	sin	
.PRIOU		000101	sin	
.RSCNT		000001	sin	
.RSINI		000000	sin	
.TICCY		000031	sin	
.TICCZ		000032	sin	
.TICTI		000037	sin	
A	   218	   240	   706
ALLON	   211	   290	   307	   335	   410	   544#	   584	   594	   727	   815
ATEND	   616	   621	   624#
ATMBLN	   179#	   179
ATMBUF	   179#	   222	   245
BADCON	   379	   486	   497	   515	   726#
CFIELD	   221	   243
CHNTAB	   140#	   206
CJFNBK	   179#
CJFNLN	   179#	   179
CM%DPP	   220
CM%FNC	   220	   242
CM%HPP	   220	   242
CM%SDH	   220	   242
CMDACS	   179#
CMDBLN	   179#	   179
CMDBUF	   179#
CMDFRM	   180#
CMDINI	   191
CMDPDL	   181#
CMDPLN	   181#	   181
COLDS0	   567#	   571
COLDSH	   275	   559#
CR%MAP	   195
CTRLY	   124#	   414	   705
CX	    95#
CZ%ABT	   771
DBUFFR	   101#	   352	   358	   361	   376	   380	   383	   436	   483	   501	   513
DCNJFN	   122#	   293	   304	   314	   332	   347	   363	   375	   468	   482	   507	   733	   752	   770
	   803	   900
DESTND	   127#	   638	   847
DOIN0	   889	   895#
DOINP	   891#	   896
DOINP0	   369	   885#	   899	   903
DOJFN	   286#
DPROMP	   219	   241	   707
DUN	   572	   588	   638#
DUN1	   639#	   650
DUN2	   644	   648#
EMPTY	   893	   897#
ENDO0	   603#	   623
ENDO1	   605	   621#
ENDO3	   565	   580#	   608
ENDO4	   590#	   620
ENDOF	   569	   576#
ESC	   141	   788#
ESC1	   806	   822#
ESC2	   821	   832#
ESCHAR	   214	   218#	   227
EVEC	   184#	  1001
FORK	   131#	   200	   368	   730	   792	   857
GETUS	   826	   836	   868#
GJ%SHT	   286
GOTCON	   319	   342#
GOTDA1	   466#	   480	   506	   510	   862
GOTDA2	   415	   429	   507#
GOTDAX	   382	   491	   500#	   516
GUDCHR	   564	   589	   619	   659#
HSTNAM	   236	   240#	   292	   310	   336	   412	   585	   595	   817
HSTTYN	   385	   462#
HSTTYP	   404	   448#	   462
INSIZ	    99#	   100	   123
INSTR	   123#	   244	   249	   255	   257	   559	   735	   746	   886	   901
IPTYF	    87#	   132
JSERR	   289	   303	   755	   773
JSHLT	   198	   372	   477
LEVTAB	   137#	   206
LOCAL	   121#	   421	   424	   870	   873
MAXINP	   100#	   885	   897
MAXMSG	   762	   915#	   924
MEMBUF	   103#	   531
MEMPTR	   133#	   532	   537	   539
MO%ABT	   322
MO%CON	   318	   820
MO%WCC	   807
MO%WFC	   320
MSGTBL	   763	   922#	   977	   978	   979	   980	   981	   982	   983	   984	   985	   986	   987	   988
	   989	   990	   991	   992	   993	   994	   995	   996	   997	   998
NAME	   130#	   276	   287
NMEMBF	   104#	   533
NMSPC	   134#	   194	   528	   534	   536
NODE0	   125#	   280	   560
NOR	   343	   360	   366#
NOTCO1	   757#	   830
NOTCON	   326	   752#
NPDL	    98#	   177	   189
OF%BSZ	   300
OF%MOD	   300
OF%RD	   300
OF%WR	   300
P	    96#	   189	   399	   403	   470	   471	   472	   475	   478	   521	   522	   523	   524	   525
	   526	   624	   635	   797	   853
PC	   136#	   137	   138	   139
PDL	   177#	   189
PREHST	   213	   242#
PRES1	   689#	   695
PRES2	   691	   697#
PRESC0	   688	   712#	   714
PRESC1	   679	   682	   719#
PRESCN	   212	   675#
PTYF	   132#	   192	   366	   466	   505	   728	   790	   855
Q1	    93#	   562	   599	   617	   618	   639
Q2	    94#
QUIT	   392	   441#
REENT	   185	   844#
REPARA	   179#
ROUTE	   126#	   283	   342	   348	   561	   600
RSKP	   662	   666	   670	   676	   683	   693	   715
RT0	   352#	   364
RTERR	   351	   355	   431#
RTERR0	   359	   432#
SAVACE	   128#	   788	   789	   860	   861
SAVSTS	   129#	   819	   829
SAVTTO	   503	   521#
SBK	   179#
SC%CTC	   204
SDBUF	   102#	   377	   381
SETTMD	   263	   267#
SH%LPM	   474
START	   184	   188#	   199	   373	   443	   722	   756	   776
STATUS	   118#
STIMSK	   119#	   235	   273	   704
T1	    89#	   195	   200	   202	   220	   222	   223	   224	   225	   228	   229	   230	   232	   233
	   234	   235	   242	   244	   248	   249	   250	   253	   257	   259	   267	   272	   276	   286
	   293	   304	   312	   314	   323	   327	   332	   347	   361	   363	   368	   375	   380	   381
	   383	   384	   385	   394	   395	   399	   403	   404	   419	   424	   432	   436	   438	   468
	   482	   500	   507	   521	   525	   527	   528	   531	   532	   533	   534	   537	   539	   544
	   547	   624	   625	   626	   627	   628	   629	   631	   635	   677	   680	   683	   684	   697
	   698	   699	   701	   702	   703	   704	   719	   730	   733	   739	   740	   741	   744	   746
	   750	   752	   763	   766	   770	   771	   788	   792	   795	   801	   803	   837	   844	   847
	   852	   857	   860	   868	   873	   887	   900
T2	    90#	   196	   206	   208	   228	   233	   245	   254	   269	   270	   273	   277	   280	   282
	   284	   287	   300	   315	   348	   352	   357	   369	   376	   420	   469	   483	   487	   493
	   501	   511	   512	   513	   522	   525	   545	   549	   559	   562	   563	   567	   578	   586
	   597	   598	   599	   603	   606	   611	   614	   615	   618	   632	   636	   686	   687	   689
	   690	   692	   713	   734	   753	   757	   762	   763	   797	   798	   804	   853	   869	   895
	   901
T3	    91#	   204	   246	   254	   255	   278	   318	   320	   322	   349	   353	   381	   420	   421
	   470	   484	   487	   493	   494	   495	   502	   512	   523	   525	   527	   536	   560	   570
	   577	   600	   602	   609	   610	   622	   625	   628	   629	   632	   633	   636	   638	   648
	   735	   740	   757	   789	   807	   819	   820	   829	   861	   869	   870	   886	   895	   897
	   898	   899
T4	    92#	   311	   327	   356	   357	   358	   359	   360	   381	   473	   474	   475	   490	   494
	   498	   502	   511	   524	   525	   563	   567	   568	   570	   571	   576	   577	   578	   579
	   586	   587	   596	   597	   598	   601	   602	   603	   604	   606	   607	   609	   610	   611
	   612	   613	   614	   615	   621	   622	   639	   640	   643	   646	   647	   648	   649	   659
	   661	   663	   665	   667	   669	   736	   744	   885	   896	   898
TOPS10	   107#	   395
TOPS20	   106#	   394
TSTCO1	   321	   327#
TSTCO2	   331#	   336
TSTCON	   312#	   337
TT%DAM	   270	   549	   798
TT%ECO	   270	   549
TT%WAK	   269
UESCCH	   120#	   223	   473	   698
VEDIT	   111#	   114
VIRGIN	   135#	   190	   675
VMAJOR	   109#	   114
VMINOR	   110#	   114
VSETHO	   114#	   186
VWHO	   112#	   114
..0005	   193	   201#
..0013	   367	   374#
..0021	   387	   393#
..0027	   398	   413#
..0035	   467	   481#
..0043	   489	   492#
..0051	   529	   535#
..0057	   642	   645#
..0065	   729	   732#
..0073	   791	   794#
..0101	   809	   818#
..0107	   856	   859#
..MX1	   195#	   195	   208#	   208	   232#	   232	   248#	   248	   272#	   272	   286#	   286	   315#	   315
	   419#	   419	   420#	   420	   544#	   544	   680#	   680	   701#	   701	   868#	   868	   869#	   869
..MX2	   195#	   195	   196	   208#	   208	   209	   232#	   232	   233	   248#	   248	   249	   272#	   273
	   286#	   286	   287	   315#	   316	   419#	   420	   420#	   421	   544#	   545	   680#	   681	   701#
	   701	   702	   868#	   869	   869#	   870
..TX1	   204#	   204	   234#	   234	   269#	   269	   270#	   270	   318#	   318	   320#	   320	   322#	   322
	   474#	   474	   549#	   549	   703#	   703	   771#	   771	   798#	   798	   807#	   807	   820#	   820
..TX2	   204#	   204	   205	   234#	   235	   269#	   270	   270#	   271	   318#	   318	   319	   320#	   320
	   321	   322#	   322	   323	   474#	   474	   475	   549#	   550	   703#	   704	   771#	   771	   772
	   798#	   799	   807#	   807	   808	   820#	   820	   821
..XX	   220#	   220	   242#	   242
.A16	   525	   526
.AC1	   309	   390	   401	   408	   417	   427	   583	   593	   813	   824	   827	   834	   850
.CHLFD	   692	   713
.CMTXT	   220	   242
.DCX0	   977
.DCX1	   978
.DCX11	   984
.DCX2	   979
.DCX21	   985
.DCX24	   986
.DCX3	   980
.DCX32	   987
.DCX33	   988
.DCX34	   989
.DCX35	   990
.DCX36	   991
.DCX37	   992
.DCX38	   993
.DCX39	   994
.DCX4	   981
.DCX40	   995
.DCX41	   996
.DCX42	   997
.DCX43	   998
.DCX5	   982
.DCX9	   983
.FHJOB	   272	   544
.FHSLF	   202
.GSSMB	   300
.MORDA	   734
.MORLS	   315	   753	   804
.MOSNH	   469
.N1	   525#	   525
.NAC	   521#	   522	   522#	   523	   523#	   524	   524#	   525	   525#
.NDGLN	   253	   419	   868
.PRIIN	   267	   472	   547	   684	   801	   887
.PRIOU	   500	   795	   852
.RSCNT	   680
.RSINI	   677
.TICCY	   697	   702
.TICCZ	   224
.TICTI	   234	   703
AIC	   209
ATI	   231	   700
BIN	   685	   694	   712	   888	   894
CALL	   191	   211	   212	   219	   221	   241	   243	   275	   290	   307	   335	   410	   503	   564
	   584	   589	   594	   619	   707	   727	   815	   826	   836
CFIBF	   802
CFOBF	   800
CFORK	   197
CIS	   726	   841
CLOSF	   333	   772
CMDSTG	   179
DISMS	   313
EIR	   210
ELSE.	   193	   193#	   201#	   367	   367#	   374#	   386	   386#	   393#	   397	   397#	   413#	   467	   467#
	   481#	   489	   489#	   492#	   529	   529#	   535#	   641	   641#	   645#	   729	   729#	   732#	   791
	   791#	   794#	   808	   808#	   818#	   856	   856#	   859#
ENDIF.	   193	   193#	   201	   201#	   367	   367#	   374	   374#	   386	   386#	   393	   393#	   397	   397#
	   413	   413#	   467	   467#	   481	   481#	   489	   489#	   492	   492#	   529	   529#	   535	   535#
	   641	   641#	   645	   645#	   729	   729#	   732	   732#	   791	   791#	   794	   794#	   808	   808#
	   818	   818#	   856	   856#	   859	   859#
EPCAP	   205
ERJMP	   303	   317	   351	   355	   371	   379	   477	   486	   497	   515	   679	   682	   738	   755
	   773	   806
ESOUT	   226	   720
FFORK	   793
FLD	   220	   242	   300
FLDDB.	   220	   242
GTJFN	   288
HALTF	   291	   442	   721	   775	   842
IFNSK.	   386	   397	   641	   808
IFSKP.	   193	   367	   467	   489	   529	   729	   791	   856
KFORK	   731
MOVX	   195	   208	   232	   248	   272	   286	   315	   419	   420	   544	   680	   701	   868	   869
MTOPR	   316	   476	   737	   754	   805
NODE	   256	   422	   871
NSPERR	   917#	   977	   978	   979	   980	   981	   982	   983	   984	   985	   986	   987	   988	   989
	   990	   991	   992	   993	   994	   995	   996	   997	   998
OPENF	   302
PROMPT	   218	   240	   706
PSOUT	   252	   258	   261	   309	   325	   331	   362	   391	   402	   405	   409	   418	   425	   428
	   435	   437	   440	   583	   593	   743	   745	   747	   751	   765	   769	   814	   825	   828
	   835	   840	   846	   848	   851	   874
RESET	   188	   371	   411	   441	   816
RET	   540	   551	   651	   660	   664	   668	   671	   708	   875
RETSKP	   662	   666	   670	   676	   683	   693	   715
RFMOD	   268	   548	   796
RFORK	   858
RLJFN	   305
RPCAP	   203
RSCAN	   678	   681
SAVEAC	   521
SFMOD	   271	   550	   799	   854
SFORK	   370
SIBE	   488	   508	   891
SIN	   485	   496	   514	   634
SINR	   354	   378
SIR	   207
SOUT	   247	   279	   281	   285	   504	   538
SOUTR	   350	   902
STIW	   274	   546
TMSG	   308	   388	   400	   406	   416	   426	   580	   590	   810	   822	   827	   832	   849
TXNE	   318	   320	   322	   807	   820
TXO	   204	   234	   269	   474	   549	   703	   771	   798
TXZ	   270
WAIT	   479
..0001	   193#	   201
..0002	   193#	   201
..0003	   193#	   201
..0004	   193#	   201
..0007	   367#	   374
..0010	   367#	   374
..0011	   367#	   374
..0012	   367#	   374
..0015	   386#	   393
..0016	   386#	   393
..0017	   386#	   393
..0020	   386#	   393
..0023	   397#	   413
..0024	   397#	   413
..0025	   397#	   413
..0026	   397#	   413
..0031	   467#	   481
..0032	   467#	   481
..0033	   467#	   481
..0034	   467#	   481
..0037	   489#	   492
..0040	   489#	   492
..0041	   489#	   492
..0042	   489#	   492
..0045	   529#	   535
..0046	   529#	   535
..0047	   529#	   535
..0050	   529#	   535
..0053	   641#	   645
..0054	   641#	   645
..0055	   641#	   645
..0056	   641#	   645
..0061	   729#	   732
..0062	   729#	   732
..0063	   729#	   732
..0064	   729#	   732
..0067	   791#	   794
..0070	   791#	   794
..0071	   791#	   794
..0072	   791#	   794
..0075	   808#	   818
..0076	   808#	   818
..0077	   808#	   818
..0100	   808#	   818
..0103	   856#	   859
..0104	   856#	   859
..0105	   856#	   859
..0106	   856#	   859
..INDF	   193	   367	   386	   397	   467	   489	   529	   641	   729	   791	   808	   856
..RSDF	   201	   374	   393	   413	   481	   492	   535	   645	   732	   794	   818	   859
..SVDF	   193	   367	   386	   397	   467	   489	   529	   641	   729	   791	   808	   856
..TAGE	   193	   194#	   201#	   367	   368#	   374#	   386	   388#	   393#	   397	   399#	   413#	   467	   468#
	   481#	   489	   490#	   492#	   529	   530#	   535#	   641	   643#	   645#	   729	   730#	   732#	   791
	   792#	   794#	   808	   810#	   818#	   856	   857#	   859#
..TAGF	   193	   194#	   201	   201#	   367	   368#	   374	   374#	   386	   388#	   393	   393#	   397	   399#
	   413	   413#	   467	   468#	   481	   481#	   489	   490#	   492	   492#	   529	   530#	   535	   535#
	   641	   643#	   645	   645#	   729	   730#	   732	   732#	   791	   792#	   794	   794#	   808	   810#
	   818	   818#	   856	   857#	   859	   859#
.POPX	   201	   374	   393	   413	   481	   492	   535	   645	   732	   794	   818	   859
.POPX2	   201	   374	   393	   413	   481	   492	   535	   645	   732	   794	   818	   859
.POPX3	   201	   374	   393	   413	   481	   492	   535	   645	   732	   794	   818	   859
.POPX4	   201	   374	   393	   413	   481	   492	   535	   645	   732	   794	   818	   859
.PSHX	   193	   367	   386	   397	   467	   489	   529	   641	   729	   791	   808	   856
.PSHX1	   193	   193#	   201	   201#	   367	   367#	   374	   374#	   386	   386#	   393	   393#	   397	   397#
	   413	   413#	   467	   467#	   481	   481#	   489	   489#	   492	   492#	   529	   529#	   535	   535#
	   641	   641#	   645	   645#	   729	   729#	   732	   732#	   791	   791#	   794	   794#	   808	   808#
	   818	   818#	   856	   856#	   859	   859#
.PSHX2	   193	   367	   386	   397	   467	   489	   529	   641	   729	   791	   808	   856