Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/utilities/sethos.list
There is 1 other file named sethos.list in the archive. Click here to see a list.
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 1
SETHOS	MAC	 4-Jan-82 08:34	

     1					; UPD ID= 63, SNARK:<5.UTILITIES>SETHOS.MAC.15,   4-Jan-82 08:34:44 by GRANT
     2					;TCO - 5.1648 - When user types panic character, check for actual connection
     3					; UPD ID= 44, SNARK:<5.UTILITIES>SETHOS.MAC.14,   1-Oct-81 14:26:39 by GRANT
     4					;TCO 5.1553 - output remote system type when we don't support the protocol
     5					; UPD ID= 31, SNARK:<5.UTILITIES>SETHOS.MAC.13,  15-Sep-81 11:33:07 by GRANT
     6					;TCO 5.1509 - Enhance error message when remote system rejects connection
     7					; UPD ID= 9, SNARK:<5.UTILITIES>SETHOS.MAC.12,  24-Jul-81 07:10:07 by GRANT
     8					;Save destination node name so it can be printed out when reconnecting occurs
     9					; UPD ID= 6, SNARK:<5.UTILITIES>SETHOS.MAC.11,  17-Jul-81 16:54:37 by GRANT
    10					;Fix bug in parsing the input string of nodes - bug caused wrong message to
    11					;be sent to PSTHRU
    12					; UPD ID= 2, SNARK:<5.UTILITIES>SETHOS.MAC.10,   9-Jul-81 18:00:57 by GRANT
    13					;Add version number, fix copyright
    14					;Print out disconnect reason when ESC character is seen
    15					; UPD ID= 2300, SNARK:<5.UTILITIES>SETHOS.MAC.9,   6-Jul-81 15:32:15 by MURPHY
    16					;SAVE ONE PAGE WORTH OF TTY OUTPUT IF NOT .MOSNH
    17					;Don't create fork when not needed.
    18					;Switch for PTY/.MOSNH
    19					; UPD ID= 2200, SNARK:<5.UTILITIES>SETHOS.MAC.8,  15-Jun-81 14:19:40 by GRANT
    20					;CLOSF instead of RLJFN when " ? Remote node not responding "
    21					; UPD ID= 2079, SNARK:<5.UTILITIES>SETHOS.MAC.7,  25-May-81 22:59:33 by GRANT
    22					;check to see if link is really still there before saying "type continue to
    23					;resume connection"
    24					; UPD ID= 2034, SNARK:<5.UTILITIES>SETHOS.MAC.6,  19-May-81 15:00:45 by GRANT
    25					;Force the input string to be syntactically correct before trying to open a link
    26					; UPD ID= 1912, SNARK:<5.UTILITIES>SETHOS.MAC.5,  30-Apr-81 16:48:38 by GRANT
    27					;Don't automatically reprompt when GTJFN or OPENF fail in DOJFN
    28					; UPD ID= 1911, SNARK:<5.UTILITIES>SETHOS.MAC.4,  30-Apr-81 16:29:45 by GRANT
    29					;Use .TICCZ instead of .TICTI in ESCHAR
    30					; UPD ID= 1710, SNARK:<5.UTILITIES>SETHOS.MAC.3,  16-Mar-81 11:51:32 by GRANT
    31					;Don't say "[TYPE ^Y, etc.]" until connection has been established
    32					;Don't say "Reason n" when reporting the disconnect reeason
    33					;Time out the attempted connection
    34					;Don't say "Connection broken" when there really wasn't a connection
    35					;If received configuration message doesn't support TOPS-20, say so
    36					; UPD ID= 1646, SNARK:<5.UTILITIES>SETHOS.MAC.2,   4-Mar-81 12:14:55 by GRANT
    37					;MAKE "SETHOST NODE::" CONNECT TO OBJECT 23 INSTEAD OF 123
    38					;<MURPHY.MON>SETHOS.MAC.8, 20-Jan-81 16:07:11, EDIT BY MURPHY
    39					;SH%LPM to prevent sending XON, XOFF
    40					;<MURPHY.MON>SETHOS.MAC.7, 21-Nov-80 17:36:15, EDIT BY MURPHY
    41					;<MURPHY.MON>SETHOS.MAC.4, 10-Oct-80 13:47:05, EDIT BY MURPHY
    42					;<MURPHY.MON>SETHOST.MAC.2, 20-Aug-80 14:54:44, EDIT BY MURPHY
    43					;USE .MOSNH FUNCTION TO MAKE MONITOR DO THE WORK
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 2
SETHOS	MAC	 4-Jan-82 08:34	

    44
    45						TITLE	SETHOS - Program to permit logins to remote network host
    46
    47
    48
    49
    50					;COPYRIGHT (C) 1981 BY
    51					;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
    52					;
    53					;
    54					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
    55					;ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
    56					;INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
    57					;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
    58					;OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
    59					;TRANSFERRED.
    60					;
    61					;
    62					;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
    63					;AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
    64					;CORPORATION.
    65					;
    66					;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
    67					;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
    68
    69
    70						SALL			; Keep listing uncluttered, no macro expansion
    71						SEARCH	MONSYM,MACSYM,CMD ; Universals to search
    72						.REQUIRE SYS:MACREL,SYS:CMD ; Make LINK load these automatically
    73
    74					; This program will allow a user to login in to a remote system in a
    75					; DECnet network from a TOPS-20 host system. It demonstrates use of the
    76					; TOPS-20 DECnet functionality in a program which performs a real function.
    77					; The remote system must provide a program which acts as a server to
    78					; this program. The MCBNRT program is an example of a program written for
    79					; TOPS-20 which will perform that function on that system. Programs for
    80					; other systems must perform functionally similar to MCBNRT. 
    81					;
    82
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 3
SETHOS	MAC	 4-Jan-82 08:34		DECLARED SYMBOLS

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

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

   169	000271'	000000	000000
   170	000272'	000000	000000
   171	000273'	000000	000000
   172	000274'	000000	000000
   173	000275'	000000	000000
   174	000276'	000000	000000
   175	000277'				PDL:	BLOCK NPDL		; Pushdown list (STACK)
   176
   177	000761'	000000	000000		CMDSTG				; Command parser storage (from CMDS)
   178	000762'	000000	000000
   179
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 5
SETHOS	MAC	 4-Jan-82 08:34		START  -  Start of SETHOST program

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

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

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

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

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

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

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

   444					;OPERATING SYSTEM TYPES
   445
   446	001446'	000000	002473'		HSTTYP:	[ASCIZ\RSTS\]
   447	001447'	000000	002474'			[ASCIZ\RT-11\]
   448	001450'	000000	002476'			[ASCIZ\RSTS/E\]
   449	001451'	000000	002500'			[ASCIZ\RSX-11S\]
   450	001452'	000000	002502'			[ASCIZ\RSX-11M\]
   451	001453'	000000	002504'			[ASCIZ\RSX-11D\]
   452	001454'	000000	002506'			[ASCIZ\IAS\]
   453	001455'	000000	002507'			[ASCIZ\VMS\]
   454	001456'	000000	002510'			[ASCIZ\TOPS-20\]
   455	001457'	000000	002512'			[ASCIZ\TOPS-10\]
   456	001460'	000000	002514'			[ASCIZ\RTS-8\]
   457	001461'	000000	002516'			[ASCIZ\OS-8\]
   458	001462'	000000	002517'			[ASCIZ\RSX-11M+\]
   459	001463'	000000	002521'			[ASCIZ\MCB\]
   460			000015		HSTTYN=.-HSTTYP-1		;NUMBER OF DEFINED OPERATING SYSTEM TYPES
   461
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 11
SETHOS	MAC	 4-Jan-82 08:34		GOTDA1 - Read data from network connection

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

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

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

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

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

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

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

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

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

   831	002107'	561 01 0 00 002630'	ESC1:	TMSG < - >
   832	002110'	104 00 0 00 000076 
   833	002111'	254 00 0 00 002023'		JRST NOTCO1
   834
   835	002112'				ESC2:	HRROI T1,[ASCIZ/,
   836					Type CONTINUE to resume connection
   837	002112'	561 01 0 00 002656'	/]				; Let him know how to restart
   838	002113'	104 00 0 00 000076 		PSOUT
   839	002114'	104 00 0 00 000141 		CIS
   840	002115'	104 00 0 00 000170 		HALTF			; Halt here until continued
   841
   842	002116'	561 01 0 00 002666'	REENT:	HRROI T1,[ASCIZ/%Reconnecting to node /]
   843	002117'	104 00 0 00 000076 		PSOUT			; Let user know we are restarting
   844	002120'	561 01 0 00 000141'		HRROI T1,DESTND		;POINT TO NODE NAME
   845	002121'	104 00 0 00 000076 		PSOUT			;PUT IT OUT
   846						TMSG < ....
   847	002122'	561 01 0 00 002673'	>
   848	002123'	104 00 0 00 000076 
   849	002124'	201 01 0 00 000101 		MOVEI T1,.PRIOU		; Users terminal
   850	002125'	262 17 0 00 000002 		POP P,T2		; Desired TTY modes
   851	002126'	104 00 0 00 000110 		SFMOD			; Set new JFN mode word
   852	002127'	336 00 0 00 000221'		SKIPN PTYF		;LOCAL CHARACTER HANDLING?
   853	002130'	254 00 0 00 002133'		IFSKP.
   854	002131'	200 01 0 00 000220'		  MOVE T1,FORK		; Restore process handle
   855	002132'	104 00 0 00 000155 		  RFORK			; Resume the terminal input process
   856	002133'					ENDIF.
   857	002133'	120 01 0 00 000143'		DMOVE T1,SAVACE		; Restore the AC's
   858	002134'	120 03 0 00 000145'		DMOVE T3,SAVACE+2
   859	002135'	254 00 0 00 001464'		JRST GOTDA1
   860
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 18
SETHOS	MAC	 4-Jan-82 08:34		DOINP0 - Read terminal input and send to remote host

   861						SUBTTL	DOINP0 - Read terminal input and send to remote host
   862
   863					;
   864					; Note: This routine runs as a separate process to read characters
   865					;	from the users terminal and send them to the NRTSRV server
   866					;	which is running on the remote host system.
   867					;	It is only started if PTYF is on.
   868
   869	002136'	201 04 0 00 000310 	DOINP0:	MOVEI T4,MAXINP		; Maximum input characters
   870	002137'	200 03 0 00 002537'		MOVE T3,[POINT 7,INSTR]	; Where they are going
   871	002140'	201 01 0 00 000100 		MOVEI T1,.PRIIN		; Primary input
   872	002141'	104 00 0 00 000050 		BIN			; Wait for a byte
   873	002142'	254 00 0 00 002147'		JRST DOIN0		; Got one, go handle it...
   874
   875	002143'	104 00 0 00 000102 	DOINP:	SIBE			; Any bytes?
   876	002144'	334 00 0 00 000000 		 SKIPA			; Yes
   877	002145'	254 00 0 00 002151'		JRST EMPTY		; No
   878	002146'	104 00 0 00 000050 		BIN			; Get another byte
   879	002147'	136 02 0 00 000003 	DOIN0:	IDPB T2,T3		; Stash it in input stream buffer
   880	002150'	367 04 0 00 002143'		SOJG T4,DOINP		; Do it all
   881	002151'	211 03 0 00 000310 	EMPTY:	MOVNI T3,MAXINP		; Maximum characters
   882	002152'	270 03 0 00 000004 		ADD T3,T4		; Compute number to send
   883	002153'	322 03 0 00 002136'		JUMPE T3,DOINP0		; If none, go wait
   884	002154'	200 01 0 00 000007'		MOVE T1,DCNJFN		; The network JFN
   885	002155'	561 02 0 00 000010'		HRROI T2,INSTR		; Pointer to input stream buffer
   886	002156'	104 00 0 00 000532 		SOUTR			; Send this buffer to remote MCBNRT
   887	002157'	254 00 0 00 002136'		JRST DOINP0		; And continue
   888
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 19
SETHOS	MAC	 4-Jan-82 08:34		MSGTBL - Table of DECnet disconnect/abort reason text

   889						SUBTTL MSGTBL - Table of DECnet disconnect/abort reason text
   890
   891					;
   892					; This table is used by the BADCON routine to provide an english
   893					; text translation for the DECnet error codes which indicate why
   894					; the network logical link connection was broken
   895					;
   896
   897					;MACRO TO MAKE ENTRIES IN NSP ERROR TABLE
   898
   899			000062			MAXMSG==^D50		; Maximum number of NSP error messages
   900
   901					DEFINE NSPERR (CODE,TEXT,BASE<MSGTBL>),<
   902						.ORG BASE+CODE
   903						POINT 7,[ASCIZ\ TEXT\]
   904						.ORG
   905					>
   906	002160'				MSGTBL:				;DECNET ERROR TEXT TABLE
   907
   908					REPEAT MAXMSG,<POINT 7,[ASCIZ\: Undefined NSP error\]> ;MAKE TABLE SPACE
   909	002160'	44 07 0 00 002675'
   910	002161'	44 07 0 00 002675'
   911	002162'	44 07 0 00 002675'
   912	002163'	44 07 0 00 002675'
   913	002164'	44 07 0 00 002675'
   914	002165'	44 07 0 00 002675'
   915	002166'	44 07 0 00 002675'
   916	002167'	44 07 0 00 002675'
   917	002170'	44 07 0 00 002675'
   918	002171'	44 07 0 00 002675'
   919	002172'	44 07 0 00 002675'
   920	002173'	44 07 0 00 002675'
   921	002174'	44 07 0 00 002675'
   922	002175'	44 07 0 00 002675'
   923	002176'	44 07 0 00 002675'
   924	002177'	44 07 0 00 002675'
   925	002200'	44 07 0 00 002675'
   926	002201'	44 07 0 00 002675'
   927	002202'	44 07 0 00 002675'
   928	002203'	44 07 0 00 002675'
   929	002204'	44 07 0 00 002675'
   930	002205'	44 07 0 00 002675'
   931	002206'	44 07 0 00 002675'
   932	002207'	44 07 0 00 002675'
   933	002210'	44 07 0 00 002675'
   934	002211'	44 07 0 00 002675'
   935	002212'	44 07 0 00 002675'
   936	002213'	44 07 0 00 002675'
   937	002214'	44 07 0 00 002675'
   938	002215'	44 07 0 00 002675'
   939	002216'	44 07 0 00 002675'
   940	002217'	44 07 0 00 002675'
   941	002220'	44 07 0 00 002675'
   942	002221'	44 07 0 00 002675'
   943	002222'	44 07 0 00 002675'
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page 19-1
SETHOS	MAC	 4-Jan-82 08:34		MSGTBL - Table of DECnet disconnect/abort reason text

   944	002223'	44 07 0 00 002675'
   945	002224'	44 07 0 00 002675'
   946	002225'	44 07 0 00 002675'
   947	002226'	44 07 0 00 002675'
   948	002227'	44 07 0 00 002675'
   949	002230'	44 07 0 00 002675'
   950	002231'	44 07 0 00 002675'
   951	002232'	44 07 0 00 002675'
   952	002233'	44 07 0 00 002675'
   953	002234'	44 07 0 00 002675'
   954	002235'	44 07 0 00 002675'
   955	002236'	44 07 0 00 002675'
   956	002237'	44 07 0 00 002675'
   957	002240'	44 07 0 00 002675'
   958	002241'	44 07 0 00 002675'
   959									; & UNDEFINED ENTRIES
   960
   961	002160'	44 07 0 00 002702'		NSPERR (.DCX0,<No special error>)
   962	002161'	44 07 0 00 002706'		NSPERR (.DCX1,<Resource allocation failure>)
   963	002162'	44 07 0 00 002714'		NSPERR (.DCX2,<Destination node does not exist>)
   964	002163'	44 07 0 00 002723'		NSPERR (.DCX3,<Node shutting down>)
   965	002164'	44 07 0 00 002727'		NSPERR (.DCX4,<Destination NVT process does not exist>)
   966	002165'	44 07 0 00 002737'		NSPERR (.DCX5,<Invalid name field>)
   967	002171'	44 07 0 00 002743'		NSPERR (.DCX9,<NVT server aborted link>)
   968	002173'	44 07 0 00 002750'		NSPERR (.DCX11,<Undefined error>)
   969	002205'	44 07 0 00 002754'		NSPERR (.DCX21,<CI with illegal destination address>)
   970	002210'	44 07 0 00 002764'		NSPERR (.DCX24,<Flow control violation>)
   971	002220'	44 07 0 00 002771'		NSPERR (.DCX32,<Too many connections to node>)
   972	002221'	44 07 0 00 002777'		NSPERR (.DCX33,<Too many connections to destination NVT process>)
   973	002222'	44 07 0 00 003011'		NSPERR (.DCX34,<Access not permitted>)
   974	002223'	44 07 0 00 003016'		NSPERR (.DCX35,<Logical link services mismatch>)
   975	002224'	44 07 0 00 003025'		NSPERR (.DCX36,<Invalid account>)
   976	002225'	44 07 0 00 003031'		NSPERR (.DCX37,<Segment size too small>)
   977	002226'	44 07 0 00 003036'		NSPERR (.DCX38,<NVT process aborted, timed out, or cancelled request>)
   978	002227'	44 07 0 00 003051'		NSPERR (.DCX39,<No path to destination node>)
   979	002230'	44 07 0 00 003057'		NSPERR (.DCX40,<Link aborted due to data loss>)
   980	002231'	44 07 0 00 003066'		NSPERR (.DCX41,<Destination logical link address does not exist>)
   981	002232'	44 07 0 00 003100'		NSPERR (.DCX42,<Confirmation of disconnect initiate>)
   982	002233'	44 07 0 00 003110'		NSPERR (.DCX43,<Image data field too long>)
   983
   984
   985		000003	001163'			END 3,,EVEC

NO ERRORS DETECTED

PROGRAM BREAK IS 003116
CPU TIME USED 00:08.022

85P CORE USED
SETHOS - Program to permit logins to remote network host	MACRO %53B(1215) 11:08  5-May-82 Page S-1
SETHOS	MAC	 4-Jan-82 08:34		SYMBOL TABLE

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

.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	   216	   238	   704
ALLON	   209	   288	   305	   333	   408	   542#	   582	   592	   725	   813
ATEND	   614	   619	   622#
ATMBLN	   177#	   177
ATMBUF	   177#	   220	   243
BADCON	   377	   484	   495	   513	   724#
CFIELD	   219	   241
CHNTAB	   138#	   204
CJFNBK	   177#
CJFNLN	   177#	   177
CM%DPP	   218
CM%FNC	   218	   240
CM%HPP	   218	   240
CM%SDH	   218	   240
CMDACS	   177#
CMDBLN	   177#	   177
CMDBUF	   177#
CMDFRM	   178#
CMDINI	   189
CMDPDL	   179#
CMDPLN	   179#	   179
COLDS0	   565#	   569
COLDSH	   273	   557#
CR%MAP	   193
CTRLY	   122#	   412	   703
CX	    93#
CZ%ABT	   769
DBUFFR	    99#	   350	   356	   359	   374	   378	   381	   434	   481	   499	   511
DCNJFN	   120#	   291	   302	   312	   330	   345	   361	   373	   466	   480	   505	   731	   750	   768
	   801	   884
DESTND	   125#	   636	   844
DOIN0	   873	   879#
DOINP	   875#	   880
DOINP0	   367	   869#	   883	   887
DOJFN	   284#
DPROMP	   217	   239	   705
DUN	   570	   586	   636#
DUN1	   637#	   648
DUN2	   642	   646#
EMPTY	   877	   881#
ENDO0	   601#	   621
ENDO1	   603	   619#
ENDO3	   563	   578#	   606
ENDO4	   588#	   618
ENDOF	   567	   574#
ESC	   139	   786#
ESC1	   804	   831#
ESC2	   830	   835#
ESCHAR	   212	   216#	   225
EVEC	   182#	   985
FORK	   129#	   198	   366	   728	   790	   854
GJ%SHT	   284
GOTCON	   317	   340#
GOTDA1	   464#	   478	   504	   508	   859
GOTDA2	   413	   427	   505#
GOTDAX	   380	   489	   498#	   514
GUDCHR	   562	   587	   617	   657#
HSTNAM	   234	   238#	   290	   308	   334	   410	   583	   593	   815
HSTTYN	   383	   460#
HSTTYP	   402	   446#	   460
INSIZ	    97#	    98	   121
INSTR	   121#	   242	   247	   253	   255	   557	   733	   744	   870	   885
IPTYF	    85#	   130
JSERR	   287	   301	   753	   771
JSHLT	   196	   370	   475
LEVTAB	   135#	   204
LOCAL	   119#	   419	   422	   823	   826
MAXINP	    98#	   869	   881
MAXMSG	   760	   899#	   908
MEMBUF	   101#	   529
MEMPTR	   131#	   530	   535	   537
MO%ABT	   320
MO%CON	   316	   829
MO%WCC	   805
MO%WFC	   318
MSGTBL	   761	   906#	   961	   962	   963	   964	   965	   966	   967	   968	   969	   970	   971	   972
	   973	   974	   975	   976	   977	   978	   979	   980	   981	   982
NAME	   128#	   274	   285
NMEMBF	   102#	   531
NMSPC	   132#	   192	   526	   532	   534
NODE0	   123#	   278	   558
NOR	   341	   358	   364#
NOTCO1	   755#	   833
NOTCON	   324	   750#
NPDL	    96#	   175	   187
OF%BSZ	   298
OF%MOD	   298
OF%RD	   298
OF%WR	   298
P	    94#	   187	   397	   401	   468	   469	   470	   473	   476	   519	   520	   521	   522	   523
	   524	   622	   633	   795	   850
PC	   134#	   135	   136	   137
PDL	   175#	   187
PREHST	   211	   240#
PRES1	   687#	   693
PRES2	   689	   695#
PRESC0	   686	   710#	   712
PRESC1	   677	   680	   717#
PRESCN	   210	   673#
PTYF	   130#	   190	   364	   464	   503	   726	   788	   852
Q1	    91#	   560	   597	   615	   616	   637
Q2	    92#
QUIT	   390	   439#
REENT	   183	   842#
REPARA	   177#
ROUTE	   124#	   281	   340	   346	   559	   598
RSKP	   660	   664	   668	   674	   681	   691	   713
RT0	   350#	   362
RTERR	   349	   353	   429#
RTERR0	   357	   430#
SAVACE	   126#	   786	   787	   857	   858
SAVSTS	   127#	   817	   828
SAVTTO	   501	   519#
SBK	   177#
SC%CTC	   202
SDBUF	   100#	   375	   379
SETTMD	   261	   265#
SH%LPM	   472
START	   182	   186#	   197	   371	   441	   720	   754	   774
STATUS	   116#
STIMSK	   117#	   233	   271	   702
T1	    87#	   193	   198	   200	   218	   220	   221	   222	   223	   226	   227	   228	   230	   231
	   232	   233	   240	   242	   246	   247	   248	   251	   255	   257	   265	   270	   274	   284
	   291	   302	   310	   312	   321	   325	   330	   345	   359	   361	   366	   373	   378	   379
	   381	   382	   383	   392	   393	   397	   401	   402	   417	   422	   430	   434	   436	   466
	   480	   498	   505	   519	   523	   525	   526	   529	   530	   531	   532	   535	   537	   542
	   545	   622	   623	   624	   625	   626	   627	   629	   633	   675	   678	   681	   682	   695
	   696	   697	   699	   700	   701	   702	   717	   728	   731	   737	   738	   739	   742	   744
	   748	   750	   761	   764	   768	   769	   786	   790	   793	   799	   801	   818	   821	   826
	   835	   842	   844	   849	   854	   857	   871	   884
T2	    88#	   194	   204	   206	   226	   231	   243	   252	   267	   268	   271	   275	   278	   280
	   282	   285	   298	   313	   346	   350	   355	   367	   374	   418	   467	   481	   485	   491
	   499	   509	   510	   511	   520	   523	   543	   547	   557	   560	   561	   565	   576	   584
	   595	   596	   597	   601	   604	   609	   612	   613	   616	   630	   634	   684	   685	   687
	   688	   690	   711	   732	   751	   755	   760	   761	   795	   796	   802	   822	   850	   879
	   885
T3	    89#	   202	   244	   252	   253	   276	   316	   318	   320	   347	   351	   379	   418	   419
	   468	   482	   485	   491	   492	   493	   500	   510	   521	   523	   525	   534	   558	   568
	   575	   598	   600	   607	   608	   620	   623	   626	   627	   630	   631	   634	   636	   646
	   733	   738	   755	   787	   805	   817	   822	   823	   828	   829	   858	   870	   879	   881
	   882	   883
T4	    90#	   309	   325	   354	   355	   356	   357	   358	   379	   471	   472	   473	   488	   492
	   496	   500	   509	   522	   523	   561	   565	   566	   568	   569	   574	   575	   576	   577
	   584	   585	   594	   595	   596	   599	   600	   601	   602	   604	   605	   607	   608	   609
	   610	   611	   612	   613	   619	   620	   637	   638	   641	   644	   645	   646	   647	   657
	   659	   661	   663	   665	   667	   734	   742	   869	   880	   882
TOPS10	   105#	   393
TOPS20	   104#	   392
TSTCO1	   319	   325#
TSTCO2	   329#	   334
TSTCON	   310#	   335
TT%DAM	   268	   547	   796
TT%ECO	   268	   547
TT%WAK	   267
UESCCH	   118#	   221	   471	   696
VEDIT	   109#	   112
VIRGIN	   133#	   188	   673
VMAJOR	   107#	   112
VMINOR	   108#	   112
VSETHO	   112#	   184
VWHO	   110#	   112
..0005	   191	   199#
..0013	   365	   372#
..0021	   385	   391#
..0027	   396	   411#
..0035	   465	   479#
..0043	   487	   490#
..0051	   527	   533#
..0057	   640	   643#
..0065	   727	   730#
..0073	   789	   792#
..0101	   807	   816#
..0107	   853	   856#
..MX1	   193#	   193	   206#	   206	   230#	   230	   246#	   246	   270#	   270	   284#	   284	   313#	   313
	   417#	   417	   418#	   418	   542#	   542	   678#	   678	   699#	   699	   821#	   821	   822#	   822
..MX2	   193#	   193	   194	   206#	   206	   207	   230#	   230	   231	   246#	   246	   247	   270#	   271
	   284#	   284	   285	   313#	   314	   417#	   418	   418#	   419	   542#	   543	   678#	   679	   699#
	   699	   700	   821#	   822	   822#	   823
..TX1	   202#	   202	   232#	   232	   267#	   267	   268#	   268	   316#	   316	   318#	   318	   320#	   320
	   472#	   472	   547#	   547	   701#	   701	   769#	   769	   796#	   796	   805#	   805	   829#	   829
..TX2	   202#	   202	   203	   232#	   233	   267#	   268	   268#	   269	   316#	   316	   317	   318#	   318
	   319	   320#	   320	   321	   472#	   472	   473	   547#	   548	   701#	   702	   769#	   769	   770
	   796#	   797	   805#	   805	   806	   829#	   829	   830
..XX	   218#	   218	   240#	   240
.A16	   523	   524
.AC1	   307	   388	   399	   406	   415	   425	   581	   591	   811	   831	   847
.CHLFD	   690	   711
.CMTXT	   218	   240
.DCX0	   961
.DCX1	   962
.DCX11	   968
.DCX2	   963
.DCX21	   969
.DCX24	   970
.DCX3	   964
.DCX32	   971
.DCX33	   972
.DCX34	   973
.DCX35	   974
.DCX36	   975
.DCX37	   976
.DCX38	   977
.DCX39	   978
.DCX4	   965
.DCX40	   979
.DCX41	   980
.DCX42	   981
.DCX43	   982
.DCX5	   966
.DCX9	   967
.FHJOB	   270	   542
.FHSLF	   200
.GSSMB	   298
.MORDA	   732
.MORLS	   313	   751	   802
.MOSNH	   467
.N1	   523#	   523
.NAC	   519#	   520	   520#	   521	   521#	   522	   522#	   523	   523#
.NDGLN	   251	   417	   821
.PRIIN	   265	   470	   545	   682	   799	   871
.PRIOU	   498	   793	   849
.RSCNT	   678
.RSINI	   675
.TICCY	   695	   700
.TICCZ	   222
.TICTI	   232	   701
AIC	   207
ATI	   229	   698
BIN	   683	   692	   710	   872	   878
CALL	   189	   209	   210	   217	   219	   239	   241	   273	   288	   305	   333	   408	   501	   562
	   582	   587	   592	   617	   705	   725	   813
CFIBF	   800
CFOBF	   798
CFORK	   195
CIS	   724	   839
CLOSF	   331	   770
CMDSTG	   177
DISMS	   311
EIR	   208
ELSE.	   191	   191#	   199#	   365	   365#	   372#	   384	   384#	   391#	   395	   395#	   411#	   465	   465#
	   479#	   487	   487#	   490#	   527	   527#	   533#	   639	   639#	   643#	   727	   727#	   730#	   789
	   789#	   792#	   806	   806#	   816#	   853	   853#	   856#
ENDIF.	   191	   191#	   199	   199#	   365	   365#	   372	   372#	   384	   384#	   391	   391#	   395	   395#
	   411	   411#	   465	   465#	   479	   479#	   487	   487#	   490	   490#	   527	   527#	   533	   533#
	   639	   639#	   643	   643#	   727	   727#	   730	   730#	   789	   789#	   792	   792#	   806	   806#
	   816	   816#	   853	   853#	   856	   856#
EPCAP	   203
ERJMP	   301	   315	   349	   353	   369	   377	   475	   484	   495	   513	   677	   680	   736	   753
	   771	   804
ESOUT	   224	   718
FFORK	   791
FLD	   218	   240	   298
FLDDB.	   218	   240
GTJFN	   286
HALTF	   289	   440	   719	   773	   840
IFNSK.	   384	   395	   639	   806
IFSKP.	   191	   365	   465	   487	   527	   727	   789	   853
KFORK	   729
MOVX	   193	   206	   230	   246	   270	   284	   313	   417	   418	   542	   678	   699	   821	   822
MTOPR	   314	   474	   735	   752	   803
NODE	   254	   420	   824
NSPERR	   901#	   961	   962	   963	   964	   965	   966	   967	   968	   969	   970	   971	   972	   973
	   974	   975	   976	   977	   978	   979	   980	   981	   982
OPENF	   300
PROMPT	   216	   238	   704
PSOUT	   250	   256	   259	   307	   323	   329	   360	   389	   400	   403	   407	   416	   423	   426
	   433	   435	   438	   581	   591	   741	   743	   745	   749	   763	   767	   812	   820	   827
	   832	   838	   843	   845	   848
RESET	   186	   369	   409	   439	   814
RET	   538	   549	   649	   658	   662	   666	   669	   706
RETSKP	   660	   664	   668	   674	   681	   691	   713
RFMOD	   266	   546	   794
RFORK	   855
RLJFN	   303
RPCAP	   201
RSCAN	   676	   679
SAVEAC	   519
SFMOD	   269	   548	   797	   851
SFORK	   368
SIBE	   486	   506	   875
SIN	   483	   494	   512	   632
SINR	   352	   376
SIR	   205
SOUT	   245	   277	   279	   283	   502	   536
SOUTR	   348	   886
STIW	   272	   544
TMSG	   306	   386	   398	   404	   414	   424	   578	   588	   808	   831	   846
TXNE	   316	   318	   320	   805	   829
TXO	   202	   232	   267	   472	   547	   701	   769	   796
TXZ	   268
WAIT	   477
..0001	   191#	   199
..0002	   191#	   199
..0003	   191#	   199
..0004	   191#	   199
..0007	   365#	   372
..0010	   365#	   372
..0011	   365#	   372
..0012	   365#	   372
..0015	   384#	   391
..0016	   384#	   391
..0017	   384#	   391
..0020	   384#	   391
..0023	   395#	   411
..0024	   395#	   411
..0025	   395#	   411
..0026	   395#	   411
..0031	   465#	   479
..0032	   465#	   479
..0033	   465#	   479
..0034	   465#	   479
..0037	   487#	   490
..0040	   487#	   490
..0041	   487#	   490
..0042	   487#	   490
..0045	   527#	   533
..0046	   527#	   533
..0047	   527#	   533
..0050	   527#	   533
..0053	   639#	   643
..0054	   639#	   643
..0055	   639#	   643
..0056	   639#	   643
..0061	   727#	   730
..0062	   727#	   730
..0063	   727#	   730
..0064	   727#	   730
..0067	   789#	   792
..0070	   789#	   792
..0071	   789#	   792
..0072	   789#	   792
..0075	   806#	   816
..0076	   806#	   816
..0077	   806#	   816
..0100	   806#	   816
..0103	   853#	   856
..0104	   853#	   856
..0105	   853#	   856
..0106	   853#	   856
..INDF	   191	   365	   384	   395	   465	   487	   527	   639	   727	   789	   806	   853
..RSDF	   199	   372	   391	   411	   479	   490	   533	   643	   730	   792	   816	   856
..SVDF	   191	   365	   384	   395	   465	   487	   527	   639	   727	   789	   806	   853
..TAGE	   191	   192#	   199#	   365	   366#	   372#	   384	   386#	   391#	   395	   397#	   411#	   465	   466#
	   479#	   487	   488#	   490#	   527	   528#	   533#	   639	   641#	   643#	   727	   728#	   730#	   789
	   790#	   792#	   806	   808#	   816#	   853	   854#	   856#
..TAGF	   191	   192#	   199	   199#	   365	   366#	   372	   372#	   384	   386#	   391	   391#	   395	   397#
	   411	   411#	   465	   466#	   479	   479#	   487	   488#	   490	   490#	   527	   528#	   533	   533#
	   639	   641#	   643	   643#	   727	   728#	   730	   730#	   789	   790#	   792	   792#	   806	   808#
	   816	   816#	   853	   854#	   856	   856#
.POPX	   199	   372	   391	   411	   479	   490	   533	   643	   730	   792	   816	   856
.POPX2	   199	   372	   391	   411	   479	   490	   533	   643	   730	   792	   816	   856
.POPX3	   199	   372	   391	   411	   479	   490	   533	   643	   730	   792	   816	   856
.POPX4	   199	   372	   391	   411	   479	   490	   533	   643	   730	   792	   816	   856
.PSHX	   191	   365	   384	   395	   465	   487	   527	   639	   727	   789	   806	   853
.PSHX1	   191	   191#	   199	   199#	   365	   365#	   372	   372#	   384	   384#	   391	   391#	   395	   395#
	   411	   411#	   465	   465#	   479	   479#	   487	   487#	   490	   490#	   527	   527#	   533	   533#
	   639	   639#	   643	   643#	   727	   727#	   730	   730#	   789	   789#	   792	   792#	   806	   806#
	   816	   816#	   853	   853#	   856	   856#
.PSHX2	   191	   365	   384	   395	   465	   487	   527	   639	   727	   789	   806	   853