Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/utilities/nurd.lst
There are no other files named nurd.lst in the archive.
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 1
NURD MAC 21-Mar-80 10:15
1 TITLE NURD20 Module for Readers and Printers
2
3 ; COPYRIGHT (C) 1978, 1979 BY
4 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
5 ;
6 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
8 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
9 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
10 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
11 ; TRANSFERRED.
12 ;
13 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
14 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
15 ; CORPORATION.
16 ;
17 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
18 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
19
20
21
22
23
24 ; ++
25 ; Facility: GALAXY for DN200
26 ;
27 ; Abstract:
28 ; This module implements the DECnet network unit record device protocol
29 ; (NURD). It simulates TOPS-20 JSYS calls for card readers and line
30 ; printers. The simulated JSYS's include GTJFN, OPENF, SINR, SOUT, MTOPR,
31 ; and CLOSF. Interrupt processing is similar to that observed for the
32 ; local card reader and line printer.
33 ;
34 ; Environment: TOPS-20 user mode
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 2
NURD MAC 21-Mar-80 10:15
35 ; Modified:
36 ; 16 Add copyright and other information so that this turkey can
37 ; be released into loadtest.
38 ;
39 ; 17 XLIST the literals, etc.
40 ;
41 ; 20 Restore registers before turning on interrupt system, so that
42 ; interrupts into the GALAXY context have the GALAXY registers.
43 ;
44 ; 21 Make sure that certain "OWN" locations get a separate copy in
45 ; each fork where we execute. This prevents some interesting
46 ; problems with multiple DN200s.
47 ;
48 ; 22 Fix MTOPR status problem and put ERJMP following SNDINT MTOPR.
49 ; Interrupt setup code did not save AC3.
50 ;
51 ; 23 Fix bug in LMOFLO where confusion over dump buffers and control
52 ; responses were causing problems.
53 ;
54 ; 24 Resolve further problems with flushing buffers.
55 ;
56 ; 25 Do effective address calculation on user byte pointer in USIN.
57 ;
58 ; 26 Do more effective effective-address calculation on user byte
59 ; pointers. Provided routine EFADBY, which alters byte pointer
60 ; to reflect effective address. Also, changed USIN, USOUT, and
61 ; MAPDEV to use this routine.
62 ;
63 ; 27 Put SETER JSYS in NURD error return, at ERRTN.
64 ;
65 ; 30 Changed reader input (USIN) so that EOF detection causes
66 ; ERJMP/ERCAL processing. Also fixed EOF detection code.
67 ;
68 ; 31 Fixed bug introduced in edit #27 - a clumsy typo.
69 ;
70 ; 32 Fixed addressing error in TYPATT, and also repaired trivial typo.
71 ;
72 ; 33 Fix logic to process disconnects on links correctly.
73 ;
74 ; 34 Fix NRM and NRD file spec generators to use different control ID's.
75 ;
76 ; 35 Fix UGTJFN to get rid of aborted NRM JFN's.
77 ;
78 ; 36 Fix UCLOSF to close JFN's with CZ%ABT, so that JFN's go away
79 ; correctly.
80 ;
81 ; 37 Fix bug in USIN which caused loss of last card read if reader went
82 ; offline.
83 ;
84 ; 40 Change usage of IOX69 error code to DCNx8 because IOX69 is no longer
85 ; valid.
86 ;
87 ; 41 Allow 8-bit ASCII mode.
88 ;
89 ; 42 Code cleanup, reformatting, and general bug-fixup.
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 2-1
NURD MAC 21-Mar-80 10:15
90 ;
91 ; 43 Rewrote interrupt handling code.
92 ;
93 ; 44 Fixed glitch in UOPENF, where legal device/mode checked.
94 ;
95 ; 45 Changed exit-time handling of interrupts because LPTSPL calls
96 ; us back recursively, causing an endless set of IIC's when the
97 ; device goes offline.
98 ;
99 ; 46 Added defensive code in the interrupt handler routines.
100 ;
101 ; 47 Fixed handling of device-online interrupt. Wrong R value
102 ; was being used to load interrupt channel number.
103 ;
104 ; 50 Added code to solve race condition occurring when online
105 ; indication arrives before offline indication.
106 ;
107 ; 51 Fixed NRDR macro code generation - it caused improper setting
108 ; of info on stack, subsequently causing program execution to
109 ; be improperly dispatched. Also did away with the NRDRJ macro,
110 ; as it is not needed. Fixed bug in SOUTR error handling.
111 ;
112 ; 52 Repaired typo in USOUT which caused illegal instruction trap
113 ; whenever output error was processed for the network.
114 ;
115 ; 53 Fixed bug in data message processing for USIN. This bug caused
116 ; the message length to always appear to be zero.
117 ;
118 ; 54 Fixed problem caused by double edit to fix previous bug
119
120
121 ; VERSION NUMBER:
122 000000 NRDWHO==0 ; WHO LAST EDITED
123 000001 NRDMAJ==1 ; MAJOR VERSION NUMBER
124 000002 NRDMIN==2 ; MINOR VERSION NUMBER
125 000054 NRDEDT==54 ; EDIT NUMBER
126
127 000102 000054 %%.NRD==BYTE (3)NRDWHO (9)NRDMAJ (6)NRDMIN (18)NRDEDT ; OUR VERSION NUMBER
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 3
NURD MAC 21-Mar-80 10:15 AC's, Parameters, Constants, etc.
128 SUBTTL AC's, Parameters, Constants, etc.
129
130 SEARCH GLXMAC
131 PROLOG (NURD20)^
132
133 ^
134
135 ; ***** Accumulators
136
137 000001 J1=1 ; JSYS AC'S
138 000002 J2=2 ; ...
139 000003 J3=3 ; ...
140 000004 J4=4 ; ...
141
142 000005 A=5 ; General usage
143 000006 B=A+1 ; and function
144 000007 C=B+1 ; arguments
145 000010 D=C+1 ; ...
146
147 000011 T1=D+1 ; Temporaries
148 000012 T2=T1+1 ; ...
149
150 000013 LS=T2+1 ; Data Link Status (NRDSTS)
151 000014 DS=LS+1 ; Device Status (NRDDST)
152 000015 R=DS+1 ; RDDB Pointer
153
154 000017 P=17 ; Stack Pointer
155
156
157 ; ***** Configuration Parameters
158
159 001000 NRDBSZ==^D512 ; NURD MSG BUFFER SIZE
160 000020 IMSGSZ==^D16 ; NSP INTERRUPT MSG SIZE(MAX)
161 000020 NURDL==^D16 ; LENGTH OF NRDR ERROR HISTORY
162 000001 NRDLVL==1 ; NURD PRIORITY INT LEVEL
163 000043 NRDICH==^D35 ; NRD DATA LINK INT CHANNEL FOR INTERRUPT MESSAGES
164 000042 NRDDCH==^D34 ; NRD DATA LINK INT CHANNEL FOR DATA RECEIVED INT
165 000012 NRDTMO==^D10 ; NUMBER OF HALF-SECOND INTERVALS FOR TIMEOUT
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 4
NURD MAC 21-Mar-80 10:15 AC's, Parameters, Constants, etc.
166 ; ***** Constants and Other Such Trivia
167
168 000002 URS==2 ; THE NURD DECNET OBJECT TYPE
169
170
171 ; ***** NRM Resource Types
172
173 000102 NRDLP==102 ; REMOTE LINE PRINTER
174 000103 NRDCR==103 ; REMOTE CARD READER
175
176
177 ; ***** NRM Function Codes
178
179 000041 NRMRID==41 ; NRM REQUESTOR-ID CODE
180 000050 NRMSPC==50 ; NRM SPECIFY CODE
181 000001 SPCRES==1 ; RESERVE SUBCODE
182 000003 SPCREF==3 ; REFER SUBCODE
183 000004 SPCOFF==4 ; OFFER SUBCODE
184 000051 NRMACC==51 ; NRM ACCESS CODE
185 000002 ACCOPN==2 ; OPEN SUBCODE
186 000003 ACCCLO==3 ; CLOSE SUBCODE
187 000004 ACCREL==4 ; RELEASE SUBCODE
188 000052 NRMASN==52 ; NRM ASSIGN CODE
189 000003 ASNHDN==3 ; HANDOFF SUBCODE
190 000004 ASNACK==4 ; ACKNOWLEDGE SUBCODE
191 000047 NRMRSP==47 ; NRM RESPONSE CODE
192 000053 NRMSTA==53 ; NRM STATUS CODE
193 000001 STAQRY==1 ; QUERY SUBCODE
194 000002 STAREP==2 ; REPORT SUBCODE
195 000003 STALTR==3 ; ALTER SUBCODE
196 000020 STARLS==20 ; PERFORM AUTOMATIC RELEASE FLAG
197
198
199 ; ***** NRM Status Report Codes
200 ; Device Status
201 ; 1 CLOSE PENDING
202 ; 2 OPEN PENDING
203 ; 4 OPEN COMPLETE
204 ; 100 RELEASE PENDING
205 ; 200 RESERVED
206 ; 400 HANDOFF PENDING
207 ; 2000 STATUS-REPORT PENDING
208 ; 4000 OPERATIONAL STATUS PENDING
209 ; 10000 START ERROR PENDING
210 ;
211 ; Asynchronous Report Status
212 ; 1 RECEIVE ERROR THRESHOLD EXCEEDED
213 ; 2 REPLY THRESHOLD EXCEEDED
214 ; 3 NAK THRESHOLD EXCEEDED
215 ; 4 DEVICE PROTOCOL ERROR - FATAL
216 ; 5 INTERVENTION REQUIRED AT DEVICE
217 ; 6 POWERFAIL
218 ; 7 DATA PIPE DISCONNECTED
219 ; 10 DIAL-IN TERMINAL ATTACHED
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 5
NURD MAC 21-Mar-80 10:15 Local Macros
220 SUBTTL Local Macros
221
222 254000 000000 OPDEF $CALLR [ JRST ]
223
224 ;***
225 ; NRDR Dispatch to processing code via $CALL.
226 ; NRDRC " " " " " ERCAL.
227 ;
228 ; ERRLOC = Error location, defaulting to NRDR invocation address.
229 ; ERRCOD = Error code, defaulting to DCNX8.
230 ; A dot "." will cause the current value in J1 to be used.
231 ; ERRDSP = Where to go after recording error.
232 ; Defaults to location following NRDR invocation.
233 ;***
234
235 DEFINE NRDR. (ERRLOC,ERRCOD,ERRDSP) <
236 $DSP [
237 IFB <ERRLOC>,< ;; If errloc not spec, use from stack
238 IFB <ERRCOD>,< ;; If no errcod, then
239 HRLZ J1,(P) ;; just set pc
240 SUB J1,[1,,0]> ;; & correct it to actual loc
241 IFNB <ERRCOD>,< ;; If errcod, then it may
242 HRL J1,(P) ;; already be in J1 - save
243 SUB J1,[1,,0] ;; J1 right half, and correct pc
244 ;; Finally, set error code
245 IFDIF <ERRCOD><(J1)>,<IFDIF <ERRCOD><.>,<HRRI J1,ERRCOD>>>>
246 IFNB <ERRLOC>,< ;; If errloc specified
247 IFB <ERRCOD>,< ;; If no errcod specified
248 MOVSI J1,ERRLOC> ;; simply set specified loc
249 IFNB <ERRCOD>,< ;; If errcod specified, then it may
250 HRLI J1,ERRLOC ;; already be in J1
251 ;; Finally, set error code
252 IFDIF <ERRCOD><(J1)>,<IFDIF <ERRCOD><.>,<HRRI J1,ERRCOD>>>>
253
254 IFNB <ERRDSP>,< ;; If errdsp specified, we want to
255 MOVEM J1,(P) ;; go to somewhere special after
256 MOVEI J1,ERRDSP ;; error processing. So replace
257 EXCH J1,(P)> ;; return addr on stack.
258 JRST NRDERR]
259 >
260
261 DEFINE NRDR (ERRLOC,ERRCOD,ERRDSP) <
262 DEFINE $DSP(DEST)<$CALL DEST>
263 NRDR. ERRLOC,ERRCOD,ERRDSP
264 >
265 DEFINE NRDRC (ERRLOC,ERRCOD,ERRDSP) <
266 DEFINE $DSP(DEST)<ERCAL DEST>
267 NRDR. ERRLOC,ERRCOD,ERRDSP
268 >
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 6
NURD MAC 21-Mar-80 10:15 Local Macros
269 ;***
270 ; ERR Dispatch to literal code via JRST.
271 ; ERRC " " " " " ERCAL.
272 ; ERRJ " " " " " ERJMP.
273 ; ERRI Generate in-line code.
274 ;
275 ; ERRCOD = Error code to be loaded into J1.
276 ; ERRDSP = Where to go after loading code into J1.
277 ; If not specified, J1 is simply loaded.
278 ;***
279
280 DEFINE ERR. (ERRCOD,ERRDSP) <
281 IFB <ERRDSP>,<MOVEI J1,ERRCOD>
282 IFNB <ERRDSP>,<
283 $DSP [ MOVEI J1,ERRCOD
284 IFIDN <ERRDSP><CPOPJ>,<$RET>
285 IFDIF <ERRDSP><CPOPJ>,<JRST ERRDSP>]>
286 >
287
288 DEFINE ERR (ERRCOD,ERRDSP) <
289 DEFINE $DSP(DEST)<JRST DEST>
290 ERR. ERRCOD,ERRDSP
291 >
292
293 DEFINE ERRC (ERRCOD,ERRDSP) <
294 DEFINE $DSP(DEST)<ERCAL DEST>
295 ERR. ERRCOD,ERRDSP
296 >
297
298 DEFINE ERRJ (ERRCOD,ERRDSP) <
299 DEFINE $DSP(DEST)<ERJMP DEST>
300 ERR. ERRCOD,ERRDSP
301 >
302
303 DEFINE ERRI (ERRCOD,ERRDSP) <
304 MOVEI J1,ERRCOD
305 IFNB <ERRDSP>,<
306 IFIDN <ERRDSP><CPOPJ>,<$RET>
307 IFDIF <ERRDSP><CPOPJ>,<JRST ERRDSP>>
308 >
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 7
NURD MAC 21-Mar-80 10:15 Local Macros
309 ;***
310 ; TYPE
311 ;
312 ; STRING = The ASCII string to be output via PSOUT. For example
313 ; TYPE (This is the string to be typed.)
314 ;***
315
316 DEFINE TYPE (STRING) <
317 LSTOF.
318 IFNB <STRING>,<MOVEI J1,[ASCIZ /STRING/]>
319 PSOUT
320 LSTON.
321 >
322 SALL ; DON'T LIST MACRO EXPANSIONS
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 8
NURD MAC 21-Mar-80 10:15 Remote Device Data Base Definition
323 SUBTTL Remote Device Data Base Definition
324
325 ; *** IMPURE DATA - PER FORK
326 000000' SUBJFN:: BLOCK 1 ; SUBSTITUTE JFN FOR THIS FORK & PTR TO DATA BASE
327 000001' 000000 000000 DEBUGF: 0 ; DEBUG FLAGS
328 000002' 000000 000000 DEBUGR: 0 ; RCVMSG MONITOR WORD
329
330
331
332 ; *** Remote Device Data Base (RDDB)
333 000000 LOC 0
334
335 ; * GENERAL AREA OF RDDB
336 000000 RDSAVE:! BLOCK 17 ; USER ACCUMULATOR SAVE AREA (0-16)
337 000017 RDEPDL:! BLOCK 1 ; U-JSYS ENTRY PDL
338 000020 RDHOST:! BLOCK 2 ; ASCIZ <NODE>
339 000022 RDDEV:! BLOCK 1 ; ASCIZ <DEV><UNIT>
340 000023 RDSTS:! BLOCK 1 ; JSYS SIMULATOR FLAGS
341 000001 UJ.XT2== 1 ; (rh) JSYS HAS SKIP EXIT FOR SUCCESS
342 000002 UJ.INT== 2 ; INTERRUPTS ARE ENABLED BY USER
343 000004 UJ.TDS== 4 ; INTS ARE TEMPORARILY DISABLED BY NURD
344 000010 UJ.NRD== 10 ; NURD'S AC'S ARE LOADED, NOT USER'S
345 100000 UJ.RCV== 100000 ; DATA RECIEVED INTERRUPT HAS OCCURRED
346 200000 UJ.SSO== 200000 ; SOUTR SUSPENDED BEFORE COMPLETION
347 400000 UJ.FLS== 400000 ; FLUSH DATA BASE ON THE WAY OUT
348 000024 RDERT:! BLOCK 1 ; PLACE TO REMEMBER ERROR RETURN ADDRESS
349 000025 RDINTB:! BLOCK 1 ; OLD PC SAVE ADDR ,, PLEVTB
350
351 ; * NRM AREA OF RDDB
352 000026 NRMJFN:! BLOCK 1 ; NRM CONTROL LINK JFN
353 000027 NRMID:! BLOCK 1 ; CONTROL ID FOR DATA LINK
354 000030 NRMSTS:! BLOCK 1 ; CONTROL LINK STATUS
355 000001 NRM.CP== 1 ; (rh) NRM CONNECT PENDING
356 000002 NRM.CC== 2 ; NRM CONNECT COMPLETE
357 000004 NRM.RS== 4 ; DEVICE RESERVED BY NRM
358 000031 NRMCFL:! BLOCK 1 ; NRM CONNECT FAILURE CODE
359 000032 NRMAST:! BLOCK 1 ; DEVICE STATUS FROM STATUS-REPORT
360 000033 NRMASR:! BLOCK 1 ; REASON CODE FOR ASYNCHRONOUS STATUS-REPORT
361
362 ;(Cont'd)
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 9
NURD MAC 21-Mar-80 10:15 Remote Device Data Base Definition
363 ; * NRD AREA OF RDDB
364 000034 NRDJFN:! BLOCK 1 ; NRD DATA LINK JFN
365 000035 NRDULA:! BLOCK 1 ; BULA FOR DATA LINK
366 000036 NRDSTS:! BLOCK 1 ; DATA LINK STATUS
367 000001 NRD.CP== 1 ; (rh) NRD CONNECT PENDING
368 000002 NRD.CC== 2 ; NRD CONNECT COMPLETE
369 000004 NRD.LP== 4 ; SET=> DEVICE=LPT, NOT SET=> DEVICE=CDR
370 000010 NRD.IM== 10 ; COLUMN IMAGE MODE SET
371 000020 NRD.AI== 20 ; AUGMENTED COLUMN IMAGE MODE SET
372 000040 NRD.OP== 40 ; DEVICE OPEN PENDING
373 000100 NRD.OC== 100 ; DEVICE OPEN COMPLETE
374 000200 NRD.EN== 200 ; INTERRUPTS ARE ENABLED FOR SOFT ERRORS
375 000400 NRD.EO== 400 ; EOF DETECTED(CDR) OR SET(LPT)
376 001000 NRD.ER== 1000 ; DATA ERROR DETECTED(CDR)
377 002000 NRD.PL== 2000 ; PAGE LIMIT EXCEEDED
378 004000 NRD.AB== 4000 ; ABORT COMPLETE RECEIVED
379 010000 NRD.FE== 10000 ; FATAL ERROR AT REMOTE DEVICE
380 020000 NRD.PS== 20000 ; DEVICE PAUSED
381 040000 NRD.TO== 40000 ; DEVICE TIMED OUT
382 100000 NRD.RS== 100000 ; RESUME ISSUED
383 000001 000000 NRD.OF== 1,,0 ; (lh) DEVICE IS OFFLINE
384 000002 000000 NRD.ON== 2,,0 ; ONLINE RCVD, OFFLINE NOT HERE YET
385 000004 000000 NRD.NO== 4,,0 ; ONLINE RCVD, BUT REPORTING DEFERRED
386 000037 NRDDST:! BLOCK 1 ; DEVICE STATUS CODE - KEPT IN MTOPR FLAGS
387 000040 NRDCFL:! BLOCK 1 ; NRD CONNECT FAILURE CODE
388 000041 NRDSEQ:! BLOCK 1 ; DATA MSG SEQUENCE NO.
389 000042 NRDSGC:! BLOCK 1 ; PTR TO SEGMENT COUNT
390 000043 NRDSEG:! BLOCK 1 ; PTR TO CURRENT SEGMENT HEAD
391 000044 NRDSGS:! BLOCK 1 ; NO. SEGMENTS LEFT TO PROCESS
392 000045 NRDSGN:! BLOCK 1 ; CURRENT SEGMENT COUNT
393 000046 NRDREP:! BLOCK 1 ; REPEATED DATA ITEM
394 000047 NRDTMC:! BLOCK 1 ; TIMEOUT COUNTER
395 000050 NRDATT:! BLOCK 1 ; LAST ATTENTION MSG REASON CODE
396 000051 NRDASQ:! BLOCK 1 ; LAST ATTENTION MSG SEQUENCE NUMBER
397 000052 NRDLPC:! BLOCK 1 ; PAGE COUNT AT LAST ATTENTION MSG
398 000053 NRDCSQ:! BLOCK 1 ; LAST CONTROL MSG SEQ NO. (RCVD,,SENT)
399 000054 NRDCCR:! BLOCK 1 ; LAST CONTROL MSG RECIEVED: COMMAND,,RESPONSE
400 000055 NRDCAP:! BLOCK 1 ; DEVICE CAPAB. LIST (LENGTH,,ADDRESS)
401 000056 NRDIER:! BLOCK 1 ; PTR TO LAST INTERNAL ERROR ENTRY
402 000057 NRDERH:! BLOCK NURDL ; NRDR ERROR HISTORY - LOCATIONS OF DETECTED ERRORS
403 000077 NRDCHN:! BLOCK 1 ; INTERRUPT CHANNEL ENABLED MASK
404 000100 NRDRPT:! BLOCK 1 ; NRDRBF PTR (RECEIVE MSG BUFFER)
405 000101 NRDRCN:! BLOCK 1 ; NUMBER OF BYTES IN NRDRBF
406 000102 NRDSPT:! BLOCK 1 ; NRDSBF PTR (SEND MSG BUFFER)
407 000103 NRDSCN:! BLOCK 1 ; NUMBER OF BYTES IN NRDSBF
408 000104 NRDLIM:! BLOCK 1 ; MAX BLOCK SIZE REMOTE CAN TAKE
409
410 ;(Cont'd)
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 10
NURD MAC 21-Mar-80 10:15 Remote Device Data Base Definition
411 ; *** NURD DEVICE FEATURES
412 ; FORMAT OF ENTRY:
413 ; WORD 1: 8B7 - FID OF UNKNOWN FID (NRDUFE ONLY)
414 ; 1B8 - FEATURE READ FLAG
415 ; 8B17 - NUMBER OF BYTES IN VALUE
416 ; 18B35 - VALUE IF CLASS 0 OR CLASS 1 WITH 2 OR LESS BYTES
417 ; ADDRESS OF STRING IF MORE THAN 2 BYTES
418 ;
419 ; WORD 2: 9B8 - FEATURE FLAGS RETURNED
420 ; 9B17 - FEATURE CLASS RETURNED
421 ; 18B35 - RESPONSE RETURNED
422 000105 NRDFET:! ; COMMON DEVICE FEATURES
423 000105 BLOCK 2 ; FE.ESC RESERVED FOR FUTURE ESCAPE CODE
424 000107 BLOCK 2 ; FE.DAT DATA MODE
425 000111 BLOCK 2 ; FE.SER SERIAL NUMBER
426 000113 NFELCR:! BLOCK 2 ; FE.LCR LOWER CASE RAISE
427 000115 BLOCK 2 ; FE.FWD FORM WIDTH
428 000117 BLOCK 2 ; FE.EOF EOF RECOGNITION
429 000121 BLOCK 2 ; FE.DVT DEVICE TYPE
430 000123 BLOCK 2 ; FE.TRN RECORD TRUNCATION
431 000125 BLOCK 2 ; FE.FNM FORM NAME
432 000127 BLOCK 2 ; FE.DWD DEVICE WIDTH
433
434 000131 NRDLPF:! ; LPT SPECIFIC FEATURES
435 000131 BLOCK 2 ; LP.HT HORIZONTAL TABS
436 000133 BLOCK 2 ; LP.SFC STANDARD VERTICAL FORMS CONTROL
437 000135 BLOCK 2 ; LP.OVP OVERPRINT LIMIT
438 000137 BLOCK 2 ; LP.CVF CUSTOM VFU
439 000141 BLOCK 2 ; LP.FCC FORTRAN CARRIAGE CONTROL
440 000143 BLOCK 2 ; LP.VFR VARIABLE FORMS RATIO
441 000145 BLOCK 2 ; LP.CHS CHARACTER SET
442 000147 BLOCK 2 ; LP.PLE PAGE LIMIT ENFORCEMENT
443 000151 BLOCK 2 ; LP.OPV OPTICAL VFU
444
445 000153 NRDCRF:! ; CDR SPECIFIC FEATURES
446 000153 BLOCK 2 ; CD.CWD CARD WIDTH
447 000155 NRDUFE:! BLOCK 2 ; CATCHES ANY UNKNOWN FID'S
448 000157 NRDFSN:! BLOCK 1 ; SEQ NO. OF LAST FEATURE MSG SENT
449 000160 NRDFSQ:! BLOCK 1 ; SEQ NO. OF LAST FEATURE MSG RECEIVED
450
451 ; * BUFFERS
452 000161 NRDRBF:! BLOCK NRDBSZ/4 ; NURD RECEIVE MSG BUFFER
453 000361 NRDSBF:! BLOCK NRDBSZ/4 ; NURD SEND MSG BUFFER
454 000561 NRDIBF:! BLOCK IMSGSZ/4 ; INTERRUPT MESSAGE BUFFER
455 000565 RDDBSZ:! ; SIZE OF RDDB
456 000003' RELOC
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 11
NURD MAC 21-Mar-80 10:15 NURD Message Definition
457 SUBTTL NURD Message Definition
458
459 ; ***** NURD Message Format
460 ; MESSAGE TYPE (1):B
461 000017 NM.TYP==17 ; MESSAGE TYPE MASK
462 000000 NM.DAT== 0 ; DATA MESSAGE
463 000001 NM.ATT== 1 ; ATTENTION MESSAGE
464 000002 NM.FTR== 2 ; FEATURES MESSAGE
465 000003 NM.CTL== 3 ; CONTROL MESSAGE
466 000004 NM.ALR== 4 ; ALERT MESSAGE
467 000005 NM.CAP== 5 ; CAPABILITIES MESSAGE
468 000006 NM.OTR== 6 ; ***CURRENT OUT OF RANGE VALUE***
469 ; MESSAGE FLAGS (1):BM
470 ; TYPE-DEPENDENT MESSAGE DATA <MSGDATA>
471
472 ; *** DATA MESSAGE <MSGDATA>
473 ; SEQUENCE NUMBER (1):B
474 ; DATA FLAGS (1):BM
475 000001 ND.ACK== 1 ; ACKNOWLEDGE REQD
476 000002 ND.IER== 2 ; INPUT ERROR
477 000004 ND.EOF== 4 ; SEGMENT IS END OF FILE
478 ; SEGMENT COUNT (1):B
479 ; START OF DATA (COUNTED FIELD)
480
481 ; *** ATTENTION MESSAGE <MSGDATA>
482 ; LAST GOOD ID (1):B
483 ; ATTENTION CODE (1):B
484 000001 N.ASTC== 1 ; STATUS CHANGE
485 000002 N.AACK== 2 ; DATA ACKNOWLEDGEMENT
486 000003 N.ARQS== 3 ; REQUESTED
487 000004 N.AABC== 4 ; OUTPUT ABORT RECEIVED OR INPUT ABORT COMPLETE
488 000005 N.APLE== 5 ; PAGE LIMIT EXCEEDED
489 ; ATTENTION FLAGS, UP TO 3 BYTES (EX):BM
490 000001 NA.FAT== 1 ; <1>FATAL ERROR
491 000002 NA.OFL== 2 ; OFFLINE
492 000004 NA.PAU== 4 ; PAUSED
493 000010 NA.OMD== 10 ; OUT OF MEDIA
494 000020 NA.JAM== 20 ; JAMMED
495 000040 NA.OOF== 40 ; OPERATOR OFFLINE
496 000100 NA.NOE==100 ; NON OPERATOR ERROR
497 000001 NA.OUF== 1 ; <2>OUTPUT FULL
498 000002 NA.NAC== 2 ; DEVICE NOT ACCESSIBLE
499 000004 NA.DTO== 4 ; DEVICE TIME OUT
500 000010 NA.RNA== 10 ; RESOURCE NOT AVAILABLE
501 000020 NA.PF== 20 ; (CR) PICK FAILURE
502 000020 NA.PSE== 20 ; (LP) PAPER SLEW ERROR
503 000040 NA.RAP== 40 ; (CR) READ AFTER PUNCH ERROR
504 000040 NA.INK== 40 ; (LP) OUT OF INK
505 000100 NA.REG==100 ; (CR) REGISTRATION ERROR
506 000001 NA.OVP== 1 ; <3>(CR) ILLEGAL OVERPRINT
507 000001 NA.IVP== 1 ; (LP) INVALID PUNCH ERROR
508 ; PAGE/CARD COUNTER (2):B
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 12
NURD MAC 21-Mar-80 10:15 NURD Message Definition
509 ; *** FEATURES MESSAGE <MSGDATA>
510 ; SEQUENCE NUMBER (1):B
511 ; NUMBER OF FEATURES SPECS IN MSG (1):B
512 ; FEATURES IDENTIFIER (1):B
513 RADIX 10
514 000001 FE.DAT== 1 ; (C1) DATA MODE
515 000001 DM.ASC==1 ; 7 BIT ASCII
516 000002 DM.CLI==2 ; COLUMNIMAGE
517 000003 DM.EBC==3 ; EBCDIC
518 000004 DM.AUG==4 ; AUGMENTED COLUMNIMAGE
519 000005 DM.AS8==5 ; 8 BIT ASCII
520 000002 FE.SER== 2 ; (C1) SERIAL NUMBER
521 000003 FE.LCR== 3 ; (C0) LOWER CASE RAISE
522 000004 FE.FWD== 4 ; (C1) FORM WIDTH
523 000005 FE.EOF== 5 ; (C1) EOF RECOGNITION
524 000001 EO.ASC==1 ; ASCII
525 000002 EO.IMG==2 ; IMAGE
526 000006 FE.DVT== 6 ; (C1) DEVICE TYPE
527 000007 FE.TRN== 7 ; (C0) RECORD TRUNCATION
528 000010 FE.FNM== 8 ; (C1) FORM NAME
529 000011 FE.DWD== 9 ; (C1) DEVICE WIDTH
530 000202 LP.HT== 130 ; (C1) HORIZONTAL TAB STOP
531 000203 LP.SFC==131 ; (C0) STANDARD VERTICAL FORMS CONTROL
532 000204 LP.OVP==132 ; (C1) OVERPRINT LIMIT
533 000205 LP.CVF==133 ; (C1) CUSTOM VFU
534 000206 LP.FCC==134 ; (C0) FORTRAN CARRIAGE CONTROL
535 000207 LP.VFR==135 ; (C1) VARIABLE FORMS RATIO
536 000001 VF.6LI==1 ; 6 LINES PER INCH
537 000002 VF.8LI==2 ; 8 LINES PER INCH
538 000210 LP.CHS==136 ; (C1) CHARACTER SET
539 000001 CH.64== 1 ; 64 CHARACTER SET
540 000002 CH.96== 2 ; 96 CHARACTER SET
541 000211 LP.PLE==137 ; (C1) PAGE LIMIT ENFORCEMENT
542 000212 LP.OPV==138 ; (C1) OPTICAL VFU NAME
543 000202 CD.CWD==130 ; (C1) CARD WIDTH
544 000377 FE.ALL==255 ; AFFECTS ALL FEATURES(READ OR SET TO STD.)
545 RADIX 8
546 ; FEATURES FLAGS (1):BM
547 000001 NF.CMD== 1 ; 0 = READ, 1 = SET FEATURES.
548 000002 NF.STD== 2 ; STANDARD FLAG
549 ; FEATURE CLASS (1):B
550 000000 FC.CL0== 0 ; (C0) CLASS 0 => <BIT> FORM
551 000001 FC.CL1== 1 ; (C1) CLASS 1 => <CNT><...> FORM
552 000002 FC.SST== 2 ; SET TO STANDARD
553 ; FEATURE RESPONSE FIELD (1):B
554 000001 FR.USF== 1 ; UNSUPPORTED FEATURE
555 000002 FR.BCL== 2 ; BAD CLASS SPEC'D
556 000003 FR.NST== 3 ; NO STANDARD VALUE
557 000004 FR.ERR== 4 ; FEATURE DATA OR FORMAT ERROR
558 000005 FR.CPN== 5 ; CHANGE PENDING
559 000006 FR.NEB== 6 ; NOT ENOUGH BUFFER (FOR REPORT)
560 000007 FR.DNP== 7 ; DEVICE NOT PAUSED
561 ; FEATURES DATA (CLASS DEPENDENT)
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 13
NURD MAC 21-Mar-80 10:15 NURD Message Definition
562 ; *** CONTROL MESSAGE <MSGDATA>
563 ; SEQUENCE NUMBER (1):B
564 ; COMMAND (1):B
565 000001 NC.AUE== 1 ; (INT) ABORT UNTIL EOF
566 000002 NC.AUC== 2 ; (INT) ABORT UNTIL CLEARED
567 000003 NC.CAB== 3 ; CLEAR OUTPUT ABORT/ACK INPUT ABORT
568 000004 NC.RQS== 4 ; REQUEST STATUS
569 000005 NC.DMP== 5 ; DUMP OUTPUT BUFFERS
570 000006 NC.PAU== 6 ; (INT) PAUSE
571 000007 NC.RES== 7 ; (INT) RESUME
572 000010 NC.RQC==10 ; REQUEST CAPABILITIES
573 ; RESULT CODE (1):B
574 000000 NR.ABS== 0 ; (AUE,AUC) ABORT STATE
575 000001 NR.NAB== 1 ; (AUE,AUC) NOTHING TO ABORT
576 000002 NR.NOE== 2 ; (AUE) NO EOF DEFINED
577 000000 NR.ACC== 0 ; (CAB) ABORT COMPLETE CLEARED
578 000001 NR.ACN== 1 ; (CAB) ABORT COMPLETE NOT SET
579 000000 NR.ATT== 0 ; (RQS) ATTENTION MSG FOLLOWS
580 000000 NR.DMP== 0 ; (DMP) OUTPUT BEING DUMPED
581 000001 NR.NOB== 1 ; (DMP) NO OUTPUT BUFFERED
582 000000 NR.DPS== 0 ; (PAU) DEVICE WILL PAUSE
583 000001 NR.PAU== 1 ; (PAU) DEVICE ALREADY PAUSED
584 000002 NR.NDP== 2 ; (PAU) NO DATA TRANSFER TO PAUSE
585 000000 NR.RES== 0 ; (RES) DEVICE WILL RESUME
586 000001 NR.NPS== 1 ; (RES) DEVICE NOT PAUSED
587 000002 NR.NDR== 2 ; (RES) NO DATA TRANSFER TO RESUME
588 000000 NR.CAP== 0 ; (RQC) CAPABILITIES FOLLOWS
589
590
591 ; *** CAPABILITIES MESSAGE <MSGDATA>
592 ; NUMBER OF CAPABILITY CODES IN LIST (1):B
593 ; LIST OF CAPABILITY CODES ():B
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 14
NURD MAC 21-Mar-80 10:15 UGTJFN
594 SUBTTL UGTJFN
595
596 ; UGTJFN SIMULATES A GTJFN FOR A REMOTE DEVICE
597 ; AC1 = GJ%SHT+[GJ%FOU]
598 ; AC2 = PTR TO DEVICE SPEC: "<NODE>::P<DEV>[<UNIT>]:"
599 ; DEFAULT UNIT= 0
600 ;
601 ; CALL: PUSHJ P,UGTJFN
602 ; ERROR RETURN - AC1 = ERROR CODE
603 ; SUCCESS RETURN - AC1 = JFN SUBSTITUTE(ADR OF RDDB FOR DEVICE)
604
605 000003' 260 17 0 00 000140' UGTJFN::$CALL MKRDDB ; CREATE DATA BASE & SAVE REGS
606 000004' 263 17 0 00 000000 $RET ; PROBLEMS
607 000005' 260 17 0 00 002260' $CALL USETUP ; NOW DO SETUPS
608 000006' 200 02 0 15 000002 MOVE J2,RDSAVE+J2(R) ; GET DEVICE PTR AGAIN
609 000007' 260 17 0 00 002107' $CALL MAPDEV ; MAP DEVICE SPEC INTO NSP FORMAT
610 000010' 254 00 0 00 000103' JRST UGTR3 ; J1 = ERROR CODE
611
612 ; ESTABLISH CONTROL LINK TO NRM
613 000011' 260 17 0 00 002163' $CALL GNRMSP ; GENERATE DEV SPEC FOR NRM
614 000012' 200 02 0 00 000005 MOVE J2,A ; GET PTR TO SPEC
615 000013' 205 01 0 00 000001 MOVX J1,GJ%SHT ; GET NRM JFN
616 000014' 104 00 0 00 000020 GTJFN ; ...
617 ERJMP [ MOVE P,-1(A) ; RESTORE STACK PTR
618 000015' 320 16 0 00 003616' JRST UGTR3] ; ERROR CODE IS IN J1
619 000016' 200 17 0 05 777777 MOVE P,-1(A) ; FLUSH NRM SPEC FROM PDL
620 000017' 201 11 0 00 000001 MOVEI T1,NRM.CP ; SET CONNECT PENDING
621 000020' 436 11 0 15 000030 IORM T1,NRMSTS(R) ; ...
622 000021' 552 01 0 15 000026 HRRZM J1,NRMJFN(R) ; SAVE NRM JFN
623 000022' 553 00 0 00 000001 HRRZS J1 ; NOW TO CONNECT TO NRM
624 000023' 200 02 0 00 003620' MOVX J2,10B5+OF%RD+OF%WR+OF%NWT+OF%PLN ; ...
625 000024' 104 00 0 00 000021 OPENF ; ...
626 000025' 320 16 0 00 000102' ERJMP UGTR2 ; ? NO NRM
627 000026' 260 17 0 00 000121' $CALL CONWAT ; WAIT FOR CONNECT COMPLETE
628 JRST [ MOVEM J3,NRMCFL(R) ; ? FAILED - SAVE STATUS
629 000027' 254 00 0 00 003621' ERRI OPNX21,UGTR2] ; CONNECT REFUSED
630 000030' 201 11 0 00 000003 MOVX T1,NRM.CP!NRM.CC ; CLEAR CONNECT PENDING,
631 000031' 432 11 0 15 000030 XORM T1,NRMSTS(R) ; & SET CONNECT COMPLETE
632 000032' 550 11 0 00 000015 HRRZ T1,R ; USE UPPER 16 BITS
633 000033' 242 11 0 00 777776 LSH T1,-2 ; OF RDDB ADR AS
634 000034' 202 11 0 15 000027 MOVEM T1,NRMID(R) ; CONTROL ID
635 000035' 260 17 0 00 001067' $CALL DEVRSR ; RESERVE THE DEVICE
636 000036' 254 00 0 00 000102' JRST UGTR2 ; NOT AVAILABLE
637 000037' 201 11 0 00 000004 MOVEI T1,NRM.RS ; SET DEVICE RESERVED
638 000040' 436 11 0 15 000030 IORM T1,NRMSTS(R) ; ...
639 000041' 200 01 0 15 000026 MOVE J1,NRMJFN(R) ; DETERMINE MAXIMUM BUFFER
640 000042' 201 02 0 00 000042 MOVEI J2,.MORSS ; SIZE OF REMOTE NODE
641 000043' 104 00 0 00 000077 MTOPR ; ...
642 000044' 303 03 0 00 001000 CAILE J3,NRDBSZ ; WE WILL USE THE SMALLER OF
643 000045' 201 03 0 00 001000 MOVEI J3,NRDBSZ ; REMOTE'S BUFFER SIZE
644 000046' 202 03 0 15 000104 MOVEM J3,NRDLIM(R) ; OR OURS.
645
646 ; ESTABLISH DATA LINK TO NRD
647 000047' 260 17 0 00 002164' $CALL GNRDSP ; GENERATE DEV SPEC FOR NRD
648 000050' 200 02 0 00 000005 MOVE J2,A ; COPY THE POINTER TO SPEC
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 14-1
NURD MAC 21-Mar-80 10:15 UGTJFN
649 000051' 205 01 0 00 000001 MOVX J1,GJ%SHT ; GET NRD JFN
650 000052' 104 00 0 00 000020 GTJFN ; ...
651 ERJMP [ MOVE P,-1(A)
652 000053' 320 16 0 00 003624' JRST UGTR2]
653 000054' 200 17 0 05 777777 MOVE P,-1(A) ; FLUSH NRD SPEC FROM PDL
654 000055' 660 13 0 00 000001 TXO LS,NRD.CP ; SET CONNECT PENDING
655 000056' 552 01 0 15 000034 HRRZM J1,NRDJFN(R) ; SAVE NRD JFN
656 000057' 553 00 0 00 000001 HRRZS J1 ; CONNECT TO NRD
657 000060' 200 02 0 00 003620' MOVX J2,10B5+OF%RD+OF%WR+OF%NWT+OF%PLN ; ...
658 000061' 104 00 0 00 000021 OPENF ; ...
659 000062' 320 16 0 00 003626' ERRJ BOTX05,UGTR1 ; ? NO NURD
660 000063' 260 17 0 00 000121' $CALL CONWAT ; WAIT FOR CONNECT COMPLETE
661 JRST [ MOVEM J3,NRDCFL(R) ; ? FAILED - SAVE STATUS
662 000064' 254 00 0 00 003630' ERRI OPNX21,UGTR1] ; CONNECT REFUSED
663 000065' 640 13 0 00 000003 TXC LS,NRD.CP!NRD.CC ; CLEAR CONNECT PENDING &
664 ; SET CONNECT COMPLETE
665
666 ; GET THE BULA SUPPLIED IN OPTIONAL DATA OF CONNECT CONFIRM
667 000066' 200 01 0 15 000034 MOVE J1,NRDJFN(R)
668 000067' 201 02 0 00 000033 MOVEI J2,.MORDA
669 000070' 205 03 0 00 441000 MOVSI J3,(POINT 8)
670 000071' 541 03 0 15 000161 HRRI J3,NRDRBF(R) ; RESULT STRING PTR
671 000072' 104 00 0 00 000077 MTOPR
672 000073' 305 04 0 00 000001 CAIGE J4,1 ; CHECK THE AMT RETURNED
673 000074' 260 17 0 00 003634' NRDR ,,UGTR1 ; NONE ?
674 000075' 135 11 0 00 003642' LDB T1,[POINT 8,NRDRBF(R),7] ; 1ST BYTE = BULA
675 000076' 202 11 0 15 000035 MOVEM T1,NRDULA(R)
676 000077' 202 15 0 15 000001 MOVEM R,RDSAVE+J1(R) ; DONE WITH UGTJFN, SO RETURN
677 000100' 254 00 0 00 002367' JRST SUCRTN ; JFN SUBSTITUTE IN CALLER J1
678
679 ; NRD AND NRM JFNS ASSIGNED - FLUSH BOTH
680 000101' 260 17 0 00 000110' UGTR1: $CALL FLSNRD ; FLUSH NRD JFN
681
682 ; NRM JFN ASSIGNED - FLUSH IT
683 000102' 260 17 0 00 000111' UGTR2: $CALL FLSNRM ; FLUSH THE NRM JFN
684
685 ; NO JFN'S ASSIGNED
686 000103' 403 13 0 15 000036 UGTR3:: SETZB LS,NRDSTS(R) ; A CLEAN SLATE
687 000104' 403 14 0 15 000037 SETZB DS,NRDDST(R) ; ...
688 000105' 201 11 0 00 400000 MOVEI T1,UJ.FLS ; SET THE "FLUSH" FLAG
689 000106' 436 11 0 15 000023 IORM T1,RDSTS(R) ; ...
690 000107' 254 00 0 00 002312' JRST ERRTN ; ERROR RETURN TO THE USER
691
692 000110' 334 11 0 15 000034 FLSNRD: SKIPA T1,NRDJFN(R) ; DISCONNECT NRD CONTROL LINK
693 000111' 200 11 0 15 000026 FLSNRM: MOVE T1,NRMJFN(R) ; DISCONNECT NRM CONTROL LINK
694 000112' 260 17 0 00 003502' $CALL SAV1J ; PRESERVE J1
695 000113' 200 01 0 00 000011 MOVE J1,T1 ; SET TO DO CLOSE
696 000114' 104 00 0 00 000022 CLOSF ; CLOSE THE LINK
697 000115' 200 01 0 00 000011 MOVE J1,T1 ; ??
698 000116' 104 00 0 00 000023 RLJFN ; RELEASE THE JFN
699 000117' 263 17 0 00 000000 $RET ; ??
700 000120' 263 17 0 00 000000 $RET ; ALL DONE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 15
NURD MAC 21-Mar-80 10:15 UGTJFN
701 ; WAIT FOR CONNECT EVENT FOR JFN IN J1
702 000121' 201 02 0 00 000012 CONWAT: MOVEI J2,NRDTMO ; BOUND OUR WAIT TIME
703 000122' 202 02 0 15 000047 MOVEM J2,NRDTMC(R) ; ...
704 000123' 201 02 0 00 000025 CONW1: MOVEI J2,.MORLS ; READ LINK STATUS
705 000124' 104 00 0 00 000077 MTOPR ; ...
706 000125' 320 17 0 00 003643' NRDRC ,,CPOPJ ; ? OOPS
707 000126' 603 03 0 00 400000 TXNE J3,MO%CON ; J3 = LINK STATUS
708 000127' 254 00 0 00 002161' PJRST CPOPJ1 ; CONNECTED
709 000130' 603 03 0 00 140000 TXNE J3,MO%WFC+MO%WCC ; WAITING FOR ONE ?
710 000131' 375 00 0 15 000047 SOSGE NRDTMC(R) ; YES, MORE TIME LEFT ?
711 000132' 263 17 0 00 000000 $RET ; NOPE - SOMETHING WRONG, RET STATUS
712 000133' 261 17 0 00 000001 PUSH P,J1 ; WAIT HAF A SECOND
713 000134' 201 01 0 00 000764 MOVEI J1,^D500 ; ...
714 000135' 104 00 0 00 000167 DISMS ; ...
715 000136' 262 17 0 00 000001 POP P,J1 ; ...
716 000137' 254 00 0 00 000123' JRST CONW1 ; CHECK IT AGAIN
717
718
719 ; GET SPACE FOR A REMOTE DEVICE DATA BASE AND INIT IT
720 000140' 261 17 0 00 000002 MKRDDB: PUSH P,J2 ; SAVE COUPLE OF REGS
721 000141' 261 17 0 00 000001 PUSH P,J1 ; ...
722
723 ; THE FOLLOWING CODE ENSURES THAT THE PAGE CONTAINING "SUBJFN" IS COPIED
724 ; INTO EACH FORK WHERE NURD20 RUNS.
725 000142' 201 01 0 00 000000' MOVEI J1,SUBJFN ; FORM PAGE NUMBER
726 000143' 242 01 0 00 777767 ADR2PG J1 ; ...
727 000144' 505 01 0 00 400000 HRLI J1,.FHSLF ; FORK IS THE CURRENT ONE
728 000145' 205 02 0 00 160400 MOVX J2,PA%RD+PA%WT+PA%EX+PA%CPY ; SET ACCESS ATTRIBUTES
729 000146' 104 00 0 00 000060 SPACS
730 ERJMP [ MOVEI J1,.FHSLF ; GET ERROR CODE
731 GETER ; ...
732 MOVE J1,J2 ; PUT CODE INTO J1
733 POP P,J2 ; THROW AWAY SAVED J1
734 POP P,J2 ; RESTORE J2
735 000147' 320 16 0 00 003651' $RET] ; LEAVE
736 000150' 201 01 0 00 000565 MOVEI J1,RDDBSZ ; RDDB BLOCK SIZE
737 000151' 260 17 1 00 400137 $CALL M%GMEM ; GET DATABASE MEMORY
738 000152' 202 16 0 02 000016 MOVEM 16,RDSAVE+16(J2) ; STASH USER AC'S IN SAVE AREA
739 000153' 201 16 0 02 000000 MOVEI 16,RDSAVE(J2) ; ...
740 000154' 251 16 0 02 000015 BLT 16,RDSAVE+15(J2) ; ...
741 000155' 262 17 0 02 000001 POP P,RDSAVE+J1(J2) ; COMPLETE USER AC SAVING OPERATION
742 000156' 262 17 0 02 000002 POP P,RDSAVE+J2(J2) ; ...
743 000157' 205 01 0 00 000100 MOVX J1,1B<.ICDAE> ; SET DEFAULT SOFT INTERRUPT CHANNEL
744 000160' 202 01 0 02 000077 MOVEM J1,NRDCHN(J2) ; ...
745
746 000161' 200 15 0 00 000002 MOVE R,J2 ; R = PTR TO NEW RDDB
747 000162' 202 15 0 00 000000' MOVEM R,SUBJFN ; PRESERVE THE RDDB PTR FOR THIS FORK
748 000163' 254 00 0 00 002161' PJRST CPOPJ1 ; THUS CAUSING THE PAGE TO BE COPIED
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 16
NURD MAC 21-Mar-80 10:15 UOPENF
749 SUBTTL UOPENF
750
751 ; UOPENF SIMULATES AN OPENF FOR A REMOTE DEVICE
752 ; USER MUST HAVE PREVIOUSLY USED UGTJFN TO MAKE THINGS WORK
753 ;
754 ; AC1 = JFN SUBSTITUTE
755 ; AC2 = FLAGS
756 ; OF%BSZ - 6 BIT BYTE SIZE FIELD
757 ; 7,8,12,16 SUPPORTED
758 ; OF%MOD - 4 BIT DATA MODE FIELD
759 ; 0=> ASCII
760 ; 8=> IMAGE
761 ; OF%RD - READ ACCESS
762 ; OF%WR - WRITE ACCESS
763 ; OF%OFL - OPEN DEVICE EVEN IF OFFLINE
764 ;
765 ; LEGAL DATA MODE/BYTE SIZE COMBINATIONS
766 ; SIZE MODE CODE MODE
767 ; 7 0 ASCII
768 ; 8 0 ASCII
769 ; 12 8 COLUMN IMAGE
770 ; 16 8 AUGMENTED COLUMN IMAGE
771
772 000164' 260 17 0 00 002245' UOPENF::$CALL SETUP2 ; SETUP FOR SKIP RETURN JSYS
773 000165' 254 00 0 00 002312' JRST ERRTN ; JFN NOT ASSIGNED
774 000166' 135 11 0 00 003657' LDB T1,[POINT 6,J2,5] ; GET BYTE SIZE
775 000167' 135 12 0 00 003660' LDB T2,[POINT 4,J2,9] ; AND DATA MODE
776 JUMPE T2,[ CAIE T1,7 ; ASCII MODE - CHECK BYTE SIZE
777 CAIN T1,10 ; ...
778 SKIPA ; TIS TRULY LEGAL SIZE
779 ERR SFBSX2,ERRTN ; OOPS !
780 TXNN LS,NRD.LP ; FOR LPT ?
781 JRST UOPNC ; NO, CDR THEN
782 TXNE J2,OF%RD ; MUST WRITE TO LPT
783 ERR OPNX13,ERRTN ; TUT,TUT - TRYING TO READ
784 TXNE J2,OF%WR ; BETTER SAY WRITE
785 JRST UOPNX ; AWRIGHT !
786 000170' 322 12 0 00 003665' ERRI OPNX4,ERRTN] ; A BUMMER
787 000171' 306 12 0 00 000010 CAIN T2,^D8 ; THE ONLY OTHER LEGAL MODE IS 8
788 000172' 602 13 0 00 000004 TXNE LS,NRD.LP ; AND ONLY FOR CDR
789 000173' 254 00 0 00 003701' ERR OPNX14,ERRTN ; INVALID MODE
790 000174' 306 11 0 00 000014 CAIN T1,^D12 ; IMAGE MODE - CHECK BYTE SIZE
791 000175' 254 00 0 00 000201' JRST UOPN1 ; COLUMN IMAGE
792 000176' 302 11 0 00 000020 CAIE T1,^D16 ; AUG COL IMAGE ?
793 000177' 254 00 0 00 003661' ERR SFBSX2,ERRTN ; NO, SO BYTE SIZE ERROR
794 000200' 664 13 0 00 000020 TXOA LS,NRD.AI ; AUGMENTED COLUMN IMAGE MODE
795 000201' 660 13 0 00 000010 UOPN1: TXO LS,NRD.IM ; COLUMN IMAGE MODE
796
797 000202' 602 02 0 00 100000 UOPNC: TXNE J2,OF%WR ; TRYING TO WRITE TO CDR ?
798 000203' 254 00 0 00 003663' ERR OPNX13,ERRTN ; DUMMY !
799 000204' 606 02 0 00 200000 TXNN J2,OF%RD ; WE ARE SUPPOSED TO READ FROM IT
800 000205' 254 00 0 00 003703' ERR OPNX3,ERRTN ; ! READ I SAID
801
802 000206' 660 13 0 00 000040 UOPNX: TXO LS,NRD.OP ; OPEN DEVICE NOW
803 000207' 260 17 0 00 001135' $CALL OPNDEV ; SEND ACCESS-OPEN TO NRM
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 16-1
NURD MAC 21-Mar-80 10:15 UOPENF
804 000210' 254 00 0 00 002312' JRST ERRTN
805 000211' 640 13 0 00 000140 TXC LS,NRD.OP!NRD.OC ; FLUSH DEV OPEN PENDING
806 ; AND SET DEVICE OPENED
807 000212' 402 00 0 15 000101 SETZM NRDRCN(R) ; INIT FOR IO
808 000213' 402 00 0 15 000103 SETZM NRDSCN(R) ; INIT FOR IO
809 000214' 476 00 0 15 000052 SETOM NRDLPC(R) ; SET PAGE COUNT AS FLAG THAT
810 ; NO STATUS HAS BEEN RECEIVED
811 000215' 260 17 0 00 001750' $CALL SNDRQS ; REQUEST STATUS
812 000216' 260 17 0 00 001702' $CALL RCVRQS ; AND WAIT FOR IT
813 000217' 260 17 0 00 003705' NRDR ,,ERRTN ; DATA MSG BLOCKING STATUS RSP
814 000220' 260 17 0 00 002005' $CALL SETMOD ; SET DATA MODE
815 000221' 602 13 0 00 000004 TXNE LS,NRD.LP
816 $CALL [ TXO DS,MO%LVU ; ONLY OPTICAL VFU AVAIL
817 000222' 260 17 0 00 003713' $CALLR SETLCR] ; INIT THE LPT AS UPPER CASE
818 000223' 260 17 0 00 002073' $CALL RDFTRS ; READ DEVICE FEATURES
819 000224' 260 17 0 00 003705' NRDR ,,ERRTN ; DATA MSG BLOCKING ??
820 000225' 254 00 0 00 002367' JRST SUCRTN ; ALL DONE !!
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 17
NURD MAC 21-Mar-80 10:15 USOUT
821 SUBTTL USOUT
822
823 ; USOUT SIMULATES A SOUT FOR A REMOTE DEVICE(LPT)
824 ;
825 ; AC1 = JFN SUBSTITUTE
826 ; AC2 = PTR TO STRING
827 ; AC3 = COUNT
828 ; AC4 = TERMINATION CHAR IF COUNT>0
829 ;
830 ; STRING TERMINATION CONVENTION:
831 ; COUNT > 0=> TERMINATE ON COUNT OR CHAR= (AC4)
832 ; COUNT= 0=> TERMINATE ON CHAR= 0
833 ; COUNT < 0=> TERMINATE ON COUNT
834 ;
835 ; DATA MESSAGE FORMAT:
836 ; <0><MSG FLGS><SEQ. NO.><DATA FLGS><SEG. CNT>[SEGMENTS]
837 ; SEGMENT FORMENT:
838 ; <CNT><... CNT DATA ITEMS ...> OR <200!CNT><DATA ITEM>
839
840 000226' 260 17 0 00 002243' USOUT:: $CALL SETUP1 ; NON-SKIP JSYS
841 000227' 254 00 0 00 002312' JRST ERRTN ; NO SUCH JFN
842 000230' 602 13 0 00 000002 TXNE LS,NRD.CC ; CHECK LINK STILL CONNECTED
843 000231' 606 13 0 00 000100 TXNN LS,NRD.OC ; CHECK DEVICE OPENED
844 000232' 254 00 0 00 003715' ERR DESX5,ERRTN ; "FILE" NOT OPEN
845 000233' 606 13 0 00 000004 TXNN LS,NRD.LP ; CHECK THAT DEVICE IS AN LPT
846 000234' 254 00 0 00 003717' ERR IOX2,ERRTN ; "FILE" NOT OPEN FOR WRITING
847 000235' 641 02 0 00 777777 TLC J2,-1 ; GENERIC POINTER ?
848 000236' 647 02 0 00 777777 TLCN J2,-1 ; BACK TO ORIG, SKIP IF WAS NONZERO
849 000237' 505 02 0 00 440700 HRLI J2,(POINT 7) ; IT WAS GENERIC - MAKE IT SPECIFIC
850 000240' 260 17 0 00 002236' $CALL EFADBY ; DO BYTE POINTER EFFECTIVE ADDR CALC
851 000241' 334 00 0 00 000000 SKIPA ; J2 IS NOW A PROPER PTR
852
853 000242' 260 17 0 00 000326' USO0: $CALL USYCLE ; START NEW BUFFER
854 000243' 260 17 0 00 001233' USO1: $CALL RCVNRM ; CHECK FOR ASYNCHRONOUS NRM MESSAGES
855 000244' 260 17 0 00 003705' NRDR ,,ERRTN ; NRM ERROR
856 000245' 326 05 0 00 000243' JUMPN A,USO1 ; READ ALL OF THEM
857 000246' 260 17 0 00 001300' USO2: $CALL RCVMSG ; CHECK FOR INCOMING MSGS 1ST
858 000247' 260 17 0 00 003705' NRDR ,,ERRTN ; READ ERROR
859 000250' 322 05 0 00 003726' JUMPE A,[NRDR .,,ERRTN] ; DATA MSG SHOULDN'T BE HERE!!
860 000251' 327 05 0 00 000246' JUMPG A,USO2 ; PROCESS EVERYTHING ELSE IN SIGHT
861 000252' 603 13 0 00 000001 TXNE LS,NRD.OF ; CHECK FOR OFFLINE
862 $CALL [ MOVX T1,NRD.ON ; WE ARE OFF, BUT
863 TDNE T1,NRDSTS(R) ; ALREADY BACK ?
864 $CALLR SNDRES ; YES, SO TELL DN200 TO RESUME
865 000253' 260 17 0 00 003727' ERRI GJFX28,ERRTN] ; DEVICE WENT OFFLINE
866 000254' 612 14 0 00 003734' TXNE DS,MO%FER!MO%HE!MO%SER!MO%LCI!MO%HEM!MO%LPC
867 000255' 254 00 0 00 003735' ERR IOX5,ERRTN ; DEVICE ERROR
868 000256' 602 13 0 00 020000 TXNE LS,NRD.PS ; NO ERRORS - PAUSED ?
869 000257' 260 17 0 00 001765' $CALL SNDRES ; YES - TRY TO RESUME
870 000260' 260 17 0 00 002100' $CALL SBFINI ; INIT MSG BUF
871 000261' 200 10 0 15 000104 MOVE D,NRDLIM(R) ; GET MAX MSG SIZE
872 000262' 403 11 0 00 000012 SETZB T1,T2 ; INIT NRD DATA MSG
873 000263' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; NURD MSG TYPE
874 000264' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; NURD MSG FLAGS
875 000265' 350 11 0 15 000041 AOS T1,NRDSEQ(R)
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 17-1
NURD MAC 21-Mar-80 10:15 USOUT
876 000266' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; MSG SEQUENCE NO.
877 000267' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; DATA MSG FLAGS
878 000270' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; MSG SEGMENT COUNT
879 000271' 200 11 0 15 000102 MOVE T1,NRDSPT(R)
880 000272' 202 11 0 15 000042 MOVEM T1,NRDSGC(R) ; SAV PTR TO SEG CNT
881 000273' 275 10 0 00 000005 SUBI D,5 ; SUB MSG OVERHEAD FROM CNT
882 000274' 307 10 0 00 000002 USO3: CAIG D,2 ; MAKE SURE THERE IS ROOM FOR A SEGMENT
883 000275' 254 00 0 00 000242' JRST USO0 ; CYCLE THE MSG BUFFER
884 000276' 400 07 0 00 000000 SETZ C, ; BEGIN NEW SEGMENT
885 000277' 136 07 0 15 000102 IDPB C,NRDSPT(R) ; SEGMENT HEAD
886 000300' 200 11 0 15 000102 MOVE T1,NRDSPT(R)
887 000301' 202 11 0 15 000043 MOVEM T1,NRDSEG(R) ; SAV PTR TO SEGMENT HEAD
888 000302' 135 11 0 15 000042 LDB T1,NRDSGC(R) ; COUNT THE SEGMENT IN MSG
889 000303' 350 00 0 00 000011 AOS T1
890 000304' 137 11 0 15 000042 DPB T1,NRDSGC(R)
891 000305' 364 10 0 00 000310' SOJA D,USO5 ; COUNT SEGMENT HEAD IN BUFFER
892
893 000306' 301 07 0 00 000177 USO4: CAIL C,^D127 ; CHECK SEGMENT SIZE LIMIT
894 000307' 254 00 0 00 000274' JRST USO3 ; BEGIN NEW SEGMENT
895 000310' 134 11 0 00 000002 USO5: ILDB T1,J2 ; STUFF THE SEGMENT FROM STRING
896 000311' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; STRING CHARACTER
897 000312' 350 00 0 00 000007 AOS C
898 000313' 137 07 0 15 000043 DPB C,NRDSEG(R) ; COUNT THE CHAR IN SEGMENT
899 JUMPL J3,[ AOJL J3,USO7 ; TERMINATE BY COUNT
900 000314' 321 03 0 00 003737' JRST USO9] ; ...
901 JUMPG J3,[ SOJE J3,USO8 ; TERMINATE BY COUNT
902 CAME J4,T1 ; OR BY CHARACTER
903 JRST USO7 ; NOPE
904 000315' 327 03 0 00 003741' JRST USO8] ; STOP NOW
905 000316' 322 11 0 00 000321' JUMPE T1,USO8 ; TERMINATE BY CHAR= 0
906
907 000317' 367 10 0 00 000306' USO7: SOJG D,USO4 ; COUNT CHAR IN BUFFER
908 000320' 254 00 0 00 000242' JRST USO0 ; CYCLE BUFFER & BEGIN NEW NURD MSG
909
910 000321' 211 11 0 00 000001 USO8: MOVNI T1,1 ; SOURCE TERMINATED BY BYTE
911 000322' 133 11 0 00 000002 ADJBP T1,J2 ; BACK UP PTR
912 000323' 200 02 0 00 000011 MOVE J2,T1
913 000324' 260 17 0 00 000326' USO9: $CALL USYCLE ; SOURCE DONE - FLUSH OUT BUFFER
914 000325' 254 00 0 00 002367' JRST SUCRTN
915
916 000326' 260 17 0 00 003532' USYCLE: $CALL SAV4J ; SAVE J1-J4
917 000327' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; SET THE OUTPUT JFN
918 000330' 260 17 0 00 000752' $CALL SNDBUF ; SEND THE STUFF
919 JRST [ DMOVEM J2,RDSAVE+J2(R) ; SET RETURN J2 & J3, BECAUSE
920 000331' 254 00 0 00 003745' JRST ERRTN] ; SOUTR ABORT
921 000332' 124 02 0 15 000002 DMOVEM J2,RDSAVE+J2(R) ; SET RETURN VALUE OF J2,J3
922 000333' 332 00 0 00 000001' SKIPE DEBUGF
923 000334' 260 17 0 00 002633' $CALL TYBUF
924 000335' 661 14 0 00 000020 TXO DS,MO%IOP ; SET IO IN PROGRESS FOR LPT
925 000336' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 18
NURD MAC 21-Mar-80 10:15 USIN
926 SUBTTL USIN
927
928 ; USIN SIMULATES A SIN FOR A REMOTE DEVICE(CDR)
929 ;
930 ; AC1 = JFN SUBSTITUTE
931 ; AC2 = PTR TO STRING
932 ; AC3 = COUNT
933 ; AC4 = TERMINATION CHAR IF COUNT>0
934 ;
935 ; STRING TERMINATION CONVENTION:
936 ; COUNT > 0=> TERMINATE ON COUNT OR CHAR= (AC4)
937 ; COUNT= 0=> TERMINATE ON CHAR= 0
938 ; COUNT < 0=> TERMINATE ON COUNT
939 ;
940 ; DATA MESSAGE FORMAT:
941 ; <0><MSG FLGS><SEQ. NO.><DATA FLGS><SEG. CNT>[SEGMENTS]
942 ; SEGMENT FORMENT:
943 ; <CNT><... CNT DATA ITEMS ...> OR <200!CNT><DATA ITEM>
944
945 000337' 260 17 0 00 002243' USIN:: $CALL SETUP1 ; NON-SKIP JSYS
946 000340' 254 00 0 00 002312' JRST ERRTN ; BAD JFN
947 000341' 602 13 0 00 000002 TXNE LS,NRD.CC ; CHECK LINK STILL CONNECTED
948 000342' 606 13 0 00 000100 TXNN LS,NRD.OC ; CHECK DEVICE OPENED
949 000343' 254 00 0 00 003715' ERR DESX5,ERRTN ; "FILE" NOT OPEN
950 000344' 602 13 0 00 000004 TXNE LS,NRD.LP ; CHECK THAT DEVICE IS A CDR
951 000345' 254 00 0 00 003747' ERR IOX3,ERRTN ; "FILE" NOT OPEN FOR READING
952 000346' 260 17 0 00 002524' $CALL INTOFF
953 000347' 630 13 0 00 003751' TXZ LS,NRD.FE!NRD.TO!NRD.OF!NRD.PL
954 000350' 202 13 0 15 000036 MOVEM LS,NRDSTS(R) ; UPDATE LINK STATUS
955 000351' 630 14 0 00 003752' TXZ DS,MO%FER!MO%HE!MO%SER!MO%RCK!MO%PCK!MO%SFL!MO%HEM!MO%LCI!MO%LPC!MO%EOF
956 000352' 202 14 0 15 000037 MOVEM DS,NRDDST(R) ; UPDATE DEVICE STATUS
957 000353' 260 17 0 00 002514' $CALL INTON
958 000354' 641 02 0 00 777777 TLC J2,-1 ; GENERIC POINTER ?
959 000355' 643 02 0 00 777777 TLCE J2,-1 ; BACK TO ORIG, SKIP IF WAS ZERO
960 000356' 254 00 0 00 000364' JRST SIN0 ; IT'S ALRIGHT LIKE IT IS
961 000357' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI ; CHECK IMAGE MODES
962 JRST [ HRLI J2,(POINT 7) ; ASCII
963 000360' 254 00 0 00 003753' JRST SIN0] ; ...
964 000361' 606 13 0 00 000020 TXNN LS,NRD.AI
965 JRST [ HRLI J2,(POINT 12) ; COLUMN IMAGE MODE
966 000362' 254 00 0 00 003755' JRST SIN0] ; ...
967 000363' 505 02 0 00 442000 HRLI J2,(POINT 16) ; AUGMENTED COLUMN IMAGE MODE
968 000364' 260 17 0 00 002236' SIN0: $CALL EFADBY ; DO BYTE POINTER EFFECTIVE ADDR CALC
969 000365' 332 10 0 15 000101 SKIPE D,NRDRCN(R) ; CHECK FOR CURRENT BUFFER
970 000366' 254 00 0 00 000433' JRST USIN1 ; BUFFER IN PROGRESS
971 000367' 603 13 0 00 000001 SIN1: TXNE LS,NRD.OF ; CHECK FOR OFFLINENESS
972 JRST [ TXNE LS,NRD.EO ; BUT DO WE HAVE EOF TOO ?
973 JRST USIEF1 ; YEP, SO JUST EOF
974 MOVX T1,NRD.ON ; SEE IF ALREADY BACK
975 TDNN T1,NRDSTS(R) ; ...
976 ERR GJFX28,USINER ; DEVICE IS REALLY OFFLINE
977 $CALL SNDRES ; TRY TO RERSUME IT
978 000370' 254 00 0 00 003761' JRST .+1] ; THEN GO ON
979 000371' 612 14 0 00 003770' TXNE DS,MO%FER!MO%HE!MO%SER!MO%LCI!MO%HEM!MO%SFL!MO%PCK!MO%RCK
980 000372' 254 00 0 00 003771' ERR IOX5,USINER ; DEVICE ERROR
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 18-1
NURD MAC 21-Mar-80 10:15 USIN
981 000373' 602 13 0 00 020000 TXNE LS,NRD.PS ; NO ERRORS - PAUSED ?
982 000374' 260 17 0 00 001765' $CALL SNDRES ; YES - TRY TO RESUME
983 000375' 260 17 0 00 001233' SIN2: $CALL RCVNRM ; CHECK FOR NRM ASYNCHRONOUS MESSAGES
984 000376' 260 17 0 00 003773' NRDR ,,USINER ; NRM ERROR
985 000377' 326 05 0 00 000375' JUMPN A,SIN2 ; GOT 1 - READ ALL OF THEM
986 000400' 260 17 0 00 001300' $CALL RCVMSG ; READ A MSG
987 000401' 254 00 0 00 000521' JRST USINER ; READ ERROR
988 JUMPL A,[ MOVEI J1,^D250 ; NOTHING - TRY AGAIN LATER
989 DISMS ; ZZZ
990 000402' 321 05 0 00 004001' JRST SIN1] ; ...
991 000403' 327 05 0 00 000367' JUMPG A,SIN1 ; SOMETHING BESIDES DATA
992 000404' 211 10 0 00 000005 MOVNI D,5 ; DATA MSG IN NRDRBF
993 000405' 273 10 0 15 000101 ADDB D,NRDRCN(R) ; GET BUFFER COUNT
994 000406' 321 10 0 00 004011' JUMPL D,[NRDR .,,USINER] ; INSUFF DATA FOR NURD MSG
995 000407' 133 00 0 15 000100 IBP NRDRPT(R) ; ADVANCE PAST NURD MSG FLAGS
996 000410' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; MSG SEQUENCE NO.
997 000411' 202 11 0 15 000041 MOVEM T1,NRDSEQ(R)
998 000412' 134 12 0 15 000100 ILDB T2,NRDRPT(R) ; DATA FLAGS
999 000413' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; GET NO. SEGMENTS
1000 000414' 202 11 0 15 000044 MOVEM T1,NRDSGS(R)
1001 000415' 402 00 0 15 000045 SETZM NRDSGN(R) ; INIT CURRENT SEG CNT
1002 000416' 606 12 0 00 000004 TXNN T2,ND.EOF ; EOF ?
1003 000417' 254 00 0 00 000425' JRST SIN3
1004 000420' 660 13 0 00 000400 TXO LS,NRD.EO
1005 000421' 661 14 0 00 000040 TXO DS,MO%EOF
1006 000422' 606 13 0 00 000030 TXNN LS,NRD.AI!NRD.IM ; CHECK ASCII OR IMAGE
1007 000423' 254 00 0 00 000511' JRST USIEOF ; ASCII EOF MSG GETS SPECIAL TREATMENT
1008 000424' 620 12 0 00 000002 TXZ T2,ND.IER ; IMAGE - IGNORE DATA ERRORS
1009 000425' 602 12 0 00 000002 SIN3: TXNE T2,ND.IER ; DATA ERROR DETECTED
1010 000426' 664 13 0 00 001000 TXOA LS,NRD.ER ; YES
1011 000427' 624 13 0 00 001000 TXZA LS,NRD.ER
1012 000430' 664 14 0 00 000001 TXOA DS,MO%RCK
1013 000431' 624 14 0 00 000001 TXZA DS,MO%RCK
1014 000432' 254 00 0 00 004012' ERR IOX5,USINR1 ; DATA ERROR - USER CAN READ THIS
1015 ; CARD BY REISSUING ANOTHER USIN
1016 000433' 200 07 0 15 000045 USIN1: MOVE C,NRDSGN(R) ; GET CURRENT SEGMENT BYTE CNT
1017 000434' 321 07 0 00 000457' JUMPL C,USIN4 ; MORE LEFT IN COMPRESSION SEQUENCE
1018 000435' 327 07 0 00 000465' JUMPG C,USIN6 ; MORE LEFT IN NORMAL SEQUENCE
1019 000436' 375 00 0 15 000044 USIN2: SOSGE NRDSGS(R) ; COUNT SEGMENTS
1020 000437' 254 00 0 00 000367' JRST SIN1 ; MSG DONE
1021 000440' 361 10 0 00 004021' SOJL D,[NRDR .,,USINER] ; INSUFF DATA FOR SEG HEADER
1022 000441' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; GET NEXT SEGMENT HEAD
1023 000442' 626 11 0 00 000200 TXZN T1,200 ; CHECK FOR COMPRESSION SEQUENCE
1024 000443' 334 07 0 00 000011 SKIPA C,T1 ; NORMAL
1025 000444' 210 07 0 00 000011 MOVN C,T1 ; COMPRESSION SEQUENCE
1026 000445' 322 07 0 00 000367' JUMPE C,SIN1 ; EOR=> MSG DONE
1027 000446' 327 07 0 00 000465' JUMPG C,USIN6 ; BEGIN NEW NORMAL SEQUENCE
1028 ; BEGIN NEW COMPRESSION SEQUENCE
1029 000447' 361 10 0 00 004027' SOJL D,[NRDR .,,USINER] ; INSUFF DATA FOR LOW DATA BYTE
1030 000450' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; GET REPEATED DATA ITEM
1031 000451' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI ; CHECK SIZE OF DATA ITEM
1032 000452' 254 00 0 00 000456' JRST USIN3 ; ASCII MODE
1033 000453' 361 10 0 00 004035' SOJL D,[NRDR .,,USINER] ; INSUFF DATA FOR HIGH BYTE
1034 000454' 134 12 0 15 000100 ILDB T2,NRDRPT(R) ; GET HIGH PART
1035 000455' 137 12 0 00 004036' DPB T2,[POINT 8,T1,27]
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 18-2
NURD MAC 21-Mar-80 10:15 USIN
1036 000456' 202 11 0 15 000046 USIN3: MOVEM T1,NRDREP(R) ; SAVE REPEAT ITEM
1037 000457' 200 11 0 15 000046 USIN4: MOVE T1,NRDREP(R) ; GET REPEAT ITEM
1038 000460' 136 11 0 00 000002 IDPB T1,J2 ; STUFF THE ITEM
1039 JUMPL J3,[ AOJL J3,USIN5 ; TERMINATE ON COUNT
1040 000461' 321 03 0 00 004037' AOJA C,USINX] ; DEST SURFEITED
1041 JUMPG J3,[ SOSE J3 ; STOP ON COUNT OR BYTE= (AC4)
1042 CAMN T1,J4 ; ...
1043 AOJA C,USINX ; FULL
1044 USIN5: AOJL C,USIN4 ; MORE - COUNT ITEM IN SEGMENT
1045 000462' 327 03 0 00 004041' JRST USIN2] ; NEED NEW SEGMENT
1046 000463' 326 11 0 00 000000* JUMPN T1,USIN5 ; MORE
1047 000464' 344 07 0 00 000501' AOJA C,USIN9 ; SATISFIED
1048
1049 000465' 361 10 0 00 004053' USIN6: SOJL D,[NRDR .,,USINER] ; INSUFF DATA FOR LOW DATA BYTE
1050 000466' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; GET NEXT DATA ITEM
1051 000467' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI ; CHECK SIZE OF DATA ITEM
1052 000470' 254 00 0 00 000474' JRST USIN7 ; ASCII
1053 000471' 361 10 0 00 004061' SOJL D,[NRDR .,,USINER] ; INSUFF DATA FOR HIGH BYTE
1054 000472' 134 12 0 15 000100 ILDB T2,NRDRPT(R) ; GET HIGH PART
1055 000473' 137 12 0 00 004036' DPB T2,[POINT 8,T1,27]
1056 000474' 136 11 0 00 000002 USIN7: IDPB T1,J2 ; STUFF THE DATA ITEM
1057 JUMPL J3,[ AOJL J3,USIN8 ; TERMINATED BY COUNT
1058 000475' 321 03 0 00 004062' SOJA C,USINX] ; STUFFED
1059 JUMPG J3,[ SOSE J3 ; STOP BY COUNT OR BYTE=(AC4)
1060 CAMN T1,J4
1061 SOJA C,USINX ; SATIATED
1062 USIN8: SOJG C,USIN6 ; COUNT DATA ITEM IN SEGMENT
1063 000476' 327 03 0 00 004064' JRST USIN2] ; NEED NEW SEGMENT
1064 000477' 326 11 0 00 000000* JUMPN T1,USIN8 ; TERMINATED BY BYTE= 0
1065 000500' 275 07 0 00 000001 SUBI C,1 ; FULL
1066 000501' 211 05 0 00 000001 USIN9: MOVNI A,1 ; TERMINATED ON ZERO BYTE - BACK UP PTR
1067 000502' 133 05 0 00 000002 ADJBP A,J2
1068 000503' 200 02 0 00 000005 MOVE J2,A
1069
1070 ; END OF DEST BUFFER
1071 000504' 202 07 0 15 000045 USINX: MOVEM C,NRDSGN(R) ; DESTINATION STRING TERMINATED
1072 000505' 202 10 0 15 000101 MOVEM D,NRDRCN(R) ; SAVE CURRENT MSG STATUS
1073 000506' 124 02 0 15 000002 DMOVEM J2,RDSAVE+J2(R) ; SET RETURN VALUE OF J2,J3
1074 000507' 606 13 0 00 000400 TXNN LS,NRD.EO ; IF EOF SET (IMAGE EOF) FALL THRU
1075 000510' 254 00 0 00 002367' JRST SUCRTN
1076
1077 ; EOF - FLUSH MESSAGE, SET EOF CONDITION
1078 000511' 260 17 0 00 001704' USIEOF: $CALL RCVRQ ; WAIT FOR ATTENTION MSG WHICH FOLLOWS
1079 000512' 260 17 0 00 004071' NRDR ; READ ERROR OR DATA BLOCKING
1080 000513' 620 13 0 00 051000 USIEF1: TXZ LS,NRD.ER!NRD.FE!NRD.TO ; IGNORE HARD ERRORS
1081 000514' 630 14 0 00 003770' TXZ DS,MO%FER!MO%HE!MO%SER!MO%LCI!MO%HEM!MO%SFL!MO%PCK!MO%RCK
1082 000515' 201 01 0 00 600220 ERR IOX4 ; OK TO PROCEED NOW
1083 000516' 402 00 0 15 000101 SETZM NRDRCN(R) ; MESSAGE FAULT EXIT- FLUSH MSG
1084 000517' 602 13 0 00 000030 TXNE LS,NRD.AI!NRD.IM ; CHECK ASCII OR IMAGE
1085 000520' 254 00 0 00 002312' JRST ERRTN ; LET USER KNOW ABOUT IT
1086
1087 000521' 402 00 0 15 000101 USINER: SETZM NRDRCN(R) ; MESSAGE FAULT EXIT- FLUSH MSG
1088 000522' 124 02 0 15 000002 USINR1: DMOVEM J2,RDSAVE+J2(R) ; SET RETURN VALUE OF J2,J3
1089 000523' 254 00 0 00 002312' JRST ERRTN
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 19
NURD MAC 21-Mar-80 10:15 UMTOPR
1090 SUBTTL UMTOPR
1091
1092 ; UMTOPR SIMULATES MTOPR JSYS FOR REMOTE DEIVCES
1093 ;
1094 ; AC1 = JFN SUBSTITUTE
1095 ; AC2 = FUNCTION CODE
1096 ; AC3 = ARG OR PTR TO ARG BLOCK
1097
1098 000524' 260 17 0 00 002243' UMTOPR::$CALL SETUP1 ; NON-SKIP JSYS
1099 000525' 254 00 0 00 002312' JRST ERRTN ; BAD JFN
1100 000526' 602 13 0 00 000002 TXNE LS,NRD.CC ; CHECK LINK STILL CONNECTED
1101 000527' 606 13 0 00 000100 TXNN LS,NRD.OC ; MAKE SURE DEVICE IS OPENED
1102 000530' 254 00 0 00 003715' ERR DESX5,ERRTN ; "FILE" NOT OPENED
1103 000531' 602 13 0 00 000004 TXNE LS,NRD.LP ; LPT ?
1104 JRST [ SKIPE NRDSCN(R) ; YES, SO FLUSH OUTPUT
1105 $CALL SNDNRD ; ...
1106 MOVE T1,[-LTOPRL,,LTOPR]
1107 000532' 254 00 0 00 004075' JRST UMT1]
1108 000533' 200 11 0 00 004101' MOVE T1,[-CTOPRL,,CTOPR] ; CDR
1109
1110 000534' 554 12 0 11 000000 UMT1: HLRZ T2,(T1) ; SCAN DEV TABLE FOR FUNCTION
1111 000535' 316 12 0 00 000002 CAMN T2,J2
1112 JRST [ HRRZ T1,(T1) ; DISPATCH TO FUNC PROCESSOR
1113 000536' 254 00 0 00 004102' JRST (T1)] ; ...
1114 000537' 253 11 0 00 000534' AOBJN T1,UMT1 ; CHECK ALL POSSIBILITIES
1115 000540' 201 01 0 00 601210 ERRI MTOX1,ERRTN ; INVALID FUNCTION
1116 000541' 254 00 0 00 002312'
1117
1118 ; LPT MTOPR FUNCTIONS
1119 000542' 000027 000555' LTOPR: .MOPSI,,LMOPSI ; ENABLE SOFTWARE INTERRUPTS
1120 000543' 000031 000611' .MONOP,,LMONOP ; IO WAIT
1121 000544' 000032 000624' .MOLVF,,LMOLVF ; LOAD VFU
1122 000545' 000033 000624' .MORVF,,LMORVF ; READ VFU NAME
1123 000546' 000034 000624' .MOLTR,,LMOLTR ; LOAD TRANSLATION RAM
1124 000547' 000035 000624' .MORTR,,LMORTR ; READ NAME OF TRANSLATION RAM
1125 000550' 000036 000626' .MOSTS,,LMOSTS ; SET LPT STATUS
1126 000551' 000037 000567' .MORST,,LMORST ; READ LPT STATUS
1127 000552' 000040 000701' .MOFLO,,LMOFLO ; ABORT LPT OUTPUT
1128 000011 LTOPRL==.-LTOPR
1129
1130 ; CDR MTOPR FUNCTIONS
1131 000553' 000027 000555' CTOPR: .MOPSI,,CMOPSI ; ENABLE SOFTWARE INTERRUPTS
1132 000554' 000037 000577' .MORST,,CMORST ; READ CDR STATUS
1133 000002 CTOPRL==.-CTOPR
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 20
NURD MAC 21-Mar-80 10:15 UMTOPR
1134 ; ENABLE INTERRUPTS FOR DEVICE CHANGES:
1135 ; DEVICE ONLINE STATE OR PAGE COUNTER OVERFLOW
1136 000555' LMOPSI:
1137 000555' 200 12 0 00 000003 CMOPSI: MOVE T2,J3 ; GET ARG BLOCK PTR
1138 000556' 260 17 0 00 002220' $CALL EFADR ; FIND IT
1139 000557' 210 12 0 11 000001 MOVN T2,1(T1) ; GET CHANNEL NUMBER - IGNORE FLAGS
1140 000560' 205 11 0 00 400000 MOVX T1,1B0 ; ...
1141 000561' 241 11 0 12 000000 ROT T1,(T2) ; ...
1142 000562' 202 11 0 15 000077 MOVEM T1,NRDCHN(R) ; SET CHANNEL ENABLE MASK
1143 000563' 201 11 0 00 000200 MOVEI T1,NRD.EN ; SET INTERRUPT ENABLED FLAG
1144 000564' 436 11 0 15 000036 IORM T1,NRDSTS(R) ; ...
1145 000565' 660 13 0 00 000200 TXO LS,NRD.EN ; BOTH PLACES
1146 000566' 254 00 0 00 002367' JRST SUCRTN ; THAT'S ALL FOLKS
1147
1148 ; READ LPT STATUS
1149 000567' 200 11 0 15 000041 LMORST: MOVE T1,NRDSEQ(R) ; CHECK AGE OF CURRENT STATUS
1150 000570' 430 11 0 15 000051 XOR T1,NRDASQ(R) ; ...
1151 000571' 602 11 0 00 000377 TXNE T1,377 ; SKIP IF ATT MSG WAS FOR LAST DATA MSG
1152 000572' 602 13 0 00 020000 TXNE LS,NRD.PS ; NO USE IF PAUSED
1153 000573' 254 00 0 00 000577' JRST LMORS1 ; CURRENT STATUS WILL SUFFICE
1154 000574' 260 17 0 00 001750' $CALL SNDRQS ; REQUEST STATUS
1155 000575' 260 17 0 00 001702' $CALL RCVRQS ; WAIT FOR IT
1156 000576' 260 17 0 00 003705' NRDR ,,ERRTN ; DATA MSG BLOCKING STATUS RSP
1157
1158 ; MO%LCP IS AUTOMATICALLY MAINTAINED IN FEATURE MSG RPOCESSING BASED ON
1159 ; CURRENT VALUE OF FE.LCR AS THE STATUS OF THIS FEATURE WILL DETERMINE
1160 ; WHETHER LOWER CASE CHARACTERS WILL PRINT. UOPENF INITS THE LPT BY SETTING
1161 ; FE.LCR=1=> MO%LCP=0.
1162 ; LMOSTS CAN ATTEMPT TO SET FE.LCR=0 AND MO%LCP WILL BE SET ONLY IF THAT
1163 ; SUCCEEDS.
1164 000577' LMORS1:
1165
1166 ; CDR CAN'T SEND STATUS BECAUSE OF POSSIBLE DEADLOCK IN RETURN DATA STREAM
1167 000577' 200 12 0 00 000003 CMORST: MOVE T2,J3 ; RETURN UPDATED STATUS TO USER
1168 000600' 260 17 0 00 002220' $CALL EFADR ; FIND IT
1169 000601' 261 17 0 00 000011 PUSH P,T1
1170 000602' 260 17 0 00 000714' $CALL SETDST ; UPDATE DEVICE STATUS
1171 000603' 262 17 0 00 000012 POP P,T2
1172 000604' 261 12 0 00 000014 PUSH T2,DS ; STORE DEVICE STATUS
1173 000605' 200 11 0 12 777777 MOVE T1,-1(T2) ; CHECK BLOCK LENGTH
1174 000606' 303 11 0 00 000002 CAILE T1,2
1175 000607' 261 12 0 15 000052 PUSH T2,NRDLPC(R) ; WANTS PAGE COUNT ALSO
1176 000610' 254 00 0 00 002367' JRST SUCRTN
1177
1178 000611' 260 17 0 00 000614' LMONOP: $CALL LPTIOW ; IO WAIT FOR LPTSO WAIT
1179 000612' 260 17 0 00 004104' NRDR ,(J1),ERRTN ; DATA MSG BLOCKING DUMP RSP
1180 000613' 254 00 0 00 002367' JRST SUCRTN ; THEN GO AWAY
1181
1182 ; IO WAIT FUNCTION FOR LPT
1183 000614' 260 17 0 00 001747' LPTIOW: $CALL SNDDMP ; DUMP OUTPUT BUFFERS
1184 000615' 260 17 0 00 001670' $CALL RCVCRS ; GET THE RESPONSE
1185 000616' 263 17 0 00 000000 $RET ; DUMP RESPONSE IS BLOCKED BY DATA MSG
1186 000617' 306 05 0 00 000001 CAIN A,NR.NOB ; A = RESULT RETURNED BY DUMP MSG
1187 000620' 254 00 0 00 002161' PJRST CPOPJ1 ; NO OUTPUT BUFFERED - DONE
1188 000621' 201 01 0 00 001750 MOVEI J1,^D1000 ; WAIT A SEC
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 20-1
NURD MAC 21-Mar-80 10:15 UMTOPR
1189 000622' 104 00 0 00 000167 DISMS
1190 000623' 254 00 0 00 000614' JRST LPTIOW ; TRY AGAIN
1191
1192 000624' LMOLVF: ; LOAD THE VFU
1193 000624' LMORVF: ; READ THE VFU NAME
1194 000624' LMOLTR: ; LOAD THE TRANSLATION RAM
1195 000624' LMORTR: ; READ THE TRANSLATION RAM NAME
1196 000624' 201 01 0 00 601340 ERRI DESX9,ERRTN ; INVALID OPERATION FOR DEVICE
1197 000625' 254 00 0 00 002312'
1198
1199 000626' 200 12 0 00 000003 LMOSTS: MOVE T2,J3 ; SET LPT STATUS
1200 000627' 260 17 0 00 002220' $CALL EFADR ; FIND IT
1201 000630' 200 10 0 00 000011 MOVE D,T1 ; SAVE PTR FOR A WHILE
1202 000631' 205 11 0 00 000040 MOVX T1,MO%EOF ; SET EOF ? - IF SO, MUST BE DONE 1ST
1203 000632' 616 11 0 10 000001 TDNN T1,1(D)
1204 000633' 254 00 0 00 000653' JRST LMOST1 ; NOPE
1205 ; YES - CONSTRUCT NULL DATA MSG
1206 000634' 260 17 0 00 002100' $CALL SBFINI ; INIT THE BUFFER
1207 000635' 400 12 0 00 000000 SETZ T2,
1208 000636' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; DATA MSG
1209 000637' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NO NURD FLAGS
1210 000640' 350 11 0 15 000041 AOS T1,NRDSEQ(R)
1211 000641' 405 11 0 00 000377 ANDI T1,377
1212 000642' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; SEQUENCE NO.
1213 000643' 201 11 0 00 000005 MOVEI T1,ND.ACK!ND.EOF
1214 000644' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; SET EOF AND ACK THIS MSG !!
1215 000645' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NO DATA SEGMENTS
1216 000646' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; SEND IT
1217 000647' 260 17 0 00 000752' $CALL SNDBUF
1218 000650' 254 00 0 00 002312' JRST ERRTN ; DEVICE WENT OFFLINE
1219 000651' 661 14 0 00 000040 TXO DS,MO%EOF ; SET EOF FLAGS, SINCE RESPONSE WON'T
1220 000652' 660 13 0 00 000400 TXO LS,NRD.EO ; INDICATE EOF STATE(NURD SPEC CROCK)
1221
1222 000653' 205 11 0 00 400000 LMOST1: MOVX T1,MO%LCP ; LOWER CASE ?
1223 000654' 616 11 0 10 000001 TDNN T1,1(D)
1224 000655' 254 00 0 00 000662' JRST LMOST2 ; NO
1225 ; SET LOWER CASE RAISE OFF
1226 000656' 201 05 0 00 000003 MOVEI A,FE.LCR ; FEATURE ID
1227 000657' 201 06 0 00 000000 MOVEI B,0 ; VALUE
1228 000660' 201 07 0 00 000000 MOVEI C,0 ; NO. BYTES IN VALUE(CLASS 0)
1229 000661' 260 17 0 00 002017' $CALL SETFTR ; ONLY SUCCESS WILL SET MO%LCP=1
1230
1231 000662' 200 06 0 10 000002 LMOST2: MOVE B,2(D) ; SET THE PAGE LIMIT ??
1232 000663' 316 06 0 00 004112' CAMN B,[-1]
1233 000664' 254 00 0 00 000670' JRST LMOST3 ; NO
1234 ; YES, B = VALUE (0 => TURN OFF)
1235 000665' 201 05 0 00 000211 MOVEI A,LP.PLE ; FEATURE ID
1236 000666' 201 07 0 00 000002 MOVEI C,2 ; NO. BYTES IN VALUE
1237 000667' 260 17 0 00 002017' $CALL SETFTR ; SET PAGE LIMIT ENFORCEMENT
1238
1239 000670' 205 11 0 00 000010 LMOST3: MOVX T1,MO%SER ; RESET SOFT ERROR
1240 000671' 616 11 0 10 000001 TDNN T1,1(D)
1241 000672' 254 00 0 00 000676' JRST LMOST4
1242 000673' 630 14 0 00 000011 TDZ DS,T1 ; RESET THE FLAG
1243 000674' 202 14 0 15 000037 MOVEM DS,NRDDST(R) ; UPDATE ENTRY STATE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 20-2
NURD MAC 21-Mar-80 10:15 UMTOPR
1244 000675' 260 17 0 00 001765' $CALL SNDRES ; ATTEMPT RESUME - CLEAR ERROR FLAGS
1245
1246 000676' 260 17 0 00 000614' LMOST4: $CALL LPTIOW ; WAIT TIL ALL STATE CHANGES PROCESSED
1247 000677' 260 17 0 00 003705' NRDR ,,ERRTN ; OH?
1248 000700' 254 00 0 00 002367' JRST SUCRTN ; AWRIGHT !
1249
1250 ; FLUSH LPT OUTPUT
1251 000701' 260 17 0 00 001760' LMOFLO: $CALL SNDAUC ; SEND ABORT UNTIL CLEAR
1252 000702' 260 17 0 00 001670' $CALL RCVCRS ; WAIT FOR CONTROL RESPONSE
1253 000703' 260 17 0 00 003705' NRDR ,,ERRTN ; DATA MSG BLOCKING CONTROL RSP
1254 000704' 302 05 0 00 000001 CAIE A,NR.NAB ; WHEN NOTHING TO ABORT CONTINUE ON
1255 JRST [ MOVEI J1,^D1000 ; WAIT A SECOND
1256 DISMS ; ZZZ
1257 000705' 254 00 0 00 004113' JRST LMOFLO] ; AND TRY AGAIN
1258 000706' 260 17 0 00 001757' $CALL SNDCAB ; CLEAR THE ABORT
1259 000707' 260 17 0 00 001670' $CALL RCVCRS ; WAIT FOR RESPONSE
1260 000710' 260 17 0 00 003705' NRDR ,,ERRTN ; DATA MSG BLOCKING CONTROL RSP
1261 000711' 302 05 0 00 000000 CAIE A,NR.ACC ; ABORT CLEARED?
1262 000712' 260 17 0 00 003705' NRDR ,,ERRTN ; NO, THEN PROTOCOL ERROR
1263 000713' 254 00 0 00 002367' JRST SUCRTN
1264
1265 ; SET DEVICE STATUS TO CURRENT STATE
1266 000714' 554 11 0 15 000036 SETDST: HLRZ T1,NRDSTS(R) ; GET CONDITIONS FROM INT LEVEL
1267 000715' 661 13 0 11 000000 TLO LS,(T1)
1268 000716' 603 13 0 00 000001 TXNE LS,NRD.OF
1269 000717' 665 14 0 00 000002 TXOA DS,MO%OL
1270 000720' 621 14 0 00 000002 TXZ DS,MO%OL
1271 000721' 332 00 0 15 000033 SKIPE NRMASR(R) ; CHECK NRM REPORTED PROBLEM
1272 000722' 661 14 0 00 000210 TXO DS,MO%FER!MO%SER ; ALWAYS FATAL
1273 000723' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 21
NURD MAC 21-Mar-80 10:15 UCLOSF
1274 SUBTTL UCLOSF
1275
1276 ; UCLOSF SIMULATES A CLOSF JFN FOR REMOTE DEVICES
1277 ; AC1 = FLAGS,,SUBSTITUTE JFN
1278 ; CLOSE DEVICE=> CLOSE NRD DATA LINK
1279 ; CLOSE NRM CONTROL LINK
1280 ; RELEASE JFNS
1281 ; FLUSH DATA BASE
1282
1283 000724' 260 17 0 00 002245' UCLOSF::$CALL SETUP2 ; SKIP TYPE JSYS
1284 000725' 254 00 0 00 002312' JRST ERRTN ; OOPS!
1285 000726' 260 17 0 00 002524' $CALL INTOFF ; FLUSH INTS
1286 000727' 474 05 0 00 000000 SETO A, ; ASSUME WE WILL BE SUCCESSFUL
1287 000730' 205 01 0 00 004000 MOVX J1,CZ%ABT ; ABORT THE JFNS ANYWAY
1288 000731' 540 01 0 15 000034 HRR J1,NRDJFN(R) ; GET NRD'S JFN
1289 000732' 104 00 0 00 000022 CLOSF ; CLOSE NRD LINK WITH FLAGS
1290 000733' 400 05 0 00 000000 SETZ A, ; ? AN ERROR
1291 000734' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; NOW TO RELEASE
1292 000735' 104 00 0 00 000023 RLJFN ; THE JFN
1293 000736' 400 05 0 00 000000 SETZ A, ; ??
1294 000737' 205 01 0 00 004000 MOVX J1,CZ%ABT ; NOW THE SAME TREATMENT FOR NRM
1295 000740' 540 01 0 15 000026 HRR J1,NRMJFN(R) ; GET THE JFN
1296 000741' 104 00 0 00 000022 CLOSF ; CLOSE NRM LINK
1297 000742' 400 05 0 00 000000 SETZ A, ; PECULIAR !
1298 000743' 200 01 0 15 000026 MOVE J1,NRMJFN(R) ; GET RID OF JFN
1299 000744' 104 00 0 00 000023 RLJFN ; ...
1300 000745' 400 05 0 00 000000 SETZ A, ; ?
1301 000746' 201 11 0 00 400000 MOVEI T1,UJ.FLS ; NOW TO GET RID OF DATABASE
1302 000747' 436 11 0 15 000023 IORM T1,RDSTS(R) ; SET THE FLUSH FLAG
1303 000750' 322 05 0 00 002312' JUMPE A,ERRTN ; ERROR OCCURED IF ZERO FLAG
1304 000751' 254 00 0 00 002367' JRST SUCRTN ; AHA !!
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 22
NURD MAC 21-Mar-80 10:15 NSP Support Functions
1305 SUBTTL NSP Support Functions
1306
1307 ; J1 = JFN FOR DEST
1308 ; CLOBBERED T1,J2,J3,J4
1309 000752' 205 02 0 00 441000 SNDBUF: MOVSI J2,(POINT 8) ; POINT TO THE BUFFER
1310 000753' 541 02 0 15 000361 HRRI J2,NRDSBF(R) ; IN NRDSBF
1311 000754' 201 03 0 15 000361 MOVEI J3,NRDSBF(R) ; CALC NO. BYTES
1312 000755' 275 03 1 15 000102 SUBI J3,@NRDSPT(R) ; J3 = -NO. WORDS
1313 000756' 240 03 0 00 000002 ASH J3,2 ; 4 BYTES PER WORD
1314 000757' 135 04 0 00 004116' LDB J4,[POINT 6,NRDSPT(R),5] ; DET PARTIAL WORD BYTES
1315 000760' 571 04 0 04 777734 HRREI J4,-^D36(J4) ; [0,-8,-16,-24,-32]
1316 000761' 240 04 0 00 777775 ASH J4,-3 ; [0,-1,-2,-3,-4]
1317 000762' 270 03 0 00 000004 ADD J3,J4 ; J3 = -<NO. BYTES IN MSG>
1318 000763' 325 03 0 00 002161' JUMPGE J3,CPOPJ1 ; FORGET IT
1319
1320 000764' 201 11 0 00 200000 SENDER: MOVEI T1,UJ.SSO ; FLUSH SUSPENDED SOUTR FLAG
1321 000765' 413 11 0 15 000023 ANDCAB T1,RDSTS(R) ; ...
1322 000766' 602 11 0 00 100000 TXNE T1,UJ.RCV ; CHECK FOR MSG ARRIVING VERY RECENTLY
1323 000767' 254 00 0 00 001017' JRST BRKS ; SEEMS SO
1324 000770' 104 00 0 00 000532 SOUTR ; SEND THE BUFFER
1325 000771' 320 16 0 00 000774' USOWTR: ERJMP SOERR ; SOUTR ERROR! - PROBABLY LINK BROKEN
1326 000772' 402 00 0 15 000103 SETZM NRDSCN(R) ; MAKE THE BUFFER EMPTY
1327 000773' 254 00 0 00 002161' PJRST CPOPJ1
1328
1329 000774' 261 17 0 00 000002 SOERR: PUSH P,J2 ; SAVE USER J2
1330 000775' 261 17 0 00 000003 PUSH P,J3 ; AND J3
1331 000776' 201 01 0 00 400000 MOVEI J1,.FHSLF ; SOUTR ERROR EXIT
1332 000777' 104 00 0 00 000012 GETER ; DETERMINE ERROR CONDITION
1333 001000' 261 17 0 00 000002 PUSH P,J2 ; SAVE ERROR CODE FOR LATER
1334 001001' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; CHECK CONDITION OF LINK
1335 001002' 201 02 0 00 000025 MOVEI J2,.MORLS
1336 001003' 104 00 0 00 000077 MTOPR
1337 001004' 607 03 0 00 014000 TXNN J3,MO%ABT!MO%SYN
1338 001005' 607 03 0 00 400000 TXNN J3,MO%CON
1339 001006' 624 13 0 00 000102 TXZA LS,NRD.CC!NRD.OC ; LINK BROKEN
1340 001007' 665 14 0 00 000010 TXOA DS,MO%SER ; SOFT ERROR?
1341 001010' 665 14 0 00 000200 TXOA DS,MO%FER ; BROKEN LINK IS FATAL
1342 001011' 334 00 0 00 000000 SKIPA
1343 001012' 621 14 0 00 000002 TXZ DS,MO%OL ; DON'T GET CONFUSED BY OFFLINE
1344 001013' 262 17 0 00 000001 POP P,J1 ; GET ERROR CODE TO J1
1345 001014' 262 17 0 00 000003 POP P,J3 ; RESTORE USER J3
1346 001015' 262 17 0 00 000002 POP P,J2 ; AND J2
1347 001016' 263 17 0 00 000000 $RET ; LEAVE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 23
NURD MAC 21-Mar-80 10:15 NSP Support Functions
1348 ; PROCESS RECEIVED DATA IN CASE DEVICE WENT OFFLINE
1349 ; NOTE: INTERRUPTS ARE NOT ENABLED UNTIL ALL INITIAL NRM EXCHANGES ARE COMPLETE
1350 ; AND DEVICE IS SUCCESSFULLY OPENED. THEREFORE(INVOKE IMPLACABLE LOGIC HERE)
1351 ; ANY NRM MESSAGES RECEIVED HERE MUST NECESSARILY BE ASYNCHRONOUS ERROR
1352 ; REPORTS - HENCE SHOULD ALWAYS TAKE NONSKIP RETURN FROM RCVNRM!
1353
1354 001017' 261 17 0 00 000005 BRKS: PUSH P,A ; SAVE A COUPLE OF REGS
1355 001020' 261 17 0 00 000006 PUSH P,B ; ...
1356
1357 001021' 260 17 0 00 001233' BR1: $CALL RCVNRM ; CHECK NRM DISASTERS
1358 001022' 260 17 0 00 004117' NRDR ,,BR3
1359 001023' 326 05 0 00 001021' JUMPN A,BR1 ; JUST IN CASE LOGIC FAILS
1360
1361 001024' 260 17 0 00 001300' BR2: $CALL RCVMSG ; PROCESS DATA LINK MSGS
1362 001025' 260 17 0 00 004117' NRDR ,,BR3
1363 001026' 327 05 0 00 001024' JUMPG A,BR2 ; GOBBLE ALL
1364 001027' 616 13 0 00 004125' TXNN LS,NRD.OF!NRD.PS ; DO WE STILL HAVE A DEVICE ?
1365 JRST [ POP P,B ; YES, RESTORE REGS
1366 POP P,A ; ...
1367 001030' 254 00 0 00 004126' JRST SENDER] ; EVERYTHING OK - TRY AGAIN
1368
1369 ; DEVICE FELL OVER - SUSPEND SOUTR
1370 001031' 262 17 0 00 000006 BR3: POP P,B ; RESTORE REGS
1371 001032' 262 17 0 00 000005 POP P,A ; ...
1372 001033' 402 00 0 15 000103 SETZM NRDSCN(R) ; FLUSH THE BUFFER
1373 001034' 201 01 0 00 600110 ERRI GJFX28,CPOPJ ; DEV OFFLINE - RET TO CALLER OF SNDBUF
1374 001035' 263 17 0 00 000000
1375
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 24
NURD MAC 21-Mar-80 10:15 NSP Support Functions
1376 ; SEND THE CURRENT BUFFER AS AN INTERRUPT MSG
1377 ; J1 = JFN FOR DEST
1378 001036' 201 04 0 15 000361 SNDINT: MOVEI J4,NRDSBF(R) ; CALC NO. BYTES
1379 001037' 275 04 1 15 000102 SUBI J4,@NRDSPT(R) ; J4 = -NO. WORDS
1380 001040' 240 04 0 00 000002 ASH J4,2 ; 4 BYTES PER WORD
1381 001041' 135 03 0 00 004116' LDB J3,[POINT 6,NRDSPT(R),5] ; DET PARTIAL WORD BYTES
1382 001042' 571 03 0 03 777734 HRREI J3,-^D36(J3) ; [0,-8,-16,-24,-32]
1383 001043' 240 03 0 00 777775 ASH J3,-3 ; [0,-1,-2,-3,-4]
1384 001044' 270 04 0 00 000003 ADD J4,J3 ; J4 = -<NO. BYTES IN MSG>
1385 001045' 325 04 0 00 002162' JUMPGE J4,CPOPJ ; FORGET IT
1386 001046' 217 00 0 00 000004 MOVMS J4 ; POSITIVE BYTE COUNT
1387 001047' 201 03 0 15 000361 MOVEI J3,NRDSBF(R) ; OUTPUT STRING PTR
1388 001050' 505 03 0 00 441000 HRLI J3,(POINT 8)
1389 001051' 201 02 0 00 000036 MOVEI J2,.MOSIM
1390 001052' 104 00 0 00 000077 MTOPR ; SEND THE BUFFER
1391 001053' 320 16 0 00 002162' ERJMP CPOPJ ; RETURN ON AN ERROR
1392 001054' 402 00 0 15 000103 SETZM NRDSCN(R) ; MAKE THE BUFFER EMPTY
1393 001055' 263 17 0 00 000000 $RET
1394
1395
1396 ; READ A MSG INTO NRDRBF
1397 ; J1 = JFN
1398 001056' 205 02 0 00 441000 RCVBUF: MOVSI J2,(POINT 8) ; BUILD BYTE POINTER
1399 001057' 541 02 0 15 000161 HRRI J2,NRDRBF(R) ; INTO BUFFER
1400 001060' 202 02 0 15 000100 MOVEM J2,NRDRPT(R) ; SAVE PTR FOR CALLER'S USE
1401 001061' 211 03 0 00 001000 MOVNI J3,NRDBSZ
1402 001062' 104 00 0 00 000531 SINR ; READ A MSG
1403 001063' 320 16 0 00 002162' ERJMP CPOPJ ; ?
1404 001064' 271 03 0 00 001000 ADDI J3,NRDBSZ ; CALC NO. BYTES READ
1405 001065' 202 03 0 15 000101 MOVEM J3,NRDRCN(R)
1406 001066' 254 00 0 00 002161' PJRST CPOPJ1
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 25
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1407 SUBTTL NURD Support Functions
1408
1409 ; SEND A SPECIFY-RESERVE MSG TO NRM
1410 ; CLOBBERS J1,J2,*J3,*J4,T1,T2
1411
1412 001067' 260 17 0 00 002100' DEVRSR: $CALL SBFINI ; INIT BUFFER FOR USE
1413 001070' 200 02 0 15 000102 MOVE J2,NRDSPT(R) ; PICK UP BYTE PTR
1414 001071' 201 11 0 00 000050 MOVEI T1,NRMSPC ; INSERT SPECIFY CODE
1415 001072' 136 11 0 00 000002 IDPB T1,J2 ; ...
1416 001073' 201 11 0 00 000001 MOVEI T1,SPCRES ; INSERT RESERVE SUBCODE
1417 001074' 136 11 0 00 000002 IDPB T1,J2 ; ...
1418 001075' 200 11 0 15 000027 MOVE T1,NRMID(R) ; PUT IN THE CONTROL ID
1419 001076' 136 11 0 00 000002 IDPB T1,J2 ; FIRST THE LOW BYTE
1420 001077' 242 11 0 00 777770 LSH T1,-10 ; THEN THE HIGH BYTE
1421 001100' 136 11 0 00 000002 IDPB T1,J2 ; ...
1422 001101' 201 11 0 00 000102 MOVEI T1,NRDLP ; ASSUME WE ARE RESERVING A LP
1423 001102' 606 13 0 00 000004 TXNN LS,NRD.LP ; IS IT AN LP ?
1424 001103' 201 11 0 00 000103 MOVEI T1,NRDCR ; NOPE, IT IS A CR, SO GUESSED WRONG
1425 001104' 136 11 0 00 000002 IDPB T1,J2 ; INSERT THE RESOURCE CODE
1426 001105' 201 12 0 00 000003 MOVEI T2,3 ; THERE ARE 3 CHARS IN
1427 001106' 136 12 0 00 000002 IDPB T2,J2 ; THE DEVICE NAME
1428 001107' 200 01 0 00 004131' MOVE J1,[POINT 7,RDDEV(R)] ; POINT AT THE DEVICE NAME
1429 001110' 134 11 0 00 000001 ILDB T1,J1 ; GET A CHARACTER OF NAME
1430 001111' 136 11 0 00 000002 IDPB T1,J2 ; DEV NAME CH
1431 001112' 367 12 0 00 001110' SOJG T2,.-2 ; DO EM ALL
1432 001113' 202 02 0 15 000102 MOVEM J2,NRDSPT(R) ; UPDATE THE BYTE PTR IN DATABASE
1433 001114' 200 01 0 15 000026 MOVE J1,NRMJFN(R)
1434 001115' 260 17 0 00 000752' $CALL SNDBUF ; SEND THE MSG TO NRM
1435 001116' 263 17 0 00 000000 $RET ; DEVICE WENT OFFLINE
1436 001117' 260 17 0 00 001206' $CALL RCVRSP ; WAIT FOR RESPONSE
1437 001120' 263 17 0 00 000000 $RET ; BAD RESPONSE - J1 = ERROR CODE
1438
1439 ; A = ORIGINAL REQUEST CODE - B = RESPONSE CODE
1440 001121' 302 05 0 00 000050 CAIE A,NRMSPC ; CHECK IF RIGHT RESPONSE
1441 001122' 260 17 0 00 004132' NRDR ,BOTX05,CPOPJ ; NRM NOT RESPONDING TO REQUEST
1442 001123' 305 06 0 00 000024 CAIGE B,^D20 ; CHECK RESPONSE CODE
1443 001124' 254 00 0 00 002161' PJRST CPOPJ1 ; OK
1444
1445 ; RESPONSE ERROR
1446 001125' 306 06 0 00 000024 RSPERR: CAIN B,^D20 ; ACCESS NOT PERMITTED
1447 001126' 254 00 0 00 004141' ERR DESX2,CPOPJ ; TERMINAL NOT AVAIL
1448 001127' 306 06 0 00 000031 CAIN B,^D25 ; RESOURCE NON-EXISTENT
1449 001130' 254 00 0 00 004143' ERR GJFX16,CPOPJ ; NO SUCH DEVICE
1450 001131' 306 06 0 00 000032 CAIN B,^D26 ; RESOURCE NOT AVAILABLE
1451 001132' 254 00 0 00 004145' ERR OPNX7,CPOPJ ; DEVICE ASSIGNED TO ANOTHER JOB
1452 001133' 201 01 0 00 602132 ERRI BOTX05,CPOPJ ; ELSE - PROTOCOL INITIALIZATION FAILED
1453 001134' 263 17 0 00 000000
1454
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 26
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1455 ; SEND AN ACCESS-OPEN TO NRM
1456 ; CLOBBERS: J1,J2,*J3,*J4,T1,T2
1457 001135' 260 17 0 00 002100' OPNDEV: $CALL SBFINI ; INIT BUFFER FOR USE
1458 001136' 200 02 0 15 000102 MOVE J2,NRDSPT(R) ; GET BYTE PTR
1459 001137' 201 11 0 00 000051 MOVEI T1,NRMACC ; INSERT ACCESS CODE
1460 001140' 136 11 0 00 000002 IDPB T1,J2 ; ...
1461 001141' 201 11 0 00 000002 MOVEI T1,ACCOPN ; PUT IN OPEN SUBCODE
1462 001142' 136 11 0 00 000002 IDPB T1,J2 ; ...
1463 001143' 200 11 0 15 000027 MOVE T1,NRMID(R) ; INSERT THE NRM ID
1464 001144' 136 11 0 00 000002 IDPB T1,J2 ; THE LOW BYTE
1465 001145' 242 11 0 00 777770 LSH T1,-10 ; AND
1466 001146' 136 11 0 00 000002 IDPB T1,J2 ; THE HIGH BYTE
1467 001147' 201 11 0 00 000002 MOVEI T1,URS ; SET THE SERVER PROCESS TYPE
1468 001150' 136 11 0 00 000002 IDPB T1,J2 ; ...
1469 001151' 400 11 0 00 000000 SETZ T1, ; NO SERVER DESCRIPTOR FIELD
1470 001152' 136 11 0 00 000002 IDPB T1,J2 ; ...
1471 001153' 201 11 0 00 000001 MOVEI T1,1 ; SERVER PROCESS OPTIONS FIELD LENGTH
1472 001154' 136 11 0 00 000002 IDPB T1,J2 ; ...
1473 001155' 200 11 0 15 000035 MOVE T1,NRDULA(R) ; SET LINK ADDR
1474 001156' 136 11 0 00 000002 IDPB T1,J2 ; ...
1475 001157' 202 02 0 15 000102 MOVEM J2,NRDSPT(R) ; UPDATE BYTE POINTER
1476 001160' 200 01 0 15 000026 MOVE J1,NRMJFN(R) ; GET NRM'S JFN
1477 001161' 260 17 0 00 000752' $CALL SNDBUF ; SEND THE MSG TO NRM
1478 001162' 263 17 0 00 000000 $RET ; DEVICE WENT OFFLINE
1479 001163' 260 17 0 00 001206' $CALL RCVRSP ; WAIT FOR RESPONSE
1480 001164' 263 17 0 00 000000 $RET ; BAD RESPONSE - J1 = ERROR CODE
1481
1482 ; A = ORIGINAL REQUEST CODE - B = RESPONSE CODE
1483 001165' 302 05 0 00 000051 CAIE A,NRMACC ; CHECK RIGHT RESPONSE
1484 001166' 260 17 0 00 004132' NRDR ,BOTX05,CPOPJ ; NRM NOT RESPONDING TO REQUEST
1485 001167' 301 06 0 00 000024 CAIL B,^D20 ; CHECK RESPONSE
1486 001170' 254 00 0 00 001125' JRST RSPERR ; ERROR RESPONSE
1487 001171' 200 11 0 15 000101 MOVE T1,NRDRCN(R) ; RESPONSE OK - CHECK BULA RETURNED
1488 001172' 134 12 0 15 000100 ILDB T2,NRDRPT(R)
1489 001173' 301 11 0 00 000004 CAIL T1,4 ; MUST BE AT LEAST 4 BYTES LEFT
1490 001174' 305 12 0 00 000003 CAIGE T2,3 ; FIELD MUST BE AT LEAST 3 BYTES LONG
1491 001175' 260 17 0 00 004132' NRDR ,BOTX05,CPOPJ ; GARBAGE
1492 001176' 133 00 0 15 000100 IBP NRDRPT(R) ; SKIP BTN
1493 001177' 133 00 0 15 000100 IBP NRDRPT(R)
1494 001200' 134 11 0 15 000100 ILDB T1,NRDRPT(R) ; GET BULA
1495 001201' 211 12 0 00 000004 MOVNI T2,4
1496 001202' 272 12 0 15 000101 ADDM T2,NRDRCN(R) ; FOR DEBUGGING
1497 001203' 312 11 0 15 000035 CAME T1,NRDULA(R) ; BETTER BE US
1498 001204' 260 17 0 00 004132' NRDR ,BOTX05,CPOPJ ; LOSER
1499 001205' 254 00 0 00 002161' PJRST CPOPJ1 ; OK
1500
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 27
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1501 ; RECEIVE A RESPONSE MSG FROM NRM
1502 001206' 260 17 0 00 003532' RCVRSP: $CALL SAV4J ; SAVE J1-J4
1503 001207' 201 01 0 00 000012 MOVEI J1,NRDTMO ; SET TIMEOUT THING
1504 001210' 202 01 0 15 000047 MOVEM J1,NRDTMC(R) ; ...
1505 001211' 260 17 0 00 001233' RCVRS1: $CALL RCVNRM ; GO GET A MSG FROM NRM
1506 001212' 260 17 0 00 004147' NRDR ,DCNX11,STASHJ ; LINK ABORTED
1507 JUMPE A,[ SOSGE NRDTMC(R) ; HAVE WE MESSED LONG ENUF ?
1508 NRDR .,BOTX05,STASHJ ; YES, SO GIVE UP
1509 MOVEI J1,^D500 ; NOTHING, SO WAIT
1510 DISMS ; ...
1511 001213' 322 05 0 00 004164' JRST RCVRS1] ; CHECK AGAIN
1512 001214' 200 04 0 15 000101 MOVE J4,NRDRCN(R) ; CHECK MINIMUM LENGTH
1513 001215' 301 04 0 00 000005 CAIL J4,5 ; FOR RESPONSE MSG
1514 001216' 302 05 0 00 000047 CAIE A,NRMRSP ; CHECK RIGHT MSG TYPE
1515 001217' 260 17 0 00 004171' NRDR ,BOTX05,STASHJ ; THINGS ARE IN A BAD WAY
1516 001220' 200 05 0 00 000006 MOVE A,B ; A = ORIGINAL REQUEST CODE
1517 001221' 260 17 0 00 001274' $CALL GETWRD ; GET CONTROL-ID
1518 001222' 312 03 0 15 000027 CAME J3,NRMID(R) ; CHECK THAT IT IS FOR THIS FORK
1519 001223' 260 17 0 00 004200' NRDR ,,STASHJ ; WRONG FORK ???
1520 001224' 260 17 0 00 001274' $CALL GETWRD ; GET RESPONSE CODE
1521 001225' 200 06 0 00 000003 MOVE B,J3 ; AND SAVE IN B
1522 001226' 211 04 0 00 000006 MOVNI J4,6 ; ADJUST BUFFER COUNT
1523 001227' 272 04 0 15 000101 ADDM J4,NRDRCN(R) ; ...
1524 001230' 254 00 0 00 002161' PJRST CPOPJ1 ; RETURN A = ORIGINAL REQUEST CODE
1525 ; B = RESPONSE CODE
1526 ; NRDRPT POINTING AT OPT DATA
1527
1528 ; STASHJ
1529 ; THIS EXIT ROUTINE ASSUMES THE STACK HAS BEEN MOST RECENTLY CHANGED
1530 ; BY A CALL TO SAV4J. IT STORES THE CURRENT J1 INTO SAVED J1, SO THE
1531 ; CURRENT J1 WILL BE RETURNED TO CALLER.
1532 001231' 202 01 0 17 777774 STASHJ: MOVEM J1,-4(P) ; OVERWRITE STORED J1
1533 001232' 263 17 0 00 000000 $RET ; AND LEAVE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 28
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1534 001233' 260 17 0 00 003532' RCVNRM: $CALL SAV4J ; RECEIVE A MSG FROM NRM
1535 001234' 200 01 0 15 000026 RCVN0: MOVE J1,NRMJFN(R) ; CHECK FOR INPUT
1536 001235' 104 00 0 00 000102 SIBE
1537 001236' 254 00 0 00 001246' JRST RCVN1 ; SOMETHING
1538 001237' 403 05 0 00 000006 SETZB A,B ; RET NOTHING
1539 001240' 201 02 0 00 000025 MOVX J2,.MORLS ; READ LINK STATUS
1540 001241' 104 00 0 00 000077 MTOPR
1541 001242' 320 16 0 00 001231' ERJMP STASHJ ; ERROR RETURN
1542 001243' 603 03 0 00 400000 TXNE J3,MO%CON ; ARE WE CONNECTED STILL?
1543 001244' 350 00 0 17 000000 AOS (P) ; YES, SET FOR SUC RETURN
1544 001245' 263 17 0 00 000000 $RET ; GO BACK
1545
1546 001246' 260 17 0 00 001056' RCVN1: $CALL RCVBUF ; RECEIVE THE MSG
1547 001247' 254 00 0 00 001231' PJRST STASHJ ; READ ERROR
1548 001250' 134 05 0 15 000100 ILDB A,NRDRPT(R) ; A = MSG FUNCTION(BYTE 1)
1549 001251' 134 06 0 15 000100 ILDB B,NRDRPT(R) ; B = SUBCODE(BYTE 2)
1550 001252' 306 05 0 00 000053 CAIN A,NRMSTA ; SPECIAL CHECK FOR STATUS-REPORT
1551 001253' 302 06 0 00 000002 CAIE B,STAREP
1552 001254' 254 00 0 00 002161' PJRST CPOPJ1 ; NOPE - LET CALLER INTERPRET THE MSG
1553
1554 ; STATUS-REPORT
1555 001255' 260 17 0 00 001274' $CALL GETWRD ; GET CONTROL-ID
1556 001256' 312 03 0 15 000027 CAME J3,NRMID(R) ; IS IT US ??
1557 001257' 254 00 0 00 004206' ERR DCNX8,STASHJ ; NO !
1558 001260' 133 00 0 15 000100 IBP NRDRPT(R) ; SKIP STSTYPE FIELD
1559 001261' 134 03 0 15 000100 ILDB J3,NRDRPT(R) ; GET COUNT OF STSDAT FIELD
1560 001262' 302 03 0 00 000004 CAIE J3,4 ; MUST BE 4
1561 001263' 254 00 0 00 004206' ERR DCNX8,STASHJ
1562 001264' 260 17 0 00 001274' $CALL GETWRD ; GET J3 = STATUS ASSOC WITH THE DEVICE
1563 001265' 202 03 0 15 000032 MOVEM J3,NRMAST(R)
1564 001266' 260 17 0 00 001274' $CALL GETWRD ; GET J3 = NRM DEVICE STATUS
1565 001267' 202 03 0 15 000033 MOVEM J3,NRMASR(R)
1566 001270' 322 03 0 00 001234' JUMPE J3,RCVN0
1567 001271' 665 14 0 00 000210 TXOA DS,MO%FER!MO%SER
1568 001272' 201 01 0 00 602025 ERRI DCNX8 ; MSG FORMAT ERROR
1569 001273' 254 00 0 00 001231' PJRST STASHJ
1570
1571 001274' 134 03 0 15 000100 GETWRD: ILDB J3,NRDRPT(R) ; GET WORD FROM NRDRBF
1572 001275' 134 04 0 15 000100 ILDB J4,NRDRPT(R)
1573 001276' 137 04 0 00 004210' DPB J4,[POINT 8,J3,27]
1574 001277' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 29
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1575 ; GENERAL MSG RECEIVER - PROCESSES ALL BUT DATA MSGS
1576 001300' 260 17 0 00 003532' RCVMSG: $CALL SAV4J
1577 001301' 201 05 0 00 100000 MOVEI A,UJ.RCV ; FLUSH DATA RECEIVED FALG
1578 001302' 412 05 0 15 000023 ANDCAM A,RDSTS(R)
1579 001303' 474 05 0 00 000000 SETO A, ; INIT LAST MSG READ FLAG
1580 001304' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; CHECK FOR INPUT
1581 001305' 104 00 0 00 000102 SIBE
1582 001306' 254 00 0 00 001316' JRST RCVM1 ; SOMETHING THERE
1583 001307' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; SEE IF LINK STILL CONNECTED
1584 001310' 201 02 0 00 000025 MOVX J2,.MORLS ; READ LINK STATUS
1585 001311' 104 00 0 00 000077 MTOPR
1586 001312' 320 16 0 00 001231' ERJMP STASHJ ; ERROR RETURN
1587 001313' 607 03 0 00 400000 TXNN J3,MO%CON ; ARE WE CONNECTED STILL?
1588 001314' 254 00 0 00 001231' PJRST STASHJ ; NO,SO GIVE ERROR RETURN
1589 001315' 254 00 0 00 002161' PJRST CPOPJ1 ; YES, BUT NO DATA AT PRESENT
1590
1591 001316' 200 01 0 15 000034 RCVM1: MOVE J1,NRDJFN(R) ; SET APPROP JFN
1592 001317' 260 17 0 00 001056' PUSHJ P,RCVBUF ; RECEIVE IT!
1593 001320' 254 00 0 00 001231' PJRST STASHJ ; READ ERROR
1594 001321' 332 00 0 00 000002' SKIPE DEBUGR
1595 001322' 260 17 0 00 002702' PUSHJ P,RCVTYP
1596
1597 ; CHECK TYPE
1598 001323' 134 05 0 15 000100 ILDB A,NRDRPT(R) ; GET NURD MSG TYPE BYTE
1599 001324' 301 05 0 00 000006 CAIL A,NM.OTR ; CHECK RANGE
1600 001325' 201 05 0 00 000006 MOVEI A,NM.OTR ; OOPS, MAP TO KNOWN ILLEGAL VALUE
1601 001326' 260 17 1 05 001332' $CALL @RCVMT(A) ; DO THE REQUESTED THING
1602 001327' 332 00 0 00 000005 SKIPE A ; IF NOT A DATA MESSAGE THEN
1603 001330' 402 00 0 15 000101 SETZM NRDRCN(R) ; ZERO THE MESSAGE LENGTH
1604 001331' 254 00 0 00 002161' PJRST CPOPJ1 ; GET OUT
1605
1606 001332' 000000 002162' RCVMT: CPOPJ ; DATA MSG
1607 001333' 000000 001341' ATTMSG ; ATTENTION MSG
1608 001334' 000000 001462' FTRMSG ; FEATURES MSG
1609 001335' 000000 001627' CTLMSG ; CONTROL MSG
1610 001336' 000000 004216' [NRDR .,,CPOPJ] ; ALERT MSG - ILLEGAL HERE
1611 001337' 000000 001637' CAPMSG ; CAPABILITIES MSG
1612 001340' 000000 004225' [NRDR .,IOX5,CPOPJ] ; SOMEONE CHANGING REMOTE NURD
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 30
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1613 ; ATTENTION MSG FORMAT:
1614 ; <NM.ATT><NURD FLGS><LAST SEQ NO.><ATT. REASON CODE><DEVSTS 1-3><PAGE CNT 2>
1615 ;
1616 ; PROCESS AN ATTENTION MSG IN NRDRBF. NRDRPT IS POINTING TO NURD MSG TYPE BYTE
1617 001341' 133 00 0 15 000100 ATTMSG: IBP NRDRPT(R) ; SKIP NURD MSG FLAGS
1618 001342' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; GET SEQ. NO.
1619 001343' 202 01 0 15 000051 MOVEM J1,NRDASQ(R) ; SAVE AS INDICATOR OF STATUS CURRENCY
1620 001344' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; ATTENTION REASON CODE
1621 001345' 202 01 0 15 000050 MOVEM J1,NRDATT(R) ; SAVE FOR POSTERITY
1622 001346' 303 01 0 00 000005 CAILE J1,N.APLE ; CHECK LIMIT
1623 001347' 400 01 0 00 000000 SETZ J1, ; A BAD ONE
1624 001350' 254 00 1 01 001351' $CALLR @.+1(J1) ; DISPATCH TO REASON CODE PROCESSOR
1625 001351' 000000 004233' [NRDR .,,ATTM] ; BAD CODE
1626 001352' 000000 001357' ATTM ; STATUS CHANGE
1627 001353' 000000 001357' ATTM ; DATA ACKNOWLEDGE
1628 001354' 000000 001357' ATTM ; REQUESTED
1629 [ TXO LS,NRD.AB ; ABORT COMPLETE
1630 TXZ DS,MO%IOP ; CLEAR IO IN PROGRESS
1631 001355' 000000 004234' JRST ATTM]
1632 [ TXO LS,NRD.PL ; PAGE LIMIT EXCEEDED
1633 TXO DS,MO%LPC+MO%SER ; ...
1634 001356' 000000 004240' JRST ATTM]
1635
1636 001357' 134 01 0 15 000100 ATTM: ILDB J1,NRDRPT(R) ; BYTE 1 FLAGS
1637 001360' 602 01 0 00 000001 TXNE J1,NA.FAT ; FATAL ERROR ?
1638 001361' 664 13 0 00 010000 TXOA LS,NRD.FE
1639 001362' 624 13 0 00 010000 TXZA LS,NRD.FE
1640 001363' 665 14 0 00 000200 TXOA DS,MO%FER
1641 001364' 621 14 0 00 000200 TXZ DS,MO%FER
1642 001365' 602 01 0 00 000006 TXNE J1,NA.OFL!NA.PAU ; DEVICE OFFLINE OR PAUSED ?
1643 001366' 665 13 0 00 000001 TXOA LS,NRD.OF
1644 001367' 625 13 0 00 000001 TXZA LS,NRD.OF
1645 001370' 665 14 0 00 000002 TXOA DS,MO%OL
1646 001371' 621 14 0 00 000002 TXZ DS,MO%OL
1647 001372' 602 01 0 00 000004 TXNE J1,NA.PAU ; DEVICE PAUSED ?
1648 001373' 664 13 0 00 020000 TXOA LS,NRD.PS
1649 001374' 624 13 0 00 020000 TXZA LS,NRD.PS
1650 001375' 621 14 0 00 000020 TXZ DS,MO%IOP ; FLUSH IO IN PROGRESS
1651 001376' 606 13 0 00 000004 TXNN LS,NRD.LP ; SKIP IF LPT
1652 001377' 254 00 0 00 001421' JRST ATTMC ; TIS A CDR
1653
1654 ; LPT
1655 001400' 602 01 0 00 000170 TXNE J1,NA.OMD!NA.JAM!NA.OOF!NA.NOE
1656 001401' 661 14 0 00 000004 TXO DS,MO%HE
1657 001402' 606 01 0 00 000200 TXNN J1,200 ; CHECK EXTENSION
1658 001403' 254 00 0 00 001455' JRST ATTMX
1659 001404' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; BYTE 2 FLAGS
1660 001405' 602 01 0 00 000004 TXNE J1,NA.DTO ; DEVICE TIME OUT
1661 001406' 664 13 0 00 040000 TXOA LS,NRD.TO
1662 001407' 624 13 0 00 040000 TXZA LS,NRD.TO
1663 001410' 661 14 0 00 000200 TXO DS,MO%FER
1664 001411' 602 01 0 00 000073 TXNE J1,NA.OUF!NA.NAC!NA.RNA!NA.PSE!NA.INK
1665 001412' 661 14 0 00 000004 TXO DS,MO%HE
1666 001413' 606 01 0 00 000200 TXNN J1,200 ; CHECK EXTENSION
1667 001414' 254 00 0 00 001455' JRST ATTMX
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 30-1
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1668 001415' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; BYTE 3 FLAGS
1669 001416' 602 01 0 00 000001 TXNE J1,NA.OVP ; OVERPRINT
1670 001417' 661 14 0 00 000004 TXO DS,MO%HE
1671 001420' 254 00 0 00 001455' JRST ATTMX
1672
1673 ; CDR
1674 001421' 602 01 0 00 000010 ATTMC: TXNE J1,NA.OMD ; OUT OF MEDIA
1675 001422' 664 14 0 00 000010 TXOA DS,MO%HEM
1676 001423' 620 14 0 00 000010 TXZ DS,MO%HEM
1677 001424' 602 01 0 00 000160 TXNE J1,NA.JAM!NA.OOF!NA.NOE ; MISC GARBAGE
1678 001425' 661 14 0 00 000004 TXO DS,MO%HE
1679 001426' 606 01 0 00 000200 TXNN J1,200 ; CHECK EXTENSION
1680 001427' 254 00 0 00 001455' JRST ATTMX
1681 001430' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; BYTE 2 FLAGS
1682 001431' 602 01 0 00 000001 TXNE J1,NA.OUF ; OUTPUT FULL
1683 001432' 664 14 0 00 000020 TXOA DS,MO%SFL
1684 001433' 620 14 0 00 000020 TXZ DS,MO%SFL
1685 001434' 602 01 0 00 000012 TXNE J1,NA.NAC!NA.RNA
1686 001435' 661 14 0 00 000004 TXO DS,MO%HE
1687 001436' 602 01 0 00 000004 TXNE J1,NA.DTO ; DEVICE TIME OUT
1688 001437' 664 13 0 00 040000 TXOA LS,NRD.TO
1689 001440' 624 13 0 00 040000 TXZA LS,NRD.TO
1690 001441' 661 14 0 00 000200 TXO DS,MO%FER
1691 001442' 602 01 0 00 000020 TXNE J1,NA.PF ; PICK FAILURE
1692 001443' 664 14 0 00 000002 TXOA DS,MO%PCK
1693 001444' 620 14 0 00 000002 TXZ DS,MO%PCK
1694 001445' 602 01 0 00 000140 TXNE J1,NA.REG!NA.RAP ; MISC MUNG
1695 001446' 661 14 0 00 000200 TXO DS,MO%FER
1696 001447' 606 01 0 00 000200 TXNN J1,200 ; CHECK EXTENSION
1697 001450' 254 00 0 00 001455' JRST ATTMX
1698 001451' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; BYTE 3 FLAGS
1699 001452' 602 01 0 00 000001 TXNE J1,NA.IVP ; INVALID PUNCH ERROR
1700 001453' 664 14 0 00 000001 TXOA DS,MO%RCK
1701 001454' 620 14 0 00 000001 TXZ DS,MO%RCK
1702
1703 ; DONE WITH DEVICE STATUS
1704 001455' 134 01 0 15 000100 ATTMX: ILDB J1,NRDRPT(R) ; GET LOW PAGE COUNT
1705 001456' 134 02 0 15 000100 ILDB J2,NRDRPT(R) ; GET HIGH PAGE COUNT
1706 001457' 137 02 0 00 004243' DPB J2,[POINT 8,J1,27]
1707 001460' 202 01 0 15 000052 MOVEM J1,NRDLPC(R) ; SAVE COUNT FOR THIS UPDATE
1708 001461' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 31
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1709 ; FEATURES MESSAGE FORMAT:
1710 ; <NM.FTR><NURD FLAGS><SEQ NO.><NO. FEATURE SPECS>[...<FEATURE SPEC>...]
1711 ;
1712 ; FEATURE SPEC FORMAT:
1713 ; <FEATURE ID><FLAGS><CLASS><RESPONSE>[<VALUE>]
1714 ; VALUE FORMAT:
1715 ; CLASS 0: <VALUE> (LSB)
1716 ; CLASS 1: <CNT><CNT BYTES> (LEAST SIGNIFICANT BYTE 1ST)
1717
1718 001462' 260 17 0 00 003600' FTRMSG: $CALL SAV4
1719 001463' 133 00 0 15 000100 IBP NRDRPT(R) ; SKIP NURD FLAGS
1720 001464' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; GET SEQ NO.
1721 001465' 202 01 0 15 000160 MOVEM J1,NRDFSQ(R)
1722 001466' 134 07 0 15 000100 ILDB C,NRDRPT(R) ; GET NO. FEATURE SPECS
1723 001467' 200 10 0 15 000101 MOVE D,NRDRCN(R) ; MSG LENGTH
1724 001470' 275 10 0 00 000003 SUBI D,3 ; SUBSTRACT MSG OVERHEAD
1725 001471' 321 10 0 00 004251' JUMPL D,[NRDR .,,CPOPJ] ; PRETTY SHORT FEATURE MSG
1726
1727 ; PROCESS NEXT FEATURE SPEC
1728 001472' 361 07 0 00 001605' FTRM1: SOJL C,FTRXIT
1729 001473' 361 10 0 00 004257' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1730 001474' 134 05 0 15 000100 ILDB A,NRDRPT(R) ; GET FEATURE ID
1731 001475' 303 05 0 00 000011 CAILE A,FE.DWD
1732 001476' 254 00 0 00 001502' JRST FTRM2
1733 001477' 242 05 0 00 000001 LSH A,1 ; CALC CELL LOC
1734 001500' 271 05 0 15 000105 ADDI A,NRDFET(R)
1735 001501' 254 00 0 00 001534' JRST FTRM6
1736
1737 ; NOT A COMMON FEATURE - TRY DEVICE SPECIFIC
1738 001502' 606 13 0 00 000004 FTRM2: TXNN LS,NRD.LP
1739 001503' 254 00 0 00 001513' JRST FTRM3 ; CDR
1740 001504' 301 05 0 00 000202 CAIL A,LP.HT ; LPT
1741 001505' 303 05 0 00 000212 CAILE A,LP.OPV
1742 001506' 254 00 0 00 001521' JRST FTRM4 ; NOT LPT
1743 001507' 275 05 0 00 000202 SUBI A,LP.HT
1744 001510' 242 05 0 00 000001 LSH A,1
1745 001511' 271 05 0 15 000131 ADDI A,NRDLPF(R)
1746 001512' 254 00 0 00 001534' JRST FTRM6
1747
1748 001513' 302 05 0 00 000202 FTRM3: CAIE A,CD.CWD ; CDR
1749 001514' 254 00 0 00 001521' JRST FTRM4 ; NOT CDR
1750 001515' 275 05 0 00 000202 SUBI A,CD.CWD
1751 001516' 242 05 0 00 000001 LSH A,1
1752 001517' 271 05 0 15 000153 ADDI A,NRDCRF(R)
1753 001520' 254 00 0 00 001534' JRST FTRM6
1754
1755 001521' 302 05 0 00 000377 FTRM4: CAIE A,FE.ALL ; ALLNESS ?
1756 001522' 254 00 0 00 001530' JRST FTRM5 ; NO - A MYSTERY FID
1757 001523' 133 00 0 15 000100 IBP NRDRPT(R) ; FLUSH FLAGS
1758 001524' 133 00 0 15 000100 IBP NRDRPT(R) ; FLUSH CLASS
1759 001525' 133 00 0 15 000100 IBP NRDRPT(R) ; FLUSH RESPONSE
1760 001526' 275 10 0 00 000003 SUBI D,3
1761 001527' 254 00 0 00 001472' JRST FTRM1
1762
1763 001530' 402 00 0 15 000155 FTRM5: SETZM NRDUFE(R) ; UNKNOWN FID
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 31-1
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1764 001531' 137 05 0 00 004260' DPB A,[POINT 8,NRDUFE(R),7] ; SAVE ID FOR LAUGHS
1765 001532' 201 05 0 15 000155 MOVEI A,NRDUFE(R)
1766 001533' 334 00 0 00 000000 SKIPA
1767
1768 001534' 402 00 0 05 000000 FTRM6: SETZM (A) ; A = PTR TO FEATURE CELL
1769 001535' 402 00 0 05 000001 SETZM 1(A) ; INIT THE CELL AND LOAD NEW STUFF
1770 001536' 201 01 0 00 000001 MOVEI J1,1
1771 001537' 137 01 0 00 001617' DPB J1,FRDP ; SET FEATURE READ FLAG
1772 001540' 361 10 0 00 004266' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1773 001541' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; GET FLAGS
1774 001542' 137 01 0 00 001624' DPB J1,FFLP
1775 001543' 361 10 0 00 004274' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1776 001544' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; GET CLASS
1777 001545' 137 01 0 00 001625' DPB J1,FCLP
1778 001546' 361 10 0 00 004302' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1779 001547' 134 02 0 15 000100 ILDB J2,NRDRPT(R) ; GET RESPONSE
1780 001550' 137 02 0 00 001626' DPB J2,FRSP
1781 001551' 326 02 0 00 001472' JUMPN J2,FTRM1 ; NON-ZERO RESPONSE(ERROR)==> NO VALUE
1782 ; EXTRACT THE FEATURE VALUE
1783 001552' 361 10 0 00 004310' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1784 001553' 134 06 0 15 000100 ILDB B,NRDRPT(R) ; GET LOW VALUE
1785 001554' 322 01 0 00 001563' JUMPE J1,FTRM7 ; CLASS 0=> B = VALUE
1786 001555' 361 10 0 00 004316' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1787 001556' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; CLASS 1=> B = CNT, GET J1 = LOW VALUE
1788 001557' 250 06 0 00 000001 EXCH B,J1 ; B = LOW VALUE, J1 = CNT
1789 001560' 137 01 0 00 001620' DPB J1,FLNP ; SAVE LENGTH OF VALUE
1790 001561' 303 01 0 00 000002 CAILE J1,2
1791 001562' 254 00 0 00 001571' JRST FTRM8 ; STRING
1792
1793 001563' 137 06 0 00 001622' FTRM7: DPB B,FVLPL ; DEP LOW VALUE
1794 001564' 363 01 0 00 001472' SOJLE J1,FTRM1 ; COUNT THE BYTES
1795 001565' 361 10 0 00 004324' SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1796 001566' 134 06 0 15 000100 ILDB B,NRDRPT(R) ; GET HIGH VALUE
1797 001567' 137 06 0 00 001623' DPB B,FVLPH
1798 001570' 254 00 0 00 001472' JRST FTRM1
1799
1800 001571' 271 01 0 00 000003 FTRM8: ADDI J1,3 ; ROUND NUMBER OF BYTES TO FULL WORD
1801 001572' 242 01 0 00 777776 LSH J1,-2 ; AND GET NUMBER OF WORDS NEEDED
1802 001573' 260 17 1 00 400137 $CALL M%GMEM ; GET THE MEMORY
1803 001574' 250 01 0 00 000002 EXCH J1,J2 ; J1 = ADDR, J2 = LENGTH
1804 001575' 542 01 0 05 000000 HRRM J1,(A) ; SAVE PTR TO STRING
1805 001576' 505 01 0 00 441000 HRLI J1,(POINT 8)
1806 001577' 254 00 0 00 001602' JRST FTRM9A
1807
1808 001600' 361 10 0 00 004332' FTRM9: SOJL D,[NRDR .,,FTRXIT] ; MSG TOO SHORT
1809 001601' 134 06 0 15 000100 ILDB B,NRDRPT(R) ; GET NEXT VALUE BYTE
1810 001602' 136 06 0 00 000001 FTRM9A: IDPB B,J1 ; STUFF IT
1811 001603' 367 02 0 00 001600' SOJG J2,FTRM9
1812 001604' 254 00 0 00 001472' JRST FTRM1
1813
1814 ; SPECIAL FEATURE VALUE CHECKS
1815 001605' 201 05 0 15 000113 FTRXIT: MOVEI A,NFELCR(R) ; CHECK FE.LCR=> MO%LCP STATE
1816 001606' 135 01 0 00 001617' LDB J1,FRDP ; CHECK IF DEFINED YET
1817 001607' 322 01 0 00 002162' JUMPE J1,CPOPJ ; NOT READ YET
1818 001610' 135 01 0 00 001626' LDB J1,FRSP ; CHECK RESPONSE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 31-2
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1819 001611' 326 01 0 00 002162' JUMPN J1,CPOPJ ; ERROR RSP INVALIDATES FEATURE VALUE,
1820 ; PROBABLY=> VALUE CAN'T BE CHANGED,
1821 ; OR DOESN'T EXIST=> UPPER CASE ONLY
1822 001612' 135 01 0 00 001621' LDB J1,FVLP ; GET THE FEATURE VALUE
1823 001613' 332 00 0 00 000001 SKIPE J1
1824 001614' 625 14 0 00 400000 TXZA DS,MO%LCP ; UPPER CASE
1825 001615' 661 14 0 00 400000 TXO DS,MO%LCP ; LOWER CASE
1826 001616' 263 17 0 00 000000 $RET
1827
1828
1829 001617' 33 01 0 05 000000 FRDP: POINT 1,(A),8 ; FEATURE READ FLAG
1830 001620' 22 10 0 05 000000 FLNP: POINT 8,(A),17 ; FEATURE VALUE LENGTH
1831 001621' 00 22 0 05 000000 FVLP: POINT 18,(A),35 ; FEATURE VALUE
1832 001622' 00 10 0 05 000000 FVLPL: POINT 8,(A),35 ; LOW FEATURE VALUE
1833 001623' 10 10 0 05 000000 FVLPH: POINT 8,(A),27 ; HIGH FEATURE VALUE
1834 001624' 33 11 0 05 000001 FFLP: POINT 9,1(A),8 ; FEATURE FLAGS
1835 001625' 22 11 0 05 000001 FCLP: POINT 9,1(A),17 ; FEATURE CLASS
1836 001626' 00 22 0 05 000001 FRSP: POINT 18,1(A),35 ; FEATURE RESPONSE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 32
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1837 ; CONTROL MESSAGE FORMAT:
1838 ; <NM.CTL><NURD FLAGS><SEQ NO.><COMMAND><RESPONSE>
1839
1840 001627' 133 00 0 15 000100 CTLMSG: IBP NRDRPT(R) ; SKIP NURD FLAGS
1841 001630' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; SEQ NO.
1842 001631' 506 01 0 15 000053 HRLM J1,NRDCSQ(R) ; SAVE
1843 001632' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; COMMAND
1844 001633' 206 01 0 15 000054 MOVSM J1,NRDCCR(R)
1845 001634' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; RESPONSE
1846 001635' 542 01 0 15 000054 HRRM J1,NRDCCR(R) ; SAVE IT TOO
1847 001636' 263 17 0 00 000000 $RET
1848
1849
1850 ; CAPABILITIES MESSAGE FORMAT:
1851 ; <NM.CAP><NURD FLAGS><LIST BYTE COUNT>< COUNT FID'S>
1852
1853 001637' 133 00 0 15 000100 CAPMSG: IBP NRDRPT(R) ; SKIP NURD FLAGS
1854 001640' 134 01 0 15 000100 ILDB J1,NRDRPT(R) ; BYTE COUNT
1855 001641' 350 00 0 00 000001 AOS J1 ; TOTAL LIST LENGTH
1856 001642' 271 01 0 00 000003 ADDI J1,3 ; CALC NUMBER OF WORDS NEEDED
1857 001643' 242 01 0 00 777776 LSH J1,-2 ; ...
1858 001644' 554 02 0 15 000055 HLRZ J2,NRDCAP(R) ; CHECK FOR PREVIOUS LIST
1859 001645' 322 02 0 00 001655' JUMPE J2,CAPM1 ; VIRGIN
1860 001646' 317 01 0 00 000002 CAMG J1,J2 ; IS IT BIG ENOUGH ?
1861 001647' 254 00 0 00 001660' JRST CAPM2 ; OK
1862 001650' 261 17 0 00 000001 PUSH P,J1 ; TOO SHORT - SAVE NEW LENGTH
1863 001651' 200 01 0 00 000002 MOVE J1,J2 ; GET OLD LENGTH
1864 001652' 550 02 0 15 000055 HRRZ J2,NRDCAP(R) ; AND ADDRESS
1865 001653' 260 17 1 00 400140 $CALL M%RMEM ; SEND IT BACK
1866 001654' 262 17 0 00 000001 POP P,J1 ; GET NEW LENGTH BACK
1867
1868 001655' 260 17 1 00 400137 CAPM1: $CALL M%GMEM ; GET A NEW BLOCK
1869 001656' 504 02 0 00 000001 HRL J2,J1 ; J2 = SIZE,,ADDR
1870 001657' 202 02 0 15 000055 MOVEM J2,NRDCAP(R) ; SAVE IT
1871
1872 001660' 135 02 0 15 000100 CAPM2: LDB J2,NRDRPT(R) ; GET NUMBER OF BYTES AGAIN
1873 001661' 205 11 0 00 441000 MOVSI T1,(POINT 8) ; MAKE PTR TO XFER INTO BLOCK
1874 001662' 540 11 0 15 000055 HRR T1,NRDCAP(R) ; ...
1875 001663' 334 01 0 00 000002 SKIPA J1,J2 ; SKIP INTO CAPM3 WITH LENGTH IN J1
1876
1877 001664' 134 01 0 15 000100 CAPM3: ILDB J1,NRDRPT(R) ; GET NEXT BYTE
1878 001665' 136 01 0 00 000011 IDPB J1,T1 ; XFER IT
1879 001666' 365 02 0 00 001664' SOJGE J2,CAPM3 ; MOVE EM ALL
1880 001667' 263 17 0 00 000000 $RET ; DONE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 33
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1881 ; WAIT FOR RESPONSE OF JUST ISSUED DUMP OR CONTROL MSG
1882 001670' 201 11 0 00 000012 RCVCRS: MOVEI T1,NRDTMO ; SET TIMEOUT COUNTER
1883 001671' 202 11 0 15 000047 MOVEM T1,NRDTMC(R) ; ...
1884 001672' 200 11 0 15 000053 RCVC1: MOVE T1,NRDCSQ(R) ; TEST IF LAST RCVD SEQ=LAST ISSUED SEQ
1885 001673' 651 11 0 00 000011 TSC T1,T1 ; ...
1886 JUMPE T1,[ HRRZ A,NRDCCR(R) ; YES, GET RESPONSE
1887 001674' 322 11 0 00 004333' PJRST CPOPJ1] ; AND LEAVE
1888 001675' 260 17 0 00 001300' $CALL RCVMSG ; RECEIVE SOME MORE MSGS
1889 001676' 263 17 0 00 000000 $RET ; READ ERROR
1890 JUMPL A,[ SOSGE NRDTMC(R) ; NOTHING - COUNT THIS LOOP
1891 $RET ; GIVE UP
1892 MOVEI J1,^D500 ; WAIT .5 SEC
1893 DISMS ; ZZZ
1894 001677' 321 05 0 00 004335' JRST RCVC1] ; GO CHECK AGAIN
1895 001700' 327 05 0 00 001672' JUMPG A,RCVC1 ; SOMETHING - GO SEE
1896 001701' 260 17 0 00 003643' NRDR ,,CPOPJ ; DATA MSG BLOCKING CONTROL MSG
1897
1898 ; WAIT FOR ATTENTION MSG RESPONSE TO JUST ISSUED STATUS REQUEST
1899 001702' 260 17 0 00 001670' RCVRQS: $CALL RCVCRS ; WAIT FOR RESPONSE TO STATUS REQUEST
1900 001703' 263 17 0 00 000000 $RET ; BLOCKED OR READ ERROR
1901 ; $CALLR RCVRQ ; FINISH UP
1902
1903 ; RECEIVE AN ATTENTION MSG
1904 001704' 201 11 0 00 000012 RCVRQ: MOVEI T1,NRDTMO ; SET TIMEOUT COUNTER
1905 001705' 202 11 0 15 000047 MOVEM T1,NRDTMC(R) ; ...
1906 001706' 260 17 0 00 001300' RCVR1: $CALL RCVMSG ; JUST WAIT TIL NEXT ATTN MSG ARRIVES
1907 001707' 263 17 0 00 000000 $RET ; READ ERROR
1908 JUMPL A,[ SOSGE NRDTMC(R) ; SPUN OUR WHEELS LONG ENUF ?
1909 $RET ; YES, SO GIVE UP
1910 MOVEI J1,^D500 ; NO - WAIT A WHILE
1911 DISMS ; YAWN
1912 001710' 321 05 0 00 004342' JRST RCVR1] ; AND TRY AGAIN
1913 001711' 322 05 0 00 004354' JUMPE A,[NRDR .,,CPOPJ] ; DATA MSG BLOCKING RSP
1914 001712' 302 05 0 00 000001 CAIE A,NM.ATT ; CHECK IF ATT MSG RECEIVED
1915 001713' 254 00 0 00 001706' JRST RCVR1 ; NOPE - TRY AGAIN
1916 001714' 254 00 0 00 002161' PJRST CPOPJ1 ; GOT IT
1917
1918 ; WAIT FOR RESPONSE TO JUST ISSUED FEATURE MSG
1919 001715' 201 11 0 00 000012 FTRWAT: MOVEI T1,NRDTMO ; SET TIMEOUT COUNTER
1920 001716' 202 11 0 15 000047 MOVEM T1,NRDTMC(R) ; ...
1921 001717' 260 17 0 00 001300' FTRW1: $CALL RCVMSG ; RECEIVE SOMETHING
1922 001720' 263 17 0 00 000000 $RET ; READ ERROR
1923 JUMPL A,[ SOSGE NRDTMC(R) ; NOTHING - TRY AGAIN ?
1924 $RET ; NOPE, GIVE UP
1925 MOVEI J1,^D500 ; YES, LETS WAIT
1926 DISMS ; ...
1927 001721' 321 05 0 00 004355' JRST FTRW1] ; GO AGAIN
1928 001722' 322 05 0 00 004367' JUMPE A,[NRDR .,,CPOPJ] ; FTR RSP BLOCKED BY DATA MSG
1929 001723' 302 05 0 00 000002 CAIE A,NM.FTR ; FEATURE MSG ?
1930 001724' 254 00 0 00 001717' JRST FTRW1 ; NO, LOOK FURTHER
1931 001725' 200 11 0 15 000157 MOVE T1,NRDFSN(R) ; COMPARE LAST SEQ RECEIVED
1932 001726' 316 11 0 15 000160 CAMN T1,NRDFSQ(R) ; TO LAST ONE SENT
1933 001727' 254 00 0 00 002161' PJRST CPOPJ1 ; THIS IS IT !
1934 001730' 254 00 0 00 001717' JRST FTRW1 ; DRUDGERY
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 34
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1935 ; CONTROL MESSAGE FORMAT:
1936 ; <NM.CTL><NURD MSG FLGS><SEQ NO.><COMMAND><RESULT>
1937
1938 001731' 261 17 0 00 000011 MKCMSG: PUSH P,T1 ; SAVE THE COMMAND
1939 001732' 260 17 0 00 002100' $CALL SBFINI ; INIT THE BUFFER
1940 001733' 201 11 0 00 000003 MOVEI T1,NM.CTL
1941 001734' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; CONTROL MSG TYPE
1942 001735' 400 12 0 00 000000 SETZ T2,
1943 001736' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NURD MSG FLAGS
1944 001737' 350 11 0 15 000041 AOS T1,NRDSEQ(R) ; GEN NEXT CONTROL SEQ NO.
1945 001740' 405 11 0 00 000377 ANDI T1,377 ; 8 BIT WRAP
1946 001741' 542 11 0 15 000053 HRRM T1,NRDCSQ(R) ; SAVE LAST SENT SEQ NO.
1947 001742' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; NEXT CONTROL SEQ NO.
1948 001743' 262 17 0 00 000011 POP P,T1
1949 001744' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; COMMAND
1950 001745' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NULL RESULT
1951 001746' 263 17 0 00 000000 $RET ; DONE
1952
1953 001747' 334 11 0 00 004370' SNDDMP: SKIPA T1,[NC.DMP] ; SEND A DUMP OUT BUFFER MSG
1954 001750' 201 11 0 00 000004 SNDRQS: MOVEI T1,NC.RQS ; SEND A STATUS REQUEST MSG
1955 001751' 260 17 0 00 001731' $CALL MKCMSG ; MAKE THE MSG
1956 001752' 260 17 0 00 003532' $CALL SAV4J
1957 001753' 200 01 0 15 000034 MOVE J1,NRDJFN(R)
1958 001754' 260 17 0 00 000752' $CALL SNDBUF ; NORMAL MSG
1959 001755' 254 00 0 00 002312' JRST ERRTN ; PROBLEMS
1960 001756' 263 17 0 00 000000 $RET
1961
1962 001757' 334 11 0 00 004371' SNDCAB: SKIPA T1,[NC.CAB] ; SEND A CLEAR ABORT MSG
1963 001760' 201 11 0 00 000002 SNDAUC: MOVEI T1,NC.AUC ; SEND AN ABORT UNTIL CLEAR MSG
1964 001761' 260 17 0 00 001731' MSNDIC: $CALL MKCMSG ; MAKE THE MSG
1965 001762' 260 17 0 00 003532' $CALL SAV4J
1966 001763' 200 01 0 15 000034 MOVE J1,NRDJFN(R)
1967 001764' 254 00 0 00 001036' $CALLR SNDINT ; DO THE INTERRUPT MSG AND RETURN
1968
1969 001765' 201 11 0 00 000007 SNDRES: MOVEI T1,NC.RES ; SEND A RESUME MSG
1970 001766' 260 17 0 00 001761' $CALL MSNDIC ; INTERRUPT MSG
1971 001767' 660 13 0 00 100000 TXO LS,NRD.RS ; SET RESUME ISSUED FLAG
1972 001770' 260 17 0 00 002524' $CALL INTOFF ; CLEAR ERR FLAGS - FIXED BY ATTN MSG
1973 001771' 630 13 0 00 004372' TXZ LS,NRD.FE!NRD.PS!NRD.TO!NRD.OF!NRD.ON!NRD.PL
1974 001772' 202 13 0 15 000036 MOVEM LS,NRDSTS(R) ; UPDATE LINK STATUS
1975 TXZ DS,MO%FER!MO%HE!MO%SER!MO%RCK!MO%PCK!MO%SFL!MO%HEM!MO%LCI!MO%LPC!MO%EOF!MO%O
1976 001773' 630 14 0 00 004373' L
1977 001774' 661 14 0 00 000020 TXO DS,MO%IOP ; SET IO IN PROGRESS AGAIN
1978 001775' 202 14 0 15 000037 MOVEM DS,NRDDST(R) ; UPDATE DEVICE STATUS
1979 001776' 254 00 0 00 002514' $CALLR INTON
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 35
NURD MAC 21-Mar-80 10:15 NURD Support Functions
1980 ; SET LOWER CASE RAISE=> UPPER CASE ONLY PRINTER
1981 001777' 260 17 0 00 003567' SETLCR: $CALL SAV3 ; SAVE A-C
1982 002000' 621 14 0 00 400000 TXZ DS,MO%LCP
1983 002001' 201 05 0 00 000003 MOVEI A,FE.LCR ; FID
1984 002002' 201 06 0 00 000001 MOVEI B,1 ; ITS VALUE
1985 002003' 201 07 0 00 000000 MOVEI C,0 ; 1 BIT VALUE
1986 002004' 254 00 0 00 002017' $CALLR SETFTR
1987
1988
1989 ; SET THE DATA MODE
1990 002005' 260 17 0 00 003567' SETMOD: $CALL SAV3
1991 002006' 201 05 0 00 000001 MOVEI A,FE.DAT ; FEATURE ID
1992 002007' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI ; DETERMINE DATA MODE
1993 002010' 254 00 0 00 002015' JRST SETMDA ; ASCII
1994 002011' 606 13 0 00 000020 TXNN LS,NRD.AI
1995 002012' 334 06 0 00 004374' SKIPA B,[DM.CLI] ; COLUMN IMAGE
1996 002013' 201 06 0 00 000004 MOVEI B,DM.AUG ; AUGMENTED COLUMN IMAGE
1997 002014' 334 00 0 00 000000 SKIPA
1998 002015' 201 06 0 00 000001 SETMDA: MOVEI B,DM.ASC ; ASCII
1999 002016' 201 07 0 00 000001 MOVEI C,1 ; NO. BYTES IN VALUE
2000 ; $CALLR SETFTR ; SET THE FEATURE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 36
NURD MAC 21-Mar-80 10:15 NURD Support Functions
2001 ; FEATURE MESSAGE FORMAT:
2002 ; <NM.FTR><NURD FLAGS><SEQ NO.><NO. FEATURE SPECS>[...<FEATURE SPEC>...]
2003 ;
2004 ; FEATURE SPEC FORMAT:
2005 ; <FEATURE ID><FLAGS><CLASS><RESPONSE>[<VALUE>]
2006 ; VALUE FORMAT:
2007 ; CLASS 0 <VALUE - LOW ORDER BIT OF BYTE>
2008 ; CLASS 1 <COUNT><...COUNT BYTES...> (LEAST SIGNIFICANT BYTE 1ST)
2009 ;
2010 ; A = FEATURE ID
2011 ; B = VALUE
2012 ; C = NO. BYTES IN VALUE
2013
2014 002017' 260 17 0 00 002100' SETFTR: $CALL SBFINI ; INIT THE BUFFER
2015 002020' 201 11 0 00 000002 MOVEI T1,NM.FTR
2016 002021' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; MSG TYPE
2017 002022' 400 12 0 00 000000 SETZ T2,
2018 002023' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NURD FLAGS
2019 002024' 350 11 0 15 000041 AOS T1,NRDSEQ(R) ; GEN NEXT DATA SEQ NO.
2020 002025' 405 11 0 00 000377 ANDI T1,377
2021 002026' 202 11 0 15 000157 MOVEM T1,NRDFSN(R) ; SAVE NO. OF LAST FEATURE MSG SENT
2022 002027' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; SEQ NO.
2023 002030' 201 11 0 00 000001 MOVEI T1,1 ; ONLY ALLOWED TO SET 1 AT A TIME
2024 002031' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; NO. FEATURE SPECS
2025 ; NOW FORMAT FEATURE SPEC
2026 002032' 136 05 0 15 000102 IDPB A,NRDSPT(R) ; FEATURE ID
2027 002033' 201 11 0 00 000001 MOVEI T1,NF.CMD ; BIT SET=> SET FEATURE
2028 002034' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; FLAGS
2029 002035' 332 11 0 00 000007 SKIPE T1,C ; DETERMINE FEATURE CLASS
2030 002036' 201 11 0 00 000001 MOVEI T1,FC.CL1
2031 002037' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; FEATURE CLASS
2032 002040' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NULL RESPONSE FIELD
2033 002041' 332 00 0 00 000007 SKIPE C ; CLASS 0=> INSERT VALUE ONLY
2034 002042' 136 07 0 15 000102 IDPB C,NRDSPT(R) ; CLASS 1=> INSERT COUNT THEN VALUE
2035 002043' 136 06 0 15 000102 SETFTV: IDPB B,NRDSPT(R) ; INSERT NEXT LOWEST BYTE
2036 002044' 242 06 0 00 777770 LSH B,-10
2037 002045' 367 07 0 00 002043' SOJG C,SETFTV
2038 002046' 254 00 0 00 002066' $CALLR SNDNRD ; SEND THE MESSAGE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 37
NURD MAC 21-Mar-80 10:15 NURD Support Functions
2039 ; FEATURE MESSAGE FORMAT:
2040 ; <NM.FTR><NURD FLAGS><SEQ NO.><NO. FEATURE SPECS>[...<FEATURE SPEC>...]
2041 ;
2042 ; FEATURE SPEC FORMAT:
2043 ; <FEATURE ID><FLAGS><CLASS><RESPONSE>[<VALUE>]
2044 ; VALUE FORMAT:
2045 ; CLASS 0 <VALUE - LOW ORDER BIT OF BYTE>
2046 ; CLASS 1 <COUNT><...COUNT BYTES...> (LEAST SIGNIFICANT BYTE 1ST)
2047 ;
2048 ; A = FEATURE ID
2049 ; B = FLAG FIELD
2050 ; C = CLASS FIELD
2051
2052 002047' 260 17 0 00 002100' REDFTR: $CALL SBFINI ; INIT THE BUFFER
2053 002050' 201 11 0 00 000002 MOVEI T1,NM.FTR
2054 002051' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; MSG TYPE
2055 002052' 400 12 0 00 000000 SETZ T2,
2056 002053' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NURD FLAGS
2057 002054' 350 11 0 15 000041 AOS T1,NRDSEQ(R) ; GEN NEXT DATA SEQ NO.
2058 002055' 405 11 0 00 000377 ANDI T1,377
2059 002056' 202 11 0 15 000157 MOVEM T1,NRDFSN(R) ; SAVE NO. OF LAST FEATURE MSG SENT
2060 002057' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; SEQ NO.
2061 002060' 201 11 0 00 000001 MOVEI T1,1 ; ONLY ALLOWED TO SET 1 AT A TIME
2062 002061' 136 11 0 15 000102 IDPB T1,NRDSPT(R) ; NO. FEATURE SPECS
2063 ; NOW FORMAT FEATURE SPEC
2064 002062' 136 05 0 15 000102 IDPB A,NRDSPT(R) ; FEATURE ID
2065 002063' 136 06 0 15 000102 IDPB B,NRDSPT(R) ; FLAGS
2066 002064' 136 07 0 15 000102 IDPB C,NRDSPT(R) ; FEATURE CLASS
2067 002065' 136 12 0 15 000102 IDPB T2,NRDSPT(R) ; NULL RESPONSE FIELD
2068 ; $CALLR SNDNRD ; SEND THE MESSAGE
2069
2070 002066' 260 17 0 00 003532' SNDNRD: $CALL SAV4J ; SEND REMAINING OUTPUT
2071 002067' 200 01 0 15 000034 MOVE J1,NRDJFN(R)
2072 002070' 260 17 0 00 000752' $CALL SNDBUF
2073 002071' 254 00 0 00 002312' JRST ERRTN ; DEVICE WENT OFFLINE
2074 002072' 263 17 0 00 000000 $RET
2075
2076 ; READ ALL THE DEVICE FEATURES
2077 002073' 260 17 0 00 003567' RDFTRS: $CALL SAV3
2078 002074' 201 05 0 00 000377 MOVEI A,FE.ALL ; FEATURE ID
2079 002075' 403 06 0 00 000007 SETZB B,C ; B = FLAG FIELD, C = CLASS FIELD
2080 002076' 260 17 0 00 002047' $CALL REDFTR ; SEND A READ FEATURE MSG
2081 002077' 254 00 0 00 001715' $CALLR FTRWAT ; WAIT ON RESPONSE
2082
2083 ; INIT NRDSBF FOR USE
2084 002100' 201 11 0 15 000362 SBFINI: MOVEI T1,NRDSBF+1(R)
2085 002101' 505 11 0 11 777777 HRLI T1,-1(T1)
2086 002102' 402 00 0 11 777777 SETZM -1(T1)
2087 002103' 251 11 0 15 000560 BLT T1,NRDSBF+NRDBSZ/4-1(R)
2088 002104' 200 11 0 00 004375' MOVE T1,[POINT 8,NRDSBF(R)]
2089 002105' 202 11 0 15 000102 MOVEM T1,NRDSPT(R)
2090 002106' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 38
NURD MAC 21-Mar-80 10:15 Miscellaneous Support Functions
2091 SUBTTL Miscellaneous Support Functions
2092
2093 ; MAP A DEVICE SPEC
2094 ;
2095 ; INPUT: J2 = PTR TO DEVICE SPEC: "<NODE>::P<DEV>[<UNIT>]:"
2096 ;
2097 ; OUTPUT: DEVICE SPEC IN RDHOST(R)
2098 ; T1,T2,J1,J2 = CLOBBERED
2099 002107' 641 02 0 00 777777 MAPDEV: TLC J2,-1 ; GENERIC POINTER ?
2100 002110' 647 02 0 00 777777 TLCN J2,-1 ; BACK TO ORIG, SKIP IF WAS NONZERO
2101 002111' 505 02 0 00 440700 HRLI J2,(POINT 7) ; IT WAS GENERIC - MAKE IT SPECIFIC
2102 002112' 260 17 0 00 002236' $CALL EFADBY ; CALC EFFECTIVE ADDR
2103 002113' 201 01 0 00 000006 MOVEI J1,6 ; LIMIT FOR HOST NAME
2104 002114' 334 11 0 00 004376' SKIPA T1,[POINT 7,RDHOST(R)]
2105 002115' 136 12 0 00 000011 MAPD1: IDPB T2,T1
2106 002116' 134 12 0 00 000002 ILDB T2,J2 ; NEXT CH
2107 002117' 322 12 0 00 002145' JUMPE T2,MAPD4 ; END OF STRING
2108 002120' 302 12 0 00 000072 CAIE T2,":"
2109 JRST [ SOJGE J1,MAPD1 ; END OF HOST NAME
2110 002121' 254 00 0 00 004377' ERRI NODX01,CPOPJ] ; HOST NAME TOO LONG
2111 002122' 200 11 0 00 004131' MOVE T1,[POINT 7,RDDEV(R)]
2112 002123' 201 01 0 00 000004 MOVEI J1,4 ; ALLOW 3 DEV + 1 UNIT
2113 002124' 134 12 0 00 000002 ILDB T2,J2
2114 002125' 322 12 0 00 002145' JUMPE T2,MAPD4
2115 002126' 306 12 0 00 000072 CAIN T2,":"
2116 002127' 134 12 0 00 000002 ILDB T2,J2 ; FLUSH EXTRA :
2117 002130' 322 12 0 00 002145' JUMPE T2,MAPD4
2118 002131' 306 12 0 00 000120 CAIN T2,"P" ; FLUSH LEADING P
2119 002132' 134 12 0 00 000002 MAPD3: ILDB T2,J2
2120 002133' 322 12 0 00 002145' JUMPE T2,MAPD4
2121 002134' 306 12 0 00 000072 CAIN T2,":"
2122 002135' 254 00 0 00 002145' JRST MAPD4
2123 002136' 302 12 0 00 000124 CAIE T2,"T" ; FLUSH T FROM LPT
2124 002137' 306 12 0 00 000104 CAIN T2,"D" ; FLUSH D FROM CDR
2125 002140' 334 00 0 00 000000 SKIPA
2126 002141' 136 12 0 00 000011 IDPB T2,T1
2127 002142' 365 01 0 00 002132' SOJGE J1,MAPD3
2128 002143' 201 01 0 00 602033 ERRI ARGX19,CPOPJ ; INVALID UNIT NO.
2129 002144' 263 17 0 00 000000
2130
2131 002145' 135 12 0 00 000011 MAPD4: LDB T2,T1 ; GET LAST CH
2132 002146' 301 12 0 00 000060 CAIL T2,"0"
2133 002147' 303 12 0 00 000071 CAILE T2,"9"
2134 002150' 201 12 0 00 000060 MOVEI T2,"0" ; USE A DEFAULT OF ZERO
2135 002151' 136 12 0 00 000011 IDPB T2,T1
2136 002152' 135 11 0 00 004402' LDB T1,[POINT 14,RDDEV(R),13] ; GET 1ST 2 CHARS OF DEV NAME
2137 002153' 306 11 0 00 020722 CAIN T1,"CR"
2138 002154' 254 00 0 00 002160' JRST MAPD5
2139 002155' 302 11 0 00 023120 CAIE T1,"LP"
2140 002156' 254 00 0 00 004143' ERR GJFX16,CPOPJ ; NO SUCH DEVICE
2141 002157' 664 13 0 00 000004 TXOA LS,NRD.LP ; SET DEVICE= LPT
2142 002160' 620 13 0 00 000004 MAPD5: TXZ LS,NRD.LP ; SET DEVICE= CDR
2143 002161' 350 00 0 17 000000 CPOPJ1: AOS (P) ; MAKE IT A SKIP RETURN
2144 002162' 263 17 0 00 000000 CPOPJ: $RET ; RETURN
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 39
NURD MAC 21-Mar-80 10:15 Miscellaneous Support Functions
2145 ; GNRxSP
2146 ; GNRMSP - CREATE AN NRM JFN SPEC
2147 ; GNRDSP - CREATE AN NRD JFN SPEC
2148 ;
2149 ; INPUT: DEVICE SPEC IN RDHOST(R)
2150 ;
2151 ; OUTPUT: A = PTR TO THE SPEC ON STACK
2152 ; -1(A) = PTR TO RESTORE PDL FROM
2153 ; T1,T2 = CLOBBERED
2154
2155 002163' 634 12 0 00 000012 GNRMSP: TDZA T2,T2 ; ZERO SIGNALS NRM SPEC
2156 002164' 201 12 0 00 000001 GNRDSP: MOVEI T2,1 ; ONE SIGNALS JFN SPEC
2157 002165' 262 17 0 00 000011 POP P,T1 ; REMOVE THE RETURN ADR
2158 002166' 200 05 0 00 000017 MOVE A,P ; GET RESTORATION PDL PTR
2159 002167' 261 17 0 00 000005 PUSH P,A ; SAVE IT ON STACK
2160 002170' 205 05 0 00 440700 MOVSI A,(POINT 7) ; A = PTR TO BEG OF SPEC
2161 002171' 541 05 0 17 000001 HRRI A,1(P)
2162 002172' 270 17 0 00 004403' ADD P,[6,,6] ; 30 BYTE SPEC
2163 002173' 261 17 0 00 000011 PUSH P,T1 ; PUT RETURN ADR BACK ON
2164 002174' 260 17 0 00 003557' $CALL SAV2 ; SAVE A & B
2165 002175' 200 06 0 00 004405' MOVE B,[POINT 7,[ASCIZ .DCN:.]]
2166 002176' 260 17 0 00 002214' $CALL INSTR ; INSERT NSP DEV TYPE
2167 002177' 200 06 0 00 004376' MOVE B,[POINT 7,RDHOST(R)]
2168 002200' 260 17 0 00 002214' $CALL INSTR ; INSERT NODE NAME
2169 002201' 200 06 0 12 002212' MOVE B,GNRTB(T2) ; GET ID STRING
2170 002202' 260 17 0 00 002214' $CALL INSTR ; INSERT OBJECT AND ATRIB.
2171 002203' 201 11 0 00 000060 MOVEI T1,"0" ; USERID OF 20 MEANS LP
2172 002204' 606 13 0 00 000004 TXNN LS,NRD.LP ; LPT?
2173 002205' 201 11 0 00 000061 MOVEI T1,"1" ; NO,USERID OF 21 MEANS CR
2174 002206' 136 11 0 00 000005 IDPB T1,A ; STORE FINAL CHARACTER
2175 002207' 400 11 0 00 000000 SETZ T1, ; MAKE IT ASCIZ STRING
2176 002210' 136 11 0 00 000005 IDPB T1,A ; ...
2177 002211' 263 17 0 00 000000 $RET ; RET NRM JFN SPEC ON STACK,
2178
2179 002212' 44 07 0 00 004406' GNRTB: POINT 7,[ASCIZ .-NRM;USERID:2.]
2180 002213' 44 07 0 00 004411' POINT 7,[ASCIZ .-002;USERID:2.]
2181
2182 002214' 134 11 0 00 000006 INSTR: ILDB T1,B ; A = DEST PTR, B = SRC PTR
2183 002215' 322 11 0 00 002162' JUMPE T1,CPOPJ ; QUIT ON NULL BYTE
2184 002216' 136 11 0 00 000005 IDPB T1,A ; INSERT THIS BYTE IN DEST STRING
2185 002217' 254 00 0 00 002214' JRST INSTR ; HOHUM
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 40
NURD MAC 21-Mar-80 10:15 Miscellaneous Support Functions
2186 ; EFADR - EFFECTIVE ADDRESS CALCULATION FUNCTION
2187 ; ENTRY: T2 = WORD TO BEGIN EFFECTIVE ADR CALC ON
2188 ; REGS 0-R SAVED AT RDSAVE(R)
2189 ; EXIT: T1 = EFFECTIVE ADDRESS
2190
2191 002220' 135 11 0 00 004414' EFADR: LDB T1,[POINT 4,T2,17] ; GET INDEX FIELD
2192 002221' 322 11 0 00 002227' JUMPE T1,EFAD1 ; NO INDEXING
2193 002222' 307 11 0 00 000016 CAIG T1,16 ; CHECK FOR T1 -> SAVED AC
2194 002223' 271 11 0 15 000000 ADDI T1,RDSAVE(R) ; T1 = PTR TO REG SLOT
2195 002224' 306 11 0 00 000017 CAIN T1,P ; CHECK FOR STACK REFERENCE
2196 JRST [ MOVE T1,RDEPDL(R) ; YES, GET CONTENT BEFORE NURD
2197 002225' 254 00 0 00 004415' SOJA T1,.] ; ...
2198 002226' 550 11 0 11 000000 HRRZ T1,(T1) ; T1 = PTR TO INDEX REG - GET CONTENTS
2199 002227' 271 11 0 12 000000 EFAD1: ADDI T1,(T2) ; T1 = INDEXED ADDRESS
2200 002230' 307 11 0 00 000015 CAIG T1,R ; CHECK FOR T1 -> SAVED AC
2201 002231' 271 11 0 15 000000 ADDI T1,RDSAVE(R) ; T1 = PTR TO REG SLOT
2202 002232' 607 12 0 00 000020 TLNN T2,(@) ; CHECK FOR INDIRECT ADDRESSING
2203 002233' 263 17 0 00 000000 $RET ; ALL DONE
2204 002234' 200 12 0 11 000000 MOVE T2,(T1) ; ANOTHER ROUND
2205 002235' 254 00 0 00 002220' JRST EFADR ; ...
2206
2207 ; BYTE POINTER EFFECTIVE ADDRESS CALCULATION
2208 ;
2209 ; INPUT: J2 = BYTE POINTER (NOT THE -1,,ADDR THING)
2210 ;
2211 ; OUTPUT: J2 = APPROPRIATELY MODIFIED BYTE POINTER
2212 ;
2213 ; ALL OTHER CONDITIONS ARE EXACTLY AS FOR EFADR, ABOVE.
2214
2215 002236' 200 12 0 00 000002 EFADBY: MOVE T2,J2 ; COPY THE INPUT ARG
2216 002237' 621 02 0 00 000037 TLZ J2,(@(17)) ; TURN OFF INDIR AND INDEX IN RETURN
2217 002240' 260 17 0 00 002220' $CALL EFADR ; DO THE EFFECTIVE ADDR CALCULATION
2218 002241' 540 02 0 00 000011 HRR J2,T1 ; ADD THE ADDR HALFWORD
2219 002242' 263 17 0 00 000000 $RET ; ALL DONE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 41
NURD MAC 21-Mar-80 10:15 Entry Setup
2220 SUBTTL Entry Setup
2221
2222 ; USER ENTRY REGISTER SETUP
2223 ;
2224 ; INPUT: CALL WITH USER REGS UNMODIFIED
2225 ;
2226 ; OUTPUT: LS = DATA LINK STATUS - NRDSTS(R)
2227 ; DS = DEVICE STATUS - NRDDST(R)
2228 ; R = RDDB PTR
2229 ; J1,T1,T2 = CLOBBERED
2230
2231 002243' 261 17 0 00 004417' SETUP1: PUSH P,[0] ; NON-SKIP TYPE JSYS
2232 002244' 334 00 0 00 000000 SKIPA
2233 002245' 261 17 0 00 004420' SETUP2: PUSH P,[UJ.XT2] ; SKIP TYPE JSYS
2234 002246' 430 01 0 00 000000' XOR J1,SUBJFN ; SEE IF AN OK JFN
2235 002247' 602 01 0 00 777777 TRNE J1,-1 ; ...
2236 JRST [ POP P,J1 ; NO, CLEAN UP STACK
2237 002250' 254 00 0 00 004421' ERRI DESX3,CPOPJ] ; SAY WE HAVE A PROBLEM
2238 002251' 430 01 0 00 000000' XOR J1,SUBJFN ; BACK TO ORIGINAL J1
2239 002252' 202 16 0 01 000016 MOVEM 16,RDSAVE+16(J1) ; SAVE THE CALLER AC'S
2240 002253' 201 16 0 01 000000 MOVEI 16,RDSAVE(J1) ; ...
2241 002254' 251 16 0 01 000015 BLT 16,RDSAVE+15(J1) ; ...
2242 002255' 550 15 0 00 000001 HRRZ R,J1 ; SET THE DATABASE POINTER
2243 002256' 262 17 0 00 000012 POP P,T2 ; GET THE ENTRY FLAG
2244 002257' 354 00 0 17 000000 AOSA (P) ; SKIP EXIT
2245 ; SKIP INTO FOLLOWING CODE
2246 ; SPECIAL ENTRY FOR UGTJFN
2247 ; INPUTS AND OUTPUTS SAME AS SETUPx, ABOVE.
2248 002260' 201 12 0 00 000001 USETUP: MOVEI T2,UJ.XT2 ; SET FOR SKIP TYPE JSYS
2249 002261' 262 17 0 00 000011 POP P,T1 ; SAVE INITIAL STATE OF PDL
2250 002262' 202 17 0 15 000017 MOVEM P,RDEPDL(R) ; FOR ERROR EXITS
2251 002263' 261 17 0 00 000011 PUSH P,T1 ; PUT RETURN ADDRESS BACK ONTO STACK
2252 002264' 200 11 0 15 000023 MOVE T1,RDSTS(R) ; RECORD ENTRY STATUS
2253 002265' 620 11 0 00 000001 TXZ T1,UJ.XT2 ; SET EXIT TYPE
2254 002266' 434 11 0 00 000012 IOR T1,T2 ; ...
2255 002267' 201 01 0 00 400000 MOVEI J1,.FHSLF ; DETERMINE SOFTWARE INTERRUPT STATE
2256 002270' 104 00 0 00 000127 SKPIR ; SKIP IF ON
2257 002271' 624 11 0 00 000002 TXZA T1,UJ.INT ; INTERRUPTS NOT ON
2258 002272' 660 11 0 00 000002 TXO T1,UJ.INT ; INTERRUPTS ARE ON
2259 002273' 620 11 0 00 000004 TXZ T1,UJ.TDS ; FLUSH TEMP DISABLE FLAG
2260 002274' 202 11 0 15 000023 MOVEM T1,RDSTS(R) ; SAVE ENTRY STATE
2261 002275' 260 17 0 00 002524' $CALL INTOFF ; DISABLE INTERRUPTS
2262 002276' 201 11 0 00 000010 MOVEI T1,UJ.NRD ; PROCLAIM THAT WE
2263 002277' 436 11 0 15 000023 IORM T1,RDSTS(R) ; IS PROCESSING
2264 002300' 200 13 0 15 000036 MOVE LS,NRDSTS(R) ; LOAD DATA LINK STATUS
2265 002301' 200 14 0 15 000037 MOVE DS,NRDDST(R) ; LOAD DEVICE STATUS
2266 002302' 260 17 0 00 000714' $CALL SETDST ; UPDATE DEVICE STATUS
2267 002303' 202 14 0 15 000037 MOVEM DS,NRDDST(R) ; TO ENTRY STATE
2268 002304' 260 17 0 00 002514' $CALL INTON ; ENABLE INTERRUPTS
2269 002305' 602 13 0 00 000100 TXNE LS,NRD.OC ; OPEN COMPLETE?
2270 002306' 260 17 0 00 002465' $CALL INRDIN ; YES,INIT FOR NURD INTERRUPT MESSAGES
2271 002307' 402 00 0 15 000056 SETZM NRDIER(R) ; INIT OUR ERROR PTR AT UJSYS ENTRY
2272 002310' 402 00 0 15 000024 SETZM RDERT(R) ; NO ERROR RETURN YET SPECIFIED
2273 002311' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 42
NURD MAC 21-Mar-80 10:15 Exit Routes & Error Processing
2274 SUBTTL Exit Routes & Error Processing
2275
2276 ; USER LEVEL ERROR EXIT
2277 002312' 261 17 0 00 000002 ERRTN: PUSH P,J2 ; J1 = ERROR CODE
2278 002313' 200 02 0 00 000001 MOVE J2,J1 ; COPY ERROR CODE
2279 002314' 201 01 0 00 400000 MOVEI J1,.FHSLF ; SO CAN DO SETER
2280 002315' 104 00 0 00 000336 SETER ; ...
2281 002316' 200 01 0 00 000002 MOVE J1,J2 ; RESTORE J1
2282 002317' 262 17 0 00 000002 POP P,J2 ; AND J2
2283 002320' 312 15 0 00 000000' CAME R,SUBJFN ; DO WE HAVE A DATABASE ?
2284 002321' 263 17 0 00 000000 $RET ; NO, LEAVE - NO AC'S SAVED
2285 002322' 260 17 0 00 002524' $CALL INTOFF ; DISALLOW INTERRUPTS FOR AWHILE
2286 002323' 200 17 0 15 000017 MOVE P,RDEPDL(R) ; RESTORE ENTRY PDL
2287 002324' 202 01 0 15 000001 MOVEM J1,RDSAVE+J1(R) ; SET ERROR CODE RETURN
2288 002325' 135 12 0 00 004424' LDB T2,[POINT 23,@(P),35] ; GET POSSIBLE ERJMP/ERCAL DISP ADDR
2289 002326' 260 17 0 00 002220' $CALL EFADR ; AND CALC THE EFFECTIVE ADDR TO T1
2290 002327' 135 12 0 00 004425' LDB T2,[POINT 13,@(P),12] ; GET OPCODE TO SEE IF ERJMP OR ERCAL
2291 002330' 306 12 0 00 006417 CAIN T2,<ERCAL>_-^D23 ; HAS CALLER SPECIFIED ERCAL ?
2292 002331' 552 11 0 15 000024 HRRZM T1,RDERT(R) ; SET ADDRESS, WITH 0 FLAG
2293 002332' 306 12 0 00 006416 CAIN T2,<ERJMP>_-^D23 ; WAS AN ERJMP SPECIFIED ?
2294 002333' 562 11 0 15 000024 HRROM T1,RDERT(R) ; SET ADDRESS, WITH -1 FLAG
2295 002334' 260 17 0 00 000714' $CALL SETDST ; UPDATE DEVICE STATUS
2296 002335' 603 13 0 00 000001 TXNE LS,NRD.OF ; IS DEVICE OFFLINE ?
2297 JRST [ MOVEM LS,NRDSTS(R) ; UPDATE STS BEFORE INT
2298 MOVEM DS,NRDDST(R) ; ...
2299 MOVX J1,NRD.EN ; SEE IF USER IS ENABLED
2300 TDNE J1,NRDSTS(R) ; FOR THIS INTERRUPT
2301 JRST CKI3 ; SEEMS TO BE
2302 002336' 254 00 0 00 004426' JRST ERRTX] ; NOPE, JUST BE QUIET
2303 002337' 200 01 0 15 000037 MOVE J1,NRDDST(R) ; GET DEVICE STATUS AT ENTRY
2304 002340' 430 01 0 00 000014 XOR J1,DS ; J1 = BITS CHANGED SINCE ENTRY
2305 002341' 200 02 0 00 000014 MOVE J2,DS
2306 002342' 404 02 0 00 000001 AND J2,J1 ; J2 = BITS GONE HIGH
2307 002343' 612 02 0 00 004434' TXNE J2,MO%FER!MO%HE!MO%LCI ; CHECK FOR HARD ERRORS
2308 002344' 254 00 0 00 002354' JRST CKI2 ; HARD ERROR
2309 002345' 612 02 0 00 004237' TXNE J2,MO%SER!MO%LPC ; CHECK SOFT ERRORS
2310 002346' 254 00 0 00 002355' JRST CKI3 ; SOFT ERROR
2311 002347' 606 13 0 00 000004 TXNN LS,NRD.LP ; DO WE HAVE LPT ?
2312 002350' 607 01 0 00 000040 TXNN J1,MO%EOF ; NO, SEE IF EOF ON CDR
2313 002351' 254 00 0 00 002362' JRST ERRTX ; NEITHER LPT, OR EOF ON CDR
2314 002352' 205 02 0 00 000200 MOVX J2,1B<.ICEOF> ; EOF IT IS!
2315 002353' 254 00 0 00 002356' JRST CKI4 ; GO DO IT TO IT
2316 002354' 334 02 0 00 004435' CKI2: SKIPA J2,[1B<.ICDAE>] ; HARD=> DATA ERROR
2317 002355' 200 02 0 15 000077 CKI3: MOVE J2,NRDCHN(R) ; SOFT=> USE USER DEFINED CHANNEL
2318 002356' 201 01 0 00 400000 CKI4: MOVEI J1,.FHSLF
2319 002357' 104 00 0 00 000132 IIC ; GEN AN INTERRUPT
2320 002360' 320 16 0 00 002362' ERJMP ERRTX ; ??
2321 002361' 402 00 0 15 000024 SETZM RDERT(R) ; CLEAR ERCAL/ERJMP INDICATOR
2322 002362' 336 01 0 15 000024 ERRTX: SKIPN J1,RDERT(R) ; DO WE HAVE ERJMP/ERCAL TO SIMULATE ?
2323 002363' 254 00 0 00 002374' JRST UEXIT ; NOPE
2324 JUMPG J1,[ AOS (P) ; ERCAL, FIX USER'S RETURN ADDR
2325 PUSH P,J1 ; PUT ERCAL LOC ON STACK
2326 002364' 327 01 0 00 004436' JRST UEXIT] ; OK
2327 002365' 542 01 0 17 000000 HRRM J1,(P) ; ERJMP, SET APPROP DISPATCH ADDRESS
2328 002366' 254 00 0 00 002374' $CALLR UEXIT ; FINISH UP AND LEAVE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 43
NURD MAC 21-Mar-80 10:15 Exit Routes & Error Processing
2329 ; *** SUCRTN
2330 ; THIS IS NORMAL (SUCCESS) EXIT FROM NURD20
2331 002367' 201 11 0 00 000001 SUCRTN: MOVEI T1,UJ.XT2 ; SUCCESS EXIT
2332 002370' 200 17 0 15 000017 MOVE P,RDEPDL(R) ; RESTORE ENTRY PDL
2333 002371' 612 11 0 15 000023 TDNE T1,RDSTS(R) ; CHECK EXIT TYPE
2334 002372' 350 00 0 17 000000 AOS (P) ; A SKIP RETURN
2335 002373' 260 17 0 00 002524' $CALL INTOFF ; TURN OFF INTERRUPTS
2336
2337 002374' 620 13 0 00 100000 UEXIT: TXZ LS,NRD.RS ; FLUSH RESUME ISSUED FLAG
2338 002375' 542 13 0 15 000036 HRRM LS,NRDSTS(R) ; DATA LINK STATUS, RESTORE USER FLAGS
2339 002376' 202 14 0 15 000037 MOVEM DS,NRDDST(R) ; DEVICE STATUS
2340 002377' 200 03 0 15 000036 MOVE J3,NRDSTS(R) ; SEE IF WE HAVE
2341 002400' 627 03 0 00 000004 TXZN J3,NRD.NO ; AN ALERT TO REPORT
2342 002401' 254 00 0 00 002411' JRST UEX0 ; NOPE
2343 002402' 202 03 0 15 000036 MOVEM J3,NRDSTS(R) ; CLEAR THE FLAG
2344 002403' 606 03 0 00 000200 TXNN J3,NRD.EN ; DOES USER WANT TO KNOW ?
2345 002404' 254 00 0 00 002411' JRST UEX0 ; NOPE
2346 002405' 201 01 0 00 400000 MOVEI J1,.FHSLF ; YES, SO WE WILL
2347 002406' 200 02 0 15 000077 MOVE J2,NRDCHN(R) ; INTERRUPT
2348 002407' 104 00 0 00 000132 IIC ; HIM
2349 002410' 320 16 0 00 002411' ERJMP UEX0 ; ? WELL, WE REALLY TRIED
2350
2351 002411' 201 11 0 00 000010 UEX0: MOVEI T1,UJ.NRD ; UNPROCLAIM NURD PROCESSING
2352 002412' 412 11 0 15 000023 ANDCAM T1,RDSTS(R) ; ...
2353 002413' 205 16 0 15 000000 MOVSI 16,RDSAVE(R) ; RESTORE AC'S
2354 002414' 251 16 0 00 000016 BLT 16,16 ; ...
2355 002415' 260 17 0 00 003511' $CALL SAV2J ; SAVE SOME REGISTERS TEMPORARILY
2356 002416' 200 02 0 00 000000' MOVE J2,SUBJFN ; GET DATA BASE POINTER
2357 002417' 200 01 0 02 000023 MOVE J1,RDSTS(J2) ; GET RDSTS
2358 002420' 261 17 0 00 000001 PUSH P,J1 ; FOR LATER PROCESSING
2359 002421' 606 01 0 00 400000 TXNN J1,UJ.FLS ; ARE WE FLUSHING THE DATA BASE?
2360 002422' 254 00 0 00 002443' $CALLR UEXX ; NO, ENABLE INTERRUPTS AND GET OUT
2361 002423' 336 01 0 02 000025 SKIPN J1,RDINTB(J2) ; HAVE WE FOOLED WITH INT SYSTEM ?
2362 002424' 254 00 0 00 002437' JRST UEX1 ; NOPE
2363 002425' 556 01 0 01 000000 HLRZM J1,NRDLVL-1(J1) ; YES, SO RESTORE INT PC LOCATION
2364 002426' 201 01 0 00 400000 MOVEI J1,.FHSLF ; TURN OFF OUR INTERRUPTS
2365 002427' 201 02 0 00 000003 MOVX J2,1B<NRDICH>+1B<NRDDCH>; BOTH CHANNELS
2366 002430' 104 00 0 00 000133 DIC ; ...
2367 002431' 200 02 0 00 000000' MOVE J2,SUBJFN ; GET RDDB PTR AGAIN
2368 002432' 336 02 0 02 000055 SKIPN J2,NRDCAP(J2) ; NOW, CLEAN UP CORE CHUNKS
2369 002433' 254 00 0 00 002437' JRST UEX1 ; NONE THERE
2370 002434' 554 01 0 00 000002 HLRZ J1,J2 ; GET LENGTH
2371 002435' 553 00 0 00 000002 HRRZS J2 ; AND ISOLATE ADDRESS
2372 002436' 260 17 1 00 400140 $CALL M%RMEM ; GIVE IT BACK
2373 002437' 201 01 0 00 000565 UEX1: MOVEI J1,RDDBSZ ; NOW FOR MAIN DATABASE
2374 002440' 200 02 0 00 000000' MOVE J2,SUBJFN ; GET ADDRESS OF IT
2375 002441' 476 00 0 00 000000' SETOM SUBJFN ; CLOBBER POINTER
2376 002442' 260 17 1 00 400140 $CALL M%RMEM ; GIVE UP MEMORY
2377
2378 002443' 201 01 0 00 400000 UEXX: MOVEI J1,.FHSLF ; SET TO TURN ON INTERRUPT SYS
2379 002444' 262 17 0 00 000002 POP P,J2 ; GET BACK THE RDSTS WORD
2380 002445' 602 02 0 00 000004 TXNE J2,UJ.TDS ; DID WE DISABLE THE INT SYSTEM ?
2381 002446' 104 00 0 00 000126 EIR ; YES, TURN IT BACK ON
2382 002447' 263 17 0 00 000000 $RET ; AND LEAVE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 44
NURD MAC 21-Mar-80 10:15 Exit Routes & Error Processing
2383 ; INTERNAL ERROR PROCESSOR
2384 ; CALL: INVOKED BY NRDR MACRO
2385 ; SAVES LOCATION OF ERROR IN NRDIER
2386 ;
2387 ; IN: J1 = Error location ,, Error code
2388 ; (P) = Continuation address (return)
2389 ;
2390 ; OUT: J1 = Error code
2391
2392 002450' 606 01 0 00 777777 NRDERR: TRNN J1,-1 ; ANY CODE SET ?
2393 002451' 541 01 0 00 602025 HRRI J1,DCNX8 ; NO, SUPPLY THE DEFAULT
2394 002452' 261 17 0 00 000001 PUSH P,J1 ; SAVE INPUT ARG
2395 002453' 332 01 0 15 000056 SKIPE J1,NRDIER(R) ; GET ERR BUFFER PTR
2396 002454' 253 01 0 00 002457' AOBJN J1,NR1 ; OK, ADVANCE PTR
2397 002455' 205 01 0 00 777760 MOVSI J1,-NURDL ; WRAPAROUND
2398 002456' 541 01 0 15 000057 HRRI J1,NRDERH(R) ; ...
2399 002457' 262 17 0 01 000000 NR1: POP P,(J1) ; SAVE LOCATION,,CODE FOR ERROR
2400 002460' 202 01 0 15 000056 MOVEM J1,NRDIER(R) ; UPDATE NRDERH PTR
2401 002461' 550 01 0 01 000000 HRRZ J1,(J1) ; ISOLATE CODE IN J1
2402 002462' 661 14 0 00 000210 TXO DS,MO%FER!MO%SER ; ALL NRDR'S ARE FATAL
2403 002463' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 45
NURD MAC 21-Mar-80 10:15 Interrupt Processing
2404 SUBTTL Interrupt Processing
2405
2406 002464' NURDPC: BLOCK 1 ; NURD INTERRUPT LEVEL PC SAVER
2407
2408 ; INIT NURD INTERRUPT SERVICE
2409
2410 002465' 332 00 0 15 000025 INRDIN: SKIPE RDINTB(R) ; INTERRUPTS ALREADY ENABLED?
2411 002466' 263 17 0 00 000000 $RET ; YES, JUST EXIT
2412 002467' 260 17 0 00 003521' $CALL SAV3J
2413 002470' 201 01 0 00 400000 MOVEI J1,.FHSLF
2414 002471' 104 00 0 00 000144 RIR ; READ USER'S INTERRUPT DATA
2415 002472' 322 02 0 00 002162' JUMPE J2,CPOPJ ; SIR HAS NOT BEEN DONE
2416 002473' 200 11 0 00 004441' MOVE T1,[NRDLVL,,INRD]
2417 002474' 202 11 0 02 000043 MOVEM T1,NRDICH(J2) ; SET NRD SERVICE IN PCHNTB
2418 002475' 200 11 0 00 004442' MOVE T1,[NRDLVL,,DNRD]
2419 002476' 202 11 0 02 000042 MOVEM T1,NRDDCH(J2)
2420 002477' 201 11 0 00 002464' MOVEI T1,NURDPC
2421 002500' 207 00 0 00 000002 MOVSS J2
2422 002501' 504 02 0 02 000000 HRL J2,NRDLVL-1(J2) ; REMEMBER OLD CONTENTS OF PLEVTB
2423 002502' 202 11 0 02 000000 MOVEM T1,NRDLVL-1(J2) ; SET NURD PC SAVE LOC IN PLEVTB
2424 002503' 202 02 0 15 000025 MOVEM J2,RDINTB(R) ; SAVE THIS INFO FOR LATER FIXUP
2425 002504' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; ENABLE INTS FOR DATA LINK MSGS
2426 002505' 201 02 0 00 000024 MOVEI J2,.MOACN
2427 002506' 200 03 0 00 004443' MOVX J3,<.MOCIA>B8+<NRDICH>B17+<NRDDCH>B26
2428 002507' 104 00 0 00 000077 MTOPR
2429 002510' 201 01 0 00 400000 MOVEI J1,.FHSLF
2430 002511' 201 02 0 00 000003 MOVX J2,1B<NRDICH>+1B<NRDDCH>
2431 002512' 104 00 0 00 000131 AIC ; ACTIVATE NRD CHANNEL
2432 002513' 263 17 0 00 000000 $RET
2433
2434 ; TURN ON INTERRUPTS
2435 002514' 260 17 0 00 003502' INTON: $CALL SAV1J ; SAVE J1
2436 002515' 201 01 0 00 000004 MOVEI J1,UJ.TDS ; CHECK FOR
2437 002516' 616 01 0 15 000023 TDNN J1,RDSTS(R) ; INTERRUPT DISABLE
2438 002517' 263 17 0 00 000000 $RET ; NOT DISABLED
2439 002520' 412 01 0 15 000023 ANDCAM J1,RDSTS(R) ; CLEAR DISABLED FLAG
2440 002521' 201 01 0 00 400000 MOVEI J1,.FHSLF ; TURN THE INT SYSTEM
2441 002522' 104 00 0 00 000126 EIR ; BACK ON
2442 002523' 263 17 0 00 000000 $RET ; LEAVE
2443
2444 ; TURN OFF INTERRUPTS
2445 002524' 260 17 0 00 003502' INTOFF: $CALL SAV1J ; SAVE J1
2446 002525' 201 01 0 00 000002 MOVEI J1,UJ.INT ; IS THE INT SYSTEM OFF
2447 002526' 616 01 0 15 000023 TDNN J1,RDSTS(R) ; ?
2448 002527' 263 17 0 00 000000 $RET ; YES, IT IS OFF - GO AWAY
2449 002530' 201 01 0 00 400000 MOVEI J1,.FHSLF ; NO, TURN IT OFF
2450 002531' 104 00 0 00 000130 DIR ; ...
2451 002532' 201 01 0 00 000004 MOVEI J1,UJ.TDS ; REMEMBER THAT WE DID IT
2452 002533' 436 01 0 15 000023 IORM J1,RDSTS(R) ; ...
2453 002534' 263 17 0 00 000000 $RET ; LEAVE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 46
NURD MAC 21-Mar-80 10:15 Interrupt Processing
2454 ; RECEIVED A DATA INTERRUPT
2455 ; WE MUST BE CAREFUL TO PRESERVE USER AC'S
2456
2457 002535' 261 17 0 00 000005 DNRD: PUSH P,A ; SAVE A COUPLE
2458 002536' 261 17 0 00 000006 PUSH P,B ; OF AC'S
2459 002537' 337 06 0 00 000000' SKIPG B,SUBJFN ; GET RDDB POINTER
2460 002540' 254 00 0 00 002557' JRST DNRDX ; DEFENSIVE
2461 002541' 201 05 0 00 100000 MOVEI A,UJ.RCV ; SET RCV DATA INT FLAG
2462 002542' 436 05 0 06 000023 IORM A,RDSTS(B) ; ...
2463 002543' 550 05 0 00 002464' HRRZ A,NURDPC ; CHECK FOR POSSIBLE WAIT CONDITIONS
2464 002544' 301 05 0 00 000764' CAIL A,SENDER ; ARE WE IN REGION OF INTEREST ?
2465 002545' 303 05 0 00 000771' CAILE A,USOWTR ; SOUTR WAIT
2466 002546' 254 00 0 00 002557' JRST DNRDX ; NOT IN SOUTR REGION
2467 002547' 306 05 0 00 000771' CAIN A,USOWTR ; AT ACTUAL SOUTR WAIT ?
2468 JUMPE J3,[ MOVE A,NURDPC ; SOUTR IS DONE
2469 002550' 322 03 0 00 004444' JRST DNBRK] ; GO SET APPROP PC
2470 002551' 201 05 0 00 200000 MOVEI A,UJ.SSO ; SET SUSPENDED SOUTR FLAG
2471 002552' 436 05 0 06 000023 IORM A,RDSTS(B) ; ...
2472 002553' 201 05 0 00 001017' MOVEI A,BRKS ; SET BREAK PC
2473 002554' 500 05 0 00 002464' HLL A,NURDPC ; ...
2474
2475 002555' 661 05 0 00 010000 DNBRK: TXO A,1B5 ; SET USER MODE
2476 002556' 202 05 0 00 002464' MOVEM A,NURDPC ; TOP LEVEL WILL RESUME
2477 002557' 262 17 0 00 000006 DNRDX: POP P,B ; RESTORE CLOBBERED AC'S
2478 002560' 262 17 0 00 000005 POP P,A ; ...
2479 002561' 104 00 0 00 000136 DEBRK ; DISMISS INTERRUPT
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 47
NURD MAC 21-Mar-80 10:15 Interrupt Processing
2480 ; NURD INTERRUPT MESSAGE PROCESSOR
2481 002562' 261 17 0 00 000001 INRD: PUSH P,J1 ; SAVE SOME
2482 002563' 261 17 0 00 000002 PUSH P,J2 ; AC'S FOR
2483 002564' 261 17 0 00 000003 PUSH P,J3 ; WHILE WE
2484 002565' 261 17 0 00 000004 PUSH P,J4 ; ARE WORKING
2485 002566' 261 17 0 00 000015 PUSH P,R ; ...
2486 002567' 337 15 0 00 000000' SKIPG R,SUBJFN ; GET RDDB FOR THIS FORK
2487 002570' 254 00 0 00 002625' JRST INRDX ; DEFENSIVE
2488 002571' 200 01 0 15 000034 MOVE J1,NRDJFN(R) ; READ THE MESSAGE
2489 002572' 201 02 0 00 000035 MOVEI J2,.MORIM
2490 002573' 201 03 0 15 000561 MOVEI J3,NRDIBF(R)
2491 002574' 505 03 0 00 441000 HRLI J3,(POINT 8) ; J3 = PTR TO BUFFER
2492 002575' 261 17 0 00 000003 PUSH P,J3 ; SAVE IT FOR READING
2493 002576' 104 00 0 00 000077 MTOPR ; GET IT - J4 = NO. CHARS READ
2494 002577' 262 17 0 00 000003 POP P,J3
2495 002600' 322 04 0 00 002625' JUMPE J4,INRDX ; VACUOUS MSG
2496 002601' 134 01 0 00 000003 ILDB J1,J3 ; GET MSG TYPE
2497 002602' 302 01 0 00 000004 CAIE J1,NM.ALR ; BETTER BE AN ALERT MSG!
2498 002603' 254 00 0 00 002625' JRST INRDX ; IGNORE ???
2499
2500 ; ALERT - DEVICE CLAIMS TO BE FIXED
2501 002604' 205 01 0 00 000001 MOVX J1,NRD.OF ; WE ARE NO LONGER OFFLINE
2502 002605' 616 01 0 15 000036 TDNN J1,NRDSTS(R) ; SEE IF WE EVER KNEW WE WERE OFFLINE
2503 JRST [ MOVX J1,NRD.ON ; NO, OFFLINE NOT HERE YET
2504 IORM J1,NRDSTS(R) ; LETS REMEMBER THIS
2505 002606' 254 00 0 00 004446' JRST INRDX] ; FOR LATER
2506 002607' 413 01 0 15 000036 ANDCAB J1,NRDSTS(R) ; WE ARE OFFLINE, SO CLEAR IT
2507 002610' 606 01 0 00 000200 TXNN J1,NRD.EN ; DOES USER WANT TO KNOW ?
2508 002611' 254 00 0 00 002625' JRST INRDX ; NOPE
2509 002612' 201 01 0 00 000010 MOVX J1,UJ.NRD ; CHECK FOR
2510 002613' 612 01 0 15 000023 TDNE J1,RDSTS(R) ; NURD PROCESSING
2511 JRST [ MOVX J1,NRD.NO ; WE WANT TO
2512 IORM J1,NRDSTS(R) ; SAY ONLINE
2513 002614' 254 00 0 00 004451' JRST INRDX] ; AS WE LEAVE
2514 002615' 201 01 0 00 400000 MOVEI J1,.FHSLF ; ISSUE AN INTERRUPT
2515 002616' 200 02 0 15 000077 MOVE J2,NRDCHN(R) ; ON USER'S CHANNEL
2516 002617' 262 17 0 00 000015 POP P,R ; BUT FIRST, BACK TO
2517 002620' 262 17 0 00 000004 POP P,J4 ; USER'S AC'S
2518 002621' 262 17 0 00 000003 POP P,J3 ; ...
2519 002622' 104 00 0 00 000132 IIC ; TICKLE !
2520 002623' 320 16 0 00 002630' ERJMP INRDXX ; ??
2521 002624' 254 00 0 00 002630' JRST INRDXX ; LEAVE
2522
2523 002625' 262 17 0 00 000015 INRDX: POP P,R ; RESTORE AC'S
2524 002626' 262 17 0 00 000004 POP P,J4 ; ...
2525 002627' 262 17 0 00 000003 POP P,J3 ; ...
2526 002630' 262 17 0 00 000002 INRDXX: POP P,J2 ; ...
2527 002631' 262 17 0 00 000001 POP P,J1 ; ...
2528 002632' 104 00 0 00 000136 DEBRK ; DISMISS INTERRUPT
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 48
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2529 SUBTTL Debug Typeout Routines
2530
2531 002633' 260 17 0 00 003532' TYBUF: $CALL SAV4J
2532 002634' 260 17 0 00 003600' $CALL SAV4
2533 002635' 260 17 0 00 002666' $CALL TCRLF
2534 TYPE (Seq: )
2535 002640' 201 05 0 15 000361 MOVEI A,NRDSBF(R)
2536 002641' 505 05 0 00 441000 HRLI A,(POINT 8)
2537 002642' 133 00 0 00 000005 IBP A ; SKIP NURD MSG TYPE
2538 002643' 133 00 0 00 000005 IBP A ; SKIP NURD FLGS
2539 002644' 134 02 0 00 000005 ILDB J2,A
2540 002645' 260 17 0 00 002672' $CALL NUMO ; SEQ NUMBER
2541 TYPE ( Flags: )
2542 002650' 134 02 0 00 000005 ILDB J2,A
2543 002651' 260 17 0 00 002671' $CALL ONUMO ; DATA FLAGS
2544 TYPE ( Segs: )
2545 002654' 134 02 0 00 000005 ILDB J2,A
2546 002655' 200 06 0 00 000002 MOVE B,J2 ; SAVE IT
2547 002656' 260 17 0 00 002672' $CALL NUMO ; NO. SEGMENTS
2548 002657' 260 17 0 00 002666' $CALL TCRLF ; B = NO. OF SEGMENTS
2549 002660' 361 06 0 00 002162' TYBUF1: SOJL B,CPOPJ ; DONE
2550 002661' 134 07 0 00 000005 ILDB C,A ; GET NEXT SEGMENT HEAD
2551
2552 002662' 361 07 0 00 002660' TYBUF2: SOJL C,TYBUF1 ; SEG DONE
2553 002663' 134 01 0 00 000005 ILDB J1,A
2554 002664' 104 00 0 00 000074 PBOUT
2555 002665' 254 00 0 00 002662' JRST TYBUF2
2556
2557 TCRLF: TYPE (
2558 )
2559 002670' 263 17 0 00 000000 $RET
2560
2561 ; CALL WITH NUMBER IN J2, CLOBBERS J1
2562 002671' 334 01 0 00 004464' ONUMO: SKIPA J1,[^D8] ; OCTAL OUT
2563 002672' 201 01 0 00 000012 NUMO: MOVEI J1,^D10 ; DECIMAL OUT
2564 002673' 261 17 0 00 000003 PUSH P,J3 ; SAVE J3
2565 002674' 200 03 0 00 000001 MOVE J3,J1 ; SET RADIX
2566 002675' 201 01 0 00 000101 MOVEI J1,.PRIOU ; SEND TO TTY
2567 002676' 104 00 0 00 000224 NOUT ; SEND THE NUMBER
2568 002677' 255 00 0 00 000000 JFCL ; ??
2569 002700' 262 17 0 00 000003 POP P,J3 ; RESTORE J3
2570 002701' 263 17 0 00 000000 $RET
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 49
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2571 ; MONITOR RECEIVED NURD MESSAGES
2572 002702' 260 17 0 00 003532' RCVTYP: $CALL SAV4J
2573 002703' 260 17 0 00 003600' $CALL SAV4
2574 002704' 200 10 0 15 000101 MOVE D,NRDRCN(R) ; GET BUFFER COUNT
2575 002705' 200 05 0 15 000100 MOVE A,NRDRPT(R) ; GET PTR
2576 SOJL D,[ TYPE (Empty message !!)
2577 002706' 361 10 0 00 004471' $CALLR TCRLF]
2578 002707' 134 06 0 00 000005 ILDB B,A ; GET MSG TYPE
2579 002710' 301 06 0 00 000006 CAIL B,NM.OTR
2580 002711' 263 17 0 00 000000 $RET ; ILLEGAL TYPE
2581 002712' 200 01 0 06 002735' MOVE J1,RMONTP(B) ; CHECK IF THIS TYPE MONITORED
2582 002713' 616 01 0 00 000002' TDNN J1,DEBUGR
2583 002714' 263 17 0 00 000000 $RET ; NO
2584 002715' 260 17 0 00 002666' $CALL TCRLF
2585 002716' 200 01 0 06 002743' MOVE J1,MSGTYP(B) ; TYPE
2586 TYPE
2587 TYPE ( NURD msg flags: )
2588 SOJL D,[ TYPE (...Insuff data)
2589 002722' 361 10 0 00 004503' $CALLR TCRLF]
2590 002723' 134 02 0 00 000005 ILDB J2,A
2591 002724' 260 17 0 00 002671' $CALL ONUMO
2592 002725' 260 17 0 00 002666' $CALL TCRLF
2593 002726' 254 00 1 06 002727' $CALLR @MTYPER(B) ; DISPATCH TO INDIVIDUAL MSG TYPER
2594
2595 002727' 000000 002751' MTYPER: TYPDAT ; DATA
2596 002730' 000000 003066' TYPATT ; ATTENTION
2597 002731' 000000 003203' TYPFTR ; FEATURES
2598 002732' 000000 003420' TYPCTL ; CONTROL
2599 002733' 000000 003065' TYPALR ; ALERT
2600 002734' 000000 003065' TYPCAP ; CAPABILITIES
2601
2602 000001 MONDAT==1
2603 000002 MONATT==2
2604 000004 MONFTR==4
2605 000010 MONCTL==10
2606 000020 MONALR==20
2607 000040 MONCAP==40
2608
2609 002735' 000000 000001 RMONTP: MONDAT
2610 002736' 000000 000002 MONATT
2611 002737' 000000 000004 MONFTR
2612 002740' 000000 000010 MONCTL
2613 002741' 000000 000020 MONALR
2614 002742' 000000 000040 MONCAP
2615
2616 002743' 000000 004506' MSGTYP: [ASCIZ /Data msg: /]
2617 002744' 000000 004511' [ASCIZ /Attention msg: /]
2618 002745' 000000 004515' [ASCIZ /Feature msg: /]
2619 002746' 000000 004520' [ASCIZ /Control msg: /]
2620 002747' 000000 004523' [ASCIZ /Alert msg: /]
2621 002750' 000000 004526' [ASCIZ /Capabilities msg: /]
2622
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 50
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2623 ; DATA MESSAGE FORMAT:
2624 ; <0><MSG FLGS><SEQ. NO.><DATA FLGS><SEG. CNT>[SEGMENTS]
2625 ; SEGMENT FORMENT:
2626 ; <CNT><... CNT DATA ITEMS ...> OR <200!CNT><DATA ITEM>
2627 ;
2628 ; A = PTR TO <SEQ NO.>
2629 ; D = REMAINING BUFFER COUNT
2630
2631 002751' 361 10 0 00 003043' TYPDAT: SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2632 002752' 260 17 0 00 003047' $CALL TYPSEQ ; SEQ NO.
2633 TYPE ( Flags: )
2634 002755' 361 10 0 00 003043' SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2635 002756' 134 06 0 00 000005 ILDB B,A
2636 002757' 200 07 0 00 004532' MOVE C,[-DMFL,,DMFTX]
2637 002760' 260 17 0 00 003143' $CALL TYPAFL ; TYPE THE FLAGS
2638 TYPE ( Segment count: )
2639 002763' 361 10 0 00 003043' SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2640 002764' 134 07 0 00 000005 ILDB C,A ; GET SEG CNT
2641 002765' 200 02 0 00 000007 MOVE J2,C
2642 002766' 260 17 0 00 002672' $CALL NUMO
2643 002767' 211 07 0 07 000001 MOVNI C,1(C)
2644 002770' 205 07 0 07 000000 MOVSI C,(C) ; C = -<CNT+1>,,0
2645
2646 002771' 260 17 0 00 002666' TYPSEG: $CALL TCRLF ; END LAST SEQUENCE
2647 002772' 252 07 0 00 003046' AOBJP C,TYPDON ; NO MORE SEGS
2648 TYPE (Segment: )
2649 002775' 550 02 0 00 000007 HRRZ J2,C
2650 002776' 260 17 0 00 002672' $CALL NUMO
2651 TYPE ( Count: )
2652 003001' 361 10 0 00 003043' SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2653 003002' 134 06 0 00 000005 ILDB B,A ; GET SEG SIZE
2654 003003' 200 02 0 00 000006 MOVE J2,B
2655 003004' 260 17 0 00 002672' $CALL NUMO
2656 003005' 260 17 0 00 002666' $CALL TCRLF
2657 003006' 326 06 0 00 003012' JUMPN B,TYPSG1
2658 TYPE (EOR)
2659 003011' 254 00 0 00 002771' JRST TYPSEG
2660
2661 003012' 626 06 0 00 000200 TYPSG1: TXZN B,200 ; CHECK FOR COMPRESSED
2662 003013' 254 00 0 00 003030' JRST TYPSG2
2663 TYPE (Compressed segment: )
2664 003016' 200 02 0 00 000006 MOVE J2,B
2665 003017' 260 17 0 00 002672' $CALL NUMO
2666 003020' 201 01 0 00 000074 MOVEI J1,"<"
2667 003021' 104 00 0 00 000074 PBOUT
2668 003022' 602 13 0 00 000030 TXNE LS,NRD.IM!NRD.AI
2669 003023' 361 10 0 00 003043' SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2670 003024' 260 17 0 00 003053' $CALL TYPITM
2671 003025' 201 01 0 00 000076 MOVEI J1,">"
2672 003026' 104 00 0 00 000074 PBOUT
2673 003027' 254 00 0 00 002771' JRST TYPSEG
2674
2675 003030' 361 06 0 00 002771' TYPSG2: SOJL B,TYPSEG ; UNCOMPRESSED
2676 003031' 361 10 0 00 003043' TYPSG3: SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2677 003032' 602 13 0 00 000030 TXNE LS,NRD.IM!NRD.AI
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 50-1
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2678 003033' 361 10 0 00 003043' SOJL D,TYPDXR ; NOT ENOUGH FOR NEXT BYTE
2679 003034' 260 17 0 00 003053' $CALL TYPITM
2680 003035' 361 06 0 00 002771' SOJL B,TYPSEG
2681 003036' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI
2682 003037' 254 00 0 00 003031' JRST TYPSG3
2683 003040' 201 01 0 00 000054 MOVEI J1,"," ; SEPARATE IMAGE ITEMS BY COMMAS
2684 003041' 104 00 0 00 000074 PBOUT
2685 003042' 254 00 0 00 003031' JRST TYPSG3
2686
2687 003043' TYPDXR: TYPE (...Insuff data)
2688 003045' 260 17 0 00 002666' $CALL TCRLF
2689 003046' 263 17 0 00 000000 TYPDON: $RET
2690
2691 003047' TYPSEQ: TYPE (Sequence: )
2692 003051' 134 02 0 00 000005 ILDB J2,A
2693 003052' 254 00 0 00 002672' $CALLR NUMO
2694
2695 003053' 134 01 0 00 000005 TYPITM: ILDB J1,A ; TYPE A DATA ITEM
2696 003054' 606 13 0 00 000030 TXNN LS,NRD.IM!NRD.AI ; CHECK TWO BYTES
2697 JRST [ PBOUT ; ASCII
2698 003055' 254 00 0 00 004555' $RET] ; ...
2699 003056' 134 02 0 00 000005 ILDB J2,A ; IMAGE MODE
2700 003057' 137 02 0 00 004243' DPB J2,[POINT 8,J1,27]
2701 003060' 200 02 0 00 000001 MOVE J2,J1
2702 003061' 254 00 0 00 002671' $CALLR ONUMO
2703
2704
2705 DEFINE DATXT (FLAG,TEXT) <
2706 ND.'FLAG,,[ASCIZ /'TEXT'/]
2707 >
2708 003062' 000001 004557' DMFTX: DATXT ACK,Acknowledge
2709 003063' 000002 004562' DATXT IER,Input-error
2710 003064' 000004 004565' DATXT EOF,EOF
2711 000003 DMFL==.-DMFTX
2712
2713 003065' TYPALR:
2714 003065' 254 00 0 00 002666' TYPCAP: JRST TCRLF
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 51
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2715 ; ATTENTION MSG FORMAT:
2716 ; <NM.ATT><NURD FLGS><LAST SEQ NO.><ATT. REASON CODE><DEVSTS 1-3><PAGE CNT 2>
2717 ;
2718 ; A = PTR TO <LAST SEQ NO.>
2719 ; D = REMAINING BYTES IN BUFFER
2720
2721 003066' 361 10 0 00 003043' TYPATT: SOJL D,TYPDXR
2722 003067' 260 17 0 00 003047' $CALL TYPSEQ ; SEQ NO.
2723 TYPE ( Reason: )
2724 003072' 361 10 0 00 003043' SOJL D,TYPDXR
2725 003073' 134 06 0 00 000005 ILDB B,A ; GET REASON
2726 003074' 307 06 0 00 000005 CAIG B,N.APLE
2727 003075' 334 01 0 06 003153' SKIPA J1,RESNCD(B) ; EXPLAIN WHY
2728 003076' 201 01 0 00 004571' MOVEI J1,[ASCIZ /Apparently just for kicks/]
2729 TYPE
2730 003100' 260 17 0 00 002666' $CALL TCRLF ; BEGIN FLAGS ON NEW LINE
2731 TYPE (Flags: )
2732 003103' 361 10 0 00 003043' SOJL D,TYPDXR
2733 003104' 134 06 0 00 000005 ILDB B,A ; GET FLAGS
2734 003105' 200 07 0 00 004601' MOVE C,[-BYT1L,,BYT1TB]
2735 003106' 260 17 0 00 003143' $CALL TYPAFL
2736 003107' 606 06 0 00 000200 TXNN B,200 ; CHECK EXTENSION
2737 003110' 254 00 0 00 003131' JRST TYPAPG
2738 003111' 361 10 0 00 003043' SOJL D,TYPDXR
2739 003112' 134 06 0 00 000005 ILDB B,A
2740 003113' 200 07 0 00 004602' MOVE C,[-BYT2L,,BYT2TB]
2741 003114' 260 17 0 00 003143' $CALL TYPAFL
2742 ; DEVICE SPECIFIC FLAGS
2743 003115' 606 13 0 00 000004 TXNN LS,NRD.LP
2744 003116' 334 07 0 00 004603' SKIPA C,[-CBYT2L,,CBYT2T]
2745 003117' 200 07 0 00 004604' MOVE C,[-LBYT2L,,LBYT2T]
2746 003120' 260 17 0 00 003143' $CALL TYPAFL
2747 003121' 606 06 0 00 000200 TXNN B,200 ; CHECK FOR THIRD BYTE
2748 003122' 254 00 0 00 003131' JRST TYPAPG
2749 003123' 361 10 0 00 003043' SOJL D,TYPDXR
2750 003124' 134 06 0 00 000005 ILDB B,A
2751 003125' 606 13 0 00 000004 TXNN LS,NRD.LP
2752 003126' 334 07 0 00 004605' SKIPA C,[-CBYT3L,,CBYT3T]
2753 003127' 200 07 0 00 004606' MOVE C,[-LBYT3L,,LBYT3T]
2754 003130' 260 17 0 00 003143' $CALL TYPAFL
2755
2756 003131' 260 17 0 00 002666' TYPAPG: $CALL TCRLF ; PAGE COUNT ON NEW LINE
2757 TYPE (Page count: )
2758 003134' 370 00 0 00 000010 SOS D
2759 003135' 361 10 0 00 003043' SOJL D,TYPDXR
2760 003136' 134 02 0 00 000005 ILDB J2,A
2761 003137' 134 01 0 00 000005 ILDB J1,A
2762 003140' 137 01 0 00 004612' DPB J1,[POINT 8,J2,27]
2763 003141' 260 17 0 00 002672' $CALL NUMO
2764 003142' 254 00 0 00 002666' $CALLR TCRLF
2765
2766 003143' 617 06 0 07 000000 TYPAFL: TSNN B,(C) ; CHECK FOR BIT SET
2767 003144' 254 00 0 00 003151' JRST TYPAFX ; B = FLAGS, C = TABLE
2768 003145' 550 01 0 07 000000 HRRZ J1,(C) ; YES - GET TEXT
2769 TYPE
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 51-1
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2770 003147' 201 01 0 00 000040 MOVEI J1," "
2771 003150' 104 00 0 00 000074 PBOUT
2772 003151' 253 07 0 00 003143' TYPAFX: AOBJN C,TYPAFL
2773 003152' 263 17 0 00 000000 $RET
2774
2775 003153' 000000 004613' RESNCD: [ASCIZ /No reason at all, really/] ; RESERVED
2776 003154' 000000 004620' [ASCIZ /Device status change/]
2777 003155' 000000 004625' [ASCIZ /Data acknowledgement/]
2778 003156' 000000 004632' [ASCIZ /Requested/]
2779 003157' 000000 004634' [ASCIZ /Abort received/]
2780 003160' 000000 004637' [ASCIZ /Page limit exceeded/]
2781
2782 DEFINE ATTXT (FLAG,TEXT) <
2783 NA.'FLAG,,[ASCIZ /'TEXT'/]
2784 >
2785 003161' 000001 004643' BYT1TB: ATTXT FAT,Fatal
2786 003162' 000002 004645' ATTXT OFL,Offline
2787 003163' 000004 004647' ATTXT PAU,Paused
2788 003164' 000010 004651' ATTXT OMD,Out-of-media
2789 003165' 000020 004654' ATTXT JAM,Jam
2790 003166' 000040 004655' ATTXT OOF,Opr-offline
2791 003167' 000100 004660' ATTXT NOE,Non-opr-error
2792 000007 BYT1L==.-BYT1TB
2793
2794 003170' 000001 004663' BYT2TB: ATTXT OUF,Output-full
2795 003171' 000002 004666' ATTXT NAC,Device-not-accessible
2796 003172' 000004 004673' ATTXT DTO,Device-timeout
2797 003173' 000010 004676' ATTXT RNA,Resource-not-avail
2798 000004 BYT2L==.-BYT2TB
2799
2800 003174' 000020 004702' LBYT2T: ATTXT PSE,Paper-slew
2801 003175' 000040 004705' ATTXT INK,Ink
2802 000002 LBYT2L==.-LBYT2T
2803
2804 003176' 000001 004706' LBYT3T: ATTXT OVP,Overprint
2805 000001 LBYT3L==.-LBYT3T
2806
2807 003177' 000020 004710' CBYT2T: ATTXT PF,Pick-fail
2808 003200' 000040 004712' ATTXT RAP,Read-after-punch-error
2809 003201' 000100 004717' ATTXT REG,Registration-error
2810 000003 CBYT2L==.-CBYT2T
2811
2812 003202' 000001 004723' CBYT3T: ATTXT IVP,Invalid-punch
2813 000001 CBYT3L==.-CBYT3T
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 52
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2814 ; FEATURES MESSAGE FORMAT:
2815 ; <NM.FTR><NURD FLAGS><SEQ NO.><NO. FEATURE SPECS>[...<FEATURE SPEC>...]
2816 ;
2817 ; FEATURE SPEC FORMAT:
2818 ; <FEATURE ID><FLAGS><CLASS><RESPONSE>[<VALUE>]
2819 ; VALUE FORMAT:
2820 ; CLASS 0: <VALUE> (LSB)
2821 ; CLASS 1: <CNT><CNT BYTES> (LEAST SIGNIFICANT BYTE 1ST)
2822 ;
2823 ; A = PTR TO <SEQ NO.>
2824 ; D = REMAINING BYTES IN BUFFER
2825
2826 003203' 361 10 0 00 003043' TYPFTR: SOJL D,TYPDXR
2827 003204' 260 17 0 00 003047' $CALL TYPSEQ ; SEQ NO.
2828 TYPE ( No. feature specs: )
2829 003207' 361 10 0 00 003043' SOJL D,TYPDXR
2830 003210' 134 07 0 00 000005 ILDB C,A ; GET NO. SPECS
2831 003211' 200 02 0 00 000007 MOVE J2,C
2832 003212' 260 17 0 00 002672' TYPFT0: $CALL NUMO
2833 003213' 260 17 0 00 002666' TYPFT1: $CALL TCRLF ; FEATURE SPEC LOOP
2834 003214' 361 07 0 00 002162' SOJL C,CPOPJ
2835 TYPE (Feature ID: )
2836 003217' 361 10 0 00 003043' SOJL D,TYPDXR
2837 003220' 134 06 0 00 000005 ILDB B,A ; GET FID
2838 003221' 200 03 0 00 004736' MOVE J3,[-TCMNL,,TCMNF]
2839 003222' 554 04 0 03 000000 TYPFT2: HLRZ J4,(J3)
2840 003223' 316 06 0 00 000004 CAMN B,J4
2841 003224' 254 00 0 00 003236' JRST TYPFID
2842 003225' 253 03 0 00 003222' AOBJN J3,TYPFT2
2843 003226' 606 13 0 00 000004 TXNN LS,NRD.LP ; CHECK DEVICE SPECIFIC FID'S
2844 003227' 334 03 0 00 004737' SKIPA J3,[-TCDRL,,TCDRF]
2845 003230' 200 03 0 00 004740' MOVE J3,[-TLPTL,,TLPTF]
2846 003231' 554 04 0 03 000000 TYPFT3: HLRZ J4,(J3)
2847 003232' 316 06 0 00 000004 CAMN B,J4
2848 003233' 254 00 0 00 003236' JRST TYPFID
2849 003234' 253 03 0 00 003231' AOBJN J3,TYPFT3
2850 003235' 201 03 0 00 004746' MOVEI J3,[0,,[[ASCIZ /Mystery feature/],,0]]
2851 003236' 550 03 0 03 000000 TYPFID: HRRZ J3,(J3)
2852 003237' 554 01 0 03 000000 HLRZ J1,(J3) ; GET FEATURE NAME
2853 TYPE
2854 TYPE ( Flags: )
2855 003243' 361 10 0 00 003043' SOJL D,TYPDXR
2856 003244' 134 06 0 00 000005 ILDB B,A
2857 003245' 606 06 0 00 000001 TXNN B,NF.CMD
2858 003246' 334 01 0 00 004750' SKIPA J1,[[ASCIZ /READ/]]
2859 003247' 201 01 0 00 004751' MOVEI J1,[ASCIZ /SET/]
2860 TYPE
2861 003251' 201 01 0 00 004752' MOVEI J1,[ASCIZ / STD/]
2862 003252' 602 06 0 00 000002 TXNE B,NF.STD
2863 TYPE
2864 TYPE ( Class: )
2865 003256' 361 10 0 00 003043' SOJL D,TYPDXR
2866 003257' 134 06 0 00 000005 ILDB B,A
2867 003260' 303 06 0 00 000001 CAILE B,FC.CL1
2868 003261' 254 00 0 00 003265' JRST TYPFC2
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 52-1
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2869 003262' 200 02 0 00 000006 MOVE J2,B
2870 003263' 260 17 0 00 002672' $CALL NUMO
2871 003264' 254 00 0 00 003271' JRST TYPFRS
2872
2873 003265' 302 06 0 00 000002 TYPFC2: CAIE B,FC.SST
2874 003266' 334 01 0 00 004762' SKIPA J1,[[ASCIZ /No class at all/]]
2875 003267' 201 01 0 00 004763' MOVEI J1,[ASCIZ /Set-to-std/]
2876 TYPE
2877
2878 003271' 200 04 0 00 000006 TYPFRS: MOVE J4,B ; SAVE CLASS FOR VALUE
2879 TYPE ( Response: )
2880 003274' 361 10 0 00 003043' SOJL D,TYPDXR
2881 003275' 134 06 0 00 000005 ILDB B,A
2882 003276' 303 06 0 00 000010 CAILE B,TRSPL
2883 003277' 201 06 0 00 000010 MOVEI B,TRSPL
2884 003300' 200 01 0 06 003410' MOVE J1,TRSPT(B)
2885 TYPE
2886 003302' 326 06 0 00 003213' JUMPN B,TYPFT1 ; NO VALUE IF ERROR RESPONSE
2887 003303' 303 04 0 00 000001 CAILE J4,FC.CL1
2888 003304' 254 00 0 00 003213' JRST TYPFT1 ; SET TO STD=> NO VALUE
2889 TYPE ( Value: )
2890 003307' 302 04 0 00 000000 CAIE J4,FC.CL0
2891 003310' 254 00 0 00 003320' JRST TYPVC1
2892 003311' 361 10 0 00 003043' SOJL D,TYPDXR
2893 003312' 134 01 0 00 000005 ILDB J1,A
2894 003313' 606 01 0 00 000001 TXNN J1,1 ; 1 BIT VALUE
2895 003314' 334 01 0 00 004775' SKIPA J1,[[ASCIZ /OFF/]]
2896 003315' 201 01 0 00 004776' MOVEI J1,[ASCIZ /ON/]
2897 TYPE
2898 003317' 254 00 0 00 003213' JRST TYPFT1
2899
2900 003320' 361 10 0 00 003043' TYPVC1: SOJL D,TYPDXR ; TYPE CLASS 1 VALUE,
2901 ; J3->[[NAME],,VALUE TABLE]
2902 003321' 134 06 0 00 000005 ILDB B,A ; GET FIELD SIZE
2903 003322' 322 06 0 00 003213' JUMPE B,TYPFT1 ; NULL VALUE ??
2904 003323' 361 10 0 00 003043' SOJL D,TYPDXR
2905 003324' 134 02 0 00 000005 ILDB J2,A ; LOW ORDER BYTE
2906 003325' 362 06 0 00 003332' SOJE B,TYPVLW ; 1 BYTE
2907 SOJG B,[ AOS B ; STRING
2908 MOVE J1,J2
2909 TYPST: PBOUT ; TYPE AS ASCII
2910 SOJL B,TYPFT1 ; STRING DONE
2911 SOJL D,TYPDXR
2912 ILDB J1,A
2913 003326' 367 06 0 00 004777' JRST TYPST]
2914 003327' 361 10 0 00 003043' SOJL D,TYPDXR ; ASSUME 16 BIT NUM
2915 003330' 134 04 0 00 000005 ILDB J4,A
2916 003331' 137 04 0 00 004612' DPB J4,[POINT 8,J2,27]
2917
2918 003332' 550 03 0 03 000000 TYPVLW: HRRZ J3,(J3) ; TYPE BYTE/WORD VALUE,
2919 ; J3->[[NAME],,VALUE TABLE]
2920 003333' 322 03 0 00 003212' JUMPE J3,TYPFT0 ; NO INTERPRETATION - TYPE NUMBER
2921
2922 003334' 336 04 0 03 000000 TPVLW1: SKIPN J4,(J3) ; SEARCH VALUE TABLE
2923 003335' 254 00 0 00 003212' JRST TYPFT0 ; UNKNOWN VALUE - TYPE NUMERIC
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 52-2
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2924 003336' 557 00 0 00 000004 HLRZS J4
2925 003337' 312 04 0 00 000002 CAME J4,J2
2926 003340' 344 03 0 00 003334' AOJA J3,TPVLW1
2927 003341' 550 01 0 03 000000 HRRZ J1,(J3) ; GET STR PTR
2928 TYPE
2929 003343' 254 00 0 00 003213' JRST TYPFT1
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 53
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2930 DEFINE FENAM (FTR,TEXT,VALTBL) <
2931 FTR,,[[ASCIZ /'TEXT'/],,VALTBL]
2932 >
2933 003344' 000000 005010' TCMNF: FENAM 0,<Reserved> ; RESERVED FOR FUTURE ESCAPE CODE
2934 003345' 000001 005013' FENAM FE.DAT,<Data mode>,DATVL ; (CLASS 1)
2935 ; DM.ASC== 1 ; 7 BIT ASCII
2936 ; DM.CLI== 2 ; COLUMNIMAGE
2937 ; DM.EBC== 3 ; EBCDIC
2938 ; DM.AUG== 4 ; AUGMENTED COLUMNIMAGE
2939 ; DM.AS8== 5 ; 8 BIT ASCII
2940 003346' 000002 005017' FENAM FE.SER,<Serial number> ; (CLASS 1)
2941 003347' 000003 005024' FENAM FE.LCR,<Lower case raise> ; (CLASS 0)
2942 003350' 000004 005030' FENAM FE.FWD,<Form width> ; (CLASS 1)
2943 003351' 000005 005035' FENAM FE.EOF,<EOF recognition>,EOFVL ; (CLASS 1)
2944 ; EO.ASC== 1 ; ASCII
2945 ; EOFASC== 7417 ; ASCII EOF (COLUMN 1) PUNCH
2946 ; EO.IMG== 2 ; IMAGE
2947 003352' 000006 005041' FENAM FE.DVT,<Device type> ; (CLASS 1)
2948 003353' 000007 005046' FENAM FE.TRN,<Record truncation>; (CLASS 0)
2949 003354' 000010 005051' FENAM FE.FNM,<Form name> ; (CLASS 1)
2950 003355' 000011 005055' FENAM FE.DWD,<Device width> ; (CLASS 1)
2951 003356' 000377 005057' FENAM FE.ALL,<All>
2952 000013 TCMNL==.-TCMNF
2953
2954 DEFINE FEVAL (VAL,TEXT) <
2955 VAL,,[ASCIZ \'TEXT'\]
2956 >
2957 003357' 000001 005060' DATVL: FEVAL DM.ASC,<ASCII>
2958 003360' 000002 005062' FEVAL DM.CLI,<Column-image>
2959 003361' 000003 005065' FEVAL DM.EBC,<EBCDIC>
2960 003362' 000004 005067' FEVAL DM.AUG,<Augmented-column-image>
2961 003363' 000005 005074' FEVAL DM.AS8,<ASCII(8)>
2962 003364' 000000 000000 0 ; TABLE TERMINATOR
2963 003365' 000001 005060' EOFVL: FEVAL EO.ASC,<ASCII>
2964 003366' 000002 005076' FEVAL EO.IMG,<Image>
2965 003367' 000000 000000 0 ; TABLE TERMINATOR
2966
2967 003370' 000202 005104' TLPTF: FENAM LP.HT,<Horizontal tab stop> ; (CLASS 1)
2968 003371' 000203 005113' FENAM LP.SFC,<Std vertical forms control> ; (CLASS 0)
2969 003372' 000204 005120' FENAM LP.OVP,<Overprint limit> ; (CLASS 1)
2970 003373' 000205 005124' FENAM LP.CVF,<Custom VFU> ; (CLASS 1)
2971 003374' 000206 005132' FENAM LP.FCC,<FORTRAN carriage control> ; (CLASS 0)
2972 003375' 000207 005140' FENAM LP.VFR,<Variable forms ratio>,VFRVL ; (CLASS 1)
2973 ; VF.6LI== 1 ; 6 LINES PER INCH
2974 ; VF.8LI== 2 ; 8 LINES PER INCH
2975 003376' 000210 005144' FENAM LP.CHS,<Character set>,CHSVL ; (CLASS 1)
2976 ; CH.64== 1 ; 64 CHARACTER SET
2977 ; CH.96== 2 ; 96 CHARACTER SET
2978 003377' 000211 005152' FENAM LP.PLE,<Page limit enforcement> ; (CLASS 1)
2979 003400' 000212 005157' FENAM LP.OPV,<Optical VFU name> ; (CLASS 1)
2980 000011 TLPTL==.-TLPTF
2981
2982 003401' 000001 005160' VFRVL: FEVAL VF.6LI,<6 lpi>
2983 003402' 000002 005162' FEVAL VF.8LI,<8 lpi>
2984 003403' 000000 000000 0 ; TABLE TERMINATOR
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 53-1
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
2985
2986 003404' 000001 005164' CHSVL: FEVAL CH.64,<64 char set>
2987 003405' 000002 005167' FEVAL CH.96,<96 char set>
2988 003406' 000000 000000 0 ; TABLE TERMINATOR
2989
2990 003407' 000202 005175' TCDRF: FENAM CD.CWD,<Card width> ; (CLASS 1)
2991 000001 TCDRL==.-TCDRF
2992
2993 003410' 000000 005176' TRSPT: [ASCIZ /0/]
2994 003411' 000000 005177' [ASCIZ /Unsupported feature/]
2995 003412' 000000 005203' [ASCIZ /Bad class specified/]
2996 003413' 000000 005207' [ASCIZ /No standard value/]
2997 003414' 000000 005213' [ASCIZ /Data or format error/]
2998 003415' 000000 005220' [ASCIZ /Change pending/]
2999 003416' 000000 005223' [ASCIZ /Insufficient buffer space to send this message !!/]
3000 003417' 000000 005235' [ASCIZ /Device not paused/]
3001 000010 TRSPL==.-TRSPT
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 54
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
3002 ; CONTROL MESSAGE FORMAT:
3003 ; <NM.CTL><NURD FLAGS><SEQ NO.><COMMAND><RESPONSE>
3004 ;
3005 ; A = PTR TO <SEQ NO.>
3006 ; D = REMAINING BYTES IN BUFFER
3007
3008 003420' 361 10 0 00 003043' TYPCTL: SOJL D,TYPDXR
3009 003421' 260 17 0 00 003047' $CALL TYPSEQ ; SEQUENCE NO.
3010 TYPE ( Command: )
3011 003424' 361 10 0 00 003043' SOJL D,TYPDXR
3012 003425' 134 06 0 00 000005 ILDB B,A ; GET COMMAND
3013 003426' 303 06 0 00 000010 CAILE B,NC.RQC
3014 003427' 201 06 0 00 003456' MOVEI B,ILCMD
3015 003430' 200 01 0 06 003446' MOVE J1,TYPCTB(B) ; GET TEXT
3016 TYPE
3017 TYPE ( Response: )
3018 003434' 361 10 0 00 003043' SOJL D,TYPDXR
3019 003435' 134 07 0 00 000005 ILDB C,A ; GET RESPONSE CODE
3020 003436' 137 06 0 00 005244' DPB B,[POINT 8,C,27] ; MAKE COM.RES CODE
3021 003437' 200 06 0 00 005245' MOVE B,[-CRESL,,CRESTB]
3022
3023 003440' 554 01 0 06 000000 TYPCT1: HLRZ J1,(B)
3024 003441' 312 01 0 00 000007 CAME J1,C
3025 003442' 253 06 0 00 003440' AOBJN B,TYPCT1
3026 003443' 550 01 0 06 000000 HRRZ J1,(B)
3027 TYPE
3028 003445' 254 00 0 00 002666' $CALLR TCRLF
3029
3030 003446' 000000 005246' TYPCTB: [ASCIZ /Undefined command(0)/]
3031 003447' 000000 005253' [ASCIZ /Abort til EOF/]
3032 003450' 000000 005256' [ASCIZ /Abort til clear/]
3033 003451' 000000 005262' [ASCIZ /Clear abort/]
3034 003452' 000000 005265' [ASCIZ /Request status/]
3035 003453' 000000 005270' [ASCIZ /Dump output buffers/]
3036 003454' 000000 005274' [ASCIZ /Pause/]
3037 003455' 000000 005276' [ASCIZ /Resume/]
3038 003456' 000000 005300' ILCMD: [ASCIZ /Undefined command/]
3039 003457' 000000 005304' [ASCIZ /Request capabilities/]
3040
3041 DEFINE CTXT (COM,RES,TEXT) <
3042 <NC.'COM>B27!<NR.'RES>B35,,[ASCIZ /'TEXT'/]
3043 >
3044 003460' 000400 005311' CRESTB: CTXT AUE,ABS,<Abort state>
3045 003461' 000401 005314' CTXT AUE,NAB,<Nothing to abort>
3046 003462' 000402 005320' CTXT AUE,NOE,<No EOF defined!>
3047 003463' 001000 005311' CTXT AUC,ABS,<Abort state>
3048 003464' 001001 005314' CTXT AUC,NAB,<Nothing to abort>
3049 003465' 001400 005324' CTXT CAB,ACC,<Abort cleared>
3050 003466' 001401 005327' CTXT CAB,ACN,<Abort not set>
3051 003467' 002000 005332' CTXT RQS,ATT,<Attention message follows>
3052 003470' 002400 005340' CTXT DMP,DMP,<Dumping>
3053 003471' 002401 005342' CTXT DMP,NOB,<No output buffered>
3054 003472' 003000 005346' CTXT PAU,DPS,<Device will pause>
3055 003473' 003001 005352' CTXT PAU,PAU,<Device already paused>
3056 003474' 003002 005357' CTXT PAU,NDP,<No data transfer to pause>
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 54-1
NURD MAC 21-Mar-80 10:15 Debug Typeout Routines
3057 003475' 003400 005365' CTXT RES,RES,<Device will resume>
3058 003476' 003401 005235' CTXT RES,NPS,<Device not paused>
3059 003477' 003402 005371' CTXT RES,NDR,<No data xfer to resume>
3060 003500' 004000 005376' CTXT RQC,CAP,<Capabilities message follows>
3061 000021 CRESL==.-CRESTB
3062 003501' 000000 005404' [ASCIZ /Undefined response code/]
3063
3064
3065 IFNDEF DEBUG,<LSTON.> ; INTERESTING TO LOOK AT, SO XLIST THEM
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 55
NURD MAC 21-Mar-80 10:15 AC Save Coroutines
3066 SUBTTL AC Save Coroutines
3067
3068 ; These routines (SAVxx) act as co-routines to the routines which
3069 ; call them, thus no corresponding "restore" routines are needed.
3070 ; When the calling routine returns to its caller, it returns via
3071 ; the appropriate restore routine, automatically.
3072
3073 003502' 250 01 0 17 000000 SAV1J: EXCH J1,(P) ; SAVE J1 GET CALLERS ADDRESS
3074 003503' 261 17 0 00 003506' PUSH P,.+3 ; SAVE RETURN ADDRESS FOR CALLER
3075 003504' 505 01 0 17 777777 HRLI J1,-1(P) ; MAKE IT LOOK LIKE RESULT OF JSA
3076 003505' 267 01 0 01 000000 JRA J1,(J1) ; CALL THE CALLER
3077 003506' 304 00 0 00 003506' CAIA . ; NON-SKIP RETURN
3078 003507' 350 00 0 17 777777 AOS -1(P) ; SKIP RETURN
3079 003510' 254 00 0 00 003546' JRST RES1J ; RESTORE J1
3080
3081 003511' 250 01 0 17 000000 SAV2J: EXCH J1,(P) ; SAVE J1 GET CALLERS ADDRESS
3082 003512' 261 17 0 00 000002 PUSH P,J2 ; SAVE J2
3083 003513' 261 17 0 00 003516' PUSH P,.+3 ; SAVE RETURN ADDRESS
3084 003514' 505 01 0 17 777776 HRLI J1,-2(P) ; SETUP FOR THE JRA
3085 003515' 267 01 0 01 000000 JRA J1,(J1) ; CALL THE CALLER
3086 003516' 304 00 0 00 003516' CAIA . ; NON-SKIP RETURN
3087 003517' 350 00 0 17 777776 AOS -2(P) ; SKIP RETURN
3088 003520' 254 00 0 00 003545' JRST RES2J ; RESTORE J2,J1
3089
3090 003521' 250 01 0 17 000000 SAV3J: EXCH J1,(P) ; SAVE J1 GET RETURN ADDRESS
3091 003522' 261 17 0 00 000002 PUSH P,J2 ; SAVE J2
3092 003523' 261 17 0 00 000003 PUSH P,J3 ; SAVE J3
3093 003524' 261 17 0 00 003527' PUSH P,.+3 ; SAVE RETURN ADDRESS
3094 003525' 505 01 0 17 777775 HRLI J1,-3(P) ; SETUP FOR JRA
3095 003526' 267 01 0 01 000000 JRA J1,(J1) ; AND CALL THE CALLER
3096 003527' 304 00 0 00 003527' CAIA . ; NON-SKIP
3097 003530' 350 00 0 17 777775 AOS -3(P) ; SKIP RETURN
3098 003531' 254 00 0 00 003544' JRST RES3J ; AND RESTORE J3,J2,J1
3099
3100 003532' 250 01 0 17 000000 SAV4J: EXCH J1,(P) ; SAVE J1 GET RETURN ADDRESS
3101 003533' 261 17 0 00 000002 PUSH P,J2 ; SAVE J2
3102 003534' 261 17 0 00 000003 PUSH P,J3 ; SAVE J3
3103 003535' 261 17 0 00 000004 PUSH P,J4 ; SAVE J4
3104 003536' 261 17 0 00 003541' PUSH P,.+3 ; SAVE RETURN ADDRESS
3105 003537' 505 01 0 17 777774 HRLI J1,-4(P) ; SETUP FOR RETURN
3106 003540' 267 01 0 01 000000 JRA J1,(J1) ; AND RETURN
3107 003541' 304 00 0 00 003541' CAIA . ; NON-SKIP RETURN
3108 003542' 350 00 0 17 777774 AOS -4(P) ; SKIP RETURN
3109
3110 003543' 262 17 0 00 000004 POP P,J4 ; RESTORE J4
3111 003544' 262 17 0 00 000003 RES3J: POP P,J3 ; RESTORE J3
3112 003545' 262 17 0 00 000002 RES2J: POP P,J2 ; RESTORE J2
3113 003546' 262 17 0 00 000001 RES1J: POP P,J1 ; RESTORE J1
3114 003547' 263 17 0 00 000000 $RET ; AND RETURN
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page 56
NURD MAC 21-Mar-80 10:15 AC Save Coroutines
3115 003550' 250 05 0 17 000000 SAV1: EXCH A,(P) ; SAVE A GET CALLERS ADDRESS
3116 003551' 261 17 0 00 003554' PUSH P,.+3 ; SAVE RETURN ADDRESS FOR CALLER
3117 003552' 505 05 0 17 777777 HRLI A,-1(P) ; MAKE IT LOOK LIKE RESULT OF JSA
3118 003553' 267 05 0 05 000000 JRA A,(A) ; CALL THE CALLER
3119 003554' 304 00 0 00 003554' CAIA . ; NON-SKIP RETURN
3120 003555' 350 00 0 17 777777 AOS -1(P) ; SKIP RETURN
3121 003556' 254 00 0 00 003614' JRST RES1 ; RESTORE A
3122
3123 003557' 250 05 0 17 000000 SAV2: EXCH A,(P) ; SAVE A GET CALLERS ADDRESS
3124 003560' 261 17 0 00 000006 PUSH P,B ; SAVE B
3125 003561' 261 17 0 00 003564' PUSH P,.+3 ; SAVE RETURN ADDRESS
3126 003562' 505 05 0 17 777776 HRLI A,-2(P) ; SETUP FOR THE JRA
3127 003563' 267 05 0 05 000000 JRA A,(A) ; CALL THE CALLER
3128 003564' 304 00 0 00 003564' CAIA . ; NON-SKIP RETURN
3129 003565' 350 00 0 17 777776 AOS -2(P) ; SKIP RETURN
3130 003566' 254 00 0 00 003613' JRST RES2 ; RESTORE B,A
3131
3132 003567' 250 05 0 17 000000 SAV3: EXCH A,(P) ; SAVE A GET RETURN ADDRESS
3133 003570' 261 17 0 00 000006 PUSH P,B ; SAVE B
3134 003571' 261 17 0 00 000007 PUSH P,C ; SAVE C
3135 003572' 261 17 0 00 003575' PUSH P,.+3 ; SAVE RETURN ADDRESS
3136 003573' 505 05 0 17 777775 HRLI A,-3(P) ; SETUP FOR JRA
3137 003574' 267 05 0 05 000000 JRA A,(A) ; AND CALL THE CALLER
3138 003575' 304 00 0 00 003575' CAIA . ; NON-SKIP
3139 003576' 350 00 0 17 777775 AOS -3(P) ; SKIP RETURN
3140 003577' 254 00 0 00 003612' JRST RES3 ; AND RESTORE C,B,A
3141
3142 003600' 250 05 0 17 000000 SAV4: EXCH A,(P) ; SAVE A GET RETURN ADDRESS
3143 003601' 261 17 0 00 000006 PUSH P,B ; SAVE B
3144 003602' 261 17 0 00 000007 PUSH P,C ; SAVE C
3145 003603' 261 17 0 00 000010 PUSH P,D ; SAVE D
3146 003604' 261 17 0 00 003607' PUSH P,.+3 ; SAVE RETURN ADDRESS
3147 003605' 505 05 0 17 777774 HRLI A,-4(P) ; SETUP FOR RETURN
3148 003606' 267 05 0 05 000000 JRA A,(A) ; AND RETURN
3149 003607' 304 00 0 00 003607' CAIA . ; NON-SKIP RETURN
3150 003610' 350 00 0 17 777774 AOS -4(P) ; SKIP RETURN
3151
3152 003611' 262 17 0 00 000010 POP P,D ; RESTORE D
3153 003612' 262 17 0 00 000007 RES3: POP P,C ; RESTORE C
3154 003613' 262 17 0 00 000006 RES2: POP P,B ; RESTORE B
3155 003614' 262 17 0 00 000005 RES1: POP P,A ; RESTORE A
3156 003615' 263 17 0 00 000000 $RET ; AND RETURN
3157
3158 END
NO ERRORS DETECTED
PROGRAM BREAK IS 005411
ABSOLUTE BREAK IS 000565
CPU TIME USED 00:37.227
95P CORE USED
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page S-1
NURD MAC 21-Mar-80 10:15 SYMBOL TABLE
A 000005 DEBRK 104000 000136 int FR.NEB 000006 spd LBYT3T 003176'
ACCCLO 000003 spd DEBUGF 000001' FR.NST 000003 spd LMOFLO 000701'
ACCOPN 000002 spd DEBUGR 000002' FR.USF 000001 spd LMOLTR 000624'
ACCREL 000004 spd DESX2 600151 int FRDP 001617' LMOLVF 000624'
AIC 104000 000131 int DESX3 600152 int FRSP 001626' LMONOP 000611'
ARGX19 602033 int DESX5 600154 int FTJSYS 777777 777777 sin LMOPSI 000555'
ASNACK 000004 spd DESX9 601340 int FTRM1 001472' LMORS1 000577'
ASNHDN 000003 spd DEVRSR 001067' FTRM2 001502' LMORST 000567'
ATTM 001357' DIC 104000 000133 int FTRM3 001513' LMORTR 000624'
ATTMC 001421' DIR 104000 000130 int FTRM4 001521' LMORVF 000624'
ATTMSG 001341' DISMS 104000 000167 int FTRM5 001530' LMOST1 000653'
ATTMX 001455' DM.AS8 000005 spd FTRM6 001534' LMOST2 000662'
B 000006 DM.ASC 000001 spd FTRM7 001563' LMOST3 000670'
BOTX05 602132 int DM.AUG 000004 spd FTRM8 001571' LMOST4 000676'
BR1 001021' DM.CLI 000002 spd FTRM9 001600' LMOSTS 000626'
BR2 001024' DM.EBC 000003 spd FTRM9A 001602' LP.CHS 000210 spd
BR3 001031' DMFL 000003 spd FTRMSG 001462' LP.CVF 000205 spd
BRKS 001017' DMFTX 003062' FTRW1 001717' LP.FCC 000206 spd
BYT1L 000007 spd DNBRK 002555' FTRWAT 001715' LP.HT 000202 spd
BYT1TB 003161' DNRD 002535' FTRXIT 001605' LP.OPV 000212 spd
BYT2L 000004 spd DNRDX 002557' FTUUOS 000000 sin LP.OVP 000204 spd
BYT2TB 003170' DS 000014 FVLP 001621' LP.PLE 000211 spd
C 000007 EFAD1 002227' FVLPH 001623' LP.SFC 000203 spd
CAPM1 001655' EFADBY 002236' FVLPL 001622' LP.VFR 000207 spd
CAPM2 001660' EFADR 002220' GETER 104000 000012 int LPTIOW 000614'
CAPM3 001664' EIR 104000 000126 int GETWRD 001274' LS 000013
CAPMSG 001637' EO.ASC 000001 spd GJ%SHT 000001 000000 sin LSTIN. 000000 spd
CBYT2L 000003 spd EO.IMG 000002 spd GJFX16 600074 int LTOPR 000542'
CBYT2T 003177' EOFVL 003365' GJFX28 600110 int LTOPRL 000011 spd
CBYT3L 000001 spd ERCAL 320740 000000 int GLXPUR 777777 777777 spd MAPD1 002115'
CBYT3T 003202' ERJMP 320700 000000 int GNRDSP 002164' MAPD3 002132'
CD.CWD 000202 spd ERRTN 002312' GNRMSP 002163' MAPD4 002145'
CH.64 000001 spd ERRTX 002362' GNRTB 002212' MAPD5 002160'
CH.96 000002 spd FC.CL0 000000 spd GTJFN 104000 000020 int MAPDEV 002107'
CHSVL 003404' FC.CL1 000001 spd IIC 104000 000132 int MKCMSG 001731'
CKI2 002354' FC.SST 000002 spd ILCMD 003456' MKRDDB 000140'
CKI3 002355' FCLP 001625' IMSGSZ 000020 spd MO%ABT 010000 000000 sin
CKI4 002356' FE.ALL 000377 spd INRD 002562' MO%CON 400000 000000 sin
CLOSF 104000 000022 int FE.DAT 000001 spd INRDIN 002465' MO%EOF 000040 000000 sin
CMOPSI 000555' FE.DVT 000006 spd INRDX 002625' MO%FER 000200 000000 sin
CMORST 000577' FE.DWD 000011 spd INRDXX 002630' MO%HE 000004 000000 sin
CONW1 000123' FE.EOF 000005 spd INSTR 002214' MO%HEM 000010 sin
CONWAT 000121' FE.FNM 000010 spd INTOFF 002524' MO%IOP 000020 000000 sin
CPOPJ 002162' FE.FWD 000004 spd INTON 002514' MO%LCI 000002 spd
CPOPJ1 002161' FE.LCR 000003 spd IOX2 600216 int MO%LCP 400000 000000 sin
CRESL 000021 spd FE.SER 000002 spd IOX3 600217 int MO%LPC 000001 spd
CRESTB 003460' FE.TRN 000007 spd IOX4 600220 int MO%LVU 000020 spd
CTLMSG 001627' FFLP 001624' IOX5 600221 int MO%OL 000002 000000 sin
CTOPR 000553' FLNP 001620' J1 000001 MO%PCK 000002 sin
CTOPRL 000002 spd FLSNRD 000110' J2 000002 MO%RCK 000001 sin
CZ%ABT 004000 000000 sin FLSNRM 000111' J3 000003 MO%SER 000010 000000 sin
D 000010 FR.BCL 000002 spd J4 000004 MO%SFL 000020 sin
DATVL 003357' FR.CPN 000005 spd LBYT2L 000002 spd MO%SYN 004000 000000 sin
DCNX11 602026 int FR.DNP 000007 spd LBYT2T 003174' MO%WCC 040000 000000 sin
DCNX8 602025 int FR.ERR 000004 spd LBYT3L 000001 spd MO%WFC 100000 000000 sin
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page S-2
NURD MAC 21-Mar-80 10:15 SYMBOL TABLE
MONALR 000020 spd NM.TYP 000017 spd NRDFSQ 000160 spd OPNX13 600134 int
MONATT 000002 spd NODX01 602115 int NRDIBF 000561 spd OPNX14 600135 int
MONCAP 000040 spd NOUT 104000 000224 int NRDICH 000043 spd OPNX21 600144 int
MONCTL 000010 spd NR.ABS 000000 spd NRDIER 000056 spd OPNX3 600122 int
MONDAT 000001 spd NR.ACC 000000 spd NRDJFN 000034 spd OPNX4 600123 int
MONFTR 000004 spd NR.ACN 000001 spd NRDLIM 000104 spd OPNX7 600126 int
MSGTYP 002743' NR.ATT 000000 spd NRDLP 000102 spd P 000017
MSNDIC 001761' NR.CAP 000000 spd NRDLPC 000052 spd PA%CPY 000400 000000 sin
MTOPR 104000 000077 int NR.DMP 000000 spd NRDLPF 000131 spd PA%EX 020000 000000 sin
MTOX1 601210 int NR.DPS 000000 spd NRDLVL 000001 spd PA%RD 100000 000000 sin
MTYPER 002727' NR.NAB 000001 spd NRDMAJ 000001 spd PA%WT 040000 000000 sin
N.AABC 000004 spd NR.NDP 000002 spd NRDMIN 000002 spd PBOUT 104000 000074 int
N.AACK 000002 spd NR.NDR 000002 spd NRDRBF 000161 spd PJRST 254000 000000
N.APLE 000005 spd NR.NOB 000001 spd NRDRCN 000101 spd PSOUT 104000 000076 int
N.ARQS 000003 spd NR.NOE 000002 spd NRDREP 000046 spd R 000015
N.ASTC 000001 spd NR.NPS 000001 spd NRDRPT 000100 spd RCVBUF 001056'
NA.DTO 000004 spd NR.PAU 000001 spd NRDSBF 000361 spd RCVC1 001672'
NA.FAT 000001 spd NR.RES 000000 spd NRDSCN 000103 spd RCVCRS 001670'
NA.INK 000040 spd NR1 002457' NRDSEG 000043 spd RCVM1 001316'
NA.IVP 000001 spd NRD.AB 004000 spd NRDSEQ 000041 spd RCVMSG 001300'
NA.JAM 000020 spd NRD.AI 000020 spd NRDSGC 000042 spd RCVMT 001332'
NA.NAC 000002 spd NRD.CC 000002 spd NRDSGN 000045 spd RCVN0 001234'
NA.NOE 000100 spd NRD.CP 000001 spd NRDSGS 000044 spd RCVN1 001246'
NA.OFL 000002 spd NRD.EN 000200 spd NRDSPT 000102 spd RCVNRM 001233'
NA.OMD 000010 spd NRD.EO 000400 spd NRDSTS 000036 spd RCVR1 001706'
NA.OOF 000040 spd NRD.ER 001000 spd NRDTMC 000047 spd RCVRQ 001704'
NA.OUF 000001 spd NRD.FE 010000 spd NRDTMO 000012 spd RCVRQS 001702'
NA.OVP 000001 spd NRD.IM 000010 spd NRDUFE 000155 spd RCVRS1 001211'
NA.PAU 000004 spd NRD.LP 000004 spd NRDULA 000035 spd RCVRSP 001206'
NA.PF 000020 spd NRD.NO 000004 000000 spd NRDWHO 000000 spd RCVTYP 002702'
NA.PSE 000020 spd NRD.OC 000100 spd NRM.CC 000002 spd RDDBSZ 000565 spd
NA.RAP 000040 spd NRD.OF 000001 000000 spd NRM.CP 000001 spd RDDEV 000022 spd
NA.REG 000100 spd NRD.ON 000002 000000 spd NRM.RS 000004 spd RDEPDL 000017 spd
NA.RNA 000010 spd NRD.OP 000040 spd NRMACC 000051 spd RDERT 000024 spd
NC.AUC 000002 spd NRD.PL 002000 spd NRMASN 000052 spd RDFTRS 002073'
NC.AUE 000001 spd NRD.PS 020000 spd NRMASR 000033 spd RDHOST 000020 spd
NC.CAB 000003 spd NRD.RS 100000 spd NRMAST 000032 spd RDINTB 000025 spd
NC.DMP 000005 spd NRD.TO 040000 spd NRMCFL 000031 spd RDSAVE 000000 spd
NC.PAU 000006 spd NRDASQ 000051 spd NRMID 000027 spd RDSTS 000023 spd
NC.RES 000007 spd NRDATT 000050 spd NRMJFN 000026 spd REDFTR 002047'
NC.RQC 000010 spd NRDBSZ 001000 spd NRMRID 000041 spd RES1 003614'
NC.RQS 000004 spd NRDCAP 000055 spd NRMRSP 000047 spd RES1J 003546'
ND.ACK 000001 spd NRDCCR 000054 spd NRMSPC 000050 spd RES2 003613'
ND.EOF 000004 spd NRDCFL 000040 spd NRMSTA 000053 spd RES2J 003545'
ND.IER 000002 spd NRDCHN 000077 spd NRMSTS 000030 spd RES3 003612'
NF.CMD 000001 spd NRDCR 000103 spd NUMO 002672' RES3J 003544'
NF.STD 000002 spd NRDCRF 000153 spd NURDL 000020 spd RESNCD 003153'
NFELCR 000113 spd NRDCSQ 000053 spd NURDPC 002464' RIR 104000 000144 int
NM.ALR 000004 spd NRDDCH 000042 spd OF%NWT 000200 sin RLJFN 104000 000023 int
NM.ATT 000001 spd NRDDST 000037 spd OF%PLN 000040 sin RMONTP 002735'
NM.CAP 000005 spd NRDEDT 000054 spd OF%RD 200000 sin RSPERR 001125'
NM.CTL 000003 spd NRDERH 000057 spd OF%WR 100000 sin SAV1 003550'
NM.DAT 000000 spd NRDERR 002450' ONUMO 002671' SAV1J 003502'
NM.FTR 000002 spd NRDFET 000105 spd OPENF 104000 000021 int SAV2 003557'
NM.OTR 000006 spd NRDFSN 000157 spd OPNDEV 001135' SAV2J 003511'
NURD20 Module for Readers and Printers MACRO %53A(1152) 11:39 2-Apr-80 Page S-3
NURD MAC 21-Mar-80 10:15 SYMBOL TABLE
SAV3 003567' TRSPT 003410' URS 000002 spd .MORSS 000042 sin
SAV3J 003521' TYBUF 002633' USETUP 002260' .MORST 000037 sin
SAV4 003600' TYBUF1 002660' USIEF1 000513' .MORTR 000035 sin
SAV4J 003532' TYBUF2 002662' USIEOF 000511' .MORVF 000033 sin
SBFINI 002100' TYPAFL 003143' USIN 000337' int .MOSIM 000036 sin
SENDER 000764' TYPAFX 003151' USIN1 000433' .MOSTS 000036 sin
SETDST 000714' TYPALR 003065' USIN2 000436' .PRIOU 000101 sin
SETER 104000 000336 int TYPAPG 003131' USIN3 000456'
SETFTR 002017' TYPATT 003066' USIN4 000457'
SETFTV 002043' TYPCAP 003065' USIN5 004044'
SETLCR 001777' TYPCT1 003440' USIN6 000465'
SETMDA 002015' TYPCTB 003446' USIN7 000474'
SETMOD 002005' TYPCTL 003420' USIN8 004067'
SETUP1 002243' TYPDAT 002751' USIN9 000501'
SETUP2 002245' TYPDON 003046' USINER 000521'
SFBSX2 600211 int TYPDXR 003043' USINR1 000522'
SIBE 104000 000102 int TYPFC2 003265' USINX 000504'
SIN0 000364' TYPFID 003236' USO0 000242'
SIN1 000367' TYPFRS 003271' USO1 000243'
SIN2 000375' TYPFT0 003212' USO2 000246'
SIN3 000425' TYPFT1 003213' USO3 000274'
SINR 104000 000531 int TYPFT2 003222' USO4 000306'
SKPIR 104000 000127 int TYPFT3 003231' USO5 000310'
SNDAUC 001760' TYPFTR 003203' USO7 000317'
SNDBUF 000752' TYPITM 003053' USO8 000321'
SNDCAB 001757' TYPSEG 002771' USO9 000324'
SNDDMP 001747' TYPSEQ 003047' USOUT 000226' int
SNDINT 001036' TYPSG1 003012' USOWTR 000771'
SNDNRD 002066' TYPSG2 003030' USYCLE 000326'
SNDRES 001765' TYPSG3 003031' VF.6LI 000001 spd
SNDRQS 001750' TYPST 005001' VF.8LI 000002 spd
SOERR 000774' TYPVC1 003320' VFRVL 003401'
SOUTR 104000 000532 int TYPVLW 003332' VORG 400010 spd
SPACS 104000 000060 int UCLOSF 000724' int ZZ 400303 spd
SPCOFF 000004 spd UEX0 002411' $CALL 260740 000000
SPCREF 000003 spd UEX1 002437' $CALLR 254000 000000
SPCRES 000001 spd UEXIT 002374' $RET 263740 000000
STALTR 000003 spd UEXX 002443' $RETF 254020 400026
STAQRY 000001 spd UGTJFN 000003' int $RETT 254020 400025
STAREP 000002 spd UGTR1 000101' %%.GLX 000007 sin
STARLS 000020 spd UGTR2 000102' %%.MOD 566562 442220 spd
STASHJ 001231' UGTR3 000103' int %%.NRD 000102 000054 spd
SUBJFN 000000' int UJ.FLS 400000 spd .FHSLF 400000 sin
SUCRTN 002367' UJ.INT 000002 spd .ICDAE 000013 sin
T1 000011 UJ.NRD 000010 spd .ICEOF 000012 sin
T2 000012 UJ.RCV 100000 spd .MOACN 000024 sin
TCDRF 003407' UJ.SSO 200000 spd .MOCIA 000776 sin
TCDRL 000001 spd UJ.TDS 000004 spd .MOFLO 000040 sin
TCMNF 003344' UJ.XT2 000001 spd .MOLTR 000034 sin
TCMNL 000013 spd UMT1 000534' .MOLVF 000032 sin
TCRLF 002666' UMTOPR 000524' int .MONOP 000031 sin
TLPTF 003370' UOPENF 000164' int .MOPSI 000027 sin
TLPTL 000011 spd UOPN1 000201' .MORDA 000033 sin
TPVLW1 003334' UOPNC 000202' .MORIM 000035 sin
TRSPL 000010 spd UOPNX 000206' .MORLS 000025 sin
A 142# 143 614 617 619 648 651 653 856 859 860 985 988 991
1066 1067 1068 1186 1226 1235 1254 1261 1286 1290 1293 1297 1300 1303
1354 1359 1363 1366 1371 1440 1483 1507 1514 1516 1538 1548 1550 1577
1578 1579 1598 1599 1600 1601 1602 1730 1731 1733 1734 1740 1741 1743
1744 1745 1748 1750 1751 1752 1755 1764 1765 1768 1769 1804 1815 1829
1830 1831 1832 1833 1834 1835 1836 1886 1890 1895 1908 1913 1914 1923
1928 1929 1983 1991 2026 2064 2078 2158 2159 2160 2161 2174 2176 2184
2457 2461 2462 2463 2464 2465 2467 2468 2470 2471 2472 2473 2475 2476
2478 2535 2536 2537 2538 2539 2542 2545 2550 2553 2575 2578 2590 2635
2640 2653 2692 2695 2699 2725 2733 2739 2750 2760 2761 2830 2837 2856
2866 2881 2893 2902 2905 2912 2915 3012 3019 3115 3117 3118 3123 3126
3127 3132 3136 3137 3142 3147 3148 3155
ACCCLO 186#
ACCOPN 185# 1461
ACCREL 187#
ARGX19 2128
ASNACK 190#
ASNHDN 189#
ATTM 1625 1626 1627 1628 1631 1634 1636#
ATTMC 1652 1674#
ATTMSG 1607 1617#
ATTMX 1658 1667 1671 1680 1697 1704#
B 143# 144 1227 1231 1232 1355 1365 1370 1442 1446 1448 1450 1485 1516
1521 1538 1549 1551 1784 1788 1793 1796 1797 1809 1810 1984 1995 1996
1998 2035 2036 2065 2079 2165 2167 2169 2182 2458 2459 2462 2471 2477
2546 2549 2578 2579 2581 2585 2593 2635 2653 2654 2657 2661 2664 2675
2680 2725 2726 2727 2733 2736 2739 2747 2750 2766 2837 2840 2847 2856
2857 2862 2866 2867 2869 2873 2878 2881 2882 2883 2884 2886 2902 2903
2906 2907 2910 3012 3013 3014 3015 3020 3021 3023 3025 3026 3124 3133
3143 3154
BOTX05 659 1441 1452 1484 1491 1498 1508 1515
BR1 1357# 1359
BR2 1361# 1363
BR3 1358 1362 1370#
BRKS 1323 1354# 2472
BYT1L 2734 2792#
BYT1TB 2734 2785# 2792
BYT2L 2740 2798#
BYT2TB 2740 2794# 2798
C 144# 145 884 885 893 897 898 1016 1017 1018 1024 1025 1026 1027
1040 1043 1044 1047 1058 1061 1062 1065 1071 1228 1236 1722 1728 1985
1999 2029 2033 2034 2037 2066 2079 2550 2552 2636 2640 2641 2643 2644
2647 2649 2734 2740 2744 2745 2752 2753 2766 2768 2772 2830 2831 2834
3019 3020 3024 3134 3144 3153
CAPM1 1859 1868#
CAPM2 1861 1872#
CAPM3 1877# 1879
CAPMSG 1611 1853#
CBYT2L 2744 2810#
CBYT2T 2744 2807# 2810
CBYT3L 2752 2813#
CBYT3T 2752 2812# 2813
CD.CWD 543# 1748 1750 2990
CH.64 539# 2986
CH.96 540# 2987
CHSVL 2975 2986#
CKI2 2308 2316#
CKI3 2301 2310 2317#
CKI4 2315 2318#
CMOPSI 1131 1137#
CMORST 1132 1167#
CONW1 704# 716
CONWAT 627 660 702#
CPOPJ 706 1385 1391 1403 1441 1484 1491 1498 1606 1610 1612 1725 1817 1819
1896 1913 1928 2144# 2183 2415 2549 2834
CPOPJ1 708 748 1187 1318 1327 1406 1443 1499 1524 1552 1589 1604 1887 1916
1933 2143#
CRESL 3021 3061#
CRESTB 3021 3044# 3061
CTLMSG 1609 1840#
CTOPR 1108 1131# 1133
CTOPRL 1108 1133#
CZ%ABT 1287 1294
D 145# 147 871 881 882 891 907 969 992 993 994 1021 1029 1033
1049 1053 1072 1201 1203 1223 1231 1240 1723 1724 1725 1729 1760 1772
1775 1778 1783 1786 1795 1808 2574 2576 2588 2631 2634 2639 2652 2669
2676 2678 2721 2724 2732 2738 2749 2758 2759 2826 2829 2836 2855 2865
2880 2892 2900 2904 2911 2914 3008 3011 3018 3145 3152
DATVL 2934 2957#
DCNX11 1506
DCNX8 1557 1561 1568 2393
DEBUG 3065
DEBUGF 327# 922
DEBUGR 328# 1594 2582
DESX2 1447
DESX3 2237
DESX5 844 949 1102
DESX9 1196
DEVRSR 635 1412#
DM.AS8 519# 2961
DM.ASC 515# 1998 2957
DM.AUG 518# 1996 2960
DM.CLI 516# 1995 2958
DM.EBC 517# 2959
DMFL 2636 2711#
DMFTX 2636 2708# 2711
DNBRK 2469 2475#
DNRD 2418 2457#
DNRDX 2460 2466 2477#
DS 151# 152 687 816 866 924 955 956 979 1005 1012 1013 1081 1172
1219 1242 1243 1269 1270 1272 1340 1341 1343 1567 1630 1633 1640 1641
1645 1646 1650 1656 1663 1665 1670 1675 1676 1678 1683 1684 1686 1690
1692 1693 1695 1700 1701 1824 1825 1976 1977 1978 1982 2265 2267 2298
2304 2305 2339 2402
EFAD1 2192 2199#
EFADBY 850 968 2102 2215#
EFADR 1138 1168 1200 2191# 2205 2217 2289
EO.ASC 524# 2963
EO.IMG 525# 2964
EOFVL 2943 2963#
ERRTN 690 773 779 783 786 789 793 798 800 804 813 819 841 844
846 855 858 859 865 867 920 946 949 951 1085 1089 1099 1102
1116 1156 1179 1197 1218 1247 1253 1260 1262 1284 1303 1959 2073 2277#
ERRTX 2302 2313 2320 2322#
FC.CL0 550# 2890
FC.CL1 551# 2030 2867 2887
FC.SST 552# 2873
FCLP 1777 1835#
FE.ALL 544# 1755 2078 2951
FE.DAT 514# 1991 2934
FE.DVT 526# 2947
FE.DWD 529# 1731 2950
FE.EOF 523# 2943
FE.FNM 528# 2949
FE.FWD 522# 2942
FE.LCR 521# 1226 1983 2941
FE.SER 520# 2940
FE.TRN 527# 2948
FFLP 1774 1834#
FLNP 1789 1830#
FLSNRD 680 692#
FLSNRM 683 693#
FR.BCL 555#
FR.CPN 558#
FR.DNP 560#
FR.ERR 557#
FR.NEB 559#
FR.NST 556#
FR.USF 554#
FRDP 1771 1816 1829#
FRSP 1780 1818 1836#
FTRM1 1728# 1761 1781 1794 1798 1812
FTRM2 1732 1738#
FTRM3 1739 1748#
FTRM4 1742 1749 1755#
FTRM5 1756 1763#
FTRM6 1735 1746 1753 1768#
FTRM7 1785 1793#
FTRM8 1791 1800#
FTRM9 1808# 1811
FTRM9A 1806 1810#
FTRMSG 1608 1718#
FTRW1 1921# 1927 1930 1934
FTRWAT 1919# 2081
FTRXIT 1728 1729 1772 1775 1778 1783 1786 1795 1808 1815#
FVLP 1822 1831#
FVLPH 1797 1833#
FVLPL 1793 1832#
GETWRD 1517 1520 1555 1562 1564 1571#
GJ%SHT 615 649
GJFX16 1449 2140
GJFX28 865 976 1373
GNRDSP 647 2156#
GNRMSP 613 2155#
GNRTB 2169 2179#
ILCMD 3014 3038#
IMSGSZ 160# 454
INRD 2416 2481#
INRDIN 2270 2410#
INRDX 2487 2495 2498 2505 2508 2513 2523#
INRDXX 2520 2521 2526#
INSTR 2166 2168 2170 2182# 2185
INTOFF 952 1285 1972 2261 2285 2335 2445#
INTON 957 1979 2268 2435#
IOX2 846
IOX3 951
IOX4 1082
IOX5 867 980 1014 1612
J1 137# 615 622 623 629 639 649 655 656 659 662 667 673 676
695 697 706 712 713 715 721 725 726 727 730 732 736 741
743 744 779 783 786 789 793 798 800 813 819 844 846 855
858 859 865 867 917 949 951 976 980 984 988 994 1014 1021
1029 1033 1049 1053 1079 1082 1102 1115 1156 1179 1188 1196 1216 1247
1253 1255 1260 1262 1287 1288 1291 1294 1295 1298 1331 1334 1344 1358
1362 1373 1428 1429 1433 1441 1447 1449 1451 1452 1476 1484 1491 1498
1503 1504 1506 1508 1509 1515 1519 1532 1535 1557 1561 1568 1580 1583
1591 1610 1612 1618 1619 1620 1621 1622 1623 1624 1625 1636 1637 1642
1647 1655 1657 1659 1660 1664 1666 1668 1669 1674 1677 1679 1681 1682
1685 1687 1691 1694 1696 1698 1699 1704 1706 1707 1720 1721 1725 1729
1770 1771 1772 1773 1774 1775 1776 1777 1778 1783 1785 1786 1787 1788
1789 1790 1794 1795 1800 1801 1803 1804 1805 1808 1810 1816 1817 1818
1819 1822 1823 1841 1842 1843 1844 1845 1846 1854 1855 1856 1857 1860
1862 1863 1866 1869 1875 1877 1878 1892 1896 1910 1913 1925 1928 1957
1966 2071 2103 2109 2110 2112 2127 2128 2140 2234 2235 2236 2237 2238
2239 2240 2241 2242 2255 2278 2279 2281 2287 2299 2300 2303 2304 2306
2312 2318 2322 2324 2325 2327 2346 2357 2358 2359 2361 2363 2364 2370
2373 2378 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2413 2425
2429 2436 2437 2439 2440 2446 2447 2449 2451 2452 2481 2488 2496 2497
2501 2502 2503 2504 2506 2507 2509 2510 2511 2512 2514 2527 2535 2542
2545 2553 2559 2562 2563 2565 2566 2576 2581 2582 2585 2588 2634 2639
2649 2652 2659 2664 2666 2671 2683 2688 2692 2695 2700 2701 2724 2727
2728 2732 2758 2761 2762 2768 2770 2829 2836 2852 2855 2858 2859 2861
2865 2874 2875 2880 2884 2890 2893 2894 2895 2896 2908 2912 2927 3011
3015 3018 3023 3024 3026 3073 3075 3076 3081 3084 3085 3090 3094 3095
3100 3105 3106 3113
J2 138# 608 614 624 640 648 657 668 702 703 704 720 728 732
733 734 738 739 740 741 742 744 746 774 775 782 784 797
799 847 848 849 895 911 912 919 921 958 959 962 965 967
1038 1056 1067 1068 1073 1088 1111 1309 1310 1329 1333 1335 1346 1389
1398 1399 1400 1413 1415 1417 1419 1421 1425 1427 1430 1432 1458 1460
1462 1464 1466 1468 1470 1472 1474 1475 1539 1584 1705 1706 1779 1780
1781 1803 1811 1858 1859 1860 1863 1864 1869 1870 1872 1875 1879 2099
2100 2101 2106 2113 2116 2119 2215 2216 2218 2277 2278 2281 2282 2305
2306 2307 2309 2314 2316 2317 2347 2356 2357 2361 2365 2367 2368 2370
2371 2374 2379 2380 2415 2417 2419 2421 2422 2423 2424 2426 2430 2482
2489 2515 2526 2539 2542 2545 2546 2590 2641 2649 2654 2664 2692 2699
2700 2701 2760 2762 2831 2869 2905 2908 2916 2925 3082 3091 3101 3112
J3 139# 628 642 643 644 661 669 670 707 709 899 901 1039 1041
1057 1059 1137 1167 1199 1311 1312 1313 1317 1318 1330 1337 1338 1345
1381 1382 1383 1384 1387 1388 1401 1404 1405 1518 1521 1542 1556 1559
1560 1563 1565 1566 1571 1573 1587 2340 2341 2343 2344 2427 2468 2483
2490 2491 2492 2494 2496 2518 2525 2564 2565 2569 2838 2839 2842 2844
2845 2846 2849 2850 2851 2852 2918 2920 2922 2926 2927 3092 3102 3111
J4 140# 672 902 1042 1060 1314 1315 1316 1317 1378 1379 1380 1384 1385
1386 1512 1513 1522 1523 1572 1573 2484 2495 2517 2524 2839 2840 2846
2847 2878 2887 2890 2915 2916 2922 2924 2925 3103 3110
LBYT2L 2745 2802#
LBYT2T 2745 2800# 2802
LBYT3L 2753 2805#
LBYT3T 2753 2804# 2805
LMOFLO 1127 1251# 1257
LMOLTR 1123 1194#
LMOLVF 1121 1192#
LMONOP 1120 1178#
LMOPSI 1119 1136#
LMORS1 1153 1164#
LMORST 1126 1149#
LMORTR 1124 1195#
LMORVF 1122 1193#
LMOST1 1204 1222#
LMOST2 1224 1231#
LMOST3 1233 1239#
LMOST4 1241 1246#
LMOSTS 1125 1199#
LP.CHS 538# 2975
LP.CVF 533# 2970
LP.FCC 534# 2971
LP.HT 530# 1740 1743 2967
LP.OPV 542# 1741 2979
LP.OVP 532# 2969
LP.PLE 541# 1235 2978
LP.SFC 531# 2968
LP.VFR 535# 2972
LPTIOW 1178 1183# 1190 1246
LS 150# 151 654 663 686 780 788 794 795 802 805 815 842 843
845 861 868 947 948 950 953 954 961 964 971 972 981 1004
1006 1010 1011 1031 1051 1074 1080 1084 1100 1101 1103 1145 1152 1220
1267 1268 1339 1364 1423 1629 1632 1638 1639 1643 1644 1648 1649 1651
1661 1662 1688 1689 1738 1971 1973 1974 1992 1994 2141 2142 2172 2264
2269 2296 2297 2311 2337 2338 2668 2677 2681 2696 2743 2751 2843
LSTIN. 132 2534 2535 2535# 2541 2542 2542# 2544 2545 2545# 2558 2559 2559# 2576
2576# 2586 2587 2587# 2588 2588# 2633 2634 2634# 2638 2639 2639# 2648 2649
2649# 2651 2652 2652# 2658 2659 2659# 2663 2664 2664# 2687 2688 2688# 2691
2692 2692# 2723 2724 2724# 2729 2730 2730# 2731 2732 2732# 2757 2758 2758#
2769 2770 2770# 2828 2829 2829# 2835 2836 2836# 2853 2854 2854# 2855 2855#
2860 2861 2861# 2863 2864 2864# 2865 2865# 2876 2877 2877# 2879 2880 2880#
2885 2886 2886# 2889 2890 2890# 2897 2898 2898# 2928 2929 2929# 3010 3011
3011# 3016 3017 3017# 3018 3018# 3027 3028 3028# 3065
LTOPR 1106 1119# 1128
LTOPRL 1106 1128#
MAPD1 2105# 2109
MAPD3 2119# 2127
MAPD4 2107 2114 2117 2120 2122 2131#
MAPD5 2138 2142#
MAPDEV 609 2099#
MKCMSG 1938# 1955 1964
MKRDDB 605 720#
MO%ABT 1337
MO%CON 707 1338 1542 1587
MO%EOF 955 1005 1202 1219 1976 2312
MO%FER 866 955 979 1081 1272 1341 1567 1640 1641 1663 1690 1695 1976 2307
2402
MO%HE 866 955 979 1081 1656 1665 1670 1678 1686 1976 2307
MO%HEM 866 955 979 1081 1675 1676 1976
MO%IOP 924 1630 1650 1977
MO%LCI 866 955 979 1081 1976 2307
MO%LCP 1222 1824 1825 1982
MO%LPC 866 955 1633 1976 2309
MO%LVU 816
MO%OL 1269 1270 1343 1645 1646 1976
MO%PCK 955 979 1081 1692 1693 1976
MO%RCK 955 979 1012 1013 1081 1700 1701 1976
MO%SER 866 955 979 1081 1239 1272 1340 1567 1633 1976 2309 2402
MO%SFL 955 979 1081 1683 1684 1976
MO%SYN 1337
MO%WCC 709
MO%WFC 709
MONALR 2606# 2613
MONATT 2603# 2610
MONCAP 2607# 2614
MONCTL 2605# 2612
MONDAT 2602# 2609
MONFTR 2604# 2611
MSGTYP 2585 2616#
MSNDIC 1964# 1970
MTOX1 1115
MTYPER 2593 2595#
N.AABC 487#
N.AACK 485#
N.APLE 488# 1622 2726
N.ARQS 486#
N.ASTC 484#
NA.DTO 499# 1660 1687 2796
NA.FAT 490# 1637 2785
NA.INK 504# 1664 2801
NA.IVP 507# 1699 2812
NA.JAM 494# 1655 1677 2789
NA.NAC 498# 1664 1685 2795
NA.NOE 496# 1655 1677 2791
NA.OFL 491# 1642 2786
NA.OMD 493# 1655 1674 2788
NA.OOF 495# 1655 1677 2790
NA.OUF 497# 1664 1682 2794
NA.OVP 506# 1669 2804
NA.PAU 492# 1642 1647 2787
NA.PF 501# 1691 2807
NA.PSE 502# 1664 2800
NA.RAP 503# 1694 2808
NA.REG 505# 1694 2809
NA.RNA 500# 1664 1685 2797
NC.AUC 566# 1963 3047 3048
NC.AUE 565# 3044 3045 3046
NC.CAB 567# 1962 3049 3050
NC.DMP 569# 1953 3052 3053
NC.PAU 570# 3054 3055 3056
NC.RES 571# 1969 3057 3058 3059
NC.RQC 572# 3013 3060
NC.RQS 568# 1954 3051
ND.ACK 475# 1213 2708
ND.EOF 477# 1002 1213 2710
ND.IER 476# 1008 1009 2709
NF.CMD 547# 2027 2857
NF.STD 548# 2862
NFELCR 426# 1815
NM.ALR 466# 2497
NM.ATT 463# 1914
NM.CAP 467#
NM.CTL 465# 1940
NM.DAT 462#
NM.FTR 464# 1929 2015 2053
NM.OTR 468# 1599 1600 2579
NM.TYP 461#
NODX01 2110
NR.ABS 574# 3044 3047
NR.ACC 577# 1261 3049
NR.ACN 578# 3050
NR.ATT 579# 3051
NR.CAP 588# 3060
NR.DMP 580# 3052
NR.DPS 582# 3054
NR.NAB 575# 1254 3045 3048
NR.NDP 584# 3056
NR.NDR 587# 3059
NR.NOB 581# 1186 3053
NR.NOE 576# 3046
NR.NPS 586# 3058
NR.PAU 583# 3055
NR.RES 585# 3057
NR1 2396 2399#
NRD.AB 378# 1629
NRD.AI 371# 794 961 964 1006 1031 1051 1084 1992 1994 2668 2677 2681 2696
NRD.CC 368# 663 842 947 1100 1339
NRD.CP 367# 654 663
NRD.EN 374# 1143 1145 2299 2344 2507
NRD.EO 375# 972 1004 1074 1220
NRD.ER 376# 1010 1011 1080
NRD.FE 379# 953 1080 1638 1639 1973
NRD.IM 370# 795 961 1006 1031 1051 1084 1992 2668 2677 2681 2696
NRD.LP 369# 780 788 815 845 950 1103 1423 1651 1738 2141 2142 2172 2311
2743 2751 2843
NRD.NO 385# 2341 2511
NRD.OC 373# 805 843 948 1101 1339 2269
NRD.OF 383# 861 953 971 1268 1364 1643 1644 1973 2296 2501
NRD.ON 384# 862 974 1973 2503
NRD.OP 372# 802 805
NRD.PL 377# 953 1632 1973
NRD.PS 380# 868 981 1152 1364 1648 1649 1973
NRD.RS 382# 1971 2337
NRD.TO 381# 953 1080 1661 1662 1688 1689 1973
NRDASQ 396# 1150 1619
NRDATT 395# 1621
NRDBSZ 159# 452 453 642 643 1401 1404 2087
NRDCAP 400# 1858 1864 1870 1874 2368
NRDCCR 399# 1844 1846 1886
NRDCFL 387# 661
NRDCHN 403# 744 1142 2317 2347 2515
NRDCR 174# 1424
NRDCRF 445# 1752
NRDCSQ 398# 1842 1884 1946
NRDDCH 164# 2365 2419 2427 2430
NRDDST 386# 687 956 1243 1978 2265 2267 2298 2303 2339
NRDEDT 125# 127
NRDERH 402# 2398
NRDERR 673 706 813 819 855 858 859 984 994 1021 1029 1033 1049 1053
1079 1156 1179 1247 1253 1260 1262 1358 1362 1441 1484 1491 1498 1506
1508 1515 1519 1610 1612 1625 1725 1729 1772 1775 1778 1783 1786 1795
1808 1896 1913 1928 2392#
NRDFET 422# 1734
NRDFSN 448# 1931 2021 2059
NRDFSQ 449# 1721 1932
NRDIBF 454# 2490
NRDICH 163# 2365 2417 2427 2430
NRDIER 401# 2271 2395 2400
NRDJFN 364# 655 667 692 917 1216 1288 1291 1334 1580 1583 1591 1957 1966
2071 2425 2488
NRDLIM 408# 644 871
NRDLP 173# 1422
NRDLPC 397# 809 1175 1707
NRDLPF 434# 1745
NRDLVL 162# 2363 2416 2418 2422 2423
NRDMAJ 123# 127
NRDMIN 124# 127
NRDRBF 452# 670 674 1399
NRDRCN 405# 807 969 993 1072 1083 1087 1405 1487 1496 1512 1523 1603 1723
2574
NRDREP 393# 1036 1037
NRDRPT 404# 995 996 998 999 1022 1030 1034 1050 1054 1400 1488 1492 1493
1494 1548 1549 1558 1559 1571 1572 1598 1617 1618 1620 1636 1659 1668
1681 1698 1704 1705 1719 1720 1722 1730 1757 1758 1759 1773 1776 1779
1784 1787 1796 1809 1840 1841 1843 1845 1853 1854 1872 1877 2575
NRDSBF 453# 1310 1311 1378 1387 2084 2087 2088 2535
NRDSCN 407# 808 1104 1326 1372 1392
NRDSEG 390# 887 898
NRDSEQ 388# 875 997 1149 1210 1944 2019 2057
NRDSGC 389# 880 888 890
NRDSGN 392# 1001 1016 1071
NRDSGS 391# 1000 1019
NRDSPT 406# 873 874 876 877 878 879 885 886 896 1208 1209 1212 1214
1215 1312 1314 1379 1381 1413 1432 1458 1475 1941 1943 1947 1949 1950
2016 2018 2022 2024 2026 2028 2031 2032 2034 2035 2054 2056 2060 2062
2064 2065 2066 2067 2089
NRDSTS 366# 686 863 954 975 1144 1266 1974 2264 2297 2300 2338 2340 2343
2502 2504 2506 2512
NRDTMC 394# 703 710 1504 1507 1883 1890 1905 1908 1920 1923
NRDTMO 165# 702 1503 1882 1904 1919
NRDUFE 447# 1763 1764 1765
NRDULA 365# 675 1473 1497
NRDWHO 122# 127
NRM.CC 356# 630
NRM.CP 355# 620 630
NRM.RS 357# 637
NRMACC 184# 1459 1483
NRMASN 188#
NRMASR 360# 1271 1565
NRMAST 359# 1563
NRMCFL 358# 628
NRMID 353# 634 1418 1463 1518 1556
NRMJFN 352# 622 639 693 1295 1298 1433 1476 1535
NRMRID 179#
NRMRSP 191# 1514
NRMSPC 180# 1414 1440
NRMSTA 192# 1550
NRMSTS 354# 621 631 638
NUMO 2540 2547 2563# 2642 2650 2655 2665 2693 2763 2832 2870
NURDL 161# 402 2397
NURDPC 2406# 2420 2463 2468 2473 2476
OF%NWT 624 657
OF%PLN 624 657
OF%RD 624 657 782 799
OF%WR 624 657 784 797
ONUMO 2543 2562# 2591 2702
OPNDEV 803 1457#
OPNX13 783 798
OPNX14 789
OPNX21 629 662
OPNX3 800
OPNX4 786
OPNX7 1451
P 154# 617 619 651 653 673 706 712 715 720 721 733 734 741
742 813 819 855 858 859 984 994 1021 1029 1033 1049 1053 1079
1156 1169 1171 1179 1247 1253 1260 1262 1329 1330 1333 1344 1345 1346
1354 1355 1358 1362 1365 1366 1370 1371 1441 1484 1491 1498 1506 1508
1515 1519 1532 1543 1592 1595 1610 1612 1625 1725 1729 1772 1775 1778
1783 1786 1795 1808 1862 1866 1896 1913 1928 1938 1948 2143 2157 2158
2159 2161 2162 2163 2195 2231 2233 2236 2243 2244 2249 2250 2251 2277
2282 2286 2288 2290 2324 2325 2327 2332 2334 2358 2379 2394 2399 2457
2458 2477 2478 2481 2482 2483 2484 2485 2492 2494 2516 2517 2518 2523
2524 2525 2526 2527 2564 2569 3073 3074 3075 3078 3081 3082 3083 3084
3087 3090 3091 3092 3093 3094 3097 3100 3101 3102 3103 3104 3105 3108
3110 3111 3112 3113 3115 3116 3117 3120 3123 3124 3125 3126 3129 3132
3133 3134 3135 3136 3139 3142 3143 3144 3145 3146 3147 3150 3152 3153
3154 3155
PA%CPY 728
PA%EX 728
PA%RD 728
PA%WT 728
R 152# 608 621 622 628 631 632 634 638 639 644 655 661 667
670 674 675 676 686 687 689 692 693 703 710 746 747 807
808 809 863 871 873 874 875 876 877 878 879 880 885 886
887 888 890 896 898 917 919 921 954 956 969 975 993 995
996 997 998 999 1000 1001 1016 1019 1022 1030 1034 1036 1037 1050
1054 1071 1072 1073 1083 1087 1088 1104 1142 1144 1149 1150 1175 1208
1209 1210 1212 1214 1215 1216 1243 1266 1271 1288 1291 1295 1298 1302
1310 1311 1312 1314 1321 1326 1334 1372 1378 1379 1381 1387 1392 1399
1400 1405 1413 1418 1428 1432 1433 1458 1463 1473 1475 1476 1487 1488
1492 1493 1494 1496 1497 1504 1507 1512 1518 1523 1535 1548 1549 1556
1558 1559 1563 1565 1571 1572 1578 1580 1583 1591 1598 1603 1617 1618
1619 1620 1621 1636 1659 1668 1681 1698 1704 1705 1707 1719 1720 1721
1722 1723 1730 1734 1745 1752 1757 1758 1759 1763 1764 1765 1773 1776
1779 1784 1787 1796 1809 1815 1840 1841 1842 1843 1844 1845 1846 1853
1854 1858 1864 1870 1872 1874 1877 1883 1884 1886 1890 1905 1908 1920
1923 1931 1932 1941 1943 1944 1946 1947 1949 1950 1957 1966 1974 1978
2016 2018 2019 2021 2022 2024 2026 2028 2031 2032 2034 2035 2054 2056
2057 2059 2060 2062 2064 2065 2066 2067 2071 2084 2087 2088 2089 2104
2111 2136 2167 2194 2196 2200 2201 2242 2250 2252 2260 2263 2264 2265
2267 2271 2272 2283 2286 2287 2292 2294 2297 2298 2300 2303 2317 2321
2322 2332 2333 2338 2339 2340 2343 2347 2352 2353 2395 2398 2400 2410
2424 2425 2437 2439 2447 2452 2485 2486 2488 2490 2502 2504 2506 2510
2512 2515 2516 2523 2535 2574 2575
RCVBUF 1398# 1546 1592
RCVC1 1884# 1894 1895
RCVCRS 1184 1252 1259 1882# 1899
RCVM1 1582 1591#
RCVMSG 857 986 1361 1576# 1888 1906 1921
RCVMT 1601 1606#
RCVN0 1535# 1566
RCVN1 1537 1546#
RCVNRM 854 983 1357 1505 1534#
RCVR1 1906# 1912 1915
RCVRQ 1078 1904#
RCVRQS 812 1155 1899#
RCVRS1 1505# 1511
RCVRSP 1436 1479 1502#
RCVTYP 1595 2572#
RDDBSZ 455# 736 2373
RDDEV 339# 1428 2111 2136
RDEPDL 337# 2196 2250 2286 2332
RDERT 348# 2272 2292 2294 2321 2322
RDFTRS 818 2077#
RDHOST 338# 2104 2167
RDINTB 349# 2361 2410 2424
RDSAVE 336# 608 676 738 739 740 741 742 919 921 1073 1088 2194 2201
2239 2240 2241 2287 2353
RDSTS 340# 689 1302 1321 1578 2252 2260 2263 2333 2352 2357 2437 2439 2447
2452 2462 2471 2510
REDFTR 2052# 2080
RES1 3121 3155#
RES1J 3079 3113#
RES2 3130 3154#
RES2J 3088 3112#
RES3 3140 3153#
RES3J 3098 3111#
RESNCD 2727 2775#
RMONTP 2581 2609#
RSPERR 1446# 1486
SAV1 3115#
SAV1J 694 2435 2445 3073#
SAV2 2164 3123#
SAV2J 2355 3081#
SAV3 1981 1990 2077 3132#
SAV3J 2412 3090#
SAV4 1718 2532 2573 3142#
SAV4J 916 1502 1534 1576 1956 1965 2070 2531 2572 3100#
SBFINI 870 1206 1412 1457 1939 2014 2052 2084#
SENDER 1320# 1367 2464
SETDST 1170 1266# 2266 2295
SETFTR 1229 1237 1986 2014#
SETFTV 2035# 2037
SETLCR 817 1981#
SETMDA 1993 1998#
SETMOD 814 1990#
SETUP1 840 945 1098 2231#
SETUP2 772 1283 2233#
SFBSX2 779 793
SIN0 960 963 966 968#
SIN1 971# 990 991 1020 1026
SIN2 983# 985
SIN3 1003 1009#
SNDAUC 1251 1963#
SNDBUF 918 1217 1309# 1434 1477 1958 2072
SNDCAB 1258 1962#
SNDDMP 1183 1953#
SNDINT 1378# 1967
SNDNRD 1105 2038 2070#
SNDRES 864 869 977 982 1244 1969#
SNDRQS 811 1154 1954#
SOERR 1325 1329#
SPCOFF 183#
SPCREF 182#
SPCRES 181# 1416
STALTR 195#
STAQRY 193#
STAREP 194# 1551
STARLS 196#
STASHJ 1506 1508 1515 1519 1532# 1541 1547 1557 1561 1569 1586 1588 1593
SUBJFN 326# 725 747 2234 2238 2283 2356 2367 2374 2375 2459 2486
SUCRTN 677 820 914 1075 1146 1176 1180 1248 1263 1304 2331#
T1 147# 148 620 621 630 631 632 633 634 637 638 674 675 688
689 692 693 695 697 774 776 777 790 792 862 863 872 873
874 875 876 879 880 886 887 888 889 890 895 896 902 905
910 911 912 974 975 996 997 999 1000 1022 1023 1024 1025 1030
1035 1036 1037 1038 1042 1046 1050 1055 1056 1060 1064 1106 1108 1110
1112 1113 1114 1139 1140 1141 1142 1143 1144 1149 1150 1151 1169 1173
1174 1201 1202 1203 1210 1211 1212 1213 1214 1222 1223 1239 1240 1242
1266 1267 1301 1302 1320 1321 1322 1414 1415 1416 1417 1418 1419 1420
1421 1422 1424 1425 1429 1430 1459 1460 1461 1462 1463 1464 1465 1466
1467 1468 1469 1470 1471 1472 1473 1474 1487 1489 1494 1497 1873 1874
1878 1882 1883 1884 1885 1886 1904 1905 1919 1920 1931 1932 1938 1940
1941 1944 1945 1946 1947 1948 1949 1953 1954 1962 1963 1969 2015 2016
2019 2020 2021 2022 2023 2024 2027 2028 2029 2030 2031 2053 2054 2057
2058 2059 2060 2061 2062 2084 2085 2086 2087 2088 2089 2104 2105 2111
2126 2131 2135 2136 2137 2139 2157 2163 2171 2173 2174 2175 2176 2182
2183 2184 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2204
2218 2249 2251 2252 2253 2254 2257 2258 2259 2260 2262 2263 2292 2294
2331 2333 2351 2352 2416 2417 2418 2419 2420 2423
T2 148# 150 775 776 787 872 877 878 998 1002 1008 1009 1034 1035
1054 1055 1110 1111 1137 1139 1141 1167 1171 1172 1173 1175 1199 1207
1208 1209 1215 1426 1427 1431 1488 1490 1495 1496 1942 1943 1950 2017
2018 2032 2055 2056 2067 2105 2106 2107 2108 2113 2114 2115 2116 2117
2118 2119 2120 2121 2123 2124 2126 2131 2132 2133 2134 2135 2155 2156
2169 2191 2199 2202 2204 2215 2243 2248 2254 2288 2290 2291 2293
TCDRF 2844 2990# 2991
TCDRL 2844 2991#
TCMNF 2838 2933# 2952
TCMNL 2838 2952#
TCRLF 2533 2548 2557# 2577 2584 2589 2592 2646 2656 2688 2714 2730 2756 2764
2833 3028
TLPTF 2845 2967# 2980
TLPTL 2845 2980#
TPVLW1 2922# 2926
TRSPL 2882 2883 3001#
TRSPT 2884 2993# 3001
TYBUF 923 2531#
TYBUF1 2549# 2552
TYBUF2 2552# 2555
TYPAFL 2637 2735 2741 2746 2754 2766# 2772
TYPAFX 2767 2772#
TYPALR 2599 2713#
TYPAPG 2737 2748 2756#
TYPATT 2596 2721#
TYPCAP 2600 2714#
TYPCT1 3023# 3025
TYPCTB 3015 3030#
TYPCTL 2598 3008#
TYPDAT 2595 2631#
TYPDON 2647 2689#
TYPDXR 2631 2634 2639 2652 2669 2676 2678 2687# 2721 2724 2732 2738 2749 2759
2826 2829 2836 2855 2865 2880 2892 2900 2904 2911 2914 3008 3011 3018
TYPFC2 2868 2873#
TYPFID 2841 2848 2851#
TYPFRS 2871 2878#
TYPFT0 2832# 2920 2923
TYPFT1 2833# 2886 2888 2898 2903 2910 2929
TYPFT2 2839# 2842
TYPFT3 2846# 2849
TYPFTR 2597 2826#
TYPITM 2670 2679 2695#
TYPSEG 2646# 2659 2673 2675 2680
TYPSEQ 2632 2691# 2722 2827 3009
TYPSG1 2657 2661#
TYPSG2 2662 2675#
TYPSG3 2676# 2682 2685
TYPST 2909# 2913
TYPVC1 2891 2900#
TYPVLW 2906 2918#
UCLOSF 1283#
UEX0 2342 2345 2349 2351#
UEX1 2362 2369 2373#
UEXIT 2323 2326 2328 2337#
UEXX 2360 2378#
UGTJFN 605#
UGTR1 659 662 673 680#
UGTR2 626 629 636 652 683#
UGTR3 610 618 686#
UJ.FLS 347# 688 1301 2359
UJ.INT 342# 2257 2258 2446
UJ.NRD 344# 2262 2351 2509
UJ.RCV 345# 1322 1577 2461
UJ.SSO 346# 1320 2470
UJ.TDS 343# 2259 2380 2436 2451
UJ.XT2 341# 2233 2248 2253 2331
UMT1 1107 1110# 1114
UMTOPR 1098#
UOPENF 772#
UOPN1 791 795#
UOPNC 781 797#
UOPNX 785 802#
URS 168# 1467
USETUP 607 2248#
USIEF1 973 1080#
USIEOF 1007 1078#
USIN 945#
USIN1 970 1016#
USIN2 1019# 1045 1063
USIN3 1032 1036#
USIN4 1017 1037# 1044
USIN5 1039 1044# 1045 1046
USIN6 1018 1027 1049# 1062
USIN7 1052 1056#
USIN8 1057 1062# 1063 1064
USIN9 1047 1066#
USINER 976 980 984 987 994 1021 1029 1033 1049 1053 1087#
USINR1 1014 1088#
USINX 1040 1043 1058 1061 1071#
USO0 853# 883 908
USO1 854# 856
USO2 857# 860
USO3 882# 894
USO4 893# 907
USO5 891 895#
USO7 899 903 907#
USO8 901 904 905 910#
USO9 900 913#
USOUT 840#
USOWTR 1325# 2465 2467
USYCLE 853 913 916#
VF.6LI 536# 2982
VF.8LI 537# 2983
VFRVL 2972 2982#
%%.NRD 127#
..MX1 615# 615 616 624# 624 625 630# 630 631 649# 649 650 657# 657
658 728# 728 729 743# 743 744 862# 862 974# 974 1140# 1140 1141
1202# 1202 1203 1222# 1222 1223 1239# 1239 1240 1287# 1287 1288 1294# 1294
1295 1539# 1539 1540 1584# 1584 1585 2299# 2299 2314# 2314 2315 2365# 2365
2366 2427# 2427 2428 2430# 2430 2431 2501# 2501 2502 2503# 2503 2509# 2509
2510 2511# 2511
..MX2 615# 615 616 624# 624 625 630# 631 649# 649 650 657# 657 658
728# 728 729 743# 743 744 862# 862 974# 974 1140# 1140 1141 1202#
1202 1203 1222# 1222 1223 1239# 1239 1240 1287# 1287 1288 1294# 1294 1295
1539# 1540 1584# 1585 2299# 2299 2314# 2314 2315 2365# 2366 2427# 2427 2428
2430# 2431 2501# 2501 2502 2503# 2503 2509# 2510 2511# 2511
..TX1 654# 654 655 663# 663 664 707# 707 708 709# 709 710 780# 780
782# 782 784# 784 788# 788 789 794# 794 795 795# 796 797# 797
798 799# 799 800 802# 802 803 805# 805 806 815# 815 816 816#
842# 842 843 843# 844 845# 845 846 861# 861 862 866# 866 867
868# 868 869 924# 924 925 947# 947 948 948# 949 950# 950 951
953# 953 954 955# 955 956 961# 961 962 964# 964 965 971# 971
972 972# 979# 979 980 981# 981 982 1002# 1002 1003 1004# 1004 1005
1005# 1006 1006# 1007 1008# 1008 1009 1009# 1010 1010# 1011 1011# 1012 1012#
1013 1013# 1014 1023# 1023 1024 1031# 1031 1032 1051# 1051 1052 1074# 1074
1075 1080# 1080 1081 1081# 1082 1084# 1084 1085 1100# 1100 1101 1101# 1102
1103# 1103 1104 1145# 1145 1146 1151# 1151 1152 1152# 1153 1219# 1219 1220
1220# 1221 1268# 1268 1269 1269# 1270 1270# 1271 1272# 1272 1273 1322# 1322
1323 1337# 1337 1338 1338# 1339 1339# 1340 1340# 1341 1341# 1342 1343# 1343
1344 1364# 1364 1365 1423# 1423 1424 1542# 1542 1543 1567# 1567 1568 1587#
1587 1588 1629# 1629 1630# 1630 1632# 1632 1633# 1633 1637# 1637 1638 1638#
1639 1639# 1640 1640# 1641 1641# 1642 1642# 1643 1643# 1644 1644# 1645 1645#
1646 1646# 1647 1647# 1648 1648# 1649 1649# 1650 1650# 1651 1651# 1652 1655#
1655 1656 1656# 1657 1657# 1658 1660# 1660 1661 1661# 1662 1662# 1663 1663#
1664 1664# 1665 1665# 1666 1666# 1667 1669# 1669 1670 1670# 1671 1674# 1674
1675 1675# 1676 1676# 1677 1677# 1678 1678# 1679 1679# 1680 1682# 1682 1683
1683# 1684 1684# 1685 1685# 1686 1686# 1687 1687# 1688 1688# 1689 1689# 1690
1690# 1691 1691# 1692 1692# 1693 1693# 1694 1694# 1695 1695# 1696 1696# 1697
1699# 1699 1700 1700# 1701 1701# 1702 1738# 1738 1739 1824# 1824 1825 1825#
1826 1971# 1971 1972 1973# 1973 1974 1976# 1976 1977 1977# 1978 1982# 1982
1983 1992# 1992 1993 1994# 1994 1995 2141# 2141 2142 2142# 2143 2172# 2172
2173 2253# 2253 2254 2257# 2257 2258 2258# 2259 2259# 2260 2269# 2269 2270
2296# 2296 2297 2307# 2307 2308 2309# 2309 2310 2311# 2311 2312 2312# 2313
2337# 2337 2338 2341# 2341 2342 2344# 2344 2345 2359# 2359 2360 2380# 2380
2381 2402# 2402 2403 2475# 2475 2476 2507# 2507 2508 2661# 2661 2662 2668#
2668 2669 2677# 2677 2678 2681# 2681 2682 2696# 2696 2697 2736# 2736 2737
2743# 2743 2744 2747# 2747 2748 2751# 2751 2752 2843# 2843 2844 2857# 2857
2858 2862# 2862 2863 2894# 2894 2895
..TX2 654# 655 663# 664 707# 707 708 709# 709 710 780# 780 782# 782
784# 784 788# 789 794# 795 795# 796 797# 798 799# 800 802# 803
805# 806 815# 816 816# 842# 843 843# 844 845# 846 861# 861 862
866# 866 867 868# 869 924# 924 925 947# 948 948# 949 950# 951
953# 953 954 955# 955 956 961# 962 964# 965 971# 971 972 972#
979# 979 980 981# 982 1002# 1003 1004# 1005 1005# 1006 1006# 1007 1008#
1009 1009# 1010 1010# 1011 1011# 1012 1012# 1013 1013# 1014 1023# 1024 1031#
1032 1051# 1052 1074# 1075 1080# 1081 1081# 1082 1084# 1085 1100# 1101 1101#
1102 1103# 1104 1145# 1146 1151# 1152 1152# 1153 1219# 1219 1220 1220# 1221
1268# 1268 1269 1269# 1270 1270# 1271 1272# 1272 1273 1322# 1323 1337# 1337
1338 1338# 1339 1339# 1340 1340# 1341 1341# 1342 1343# 1343 1344 1364# 1364
1365 1423# 1424 1542# 1542 1543 1567# 1567 1568 1587# 1587 1588 1629# 1629
1630# 1630 1632# 1632 1633# 1633 1637# 1638 1638# 1639 1639# 1640 1640# 1641
1641# 1642 1642# 1643 1643# 1644 1644# 1645 1645# 1646 1646# 1647 1647# 1648
1648# 1649 1649# 1650 1650# 1651 1651# 1652 1655# 1656 1656# 1657 1657# 1658
1660# 1661 1661# 1662 1662# 1663 1663# 1664 1664# 1665 1665# 1666 1666# 1667
1669# 1670 1670# 1671 1674# 1675 1675# 1676 1676# 1677 1677# 1678 1678# 1679
1679# 1680 1682# 1683 1683# 1684 1684# 1685 1685# 1686 1686# 1687 1687# 1688
1688# 1689 1689# 1690 1690# 1691 1691# 1692 1692# 1693 1693# 1694 1694# 1695
1695# 1696 1696# 1697 1699# 1700 1700# 1701 1701# 1702 1738# 1739 1824# 1824
1825 1825# 1826 1971# 1972 1973# 1973 1974 1976# 1976 1977 1977# 1978 1982#
1982 1983 1992# 1993 1994# 1995 2141# 2142 2142# 2143 2172# 2173 2253# 2254
2257# 2258 2258# 2259 2259# 2260 2269# 2270 2296# 2296 2297 2307# 2307 2308
2309# 2309 2310 2311# 2312 2312# 2313 2337# 2338 2341# 2341 2342 2344# 2345
2359# 2360 2380# 2381 2402# 2402 2403 2475# 2475 2476 2507# 2508 2661# 2662
2668# 2669 2677# 2678 2681# 2682 2696# 2697 2736# 2737 2743# 2744 2747# 2748
2751# 2752 2843# 2844 2857# 2858 2862# 2863 2894# 2895
.FHSLF 727 730 1331 2255 2279 2318 2346 2364 2378 2413 2429 2440 2449 2514
.ICDAE 743 2316
.ICEOF 2314
.MOACN 2426
.MOCIA 2427
.MOFLO 1127
.MOLTR 1123
.MOLVF 1121
.MONOP 1120
.MOPSI 1119 1131
.MORDA 668
.MORIM 2489
.MORLS 704 1335 1539 1584
.MORSS 640
.MORST 1126 1132
.MORTR 1124
.MORVF 1122
.MOSIM 1389
.MOSTS 1125
.PRIOU 2566
.PSECT 615 616 624 625 630 631 649 650 654 655 657 658 663 664
707 708 709 710 728 729 743 744 780 782 784 788 789 794
795 796 797 798 799 800 802 803 805 806 815 816 842 843
844 845 846 861 862 866 867 868 869 924 925 947 948 949
950 951 953 954 955 956 961 962 964 965 971 972 974 979
980 981 982 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
1013 1014 1023 1024 1031 1032 1051 1052 1074 1075 1080 1081 1082 1084
1085 1100 1101 1102 1103 1104 1140 1141 1145 1146 1151 1152 1153 1202
1203 1219 1220 1221 1222 1223 1239 1240 1268 1269 1270 1271 1272 1273
1287 1288 1294 1295 1322 1323 1337 1338 1339 1340 1341 1342 1343 1344
1364 1365 1423 1424 1539 1540 1542 1543 1567 1568 1584 1585 1587 1588
1629 1630 1632 1633 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646
1647 1648 1649 1650 1651 1652 1655 1656 1657 1658 1660 1661 1662 1663
1664 1665 1666 1667 1669 1670 1671 1674 1675 1676 1677 1678 1679 1680
1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695
1696 1697 1699 1700 1701 1702 1738 1739 1824 1825 1826 1971 1972 1973
1974 1976 1977 1978 1982 1983 1992 1993 1994 1995 2141 2142 2143 2172
2173 2253 2254 2257 2258 2259 2260 2269 2270 2296 2297 2299 2307 2308
2309 2310 2311 2312 2313 2314 2315 2337 2338 2341 2342 2344 2345 2359
2360 2365 2366 2380 2381 2402 2403 2427 2428 2430 2431 2475 2476 2501
2502 2503 2507 2508 2509 2510 2511 2661 2662 2668 2669 2677 2678 2681
2682 2696 2697 2736 2737 2743 2744 2747 2748 2751 2752 2843 2844 2857
2858 2862 2863 2894 2895
ADR2PG 726
AIC 2431
ATTXT 2782# 2785 2786 2787 2788 2789 2790 2791 2794 2795 2796 2797 2800 2801
2804 2807 2808 2809 2812
CLOSF 696 1289 1296
CTXT 3041# 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056
3057 3058 3059 3060
DATXT 2705# 2708 2709 2710
DEBRK 2479 2528
DIC 2366
DIR 2450
DISMS 714 989 1189 1256 1510 1893 1911 1926
EIR 2381 2441
ERCAL 706 2291
ERJMP 617 626 651 659 730 1325 1391 1403 1541 1586 2293 2320 2349 2520
ERR 288# 779 783 789 793 798 800 844 846 867 949 951 976 980
1014 1082 1102 1447 1449 1451 1557 1561 2140
ERR. 280# 659 779 783 789 793 798 800 844 846 867 949 951 976
980 1014 1082 1102 1447 1449 1451 1557 1561 2140
ERRC 293#
ERRI 303# 629 662 786 865 1115 1196 1373 1452 1568 2110 2128 2237
ERRJ 298# 659
FENAM 2930# 2933 2934 2940 2941 2942 2943 2947 2948 2949 2950 2951 2967 2968
2969 2970 2971 2972 2975 2978 2979 2990
FEVAL 2954# 2957 2958 2959 2960 2961 2963 2964 2982 2983 2986 2987
GETER 731 1332
GTJFN 616 650
IIC 2319 2348 2519
LSTOF. 132 2534 2541 2544 2558 2576 2586 2587 2588 2633 2638 2648 2651 2658
2663 2687 2691 2723 2729 2731 2757 2769 2828 2835 2853 2854 2860 2863
2864 2876 2879 2885 2889 2897 2928 3010 3016 3017 3027
LSTON. 2535 2542 2545 2559 2576 2587 2588 2634 2639 2649 2652 2659 2664 2688
2692 2724 2730 2732 2758 2770 2829 2836 2854 2855 2861 2864 2865 2877
2880 2886 2890 2898 2929 3011 3017 3018 3028 3065
M%GMEM 737 1802 1868
M%RMEM 1865 2372 2376
MOVX 615 624 630 649 657 728 743 862 974 1140 1202 1222 1239 1287
1294 1539 1584 2299 2314 2365 2427 2430 2501 2503 2509 2511
MTOPR 641 671 705 1336 1390 1540 1585 2428 2493
NOUT 2567
NRDR 261# 673 813 819 855 858 859 984 994 1021 1029 1033 1049 1053
1079 1156 1179 1247 1253 1260 1262 1358 1362 1441 1484 1491 1498 1506
1508 1515 1519 1610 1612 1625 1725 1729 1772 1775 1778 1783 1786 1795
1808 1896 1913 1928
NRDR. 235# 673 706 813 819 855 858 859 984 994 1021 1029 1033 1049
1053 1079 1156 1179 1247 1253 1260 1262 1358 1362 1441 1484 1491 1498
1506 1508 1515 1519 1610 1612 1625 1725 1729 1772 1775 1778 1783 1786
1795 1808 1896 1913 1928
NRDRC 265# 706
OPENF 625 658
PBOUT 2554 2667 2672 2684 2697 2771 2909
PJRST 708 748 1187 1327 1406 1443 1499 1524 1547 1552 1569 1588 1589 1593
1604 1887 1916 1933
PROLOG 131
PSOUT 2535 2542 2545 2559 2576 2587 2588 2634 2639 2649 2652 2659 2664 2688
2692 2724 2730 2732 2758 2770 2829 2836 2854 2855 2861 2864 2865 2877
2880 2886 2890 2898 2929 3011 3017 3018 3028
RIR 2414
RLJFN 698 1292 1299
SETER 2280
SIBE 1536 1581
SINR 1402
SKPIR 2256
SOUTR 1324
SPACS 729
TXC 663 805
TXNE 707 709 782 784 788 797 815 842 861 866 868 947 950 971
972 979 981 1009 1084 1100 1103 1151 1152 1268 1322 1542 1637 1642
1647 1655 1660 1664 1669 1674 1677 1682 1685 1687 1691 1694 1699 2269
2296 2307 2309 2380 2668 2677 2862
TXNN 780 799 843 845 948 961 964 1002 1006 1031 1051 1074 1101 1337
1338 1364 1423 1587 1651 1657 1666 1679 1696 1738 1992 1994 2172 2311
2312 2344 2359 2507 2681 2696 2736 2743 2747 2751 2843 2857 2894
TXO 654 795 802 816 924 1004 1005 1145 1219 1220 1272 1629 1632 1633
1656 1663 1665 1670 1678 1686 1690 1695 1825 1971 1977 2258 2402 2475
TXOA 794 1010 1012 1269 1340 1341 1567 1638 1640 1643 1645 1648 1661 1675
1683 1688 1692 1700 2141
TXZ 953 955 1008 1080 1081 1270 1343 1630 1641 1646 1650 1676 1684 1693
1701 1973 1975 1982 2142 2253 2259 2337
TXZA 1011 1013 1339 1639 1644 1649 1662 1689 1824 2257
TXZN 1023 2341 2661
TYPE 316# 2534 2541 2544 2557 2576 2586 2587 2588 2633 2638 2648 2651 2658
2663 2687 2691 2723 2729 2731 2757 2769 2828 2835 2853 2854 2860 2863
2864 2876 2879 2885 2889 2897 2928 3010 3016 3017 3027
$CALL 605 607 609 613 627 635 647 660 673 680 683 694 737 772
803 811 812 813 814 816 818 819 840 850 853 854 855 857
858 859 862 869 870 913 916 918 923 945 952 957 968 977
982 983 984 986 994 1021 1029 1033 1049 1053 1078 1079 1098 1105
1138 1154 1155 1156 1168 1170 1178 1179 1183 1184 1200 1206 1217 1229
1237 1244 1246 1247 1251 1252 1253 1258 1259 1260 1262 1283 1285 1357
1358 1361 1362 1412 1434 1436 1441 1457 1477 1479 1484 1491 1498 1502
1505 1506 1508 1515 1517 1519 1520 1534 1546 1555 1562 1564 1576 1601
1610 1612 1625 1718 1725 1729 1772 1775 1778 1783 1786 1795 1802 1808
1865 1868 1888 1896 1899 1906 1913 1921 1928 1939 1955 1956 1958 1964
1965 1970 1972 1981 1990 2014 2052 2070 2072 2077 2080 2102 2164 2166
2168 2170 2217 2261 2266 2268 2270 2285 2289 2295 2335 2355 2372 2376
2412 2435 2445 2531 2532 2533 2540 2543 2547 2548 2572 2573 2584 2591
2592 2632 2637 2642 2646 2650 2655 2656 2665 2670 2679 2688 2722 2730
2735 2741 2746 2754 2756 2763 2827 2832 2833 2870 3009
$CALLR 222# 817 864 1624 1967 1979 1986 2038 2081 2328 2360 2577 2589 2593
2693 2702 2764 3028
$DSP 659# 659 673# 673 706# 706 779# 779 783# 783 789# 789 793# 793
798# 798 800# 800 813# 813 819# 819 844# 844 846# 846 855# 855
858# 858 859# 859 867# 867 949# 949 951# 951 976# 976 980# 980
984# 984 994# 994 1014# 1014 1021# 1021 1029# 1029 1033# 1033 1049# 1049
1053# 1053 1079# 1079 1082# 1102# 1102 1156# 1156 1179# 1179 1247# 1247 1253#
1253 1260# 1260 1262# 1262 1358# 1358 1362# 1362 1441# 1441 1447# 1447 1449#
1449 1451# 1451 1484# 1484 1491# 1491 1498# 1498 1506# 1506 1508# 1508 1515#
1515 1519# 1519 1557# 1557 1561# 1561 1610# 1610 1612# 1612 1625# 1625 1725#
1725 1729# 1729 1772# 1772 1775# 1775 1778# 1778 1783# 1783 1786# 1786 1795#
1795 1808# 1808 1896# 1896 1913# 1913 1928# 1928 2140# 2140
$RET 606 699 700 711 735 925 1185 1273 1347 1374 1393 1435 1437 1447
1449 1451 1453 1478 1480 1533 1544 1574 1708 1826 1847 1880 1889 1891
1900 1907 1909 1922 1924 1951 1960 2074 2090 2110 2129 2140 2144 2177
2203 2219 2237 2273 2284 2382 2403 2411 2432 2438 2442 2448 2453 2559
2570 2580 2583 2689 2698 2773 3114 3156
..TX 654 663 707 709 780 782 784 788 794 795 797 799 802 805
815 816 842 843 845 861 866 868 924 947 948 950 953 955
961 964 971 972 979 981 1002 1004 1005 1006 1008 1009 1010 1011
1012 1013 1023 1031 1051 1074 1080 1081 1084 1100 1101 1103 1145 1151
1152 1219 1220 1268 1269 1270 1272 1322 1337 1338 1339 1340 1341 1343
1364 1423 1542 1567 1587 1629 1630 1632 1633 1637 1638 1639 1640 1641
1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1655 1656 1657 1660
1661 1662 1663 1664 1665 1666 1669 1670 1674 1675 1676 1677 1678 1679
1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695
1696 1699 1700 1701 1738 1824 1825 1971 1973 1976 1977 1982 1992 1994
2141 2142 2172 2253 2257 2258 2259 2269 2296 2307 2309 2311 2312 2337
2341 2344 2359 2380 2402 2475 2507 2661 2668 2677 2681 2696 2736 2743
2747 2751 2843 2857 2862 2894