Trailing-Edge
-
PDP-10 Archives
-
BB-J710A-BM
-
tools/nrt20/nrt20.lst
There are no other files named nrt20.lst in the archive.
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 2
NRT20 MAC 11-Jan-80 15:58
1 TITLE NRT20 - Program to permit logins to remote network host
2
3
4
5
6 ;COPYRIGHT (C) 1979 BY
7 ;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
8 ;
9 ;
10 ;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
11 ;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
12 ;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
13 ;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
14 ;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
15 ;TRANSFERRED.
16 ;
17 ;
18 ;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
19 ;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
20 ;CORPORATION.
21 ;
22 ;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
23 ;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
24
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 3
NRT20 MAC 11-Jan-80 15:58
25
26 SALL ; Keep listing uncluttered, no macro expansion
27 SEARCH MONSYM,MACSYM,CMD ; Universals to search
28 .REQUIRE SYS:MACREL,SYS:CMD ; Make LINK load these automatically
29 ;
30 ; This program will allow a user to login in to a remote system in a
31 ; DECnet network from a TOPS-20 host system. It demonstrates use of the
32 ; TOPS-20 DECnet functionality in a program which performs a real function.
33 ; The remote system must provide a program which acts as a server to
34 ; this program. The NRTSRV program is an example of a program written for
35 ; TOPS-20 which will perform that function on that system. Programs for
36 ; other systems must perform functionally similar to NRTSRV.
37 ;
38
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 4
NRT20 MAC 11-Jan-80 15:58 DECLARED SYMBOLS
39 SUBTTL DECLARED SYMBOLS
40
41 000001 T1==1 ; AC definitions
42 000002 T2==2
43 000003 T3==3
44 000004 T4==4
45 000016 CX==16
46 000017 P==17
47
48 000020 NPDL==20 ; Size of pushdown list
49 000050 INSIZ==50 ; Terminal input buffer size, in words
50 000310 MAXINP==INSIZ*5 ; Maximum number of terminal input characters
51 100000 DBUFFR==100000 ; Data buffer on page 100
52
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 5
NRT20 MAC 11-Jan-80 15:58 IMPURE STORAGE
53 SUBTTL IMPURE STORAGE
54
55 000000' STIMSK: BLOCK 1 ; Terminal interrupt word mask for STIW
56 000001' LOCAL: BLOCK 2 ; Local node name
57 000003' DCNJFN: BLOCK 1 ; JFN of logical link to NRTSRV server
58 000004' INSTR: BLOCK INSIZ ; Terminal input stream buffer
59 000054' SAVACE: BLOCK 4 ; Register save area for AC's 1 - 4
60 000060' NAME: BLOCK 10 ; File spec name of logical link to NRTSRV
61 000070' FORK: BLOCK 1 ; Handle of inferior process to read from TTY
62 000071' 777777 777777 VIRGIN: EXP -1 ; Flag to indicate fresh start, initially -1
63 000072' PC: BLOCK 3 ; Storage for PC on interrupts
64 000075' 000000 000072' LEVTAB: PC ; Software interrupt level table
65 000076' 000000 000073' PC+1
66 000077' 000000 000074' PC+2
67 000100' 000000 000000 CHNTAB: 0 ; Software interrupt channel table
68 000101' 000001 001203' 1,,ESC ; Panic character (default ^Y)
69 000102' 000000 000000 0
70 000103' PDL: BLOCK NPDL ; Pushdown list (STACK)
71
72 000505' 000000 000000 CMDSTG ; Command parser storage (from CMDS)
73 000506' 000000 000000
74
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 6
NRT20 MAC 11-Jan-80 15:58 START - Start of NRT20 program
75 SUBTTL START - Start of NRT20 program
76
77 000707' 104 00 0 00 000147 START: RESET ; Intialize ourself
78 000710' 200 17 0 00 001351' MOVE P,[IOWD NPDL,PDL] ; and set up pushdown list
79 000711' 350 00 0 00 000071' AOS VIRGIN ; Bump count of times we come through here
80 000712' 260 17 0 00 000000* CALL CMDINI ; Initialize command parser
81 000713' 205 01 0 00 400000 MOVX T1,CR%MAP ; Create process to read from TTY
82 000714' 402 00 0 00 000002 SETZM T2
83 000715' 104 00 0 00 000152 CFORK ; Make the process, same address map
84 JRST [ JSHLT ; on error... halt and allow continue
85 000716' 254 00 0 00 001352' JRST START]
86 000717' 202 01 0 00 000070' MOVEM T1,FORK ; Save the process handle obtained
87 000720' 201 01 0 00 400000 MOVEI T1,.FHSLF ; Our process handle
88 000721' 104 00 0 00 000150 RPCAP ; Get our capabilities
89 000722' 661 03 0 00 400000 TXO T3,SC%CTC ; allow ^C trapping for job
90 000723' 104 00 0 00 000151 EPCAP ; Enable new set of capabilities
91 000724' 200 02 0 00 001354' MOVE T2,[LEVTAB,,CHNTAB] ; Address of software interrupt system tables
92 000725' 104 00 0 00 000125 SIR ; Give them to monitor
93 000726' 205 02 0 00 200000 MOVX T2,1B1 ; Channel number
94 000727' 104 00 0 00 000131 AIC ; Activate software interrupt channels
95 000730' 104 00 0 00 000126 EIR ; Enable software interrupt system
96 000731' 260 17 0 00 001057' CALL ALLON ; Turn on all TTY interrupts
97 000732' 260 17 0 00 001067' CALL PRESCN ; Prescan EXEC line for host name...
98 000733' 254 00 0 00 000757' JRST PREHST ; Got it - skip the prompting
99 000734' 254 00 0 00 000735' JRST ESCHAR ; Otherwise get it now
100
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 7
NRT20 MAC 11-Jan-80 15:58 ESCHAR - Obtain the escape character user wants to use
101 SUBTTL ESCHAR - Obtain the escape character user wants to use
102
103 000735' 561 01 0 00 001355' ESCHAR: PROMPT <Escape character(^Y):> ; Put out prompt to users terminal
104 000736' 260 17 0 00 000000*
105 000737' 201 01 0 00 001373' MOVEI T1,[FLDDB. (.CMTXT,CM%SDH,,<Character for interrupting connection>,<>)]
106 000740' 260 17 0 00 000000* CALL CFIELD ; Read the escape character
107 000741' 135 01 0 00 001377' LDB T1,[POINT 7,ATMBUF,6] ; Get character itself
108 000742' 303 01 0 00 000032 CAILE T1,.TICCZ ; Is it a valid character? (^A to ^Z)
109 JRST [ HRROI T1,[ASCIZ /Invalid character/] ; No, tell user
110 ESOUT
111 000743' 254 00 0 00 001404' JRST ESCHAR] ; and try again
112 000744' 211 02 0 01 000000 MOVNI T2,0(T1) ; Save the character
113 000745' 507 00 0 00 000001 HRLS T1 ; Character value is terminal code
114 000746' 541 01 0 00 000001 HRRI T1,1 ; Channel number
115 000747' 104 00 0 00 000137 ATI ; Assign terminal code to software interrupt channel
116 000750' 205 01 0 00 400000 MOVX T1,1B0 ; Get a bit
117 000751' 242 01 0 02 000000 LSH T1,0(T2) ; Make terminal interrupt word mask for character
118 000752' 660 01 0 00 000020 TXO T1,1B<.TICTI> ; Allow typein
119 000753' 202 01 0 00 000000' MOVEM T1,STIMSK ; Save for use later
120 000754' 254 00 0 00 000755' JRST HSTNAM ; Get the host name
121
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 8
NRT20 MAC 11-Jan-80 15:58 HSTNAM - Get the host name user wants to login on
122 SUBTTL HSTNAM - Get the host name user wants to login on
123
124 000755' 561 01 0 00 001407' HSTNAM: PROMPT <Host name: > ; Put out prompt to users terminal
125 000756' 260 17 0 00 000736*
126 000757' 201 01 0 00 001420' PREHST: MOVEI T1,[FLDDB. (.CMTXT,CM%SDH,,<Name of system to connect to>)]
127 000760' 260 17 0 00 000740* CALL CFIELD ; Read host name
128 000761' 561 01 0 00 000004' HRROI T1,INSTR ; Pointer to destination buffer
129 000762' 561 02 0 00 000304' HRROI T2,ATMBUF ; Pointer to source buffer
130 000763' 201 03 0 00 000000 MOVEI T3,0 ; An ASCIZ string
131 000764' 104 00 0 00 000053 SOUT ; Copy the host name
132 000765' 205 01 0 00 774000 MOVX T1,177B6 ; See if real host name given
133 000766' 616 01 0 00 000004' TDNN T1,INSTR ; Was one?
134 JRST [ HRROI T1,[ASCIZ /
135 [CONNECTING TO LOCAL HOST- /] ; No, tell user what's happening
136 PSOUT
137 MOVEI T1,.NDGLN ; Function code to get local node name
138 MOVEI T2,T3
139 HRROI T3,INSTR
140 NODE ; Obtain local node name
141 HRROI T1,INSTR
142 PSOUT ; Output to user's TTY
143 HRROI T1,[ASCIZ /]
144 /]
145 PSOUT ; Finish the message nicely
146 000767' 254 00 0 00 001432' JRST .+1]
147 000770' 254 00 0 00 000771' JRST SETTMD ; Have name. Now set TTY modes
148
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 9
NRT20 MAC 11-Jan-80 15:58 SETTMD - Set TTY modes
149 SUBTTL SETTMD - Set TTY modes
150
151 000771' 201 01 0 00 000100 SETTMD: MOVEI T1,.PRIIN ; Primary input
152 000772' 104 00 0 00 000107 RFMOD ; Get current JFN mode word
153 000773' 660 02 0 00 170000 TXO T2,TT%WAK ; Wake on all
154 000774' 620 02 0 00 004300 TXZ T2,TT%ECO!TT%DAM ; Echoes off and binary data mode
155 000775' 104 00 0 00 000110 SFMOD ; Set new JFN mode word
156 000776' 201 01 0 00 777773 MOVX T1,.FHJOB ; Set terminal interrupt word for entire job
157 000777' 200 02 0 00 000000' MOVE T2,STIMSK ; Get terminal interrupt word saved earlier
158 001000' 104 00 0 00 000174 STIW ; Set it to allow only panic interrupts
159 001001' 561 01 0 00 000060' HRROI T1,NAME ; Build network file spec to NRTSRV
160 001002' 561 02 0 00 001445' HRROI T2,[ASCIZ /DCN:/] ; The DECnet device for making connection
161 001003' 402 00 0 00 000003 SETZM T3
162 001004' 104 00 0 00 000053 SOUT
163 001005' 561 02 0 00 000004' HRROI T2,INSTR ; The node name to connect to
164 001006' 104 00 0 00 000053 SOUT
165 001007' 561 02 0 00 001446' HRROI T2,[ASCIZ /-200/] ; NRTSRV's object type
166 001010' 104 00 0 00 000053 SOUT
167 001011' 205 01 0 00 000001 MOVX T1,GJ%SHT ; Do a short form GTJFN
168 001012' 561 02 0 00 000060' HRROI T2,NAME ; Using the spec just built
169 001013' 104 00 0 00 000020 GTJFN ; Get DCN connection
170 JRST [ JSERR ; If error, tell user
171 CALL ALLON ; Reset TTY to normal mode
172 001014' 254 00 0 00 001447' JRST HSTNAM] ; And go back to get host name
173 001015' 202 01 0 00 000003' MOVEM T1,DCNJFN ; Save JFN for the connection
174 001016' 201 01 0 00 000101 MOVEI T1,.PRIOU ; Check if parity OK on this TTY
175 001017' 104 00 0 00 000145 GDSTS ; Get device status
176 ERJMP [SETZM T2 ; If error, set all status off
177 001020' 320 16 0 00 001452' JRST .+1] ; And continue along
178 001021' 200 01 0 00 000003' MOVE T1,DCNJFN ; Restore the JFN for network connection
179 001022' 602 02 0 00 000001 TXNE T2,GD%PAR ; Does terminal allow parity?
180 001023' 334 02 0 00 001454' SKIPA T2,[FLD(^D8,OF%BSZ)!OF%RD!OF%WR] ; Yes, 8 bit bytes and read/write access
181 001024' 200 02 0 00 001455' MOVE T2,[FLD(^D7,OF%BSZ)!OF%RD!OF%WR] ; No, then 7 bit bytes and read/write access
182 001025' 104 00 0 00 000021 OPENF ; Open the network connection
183 ERJMP [JSERR ; If failed, tell user
184 MOVE T1,DCNJFN ; And release the JFN
185 RLJFN
186 JFCL
187 CALL ALLON ; Reset TTY to normal mode
188 001026' 320 16 0 00 001456' JRST HSTNAM] ; And go back to get host name
189 001027' 200 01 0 00 000070' MOVE T1,FORK ; Restore the process handle obtained
190 001030' 201 02 0 00 001245' MOVEI T2,DOINP0 ; The start address
191 001031' 104 00 0 00 000157 SFORK ; Start the process to read input from TTY
192 ERJMP [RESET ; If failed, reset ourself
193 JSHLT ; Tell user and halt
194 001032' 320 16 0 00 001464' JRST START] ; Go back to beginning if continued
195 001033' 254 00 0 00 001034' JRST GOTDA1 ; Connection now opened. Wait for input
196
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 10
NRT20 MAC 11-Jan-80 15:58 GOTDA1 - Read data from network connection
197 SUBTTL GOTDA1 - Read data from network connection
198
199 001034' 200 01 0 00 000003' GOTDA1: MOVE T1,DCNJFN ; Get the network connection JFN
200 001035' 200 02 0 00 001467' MOVE T2,[POINT ^D8,DBUFFR] ; Pointer to buffer
201 001036' 211 03 0 00 000001 MOVNI T3,1 ; One byte only
202 001037' 104 00 0 00 000052 SIN ; Read from logical link
203 001040' 320 16 0 00 001151' ERJMP BADCON ; If error, connection broken
204 001041' 200 03 0 00 000002 MOVE T3,T2 ; Save byte pointer
205 001042' 104 00 0 00 000102 SIBE ; Any more data to read now ?
206 001043' 334 00 0 00 000000 SKIPA ; Yes, read the rest
207 JRST [ SETZM T4 ; No, then go type what there is to user
208 001044' 254 00 0 00 001470' JRST GOTDAX]
209 001045' 250 02 0 00 000003 EXCH T2,T3 ; Restore byte pointer
210 001046' 200 04 0 00 000003 MOVE T4,T3 ; Save count
211 001047' 213 00 0 00 000003 MOVNS T3 ; Read the exact number available
212 001050' 104 00 0 00 000052 SIN ; Read remaining bytes
213 001051' 320 16 0 00 001151' ERJMP BADCON ; If error, connection broken
214
215 001052' 201 01 0 00 000101 GOTDAX: MOVEI T1,.PRIOU ; Output to users terminal
216 001053' 200 02 0 00 001467' MOVE T2,[POINT ^D8,DBUFFR] ; Pointer to data from remote host
217 001054' 211 03 0 04 000001 MOVNI T3,1(T4) ; Output count
218 001055' 104 00 0 00 000053 SOUT ; Type data on users terminal
219 001056' 254 00 0 00 001034' JRST GOTDA1 ; And continue
220
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 11
NRT20 MAC 11-Jan-80 15:58 ALLON - Restore echoing and interrupts on terminal
221 SUBTTL ALLON - Restore echoing and interrupts on terminal
222
223 001057' 201 01 0 00 777773 ALLON: MOVX T1,.FHJOB ; Set terminal interrupt word for entire job
224 001060' 476 00 0 00 000002 SETOM T2 ; Terminal interrupt word mask for all codes
225 001061' 104 00 0 00 000174 STIW ; Set terminal interrupt word
226 001062' 201 01 0 00 000100 MOVEI T1,.PRIIN ; Primary input
227 001063' 104 00 0 00 000107 RFMOD ; Read JFN mode word
228 001064' 660 02 0 00 004300 TXO T2,TT%ECO!TT%DAM ; Echo on, ASCII data mode, output translation disabled
229 001065' 104 00 0 00 000110 SFMOD ; Set new JFN mode word
230 001066' 263 17 0 00 000000 RET ; Done, return to caller
231
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 12
NRT20 MAC 11-Jan-80 15:58 PRESCN - Prescan EXEC command for host name
232 SUBTTL PRESCN - Prescan EXEC command for host name
233
234 001067' 332 00 0 00 000071' PRESCN: SKIPE VIRGIN ; Starting out fresh?
235 001070' 254 00 0 00 000000* RETSKP ; No..., so return +2 to force prompt
236 001071' 201 01 0 00 000000 MOVEI T1,.RSINI ; Make rescan buffer available
237 001072' 104 00 0 00 000500 RSCAN ; as command line to process reading from CTTY
238 001073' 320 16 0 00 001145' ERJMP PRESC1
239 001074' 201 01 0 00 000001 MOVX T1,.RSCNT ; Get count of characters
240 001075' 104 00 0 00 000500 RSCAN ; in rescan buffer
241 001076' 320 16 0 00 001145' ERJMP PRESC1
242 001077' 322 01 0 00 001472' JUMPE T1,[RETSKP] ; None there, so must prompt
243 001100' 201 01 0 00 000100 MOVEI T1,.PRIIN ; Primary input
244 001101' 104 00 0 00 000050 BIN ; Read a character
245 001102' 302 02 0 00 000122 CAIE T2,"R" ; RUN or R (program name can't start with "R")
246 001103' 306 02 0 00 000162 CAIN T2,"r" ; Check lowercase also
247 001104' 254 00 0 00 001141' JRST PRESC0 ; Yes, no prescanning, go eat rest of line
248 001105' 302 02 0 00 000040 PRES1: CAIE T2," " ; Have we hit a space yet?
249 001106' 306 02 0 00 000011 CAIN T2," " ; Also accept a tab
250 001107' 254 00 0 00 001114' JRST PRES2 ; Yes, read the node name
251 001110' 306 02 0 00 000012 CAIN T2,.CHLFD ; Have we hit EOL yet?
252 001111' 254 00 0 00 001070* RETSKP ; Yes, no node name, skip return to prompt
253 001112' 104 00 0 00 000050 BIN ; Read the next character
254 001113' 254 00 0 00 001105' JRST PRES1 ; And loop to test
255 001114' 205 01 0 00 000031 PRES2: MOVSI T1,.TICCY ; Default to ^Y for interrupt character
256 001115' 541 01 0 00 000001 HRRI T1,1 ; And use channel one
257 001116' 104 00 0 00 000137 ATI ; Assign terminal code to interrupt channel
258 001117' 205 01 0 00 400000 MOVX T1,1B0 ; Get a hi order bit
259 001120' 242 01 0 00 777747 LSH T1,-.TICCY ; Shift bit by value of ^Y code
260 001121' 660 01 0 00 000020 TXO T1,1B<.TICTI> ; Allow typein
261 001122' 202 01 0 00 000000' MOVEM T1,STIMSK ; Save for use later
262 001123' 561 01 0 00 001473' TMSG <[Type ^Y to return to node > ; Tell user how to get back
263 001124' 104 00 0 00 000076
264 001125' 201 01 0 00 000001 MOVX T1,.NDGLN
265 001126' 201 02 0 00 000003 MOVX T2,T3
266 001127' 200 03 0 00 001501' MOVE T3,[POINT 7,LOCAL]
267 001130' 104 00 0 00 000567 NODE ; And name of local node
268 001131' 255 00 0 00 000000 JFCL
269 001132' 561 01 0 00 000001' HRROI T1,LOCAL
270 001133' 104 00 0 00 000076 PSOUT
271 TMSG <]
272 001134' 561 01 0 00 001431' > ; Finish off nicely
273 001135' 104 00 0 00 000076
274 001136' 561 01 0 00 001374' PROMPT <> ; Null prompt
275 001137' 260 17 0 00 000756*
276 001140' 263 17 0 00 000000 RET ; Done, return no skip to not prompt
277
278 ;HERE TO FLUSH REST OF EXEC COMMAND LINE
279
280 001141' 104 00 0 00 000050 PRESC0: BIN ; Get next byte
281 001142' 302 02 0 00 000012 CAIE T2,.CHLFD ; The end of line?
282 001143' 254 00 0 00 001141' JRST PRESC0 ; No, Try again
283 001144' 254 00 0 00 001111* RETSKP ; Yes, return +2 to prompt for node
284
285 ;Here if rescan attempt does not succeed
286
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 12-1
NRT20 MAC 11-Jan-80 15:58 PRESCN - Prescan EXEC command for host name
287 001145' 561 01 0 00 001502' PRESC1: HRROI T1,[ASCIZ/Unexpected error in scanning command line/] ; If error,
288 001146' 104 00 0 00 000313 ESOUT ; tell user
289 001147' 104 00 0 00 000170 HALTF ; and halt
290 001150' 254 00 0 00 000707' JRST START ; Start over if continued...
291
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 13
NRT20 MAC 11-Jan-80 15:58 BADCON - Handle a broken network connection
292 SUBTTL BADCON - Handle a broken network connection
293
294 001151' 104 00 0 00 000141 BADCON: CIS ; Prevent further interruption
295 001152' 260 17 0 00 001057' CALL ALLON ; Restore TTY modes
296 001153' 200 01 0 00 000070' MOVE T1,FORK ; Restore the process handle
297 001154' 104 00 0 00 000153 KFORK ; Kill the terminal input process
298 HRROI T1,[ASCIZ /
299 001155' 561 01 0 00 001513' ?Connection broken. Reason: /] ; Tell user bad news
300 001156' 104 00 0 00 000076 PSOUT
301 001157' 200 01 0 00 000003' MOVE T1,DCNJFN ; Restore network connection JFN
302 001160' 201 02 0 00 000025 MOVEI T2,.MORLS ; Get current link status
303 001161' 104 00 0 00 000077 MTOPR
304 001162' 550 02 0 00 000003 HRRZ T2,T3 ; Get DECnet error reason code
305 001163' 201 01 0 00 000101 MOVEI T1,.PRIOU ; Output to users terminal
306 001164' 201 03 0 00 000012 MOVEI T3,12 ; In decimal
307 001165' 104 00 0 00 000224 NOUT ; Type it
308 001166' 255 00 0 00 000000 JFCL
309 001167' 307 02 0 00 000062 CAIG T2,MAXMSG ; Know about this error?
310 001170' 336 01 0 02 001267' SKIPN T1,MSGTBL(T2) ; Yes, have one to type?
311 001171' 334 00 0 00 000000 SKIPA ; No
312 001172' 104 00 0 00 000076 PSOUT ; Yes, type it then
313 HRROI T1,[ASCIZ /
314 001173' 561 01 0 00 001522' /]
315 001174' 104 00 0 00 000076 PSOUT ; Pretty it
316 001175' 200 01 0 00 000003' MOVE T1,DCNJFN ; Get the JFN for the link
317 001176' 661 01 0 00 004000 TXO T1,CZ%ABT ; Abort any operations
318 001177' 104 00 0 00 000022 CLOSF ; Close it
319 ERJMP [JSERR ;If fails tell why
320 001200' 320 16 0 00 001523' JRST .+1]
321 001201' 104 00 0 00 000170 HALTF ; Halt here
322 001202' 254 00 0 00 000707' JRST START ; And start at beginning if continued
323
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 14
NRT20 MAC 11-Jan-80 15:58 ESC - Handle input of panic escape character from terminal
324 SUBTTL ESC - Handle input of panic escape character from terminal
325
326 ;
327 ; Note: This routine runs at software interrupt level when the user
328 ; types the specifed escape character. It resets the terminal
329 ; to its normal mode and halts, thus causing the EXEC to regain
330 ; control. If the EXEC CONTINUE command is issued data will be
331 ; again directed to the remote host.
332 ;
333
334 001203' 124 01 0 00 000054' ESC: DMOVEM T1,SAVACE ; Save AC's we're going to use
335 001204' 124 03 0 00 000056' DMOVEM T3,SAVACE+2
336 001205' 200 01 0 00 000070' MOVE T1,FORK ; Restore process handle
337 001206' 104 00 0 00 000154 FFORK ; Freeze the terminal input process
338 001207' 201 01 0 00 000101 MOVEI T1,.PRIOU ; Users terminal
339 001210' 104 00 0 00 000107 RFMOD ; Get current TTY modes
340 001211' 261 17 0 00 000002 PUSH P,T2 ; Save them
341 001212' 660 02 0 00 000300 TXO T2,TT%DAM ; ASCII data mode, output translation disabled
342 001213' 104 00 0 00 000110 SFMOD ; Set new JFN mode word
343 001214' 104 00 0 00 000101 CFOBF ; Flush any pending terminal output
344 001215' 201 01 0 00 000100 MOVEI T1,.PRIIN ; Users terminal
345 001216' 104 00 0 00 000100 CFIBF ; Flush terminal type ahead
346 HRROI T1,[ASCIZ /
347 001217' 561 01 0 00 001525' [Connection broken, back at node /] ; Tell user he's now talking to us
348 001220' 104 00 0 00 000076 PSOUT
349 001221' 201 01 0 00 000001 MOVX T1,.NDGLN
350 001222' 201 02 0 00 000003 MOVX T2,T3
351 001223' 200 03 0 00 001501' MOVE T3,[POINT 7,LOCAL]
352 001224' 104 00 0 00 000567 NODE ; Get our node name
353 001225' 255 00 0 00 000000 JFCL
354 001226' 561 01 0 00 000001' HRROI T1,LOCAL
355 001227' 104 00 0 00 000076 PSOUT ; Type node name to user
356 HRROI T1,[ASCIZ/,
357 Type CONTINUE to resume connection]
358 001230' 561 01 0 00 001535' /] ; Let him know how to restart
359 001231' 104 00 0 00 000076 PSOUT
360 001232' 104 00 0 00 000170 HALTF ; Halt here until continued
361 HRROI T1,[ASCIZ/%Reconnecting to remote node...
362 001233' 561 01 0 00 001546' /] ; Let user know we are restarting
363 001234' 104 00 0 00 000076 PSOUT
364 001235' 201 01 0 00 000101 MOVEI T1,.PRIOU ; Users terminal
365 001236' 262 17 0 00 000002 POP P,T2 ; Desired TTY modes
366 001237' 104 00 0 00 000110 SFMOD ; Set new JFN mode word
367 001240' 200 01 0 00 000070' MOVE T1,FORK ; Restore process handle
368 001241' 104 00 0 00 000155 RFORK ; Resume the terminal input process
369 001242' 120 01 0 00 000054' DMOVE T1,SAVACE ; Restore the AC's
370 001243' 120 03 0 00 000056' DMOVE T3,SAVACE+2
371 001244' 104 00 0 00 000136 DEBRK ; And finish interrupt processing
372
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 15
NRT20 MAC 11-Jan-80 15:58 DOINP0 - Read terminal input and send to remote host
373 SUBTTL DOINP0 - Read terminal input and send to remote host
374
375 ;
376 ; Note: This routine runs as a separate process to read characters
377 ; from the users terminal and send them to the NRTSRV server
378 ; which is running on the remote host system
379 ;
380
381 001245' 201 04 0 00 000310 DOINP0: MOVEI T4,MAXINP ; Maximum input characters
382 001246' 200 03 0 00 001555' MOVE T3,[POINT 7,INSTR] ; Where they are going
383 001247' 201 01 0 00 000100 MOVEI T1,.PRIIN ; Primary input
384 001250' 104 00 0 00 000050 BIN ; Wait for a byte
385 001251' 254 00 0 00 001256' JRST DOIN0 ; Got one, go handle it...
386
387 001252' 104 00 0 00 000102 DOINP: SIBE ; Any bytes?
388 001253' 334 00 0 00 000000 SKIPA ; Yes
389 001254' 254 00 0 00 001260' JRST EMPTY ; No
390 001255' 104 00 0 00 000050 BIN ; Get another byte
391 001256' 136 02 0 00 000003 DOIN0: IDPB T2,T3 ; Stash it in input stream buffer
392 001257' 367 04 0 00 001252' SOJG T4,DOINP ; Do it all
393 001260' 211 03 0 00 000310 EMPTY: MOVNI T3,MAXINP ; Maximum characters
394 001261' 270 03 0 00 000004 ADD T3,T4 ; Compute number to send
395 001262' 322 03 0 00 001245' JUMPE T3,DOINP0 ; If none, go wait
396 001263' 200 01 0 00 000003' MOVE T1,DCNJFN ; The network JFN
397 001264' 561 02 0 00 000004' HRROI T2,INSTR ; Pointer to input stream buffer
398 001265' 104 00 0 00 000532 SOUTR ; Send this buffer to remote NRTSRV
399 001266' 254 00 0 00 001245' JRST DOINP0 ; And continue
400
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 16
NRT20 MAC 11-Jan-80 15:58 MSGTBL - Table of DECnet disconnect/abort reason text
401 SUBTTL MSGTBL - Table of DECnet disconnect/abort reason text
402
403 ;
404 ; This table is used by the BADCON routine to provide an english
405 ; text translation for the DECnet error codes which indicate why
406 ; the network logical link connection was broken
407 ;
408
409 ;MACRO TO MAKE ENTRIES IN NSP ERROR TABLE
410
411 000062 MAXMSG==^D50 ; Maximum number of NSP error messages
412
413 DEFINE NSPERR (CODE,TEXT,BASE<MSGTBL>),<
414 .ORG BASE+CODE
415 POINT 7,[ASCIZ\: TEXT\]
416 .ORG
417 >
418 001267' MSGTBL: ;DECNET ERROR TEXT TABLE
419
420 REPEAT MAXMSG,<POINT 7,[ASCIZ\: Undefined NSP error\]> ;MAKE TABLE SPACE
421 001267' 44 07 0 00 001556'
422 001270' 44 07 0 00 001556'
423 001271' 44 07 0 00 001556'
424 001272' 44 07 0 00 001556'
425 001273' 44 07 0 00 001556'
426 001274' 44 07 0 00 001556'
427 001275' 44 07 0 00 001556'
428 001276' 44 07 0 00 001556'
429 001277' 44 07 0 00 001556'
430 001300' 44 07 0 00 001556'
431 001301' 44 07 0 00 001556'
432 001302' 44 07 0 00 001556'
433 001303' 44 07 0 00 001556'
434 001304' 44 07 0 00 001556'
435 001305' 44 07 0 00 001556'
436 001306' 44 07 0 00 001556'
437 001307' 44 07 0 00 001556'
438 001310' 44 07 0 00 001556'
439 001311' 44 07 0 00 001556'
440 001312' 44 07 0 00 001556'
441 001313' 44 07 0 00 001556'
442 001314' 44 07 0 00 001556'
443 001315' 44 07 0 00 001556'
444 001316' 44 07 0 00 001556'
445 001317' 44 07 0 00 001556'
446 001320' 44 07 0 00 001556'
447 001321' 44 07 0 00 001556'
448 001322' 44 07 0 00 001556'
449 001323' 44 07 0 00 001556'
450 001324' 44 07 0 00 001556'
451 001325' 44 07 0 00 001556'
452 001326' 44 07 0 00 001556'
453 001327' 44 07 0 00 001556'
454 001330' 44 07 0 00 001556'
455 001331' 44 07 0 00 001556'
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page 16-1
NRT20 MAC 11-Jan-80 15:58 MSGTBL - Table of DECnet disconnect/abort reason text
456 001332' 44 07 0 00 001556'
457 001333' 44 07 0 00 001556'
458 001334' 44 07 0 00 001556'
459 001335' 44 07 0 00 001556'
460 001336' 44 07 0 00 001556'
461 001337' 44 07 0 00 001556'
462 001340' 44 07 0 00 001556'
463 001341' 44 07 0 00 001556'
464 001342' 44 07 0 00 001556'
465 001343' 44 07 0 00 001556'
466 001344' 44 07 0 00 001556'
467 001345' 44 07 0 00 001556'
468 001346' 44 07 0 00 001556'
469 001347' 44 07 0 00 001556'
470 001350' 44 07 0 00 001556'
471 ; & UNDEFINED ENTRIES
472
473 001267' 44 07 0 00 001563' NSPERR (.DCX0,<No special error>)
474 001270' 44 07 0 00 001567' NSPERR (.DCX1,<Resource allocation failure>)
475 001271' 44 07 0 00 001575' NSPERR (.DCX2,<Destination node does not exist>)
476 001272' 44 07 0 00 001604' NSPERR (.DCX3,<Node shutting down>)
477 001273' 44 07 0 00 001611' NSPERR (.DCX4,<Destination NRT process does not exist>)
478 001274' 44 07 0 00 001622' NSPERR (.DCX5,<Invalid name field>)
479 001300' 44 07 0 00 001627' NSPERR (.DCX9,<NRT server aborted link>)
480 001302' 44 07 0 00 001635' NSPERR (.DCX11,<Undefined error>)
481 001314' 44 07 0 00 001641' NSPERR (.DCX21,<CI with illegal destination address>)
482 001317' 44 07 0 00 001651' NSPERR (.DCX24,<Flow control violation>)
483 001327' 44 07 0 00 001656' NSPERR (.DCX32,<Too many connections to node>)
484 001330' 44 07 0 00 001665' NSPERR (.DCX33,<Too many connections to destination NRT process>)
485 001331' 44 07 0 00 001677' NSPERR (.DCX34,<Access not permitted>)
486 001332' 44 07 0 00 001704' NSPERR (.DCX35,<Logical link services mismatch>)
487 001333' 44 07 0 00 001713' NSPERR (.DCX36,<Invalid account>)
488 001334' 44 07 0 00 001717' NSPERR (.DCX37,<Segment size too small>)
489 001335' 44 07 0 00 001724' NSPERR (.DCX38,<Process aborted>)
490 001336' 44 07 0 00 001730' NSPERR (.DCX39,<No path to destination node>)
491 001337' 44 07 0 00 001736' NSPERR (.DCX40,<Link aborted due to data loss>)
492 001340' 44 07 0 00 001745' NSPERR (.DCX41,<Destination logical link address does not exist>)
493 001341' 44 07 0 00 001757' NSPERR (.DCX42,<Confirmation of disconnect initiate>)
494 001342' 44 07 0 00 001767' NSPERR (.DCX43,<Image data field too long>)
495
496
497 000707' END START
NO ERRORS DETECTED
PROGRAM BREAK IS 001775
CPU TIME USED 00:04.472
71P CORE USED
NRT20 - Program to permit logins to remote network host MACRO %53A(1152) 15:52 14-Feb-80 Page S-1
NRT20 MAC 11-Jan-80 15:58 SYMBOL TABLE
A 000001 HSTNAM 000755' T1 000001 spd
AIC 104000 000131 int INSIZ 000050 spd T2 000002 spd
ALLON 001057' INSTR 000004' T3 000003 spd
ATI 104000 000137 int JSERR 000000000000# pol T4 000004 spd
ATMBLN 000141 sin JSERR0 000000 ext TT%DAM 000300 sin
ATMBUF 000304' int JSHLT 000000000000# pol TT%ECO 004000 sin
BADCON 001151' JSHLT0 000000 ext TT%WAK 170000 sin
BIN 104000 000050 int KFORK 104000 000153 int VIRGIN 000071'
CALL 260740 000000 LEVTAB 000075' ..XX 017005 000000 spd
CFIBF 104000 000100 int LOCAL 000001' .AC1 000001 spd
CFIELD 000760' ext MAXINP 000310 spd .CHLFD 000012 sin
CFOBF 104000 000101 int MAXMSG 000062 spd .CMTXT 000017 sin
CFORK 104000 000152 int MSGTBL 001267' .DCX0 000000 sin
CHNTAB 000100' MTOPR 104000 000077 int .DCX1 000001 sin
CIS 104000 000141 int NAME 000060' .DCX11 000013 sin
CJFNBK 000465' int NODE 104000 000567 int .DCX2 000002 sin
CJFNLN 000020 sin NOUT 104000 000224 int .DCX21 000025 sin
CLOSF 104000 000022 int NPDL 000020 spd .DCX24 000030 sin
CM%DPP 000002 000000 sin OF%BSZ 770000 000000 sin .DCX3 000003 sin
CM%FNC 777000 000000 sin OF%RD 200000 sin .DCX32 000040 sin
CM%HPP 000004 000000 sin OF%WR 100000 sin .DCX33 000041 sin
CM%SDH 000001 000000 sin OPENF 104000 000021 int .DCX34 000042 sin
CMDACS 000264' int P 000017 spd .DCX35 000043 sin
CMDBLN 000141 sin PC 000072' .DCX36 000044 sin
CMDBUF 000123' int PDL 000103' .DCX37 000045 sin
CMDFRM 000506' int PREHST 000757' .DCX38 000046 sin
CMDINI 000712' ext PRES1 001105' .DCX39 000047 sin
CMDPDL 000507' int PRES2 001114' .DCX4 000004 sin
CMDPLN 000200 sin PRESC0 001141' .DCX40 000050 sin
CR%MAP 400000 000000 sin PRESC1 001145' .DCX41 000051 sin
CX 000016 spd PRESCN 001067' .DCX42 000052 sin
CZ%ABT 004000 000000 sin PSOUT 104000 000076 int .DCX43 000053 sin
DBUFFR 100000 spd REPARA 000505' int .DCX5 000005 sin
DCNJFN 000003' RESET 104000 000147 int .DCX9 000011 sin
DEBRK 104000 000136 int RET 263740 000000 .FHJOB 777773 sin
DOIN0 001256' RFMOD 104000 000107 int .FHSLF 400000 sin
DOINP 001252' RFORK 104000 000155 int .MORLS 000025 sin
DOINP0 001245' RLJFN 104000 000023 int .NDGLN 000001 sin
DPROMP 001137' ext RPCAP 104000 000150 int .PRIIN 000100 sin
EIR 104000 000126 int RSCAN 104000 000500 int .PRIOU 000101 sin
EMPTY 001260' RSKP 001472' ext .RSCNT 000001 sin
EPCAP 104000 000151 int SAVACE 000054' .RSINI 000000 sin
ERJMP 320700 000000 int SBK 000445' int .TICCY 000031 sin
ESC 001203' SC%CTC 400000 000000 sin .TICCZ 000032 sin
ESCHAR 000735' SETTMD 000771' .TICTI 000037 sin
ESOUT 104000 000313 int SFMOD 104000 000110 int
FFORK 104000 000154 int SFORK 104000 000157 int
FORK 000070' SIBE 104000 000102 int
GD%PAR 000001 sin SIN 104000 000052 int
GDSTS 104000 000145 int SIR 104000 000125 int
GJ%SHT 000001 000000 sin SOUT 104000 000053 int
GOTDA1 001034' SOUTR 104000 000532 int
GOTDAX 001052' START 000707'
GTJFN 104000 000020 int STIMSK 000000'
HALTF 104000 000170 int STIW 104000 000174 int
A 103 124 274
ALLON 96 171 187 223# 295
ATMBLN 72# 72
ATMBUF 72# 107 129
BADCON 203 213 294#
CFIELD 106 127
CHNTAB 67# 91
CJFNBK 72#
CJFNLN 72# 72
CM%DPP 105
CM%FNC 105 126
CM%HPP 105 126
CM%SDH 105 126
CMDACS 72#
CMDBLN 72# 72
CMDBUF 72#
CMDFRM 73#
CMDINI 80
CMDPDL 74#
CMDPLN 74# 74
CR%MAP 81
CX 45#
CZ%ABT 317
DBUFFR 51# 200 216
DCNJFN 57# 173 178 184 199 301 316 396
DOIN0 385 391#
DOINP 387# 392
DOINP0 190 381# 395 399
DPROMP 104 125 275
EMPTY 389 393#
ESC 68 334#
ESCHAR 99 103# 111
FORK 61# 86 189 296 336 367
GD%PAR 179
GJ%SHT 167
GOTDA1 195 199# 219
GOTDAX 208 215#
HSTNAM 120 124# 172 188
INSIZ 49# 50 58
INSTR 58# 128 133 139 141 163 382 397
JSERR 170 183 319
JSHLT 84 193
LEVTAB 64# 91
LOCAL 56# 266 269 351 354
MAXINP 50# 381 393
MAXMSG 309 411# 420
MSGTBL 310 418# 473 474 475 476 477 478 479 480 481 482 483 484
485 486 487 488 489 490 491 492 493 494
NAME 60# 159 168
NPDL 48# 70 78
OF%BSZ 180 181
OF%RD 180 181
OF%WR 180 181
P 46# 78 340 365
PC 63# 64 65 66
PDL 70# 78
PREHST 98 126#
PRES1 248# 254
PRES2 250 255#
PRESC0 247 280# 282
PRESC1 238 241 287#
PRESCN 97 234#
REPARA 72#
RSKP 235 242 252 283
SAVACE 59# 334 335 369 370
SBK 72#
SC%CTC 89
SETTMD 147 151#
START 77# 85 194 290 322 497
STIMSK 55# 119 157 261
T1 41# 81 86 87 105 107 108 109 112 113 114 116 117 118
119 126 128 132 133 134 137 141 143 151 156 159 167 173
174 178 184 189 199 215 223 226 236 239 242 243 255 256
258 259 260 261 264 269 287 296 298 301 305 310 313 316
317 334 336 338 344 346 349 354 356 361 364 367 369 383
396
T2 42# 82 91 93 112 117 129 138 153 154 157 160 163 165
168 176 179 180 181 190 200 204 209 216 224 228 245 246
248 249 251 265 281 302 304 309 310 340 341 350 365 391
397
T3 43# 89 130 138 139 161 201 204 209 210 211 217 265 266
304 306 335 350 351 370 382 391 393 394 395
T4 44# 207 210 217 381 392 394
TT%DAM 154 228 341
TT%ECO 154 228
TT%WAK 153
VIRGIN 62# 79 234
..MX1 81# 81 82 93# 93 94 116# 116 117 132# 132 133 156# 156
157 167# 167 168 223# 223 224 239# 239 240 258# 258 259 264#
264 265 265# 266 349# 349 350 350# 351
..MX2 81# 81 82 93# 93 94 116# 116 117 132# 132 133 156# 157
167# 167 168 223# 224 239# 240 258# 258 259 264# 265 265# 266
349# 350 350# 351
..TX1 89# 89 90 118# 118 119 153# 153 154 154# 155 179# 179 180
228# 228 229 260# 260 261 317# 317 318 341# 341 342
..TX2 89# 89 90 118# 119 153# 154 154# 155 179# 180 228# 229 260#
261 317# 317 318 341# 342
..XX 105# 105 126# 126
.AC1 262 272
.CHLFD 251 281
.CMTXT 105 126
.DCX0 473
.DCX1 474
.DCX11 480
.DCX2 475
.DCX21 481
.DCX24 482
.DCX3 476
.DCX32 483
.DCX33 484
.DCX34 485
.DCX35 486
.DCX36 487
.DCX37 488
.DCX38 489
.DCX39 490
.DCX4 477
.DCX40 491
.DCX41 492
.DCX42 493
.DCX43 494
.DCX5 478
.DCX9 479
.FHJOB 156 223
.FHSLF 87
.MORLS 302
.NDGLN 137 264 349
.PRIIN 151 226 243 344 383
.PRIOU 174 215 305 338 364
.PSECT 81 82 89 90 93 94 116 117 118 119 132 133 153 154
155 156 157 167 168 179 180 223 224 228 229 239 240 258
259 260 261 264 265 266 317 318 341 342 349 350 351
.RSCNT 239
.RSINI 236
.TICCY 255 259
.TICCZ 108
.TICTI 118 260
AIC 94
ATI 115 257
BIN 244 253 280 384 390
CALL 80 96 97 104 106 125 127 171 187 275 295
CFIBF 345
CFOBF 343
CFORK 83
CIS 294
CLOSF 318
CMDSTG 72
DEBRK 371
EIR 95
EPCAP 90
ERJMP 176 183 192 203 213 238 241 319
ESOUT 110 288
FFORK 337
FLD 105 126 180 181
FLDDB. 105 126
GDSTS 175
GTJFN 169
HALTF 289 321 360
KFORK 297
MOVX 81 93 116 132 156 167 223 239 258 264 265 349 350
MTOPR 303
NODE 140 267 352
NOUT 307
NSPERR 413# 473 474 475 476 477 478 479 480 481 482 483 484 485
486 487 488 489 490 491 492 493 494
OPENF 182
POS 105 126 180 181
PROMPT 103 124 274
PSOUT 136 142 145 263 270 273 300 312 315 348 355 359 363
RESET 77 192
RET 230 276
RETSKP 235 242 252 283
RFMOD 152 227 339
RFORK 368
RLJFN 185
RPCAP 88
RSCAN 237 240
SFMOD 155 229 342 366
SFORK 191
SIBE 205 387
SIN 202 212
SIR 92
SOUT 131 162 164 166 218
SOUTR 398
STIW 158 225
TMSG 262 271
TXNE 179
TXO 89 118 153 228 260 317 341
TXZ 154
..TX 89 118 153 154 179 228 260 317 341