Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/utilities/daplib.list
There are no other files named daplib.list in the archive.
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 1
DAPLIB MAC 14-Jan-82 09:58 D. Oran - P.J. Taylor /POM/CLB/ 17-Nov-81
1 TITLE DAPLIB Dap routines for TOPS20 DECNET
2 SUBTTL D. Oran - P.J. Taylor /POM/CLB/ 17-Nov-81
3
4 ;
5 ;
6 ;
7 ; COPYRIGHT (c) 1978,1979,1980 BY
8 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA.
9 ;
10 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
11 ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
12 ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
13 ; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
14 ; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
15 ; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
16 ;
17 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
18 ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
19 ; BY DIGITAL EQUIPMENT CORPORATION.
20 ;
21 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
22 ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
23 ; DIGITAL.
24
25
26
27 SEARCH GLXMAC ;Get Galaxy symbols
28 PROLOG (DAPLIB)^ ;Declare our name
29
30
31 SEARCH QSRMAC ;Get symbols for submit/print
32 SEARCH DAPSYM ;Get DAP symbols
33
34 SALL ;SUPPRESS FULL EXPANSION
35
36 ;Version Information
37
38 000002 DAPVER==2 ;MAJOR VERSION OF DAP20
39 000000 DAPMIN==0 ;MINOR VERSION OF DAP20
40 000154 DAPEDT==154 ;EDIT LEVEL
41 000000 DAPWHO==0 ;WHO LAST EDITED
42
43 GLOB DAPEDT ;Make edit number global
44 GLOB LEV1PC ;Interrupt PC from caller
45
46 000200 000154 VDAP20==VRSN.(DAP) ;GET THE VERSION LEVEL
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 2
DAPLIB MAC 14-Jan-82 09:58 Table of contents
47 SUBTTL Table of contents
48
49 COMMENT #
50 TABLE OF CONTENTS FOR DAPLIB
51
52
53 SECTION PAGE
54 1. Title Page.............................................. 1
55 2. Table of contents....................................... 2
56 3. Revision History........................................ 3
57 4. Symbol Definitions...................................... 4
58 5. IMPURE storage.......................................... 5
59 6. STORAGE allocated per logical link...................... 6
60 7. Version number and entry vector......................... 9
61 8. DAP message descriptor blocks........................... 10
62 9. DAP message argument types and processor table.......... 11
63 10. Local macro definitions................................. 12
64 11. $DEBUG Macro to display debugging message.............. 13
65 12. DEBUG and TYPER output routines......................... 14
66 13. $GODAP Macro to establish DAPLIB context............... 15
67 14. D$INIT Daplib initialization........................... 16
68 15. D$OPEN Establish a logical link........................ 17
69 16. D$INTR Interrupt processing routines................... 18
70 17. D$CLOS Routine to close logical link................... 18
71 18. D$STAT Display link status............................. 18
72 19. D$FUNC Daplib routine to perform a File function....... 19
73 20. SRVMSG Server initialization and tables................ 20
74 21. Server state initialization routines.................... 21
75 22. SRVMSG Server message processing loop.................. 22
76 23. SRVCFI Server routine to process Initial config message 23
77 24. SRVCFG Server routine to Process Config message........ 23
78 25. SRVACC Server routine to process an ACCESS message..... 23
79 26. SRVOPN Server routine to process ACCESS (Open)......... 24
80 27. SRVCRE Server routine to process ACCESS (Create)....... 26
81 28. SRVDEL Server routine to process Delete requests....... 27
82 29. EXPUNG Expunge deleted files........................... 28
83 30. SRVEXE Server routine to process submit requests....... 29
84 31. SRVDIR Server routine to process Directory requests.... 30
85 32. SRVCTL Server routine to process a CONTROL message..... 31
86 33. FILGET Server routine to send data messages............ 32
87 34. SRVACP Server routine to process Access complete mess.. 33
88 35. ENABLE/DISABL Routine to set or clear capabilities...... 34
89 36. HOOVER Routine to validate a users access to a file.... 35
90 37. PRINT/SUBMIT Server routine to queue galaxy requests.... 36
91 38. SNDQSR Routine to send message to quasar............... 37
92 39. DAPDCN Active Task function dispatch................... 38
93 40. Active Task message and State tables.................... 39
94 41. Active Task state initialization routines............... 40
95 42. DCNMSG Active Task message processing routine.......... 41
96 43. DCNCFG Routine to process Config message............... 42
97 44. DCNNAM Routine to process Name message................. 43
98 45. ATTACK Routine to process ACK for Attributes message... 43
99 46. CTLACK Routine to process ACK for Control message...... 43
100 47. DCNACP Routine to process Accomp (Resp)................ 43
101 48. DCNSTS Routine to process Status message............... 43
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 2-1
DAPLIB MAC 14-Jan-82 09:58 Table of contents
102 49. DCNATR Routine to call user with received attributes... 43
103 50. DCNREC Active Task routine to receive a file........... 44
104 51. DCNTYP Active task to type remote files................ 45
105 52. DCNSND Active task to send files....................... 46
106 53. DCNDEL ACTIVE TASK TO DELETE A FILE.................... 47
107 54. DCNEXE ACTIVE TASK TO EXECUTE A FILE................... 47
108 55. DCNDIR Active Task routine to process Directory request 48
109 56. DCN Unimplimented functions......................... 49
110 57. VALCFG Validate contents of a CONFIG message........... 50
111 58. VALATT Validate contents of an ATTRIBUTES message...... 51
112 59. VALDTI Validate DATE/TIME attributes extention mess.... 52
113 60. VALPRO Validate protection attributes message.......... 53
114 61. VALNAM Validate the contents of a NAME message......... 54
115 62. VALCRC Routine to validate the CRC .................... 54
116 63. SNDCFG Send CONFIG message............................. 55
117 64. SNDACC Send an ACCESS message.......................... 56
118 65. SNDCTC Send a CONTROL (CONNECT) message................ 56
119 66. SNDCTR Send a CONTROL (GET) message.................... 57
120 67. SNDCTS Send a CONTROL (PUT) message.................... 57
121 68. SNDCON Send a CONTROL TRANSFER (Skip) message ;[132].. 58
122 69. SNDACK Send an ACKNOWLEDGE message..................... 59
123 70. SNDEOF Send an EOF status message...................... 59
124 71. SNDSTS Routine to send a status message................ 59
125 72. SNDACP Send an ACCOMP (CLOSE) message.................. 59
126 73. SNDACA Send an Accomp (Resp) message................... 59
127 74. SNDWLD Routine to send required name mess's per WLDJFN. 60
128 75. SNDDSP Send requested ATTRIBUTES messages.............. 61
129 76. CONREM/RESREM Send file names in correct format......... 62
130 77. SNDATT Send an attributes message...................... 63
131 78. SNDPRO Send File Protection Attributes................. 64
132 79. SNDDTI Send Date/time attributes....................... 64
133 80. SNDNAM Send a Name message............................. 64
134 81. MSGTBL List of valid DAP messages...................... 65
135 82. GETMSG Routine to get next DAP message from Link....... 66
136 83. VALHDR Routine to validate standard dap message header. 69
137 84. NEWHDR Routine to create a new header only............. 69
138 85. VALMSG Routine to parse current DAP message............ 70
139 86. CLRMSG Routine to clear DAP message storage............ 71
140 87. GETFIX Routine to process DAP byte arguments........... 72
141 88. GETBYT Routine to return a single DAP message byte...... 72
142 89. GETVAR Routine to process DAP variable length arguments 73
143 90. GETINT Routine to process DAP integer arguments........ 74
144 91. GETPRO Routine to get Protection field from DAP message 75
145 92. GETEXF Routine to process DAP extensible fields........ 76
146 93. GETMNU Routine to process DAP extensible menu fields... 76
147 94. GETDTI Routine to process Date/time field in DAP mess.. 77
148 95. GETDAT Routine to process DATA field from DAP message.. 78
149 96. GETASC Routine to process ascii data in message........ 79
150 97. TSTPRN Routine to do final linefeed for print files.... 79
151 98. GETPRN Routine to process print file format (vax)...... 80
152 99. GETPAG Routine to get a file page from DAP message..... 81
153 100. GETIMG Routine to process image bit stream in data mess 82
154 101. GETBCT Routine to return bitstream from DAP message.... 83
155 102. GETDOS Routine to store MACY11 variable length files... 84
156 103. SNDQUE Routine to send all messages in the send queue.. 85
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 2-2
DAPLIB MAC 14-Jan-82 09:58 Table of contents
157 104. DELMSG Routine to delete current message in Send Queue. 85
158 105. PUTMSG Routine to build and force all messages out..... 86
159 106. QUEMSG Routine to block current message if possible.... 86
160 107. BLDMSG Routine to build a DAP message.................. 88
161 108. BLDHDR Routine to build header for current message..... 89
162 109. PUTFIX Routine to store 1-4 BYTE fields in DAP message. 90
163 110. PUTBYT Routine to store a character in current message. 90
164 111. PUTERR Routine to die on invalid argument.............. 90
165 112. PUTVAR Routine to store var length field in DAP message 91
166 113. PUTINT Routine to store variable length integer........ 92
167 114. PUTPRO Routine to store DAP protection argument........ 93
168 115. PUTEXF Routine to store extensible field in Dap message 94
169 116. PUTMNU Routine to store DAP extensible fields.......... 94
170 117. PUTDTI Routine to store date time field in DAP message. 95
171 118. PUTDAT Routine to store Data field in DAP message...... 96
172 119. DOCRC Routine to update cumulative CRC for data mess's 97
173 120. CRCTAB CRC TABLE DEFINITION............................ 98
174 121. PUTASC ROUTINE TO READ ASCII AND make A DAP MESSAGE.... 99
175 122. PUTPAG Routine to store file page in DAP message...... 100
176 123. PUTIMG Routine to store n-bit bytes in data message... 101
177 124. PUTBCT Store image bit stream in DAP message.......... 103
178 125. PUTDOS Process MACY11 assembler output................ 104
179 126. SETINP Setup for local file input..................... 105
180 127. SETOUT Setup for local file output.................... 106
181 128. OPNFIL Routine to open the local file................. 107
182 129. CLSFIL Routine to close local file and update FDB..... 108
183 130. CLSINP Routine to close input file.................... 109
184 131. DELFIL Routine to delete the local file............... 109
185 132. ABTFIL Routine to abort local file operation.......... 109
186 133. CHNGFD Routine to change a field in output files FDB.. 109
187 134. EOFCHK Routine to check for EOF in local file......... 110
188 135. INPBYT Routine to read a byte from file............... 110
189 136. OUTBYT Routine to write a byte to file................ 111
190 137. GETFDB Routine to read local file FDB and other info.. 112
191 138. GETDEV Routine to get device attributes............... 113
192 139. SETATT Set attributes from switches................... 114
193 140. SWLOOK Lookup switches and convert to DAP attriubtes.. 115
194 141. CHKMOD Routine to check for legal input to output mode 115
195 142. PICMOD [125]Pick default file mode by system type..... 116
196 143. File mode table definitions............................ 117
197 144. ATLOOK Routine to lookup attributes................... 118
198 145. Attributes list........................................ 119
199 146. SETMOD Routine to setup processor address and bytesize 120
200 147. TYPSTS Routine to expand DAP status codes............. 121
201 148. TERCVT Routine to convert 20 error code to dap status. 122
202 149. LLGJFN Routine to get JFN for logical link............ 123
203 150. LLGJFN Get a JFN for logical link..................... 123
204 151. QSOUT move asciz string and quote if required........ 124
205 152. LLOPEN Routine to OPEN logical link................... 125
206 153. LLWCON ROUTINE TO WAIT FOR LINK TO BE CONNECTED....... 126
207 154. LLCHK Routine to check logical link status........... 127
208 155. LLCLOS Routine to close or abort a logical link....... 128
209 156. LLRCD Read Connect-initiate Disconnect initiate data. 129
210 157. STOSTS Routine to store link status................... 130
211 158. LLSEND Routine to send messages across Link........... 131
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 2-3
DAPLIB MAC 14-Jan-82 09:58 Table of contents
212 159. LLRECV Routine to receive link messages............... 132
213 160. NEWBUF Routine to allocate a new buffer............... 133
214 161. Connect event interrupt service........................ 134
215 162. Interrupt message processing........................... 135
216 163. Table of NSP disconnect reasons...................... 136
217 164. PURE TABLES............................................ 137
218 165. TOPS20 TO DAP ERROR CONVERSION TABLE................... 138
219 #
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3
DAPLIB MAC 14-Jan-82 09:58 Revision History
220 SUBTTL Revision History
221
222 COMMENT \
223
224 Edit Comment
225
226 0020 First field test of DAPLIB
227
228 0021 Fix Daplib to default to Image mode if remote node is TOPS20
229
230 0022 Fix Daplib to Store output files DTI and PRO message info
231
232 0023 Fix bugs in blocked recieve code and SNDATT to allow ascii
233 transfers to/from RSX11
234
235 0024 Move Free <CRLF> for TTY output to DCNREC instead of OPNFIL
236
237 0025 Default directory name and extention to *.* for server.
238 Move Date/time info received from attributes into FDB
239 for directory function.
240
241 0026 Fixed a bug in SNDWLD that caused error in directory if
242 Filespec was not wild.
243
244 0027 Only do MTOPR and SIBE when required. Globalaize Status flags.
245
246 0030 Check for Device type DSK before updating FDB
247
248 0031 Impliment TYPE routine for DCN
249 Add wild logic to SRVOPN
250
251 0032 Remove code for unsupported message types
252
253 0033 Add blocking code to send logic and fix various bugs
254
255 0034 Fix bugs in send blocking code
256
257 0035 Redefined extensible field bits to begin with bit 35
258 and change GETEXF and PUTEXF to automatically lite the
259 extension bit when required. Effectively extend the
260 precesion for extensible fields to 70 information bits
261 (or 10 bytes)
262
263 0036 Defined message types via macros in DAPSYM and invoked
264 macros to declare local storage
265
266 0037 Further bugging for VAX communication
267
268 0040 Bug fixes for TYPE command and FAL
269
270 0041 Remove SY$APP from SYSCAP field since it's not supported
271
272 0042 Change GETINT to accept up to 9 byte integer fields
273
274 0043 Remove SY$RSS and SY$RSR from SYSCAP and add SY$CRC
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3-1
DAPLIB MAC 14-Jan-82 09:58 Revision History
275 and appropriate support code to generate and validate
276 CRC's
277
278 0044 Remedy several bugs to allow FAL to speak to VAX
279
280 0045 Disable capabilities upon reciept of CTL (PUT) to allow
281 overquota errors to occur. Also CRC changes.
282
283 0046 Add page mode transfer code so "holy" files may be transferred
284 between TOPS20 nodes
285
286 0047 Don't copy file protection attribute when creating files. This
287 will cause the directory default protection to be followed if
288 no protection is specified. Also, don't update reference counts
289
290 0050 Fix a bug in PUTASC which caused CRC error on 36 bit files when
291 transferred in ASCII mode.
292
293 0051 Fix an interrupt race which causes NFT and FAL to occasionally hang
294
295 0052 Add check to FAL to determine if directory is large enough to write
296 file before file is created.
297
298 0053 Fix several problems for speaking to RSTS Dap 4.0
299
300 0054 Fix problem causing invalid ATTEBK and remove code to support pre
301 5.3 FAL for TOPS20
302
303 *** Changes for DECnet-20 V3.0 begin here ***
304
305 0055 Fix PRINT routine to properly queue file for printing.
306
307 0056 Add CHKWLD routine to look for unsupported wild cards.
308
309 0057 Change primary output mode for ascii from ascii stream to
310 ascii variable to prevent the RSX FAL from hanging.
311
312 0060 Add code to break out of SOUT if an interrupt has occured.
313
314 0061 Ignore enable/disable requests if debugging.
315
316 0062 Remove obsolete hack to check for RSX Pseudo 5.3 FAL in
317 SNDACC routine. (Always request name if they support it)
318
319 0063 Don't send fancy fields in attributes message to none TOPS20
320 and TOPS10 on file create.
321
322 0064 Don't send attributes bytesize if it is the default (8).
323
324 0065 Check for delete access before deleting file via ACCOMP
325 options.
326
327 0066 Only do CRC validation for DCNSND and DCNREC routines.
328
329 0067 Add .DIACP function to D$INTR to force access complete.
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3-2
DAPLIB MAC 14-Jan-82 09:58 Revision History
330
331 0070 Add missing Data transfer error entry to MACTBL to prevent
332 nasty stopcode on message sequence errors.
333
334 0071 Add debugging typeout to LLSEND and LLRECV routines.
335
336 0072 Fix a race problem in setting and clearing MSGFLG.
337
338 0073 Call LLRECV from main routines DCNMSG and SRVMSG and expect
339 a false return if no messages are available.
340
341 0074 Wait for 30 CCTIME intervals during wait for connect confirm
342 and modify CCTIME to be 2 seconds.
343
344 0075 Modify SNDQUE to send all but the last message segment unless
345 the last segment is being forced out.
346
347 0076 Fix a bug in PUTASC which was causing CRC generation failure
348 for fixed length ascii records.
349
350 0077 Remember ATTMRS specified in initial attributes and use that
351 when FAL returns attributes. Do defaulting for MRS in DCN
352 routines instead of general file routines.
353
354 0100 Establish invalid default value for ACPCRC to determine if
355 it was sent at all. Don't validate CRC if this field was
356 not sent.
357
358 0101 Fix copy for Print and Fortran format files from VMS.
359
360 0102 Return unsupported for CTL with RB$VBN which implied random
361 access by VBN which is unsupported.
362
363 *** Engineering responsibility changed hands here ***
364
365 103 For TOPS-10 connections, if the file data mode is unspecified in
366 the ACCESS message sent by the 10 to read an existing file on
367 the 20, or create a new file on the 20, then default to ASCII
368 for files whose byte size is 7 or 36.
369
370 104 The macro which builds DAP messages used the wrong
371 radix in an arithmetic expression, causing some
372 DAP messages to be too large.
373
374 105 The symbol ATT$LN was multiply defined, but MACRO didn't
375 notice. This caused the saved attributes message to be
376 truncated and wild card copies to exhibit multiple
377 problems.
378
379 106 The maximum value of DPMXM was lowered to ^d1636 if the
380 user said /OSTYPE:VMS in SET DEFAULT. This is
381 the largest it can be and still allow VAX FALs to function
382 if the VAX users accounting file allows BYTLM to default
383 to 4K. If BYTLM is too small for DPMXM, then the VAX FAL
384 hangs. If all VAX users have BYTLM raised, then DPMXM can
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3-3
DAPLIB MAC 14-Jan-82 09:58 Revision History
385 also be raised. Doing this provides better performance.
386 Note that the next release of VMS fal should include a patch
387 to solve this problem. When NFT/FAL-20 is shipped with
388 DECnet-20 phase III this patch should be removed.
389
390 107 The table search for error conversion to DAP error codes
391 in TERCVT is one word off. The last error was never identified.
392
393 110 For non-TOPS-20 nodes, if a files byte size is zero make
394 it default to 7.
395
396 111 Non copy commands keep all generated messages in core until
397 the command is almost finished. Commands which process many files
398 (such as dir <*>*.*.*) can run out of core. Do a SNDQUE
399 every so often to regain the core.
400
401 112 A FAL serving a directory request will forget to send the
402 structure and directory name if the first file in a wildcarded
403 directory is not accessable, but other files are.
404
405 113 Logical link error messages are terrible.
406 Remote status error messages are not complete enough.
407
408 114 Allow zero length variable length image mode records
409 to be transmitted to remote nodes.
410
411 115 The code which sends IPCF packets to QUASAR failed to put
412 the message length into the message header. The length
413 field is required by Galaxy 4.1.
414
415 116 The DAP protection attributes message contains an owner field.
416 DAPLIB was interpreting this as a TOPS-20 author field. This
417 concept is incorrect. When the two are treated equivalently
418 it is possible to create a file on the 20 whose author field
419 contains a vax uic. Then when one attempts to copy the file to
420 a vax, the copy fails because of lack of privileges. The author
421 field should always contain the userid passed at CI time. TOPS-20
422 should not send the owner field, but let the owner default to
423 the user id passed at CI time to the VAX.
424
425 117 If a VAX user gives a file spec without quotes, VMS sends it
426 with a semicolon before the version number. TOPS-20 always
427 fails to find such a file. So, to make file transfer easier
428 for everyone always convert semi colons to periods in file
429 specs that come in to a TOPS-20 server in an ACCESS message
430
431 120 In certain cases, the CLOSF in LLCLOS fails when it shouldn't.
432 Since the file transfer would have already completed successfully,
433 don't make this an error, just set the abort bit and close again.
434
435 121 Add a subroutine to do poor mans routing. The routing info
436 is stored in SYSTEM:DECNET-HOSTS.TXT. This code is only
437 invoked if the value of PMRFLG is -1. NFT/FAL is
438 shiped with this value = 0.
439
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3-4
DAPLIB MAC 14-Jan-82 09:58 Revision History
440 122 Any date generated must be in the format specified by the
441 DAP spec. The day of the month is supossed to be DD not D.
442
443 123 If a bad message is received by FAL it will loop forever
444 sending the error status message. The bad message was never
445 deleted from the receive queue.
446
447 124 Force FAL to expunge each file that it deletes.
448
449 125 If file mode is not specified for destination file, pick
450 file mode by type of destination system. Always default to ASCII
451 This means that for all ASCII file transfers to any system,
452 if the user leaves out all the switches, NFT will default
453 to doing the right thing.
454
455 126 Allow copying of stream files and files with fortran carriage
456 control to TOPS-20 (fixed, variable, and vfc) from VMS.
457
458 127 Fix incorrect error message from FAL when VALMSG gets an
459 error.
460
461 130 Performance improvements. For non TOPS-20 transfers replace
462 BIN/BOUT with PMAP. This speeds things up by 75%.
463
464 131 Fix "File off-line" problem when doing wildcard copy.
465 When an error was found with a file being copied the
466 entire copy was aborted. Now just the current file is
467 aborted and the wildcarding process continues.
468
469 132 Fix abort of DIRECTORY command when a remote file is inaccessible.
470 This is the same wildcarding problem as the copy problem
471 above.
472
473 133 Fix the initialization of the checksum variable FILCRC. It is
474 not initialized for each file in a wildcarded transfer. Thus
475 the transfer of the second file always fails.
476
477 134 Add ^A command to show current status for NFT.
478
479 135 Allow a null DATATYPE field in an attributes message
480 received during a DIRECTORY command.
481
482 136 DAP arcitecture suggests that file names sent to other systems
483 be in the format required by the remote system. This edit
484 changes the period before the version to a semi colon if the
485 remote system requires it. If the octal/decimal version number
486 problem is resolved, this is where the fix should go.
487
488 137 The processing of the delete on close function (access complete)
489 is all wrong.
490
491 140 Fix obscure problem with interrupt system. It seems that
492 if an interrupt routine does a network JSYS when the mainline
493 code was interrupted out of a network JSYS, then odd things happen
494 to the logical link. This really needs to be fixed in the monitor,
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 3-5
DAPLIB MAC 14-Jan-82 09:58 Revision History
495 but in the meantime, fix it here by prevent both paths from
496 doing network actions at the same time.
497
498 141 The algorithm in GETIMG for determining whether the residual
499 bit count was correct was wrong.
500
501 142 In PUTASC a buffer count was set up incorrectly.
502 This caused double CRLFs in some cases.
503
504 143 Improve error detection when a file name is used which is correct
505 if some of the trailing characters are ignored.
506
507 144 If FAL queues a file to be printed and its type is DAT then
508 it should be specified to be /FILE:FORTRAN.
509
510 145 Temporary patch to prevent NFT from hanging when running under
511 DECnet-20 V2.0 or V2.1. This should be removed when lost DC
512 problem is solved, or if supporting an RT system.
513
514 146 When printing remote files send the FOP bit in the attributes
515 message in addition to the access complete. Field image RSX
516 does not read the access complete FOP field.
517
518 147 Error messages concerning local files are not clear enough.
519
520 150 Strip nulls from files which are being converted from
521 line numbered files to non-line numbered files.
522
523 151 Following a fatal error files with pages mapped are left
524 open because the cleanup code does not unmap the pages.
525 Unmap them at cleanup time.
526
527 152 A file with an unusable byte size previously caused an error.
528 This edit prints a warning message and assumes a byte size of
529 7.
530
531 153 When copying to RSTS systems specify superceed always.
532 If this is not done, a copy to an existing file will fail.
533
534 154 The routine LLCHK was called too frequently, lowering performance.
535 remove the excessive calls.
536
537 \ ;end revision history
538
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 4
DAPLIB MAC 14-Jan-82 09:58 Symbol Definitions
539 SUBTTL Symbol Definitions
540 ; ACCUMULATOR DEFINITIONS
541
542 000013 S==13 ;Global link Status AC
543
544 000200 000000 S%JERR==1B10 ;[127]A JSYS error has occured
545 000100 000000 S%LERR==1B11 ;Error status sent or received
546 000040 000000 S%INIT==1B12 ;State has just changed
547 000020 000000 S%RETN==1B13 ;Return to caller flag for DCN
548 000010 000000 S%PUT==1B14 ;Data ouptut
549 000004 000000 S%GET==1B15 ;Data input
550 000002 000000 S%EOF==1B16 ;EOF seen
551 000001 000000 S%ACP==1B17 ;Access complete
552
553 777777 S%STAT==777777B35 ;Link state
554 000000 .LLCFG==0 ;Awaiting Config
555 000001 .LLACC==1 ;Awaiting Attributes or Access
556 000002 .LLATT==2 ;Awaiting Ext Attr or Access
557 000003 .LLCTL==3 ;Awaiting Control or Accomp
558 000004 .LLDAT==4 ;Awaiting Data or Accomp
559 000005 .LLACP==5 ;Awaiting Accomp
560
561
562 000014 CP==14 ;Holds link data page address
563 000015 DL==15 ;Address of current msg header
564 000016 AP==16 ;Address of callers arguments
565
566 ;CONSTANTS FOR COMPILATION
567
568 770000 FP%SLF==77B23 ;Owner protection mask
569 007700 FP%GRP==77B29 ;Group protection mask
570 000077 FP%WLD==77B35 ;Wild protection mask
571
572 FFSPEC==<FLD(1,JS%DEV)+FLD(1,JS%DIR)+FLD(1,JS%NAM)+FLD(1,JS%TYP)+FLD(1,JS%GEN)+
573 111110 000001 JS%PAF>
574
575 025256 ND OURKON,25256 ;Hours constant worth of bits
576
577 000002 ND CCTIME,2 ;Wait time for Connect confirm
578 000001 ND MAXLNK,1 ;Maximum number of logical links
579 004544 ND DPMXM,^D512/2*^D9+^D100 ;Maximum Dap message size
580 003144 ND DPMXMV,^D512/2*^D6+^D100 ;MAX DAP MESSAGE SIZE FOR VMS HOST
581 000010 ND DPMXH,^D8 ;Maximum Dap header size
582 000050 ND LLMXF,^D40 ;MAX LENGTH OF FILESPEC STRING
583 000050 ND FILMAX,^D40 ;[111]MAX NUM OF FILES TO PROCESS BEFORE
584 ;[111]A SNDQUE IS DONE TO FREE CORE
585
586 IFE MAXLNK-1,<DEFINE MULINK <IFE -1,>>
587 IFG MAXLNK-1,<DEFINE MULINK <IFE 0,>>
588
589
590 ;Contants for this implimentation
591
592 XP CAP1,SY$SEQ+SY$SQA+SY$BLK+SY$UBK+SY$LN2+SY$EXE+SY$DTI+SY$PRO+SY$BCT+SY$DIR+S
593 435617 040242 Y$SUB+SY$SPL+SY$DEL+SY$CRC+SY$VBN
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 4-1
DAPLIB MAC 14-Jan-82 09:58 Symbol Definitions
594 000024 XP CAP2,SY$WLD+SY$NAM
595
596 012030 000040 XP DAPVER,<BYTE (8) .DVMAJ,.DVMIN,.DVUSR,.DVSFT>
597
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 5
DAPLIB MAC 14-Jan-82 09:58 IMPURE storage
598 SUBTTL IMPURE storage
599
600
601 .PSECT DATA ;Load where FAL or NFT left off
602
603 DEFINE $DATA (NAME,SIZE<1>) <
604 NAME: BLOCK SIZE
605 ..LOC==.>
606
607 000001' $DATA DAPFRM,1 ;USER PDL FRAME
608 000002' $DATA DAPFLG,1 ;DAP FLAGS FROM D$INIT
609 000003' $DATA MSGDSG,1 ;DAP Message designator
610 000004' $DATA LNKPGS,MAXLNK ;Per link storage address
611
612
613 MULINK <
614 ..LOC==0 ;Start at offset 0
615 DEFINE $DATA (NAME,SIZE<1>) <
616 ..DEF (NAME,\..LOC)
617 ..LOC==..LOC+SIZE>
618
619 DEFINE ..DEF (NAME,OFFSET) <
620 DEFINE NAME <OFFSET(CP)>>
621 > ; End MULINK
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 6
DAPLIB MAC 14-Jan-82 09:58 STORAGE allocated per logical link
622 SUBTTL STORAGE allocated per logical link
623
624 ;This part of the per link data contains Logical Link variables
625
626 ;If there is more than 1 link allowed then reference all variables
627 ; by index register (cp) else allocate storage directly
628
629
630 000004' $DATA LNKBEG,0 ;Start of per link storage
631
632 000005' $DATA SAVPNT,1 ;[136]BYTE POINTER FOR NAME CONV
633 000006' $DATA BUFFUL,1 ;[142]BUFFER FULL FLAG
634 000007' $DATA DELFLG,1 ;[137]FILE DELETED FLAG
635 000025' $DATA CONBLK,^D14 ;[121]CONNECT BLOCK FOR PMR
636 000026' $DATA FILCNT,1 ;[111]COUNT OF FILES PROCESSED
637 000027' $DATA WLDSAV ;[112]SAVE WILD BITS ARE DIR SERVER
638 000027'01 $GDATA MESIN,1 ;[134]MESSAGES RECEIVED
639 000030'01 $GDATA MESOUT,1 ;[134]MESSAGES SENT
640 000032' $DATA INTHAP,1 ;[154]INTERRUPT HAS OCCURED
641 000047' $DATA LLOPNB,.DOSIZ ;COPY OF LINK OPEN BLOCK
642 000050' $DATA CAPIBL,1 ;Enabled capiblities of FAL if enabled
643 000051' $DATA DIRNUM,1 ;Directory number
644 000052' $DATA USRNUM,1 ;User number
645 000053' $DATA LLJFN ;JFN FOR LOGICAL LINK
646 000053'01 $GDATA LLSTAT ;[134]Last link status from LLCHK
647 000055' $DATA LNKSTS ;Link status and state from S
648 000056' $DATA MSGFLG ;-1 says message awaiting processing
649 000057' $DATA SNDFLG ;-1 says send in progress
650 000060' $DATA INTFLG ;-1 says we have unprocess interrupt
651 000100' $DATA LLDISC,20 ;Disconnect cause stored here
652 000102' $DATA CLSBLK,2 ;Block for closing link
653 000157' $DATA LLNAME,^D45 ;JFNS STRING FOR LL JFN
654
655
656 000160' $DATA RCVLST ;Index for receive list
657 000161' $DATA SNDLST ;Index for send list
658
659 ;Send/Recieve Queue header offsets
660
661 000000 .DPTYP==0 ;TYPE FIELD FROM MESSAGE
662 000001 .DPFLG==1 ;DAP message HEADER flags
663 000002 .DPLEN==2 ;Starting size of buffer
664 000003 .DPSID==3 ;DAP message HEADER Stream ID field
665 000004 .DPBCT==4 ;DAP message HEADER bit count field
666 000005 .DPCNT==5 ;Number of bytes left in buffer
667 000006 .DPBPT==6 ;Pointer to DAP message
668 000007 .DPHDR==7 ;Two words in which to build header
669 000011 .DPSIZ==11 ;Number of words in List header area
670
671
672 000162' $DATA REMOST ;[106]Remote operating system type
673 000162' $DATA DAPBEG,0 ;Start of area to clear before config
674 ; messages have been exchanged on the
675 ; logical link. The area begins here
676 ; and continues until the end of the
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 6-1
DAPLIB MAC 14-Jan-82 09:58 STORAGE allocated per logical link
677 ; storage defined for the configuration
678 ; message on the next page.
679
680 000163' $DATA OURVER ;Mutually lowest DAP version supported
681 000165' $DATA OURCAP,2 ;Mutual capabilities of both ends
682 000166' $DATA OURDSP ;Mutual attributes display bits
683 000167' $DATA OURMRS ;Mutual Maximum record size
684 000170' $DATA OURSIZ ;Mutual maximum buffer size
685
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 7
DAPLIB MAC 14-Jan-82 09:58 STORAGE allocated per logical link
686 ;This part of the per link data contains the parsed fields
687 ;from each DAP message.
688
689 ;Field names will have the following format:
690
691 ; MSGFLD Where:
692
693 ; MSG is the three character message name (CFG for config,
694 ; ATT for Attributes, etc)
695
696 ; FLD is the three character field name (BSZ for bytesize,
697 ; RCN for record number, etc)
698
699 ;The DAP messages are defined in DAPSYM.MAC with the following field
700 ;types
701
702 ;Define macro to allocate storage for all DAP message fields.
703
704 DEFINE XX (MSG,VAL,NAME,FLAG) <
705
706 MSG'$ST==..LOC ;;Define start of message offset
707 MSG'$LN==0 ;;Define message storage length
708 MSG'$FC==0 ;;Define message argument count
709
710 DEFINE VV (VER) <> ;;Ignore version comparison this pass
711 DEFINE YY (FLD,TYP,SIZ,DEF) <
712
713 LN==1
714 IFIDN <TYP><MNU>,<LN==<SIZ*7>/^D36+1> ;;[104]Menu stored 35 bits per word
715 IFIDN <TYP><EXF>,<LN==<SIZ*7>/^D36+1> ;;[104]Exf stored 35 bits per word
716 IFIDN <TYP><BYT>,<LN==<SIZ*8>/^D33+1> ;;[104]Fix stored 4 bytes per word
717 IFIDN <TYP><VAR>,<LN==<SIZ*7>/^D35+1> ;;[104]Var stored 5 bytes per word
718 IFIDN <TYP><INT>,<LN==<SIZ*8>/^D33+1> ;;[104]Int stored 4 bytes per word
719 ;;All else requires 1 word
720
721 MSG'$LN==MSG'$LN+LN ;;Accumulate message storage length
722 MSG'$FC==MSG'$FC+1 ;;Accumulate field count
723
724 $DATA MSG''FLD,LN>
725
726 > ;End of XX definition
727
728
729 ;Allocate storage for all message arguments
730
731 XLIST
732 LIST
733
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 8
DAPLIB MAC 14-Jan-82 09:58 STORAGE allocated per logical link
734 000020 DAPSIZ==<ATTMNU>-<DAPBEG> ;Size of area to clear befor Config
735 ; Message is exchanged
736
737 000176 LNKSIZ==<ATTMNU>-<LNKBEG> ;Size of area to clear before Opening
738 ; Logical link
739
740
741 ;This section of per link storage contains storage for all DAP messages
742 ; (except the CONFIG message) file variables and miscellaneous storage.
743
744 ;Area to be cleared for each function
745 ; Begins with Attributes message storage
746 ; and continues thru end of this page
747
748 ;Attributes message fields saved for FAL's wild ACCESS (Open)
749
750 001110' $DATA ATTSAV,ATT$LN
751
752 ;RAC field from control message saved for every CONTROL
753
754 001111' $DATA RACSAV
755
756 ;Data modes for this access
757
758 001112' $DATA SRCMOD ;Mode of source file
759 001113' $DATA DSTMOD ;Mode of destination file
760
761
762 ;Local file variables
763
764 001114' $DATA PAGBP ;[130]BYTE POINTER INTO PMAP PAGE
765 001114'01 $GDATA PAGNUM ;[130]NEXT FILE PAGE TO PMAP
766 001116' $DATA PAGMEM ;[151]PAGE NUMBER OF MAPPED PG IN MEMORY
767 001117' $DATA PFBSIZ ;[130]BYTE COUNT
768 001120' $DATA EOFCNT ;[130]EOF BYTE NUMBER
769 001121' $DATA LINNUM ;[130]LINE NUMBER CHARACTER FLAG
770 001122' $DATA LINFLG ;[150]LINE NUMBERED FILE FLAG
771 001123' $DATA PAG1 ;[130]MARKER TO LOCATE END OF PAGE
772 001143' $DATA JFNBLK,20 ;GTJFN Block
773 001143'01 $GDATA LOCJFN ;[134]JFN of local file + original flags
774 001145' $DATA WLDJFN ;Wild card JFN to hold changed flags
775 001146' $DATA LOCDEV ;Device characteristics for local file
776 001147' $DATA OPNFLG ;Flags and BSZ for local file open
777 001147'01 $GDATA PAGFLG ;[134]-1 if doing page mode I/O IN BLOCK MODE
778 ;0 IF NO PMAPS
779 ;1 IF PMAPS, BUT NOT BLOCK MODE
780 001151' $DATA CRCFLG ;-1 if we are computing CRC
781 001152' $DATA ACPFLG ;-1 says caller requested ACCOMP
782 001153' $DATA FILCRC ;Computed CRC
783 001154' $DATA FILFOP ;File options from attributes
784 001213' $DATA LOCFDB,.FBLEN ;FDB Data for local file
785
786 ;MACY11 format storage and flags
787
788 001214' $DATA MCYIDX ;Non-zero if doing MACY11 mode
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 8-1
DAPLIB MAC 14-Jan-82 09:58 STORAGE allocated per logical link
789 001215' $DATA MCYDAT ;Last MACY11 word read
790
791 ;Remote file variables
792
793 001254' $DATA ATTFDB,.FBLEN ;FDB data from remote file (directory)
794
795 ;Status text storage
796
797 001274' $DATA STSTXT,20 ;Dap status text stored here
798 001304' $DATA MSGJNK,10 ;Junk string field to dump stuff into
799
800 001311' $DATA SNDSAB,SAB.SZ
801 001312' $DATA MSGPTR,1 ;Pointer to log message char
802 001313' $DATA MSGCNT,1 ;Remaining room in MSGTXT
803
804 ;IPCF message area
805
806 001316' $DATA MSGHDR,MSHSIZ ;Message header area
807 001317' $DATA MSGARF ;Message argument flags
808 001320' $DATA MSGARC ;Message argument count
809 001321' $DATA MSGARH ;Message argument header
810 001521' $DATA MSGTXT,200 ;Message body goes here
811
812 001521' $DATA FNCEND,0 ;End of per function area
813
814 001317 FNCSIZ==<FNCEND>-<ATTMNU> ;Size of per function storage
815 ; Last word to be cleared per function
816
817 000000000000# NLLPGS==<..LOC/1000>+1 ;Number of pages allocated for each
818 ; Logical link
819
820
821
822 001521'00 DATEND:: .ENDPS DATA ;End of impure storage
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 9
DAPLIB MAC 14-Jan-82 09:58 Version number and entry vector
823 SUBTTL Version number and entry vector
824 ;DECLARE VERSION AND ENTRY VECTOR
825
826 000137 LOC 137 ;SET THE VERSION
827 000000'00 RELOC
828 000000'00 000200 000154 .JBVER: EXP VDAP20
829
830
831 000001'00 000000 000000 PMRFLG:: 0 ;[121]NO PMR IN SUPPORTED VERSION
832 ;ENTRY VECTOR DEFINITION
833
834 000002'00 000000 000000 ENTVEC: EXP 0 ;NO START ADDRESS
835 000003'00 000000 000000 EXP 0 ;NO REENTER ADDRESS
836 000004'00 000200 000154 EXP VDAP20 ;VERSION OF DAP20 PROGRAM
837
838
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 10
DAPLIB MAC 14-Jan-82 09:58 DAP message descriptor blocks
839 SUBTTL DAP message descriptor blocks
840
841 ;Each message descriptor fully describes the message format
842 ;and storage for the various fields. All message types
843 ;are defined here via the DOMSG macro in DAPSYM
844
845 ;The Message Header values were obtained from the previous expansion of
846 ;DOMSG to allocate storage for the message fields.
847
848
849 ; =======================================
850 ;MSGMSD:! .DMMSG ! [ASCIZ\Name\] ! (Message descriptor)
851 ; !--------------------------------------
852 ; ! MSG$LN ! MSG$ST !
853 ; !--------------------------------------
854 ; ! Message Flags ! MSG$FC !
855 ; !=====================================!
856 ; ! Flags! TYP ! SIZ ! Storage offset ! (Field descriptor)
857 ; !--------------------------------------
858 ; ! Version Check word if DA%VER was on !
859 ; ! OR !
860 ; ! Field default word if DA%DEF was on !
861 ; !-------------------------------------!
862 ; \ \
863 ; \ Field descriptors for each field \
864 ; \ \
865 ; =======================================
866
867 ;Message flag definitions
868
869 400000 000000 DA%NOZ==1B0 ;Dont zero message on recieve
870
871 ;Field descriptor flag and field definitions
872
873 400000 000000 DA%VER==1B0 ;Version check word is present
874 200000 000000 DA%DEF==1B1 ;Field default word is present
875 077000 000000 DA%TYP==77B8 ;Argument type field
876 000777 000000 DA%SIZ==777B17 ;Maximum argument size in message bytes
877 777777 DA%STG==777777B35 ;Argument storage offset
878
879 ;Where .DMMSG numeric message type
880 ; MSG$LN Length of message argument storage
881 ; MSG$ST Starting offset of message argument storage
882 ; MSG$FC Number of fields message may contain
883
884
885 ;Define a macro to define version check word value to limit our
886 ;menu for cantankerous implimentations...
887
888 DEFINE VV (VER) <%%VV(VER)>
889 DEFINE %%VV(VER,ECO,USR,SFT,OST) <
890 EXP DA%VER ;;Flag this is a version word
891 BYTE (8) VER,ECO,USR,SFT (4) OST>
892
893 ;Define a macro to build message descriptor header
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 10-1
DAPLIB MAC 14-Jan-82 09:58 DAP message descriptor blocks
894
895 DEFINE XX (MSG,VAL,NAME,FLAGS<0>) <
896
897 MSG'MSD: XWD .DM'MSG,[ASCIZ\NAME\]
898 XWD MSG'$LN,MSG'$ST
899 EXP FLAGS+MSG'$FC
900
901 ;;Define a macro to build argument descriptors
902
903 DEFINE YY (FIELD,TYP,SIZ,DEF) <
904 %%YY==FLD(.AR'TYP,DA%TYP)+FLD(SIZ,DA%SIZ)+FLD(MSG''FIELD,DA%STG)
905 IFB <DEF>,<
906 EXP %%YY>
907 IFNB <DEF>,<
908 EXP %%YY+DA%DEF
909 EXP DEF>
910
911 > ;End of YY definition
912 > ;End of XX definition
913
914 ;Expand message descriptors for each defined message type
915
916
917 XLIST
918 LIST
919
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 11
DAPLIB MAC 14-Jan-82 09:58 DAP message argument types and processor table
920 SUBTTL DAP message argument types and processor table
921
922 ;DAP message argument types are described below.
923 ;There are two processors associated with each argument type. The
924 ;Argument processors are responsible for converting DAP format to
925 ;internal format (GET) and from internal format to DAP format (PUT)
926
927
928 ;MNU Field is a menu which determines which message fields follow
929 ; Menu's are stored as extensible fields and cause 1 word of
930 ; storage to be reserved for every 5 DAP bytes
931
932 ;EXF Field is an extensible field which is generally used as a bit
933 ; map of specific options requested or a menu of message fields
934 ; which follow. Extensible fields have 7 information bits per
935 ; DAP byte and are stored as 36 information bits per word.
936 ; Bit 35 is the least significant bit of the extensible field.
937
938 ;FIX Field is a Byte or group of Bytes. Dap Bytes are stored
939 ; right justified 4 per 36 bit word.
940
941 ;INT Field is a variable length unsigned integer. The DAP field
942 ; is stored as a 36 bit integer value
943
944 ;VAR Field is a variable length Ascii field. It is stored as an
945 ; ASCIZ string of 7 bit bytes.
946
947
948 ;PRO Field is a file protection field. Dap protection codes are
949 ; translated to system protection mask.
950 ;DTI Field is an 18 byte Date/time argument. This field is stored
951 ; internally as a 36 bit quantity.
952
953 ;IMA Field is an image field of a DATA message. This field is not
954 ; stored, but is processed by the apporpriate data processor
955
956
957 ;Define a macro to generate argument processor table entries
958 ; and define values for argument type symbols
959
960 DEFINE XX (TYP,CNT) <
961 .AR'TYP==ZZ
962 ZZ==ZZ+1
963 XWD GET'TYP,PUT'TYP>
964
965
966 ;Build the argument processor table
967
968 000000 ZZ==0 ;Start with argument type 0
969
970 000317'00 ARGTBL: XLIST
971 LIST
972
973
974
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 12
DAPLIB MAC 14-Jan-82 09:58 Local macro definitions
975 SUBTTL Local macro definitions
976
977 ;MACRO TO GENERATE STATUS CODES
978 DEFINE $STATUS (MAC,MIC,MIC2) <
979 IFB <MIC2>,<MOVX S1,FLD(MAC,ER%MAC)+FLD(MIC,ER%MIC)>
980 IFNB <MIC2>,<MOVX S1,FLD(MAC,ER%MAC)+FLD(MIC,ER%TYP)+FLD(MIC2,ER%FLD)>
981 SETZM S2>
982
983 ;MACRO TO GENERATE MESSAGE FORMAT ERRORS
984 DEFINE $MFERR (TYP,FLD) <
985 JRST [$STATUS ER$FMT,TYP,FLD
986 $RETF]>
987
988 ;MACRO TO GENERATE MESSAGE SYNC ERRORS
989 DEFINE $MSERR (TYP) <
990 JRST [$STATUS ER$SNC,TYP
991 $RETF]>
992
993 ;MACRO TO GENERATE MESSAGE FIELD ERRORS
994 DEFINE $MIERR (TYP,FLD) <
995 JRST [$STATUS ER$INV,TYP,FLD
996 $RETF]>
997
998 ;MACRO TO GENERATE UNSUPPORTED MESSAGE FEATURES ERRORS
999 DEFINE $MUERR (TYP,FLD) <
1000 JRST [$STATUS ER$USP,TYP,FLD
1001 $RETF]>
1002
1003 ;MACRO TO GENERATE TRANSFER STATUS ERROR MESSAGES
1004 DEFINE $MTERR (TYP) <
1005 JRST [$STATUS ER$TRN,TYP
1006 $RETF]>
1007
1008 DEFINE $MOERR (TYP) <
1009 JRST [$STATUS ER$OPN,TYP
1010 $RETF]>
1011
1012
1013 DEFINE $MCERR (TYP) <
1014 JRST [$STATUS ER$TRM,TYP
1015 $RETF]>
1016
1017
1018 ;MACRO TO CHANGE DAP STATE AND MESSAGE DISPATCH
1019 DEFINE $STATE (VAL) <MOVX S,S%INIT+VAL>
1020
1021 ;OPDEF TO RETURN FALSE IF FALSE
1022 322000 000000* OPDEF $RETIF [JUMPF .POPJ]
1023
1024 ;OPDEF TO RETURN TRUE IF TRUE
1025 326000 000000* OPDEF $RETIT [JUMPT .POPJ]
1026
1027 ;MACRO TO GENERATE POINTER TO TEXT
1028 DEFINE TXT(TEXT) <POINT 7,[ASCIZ\TEXT\]>
1029
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 12-1
DAPLIB MAC 14-Jan-82 09:58 Local macro definitions
1030
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 13
DAPLIB MAC 14-Jan-82 09:58 Local macro definitions
1031 000327'00 201 01 0 00 400000 GETTER: MOVEI S1,.FHSLF ;Get my last JSYS error
1032 000330'00 104 00 0 00 000012 GETER
1033 000331'00 320 16 0 00 000332' ERJMP .+1
1034 000332'00 550 02 0 00 000002 HRRZ S2,S2 ;Return code in S2
1035 000333'00 324740 000000* $RETT
1036
1037
1038 SUBTTL $DEBUG Macro to display debugging message
1039
1040 DEFINE $DEBUG (MSG,ITXT,%L1) <
1041 SKIPE MSGDSG
1042 $CALL [$TEXT (DEBUG,<[^Q/%L1/ITXT]>)
1043 $RET
1044 %L1:! TXT<MSG>]
1045 SUPPRESS %L1
1046 > ;End of $DEBUG
1047
1048
1049 DEFINE $FATAL (MSG,ITXT,%L1) <
1050 $CALL [$TEXT (,<?^Q/%L1/ITXT>)
1051 PJRST FATAL
1052 %L1:! TXT<MSG>]
1053 SUPPRESS %L1
1054 > ;End of $FATAL
1055
1056
1057 DEFINE $WARN (MSG,ITXT,%L1) <
1058 $CALL [$TEXT (,<%^Q/%L1/ITXT>)
1059 $RET
1060 %L1:! TXT<MSG>]
1061 SUPPRESS %L1
1062 > ;End of $WARN
1063
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 14
DAPLIB MAC 14-Jan-82 09:58 DEBUG and TYPER output routines
1064 SUBTTL DEBUG and TYPER output routines
1065
1066 ;DEBUG Text output routine for $DEBUG macro
1067
1068 000334'00 200 02 0 00 000000# DEBUG: MOVE S2,MSGDSG ;[154]
1069 000335'00 250 01 0 00 000002 EXCH S1,S2 ;Setup for bout
1070 000336'00 104 00 0 00 000051 BOUT
1071 000337'00 324740 000333* $RETT
1072
1073 ;Routine to Type text and ITEXT
1074
1075 ;Accepts S1/ Output designator
1076 ; S2/ Pointer to asciz text
1077 ; T1/ Address of ITEXT
1078 ; T2/ Prefix character
1079
1080 000340'00 260 17 0 00 000000* TYPER: TRVAR <TXTBP,<TMPTXT,^D30>> ;Save some space
1081 000341'00 000037 000037
1082 000342'00 250 04 0 00 000002 EXCH T2,S2 ;Get prefix character
1083 000343'00 332 00 0 00 000002 SKIPE S2 ;Any desired?
1084 000344'00 104 00 0 00 000051 BOUT ;Yes..dump it
1085 000345'00 200 02 0 00 000004 MOVE S2,T2 ;Restore text pointer
1086 000346'00 200 04 0 00 011256' MOVE T2,[POINT 7,TMPTXT] ;Get a pointer
1087 000347'00 202 04 0 16 000001 MOVEM T2,TXTBP ;Save for DEPBP
1088 000350'00 332 00 0 00 000003 SKIPE T1 ;Any ITEXT?
1089 000351'00 260 17 0 00 000000* $TEXT (DEPBP,<^Q/S2/^I/(T1)/>^0) ;Yes..get it
1090 000353'00 336 00 0 00 000003 SKIPN T1 ;Any ITEXT?
1091 000354'00 260 17 0 00 000351* $TEXT (DEPBP,<^Q/S2/>^0) ;No..just do string
1092 000356'00 561 02 0 16 000002 HRROI S2,TMPTXT ;Get source designator
1093 000357'00 402 00 0 00 000003 SETZM T1 ;Terminate on a null
1094 000360'00 104 00 0 00 000053 SOUT
1095 000361'00 324740 000337* $RETT
1096
1097 000362'00 136 01 0 16 000001 DEPBP: IDPB S1,TXTBP ;Store per TEXT Byte Pointer
1098 000363'00 324740 000361* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 15
DAPLIB MAC 14-Jan-82 09:58 $GODAP Macro to establish DAPLIB context
1099 SUBTTL $GODAP Macro to establish DAPLIB context
1100
1101 DEFINE $GODAP (SAVLST) <
1102 LSTOF.
1103 IFNB <SAVLST>,<$SAVE <S,SAVLST>>
1104 IFB <SAVLST>,<$SAVE <S>>
1105 LSTON.
1106 JSP TF,GODAP>
1107
1108 MULINK <
1109 DEFINE $GODAP (SAVLST) <
1110 LSTOF.
1111 IFNB <SAVLST>,<$SAVE <S,CP,SAVLST>> ;SAVE AC'S
1112 IFB <SAVLST>,<$SAVE <S,CP>> ;JUST SAVE STATUS AND CP
1113 LSTON.
1114 JSP TF,GODAP>
1115 > ;End MULINK
1116
1117
1118 ;GODAP is called upon entry to DAPLIB by the various routines
1119 ; It sets up CP and S which are used throughout DAPLIB
1120 ; to reference the logical link storage and status.
1121
1122 ; All returns to the calling program go through GOUSR
1123 ; which preserves the contents of S which holds the
1124 ; last known link status.
1125
1126 ;Accepts S1/ Link index
1127
1128 ;Returns CP/ Address of link storage
1129 ; S/ Last known link status
1130
1131
1132 000364'00 202 17 0 00 000000# GODAP: MOVEM P,DAPFRM ;Save frame for Error return
1133 000365'00 201 01 0 01 000000 MOVEI S1,(S1) ;Get right half only
1134 000366'00 301 01 0 00 000001 CAIL S1,1 ;CHECK ENTRY LIMITS
1135 000367'00 303 01 0 00 000001 CAILE S1,MAXLNK
1136 000370'00 260 17 0 00 011310' $FATAL (Invalid link index)
1137 MULINK <
1138 SKIPG CP,LNKPGS-1(S1) ;Point to per/link storage
1139 $FATAL (Logial link not established)
1140 >
1141 000371'00 200 13 0 00 000000# MOVE S,LNKSTS ;Get proper link status flags
1142 000372'00 261 17 0 00 011314' PUSH P,[GOUSR] ;Stack return address
1143 000373'00 202 17 0 00 000000# MOVEM P,DAPFRM ;Save frame for error return
1144 000374'00 254 00 1 00 000000 JRST @TF ;Back to our caller
1145 000375'00 202 13 0 00 000000# GOUSR: MOVEM S,LNKSTS ;Save link status
1146 000376'00 263 17 0 00 000000 $RET ;No..Return True/False per routine
1147
1148 000377'00 201 01 0 00 000046 FATAL: MOVEI S1,.DCX38 ;User abort
1149 000400'00 200 02 0 00 011320' MOVX S2,TXT(Fatal error)
1150 000401'00 260 17 0 00 000536' $CALL D$CLO1 ;Close the link
1151 000402'00 200 17 0 00 000000# MOVE P,DAPFRM ;Restore frame
1152 000403'00 324740 000000* $RETF ;Back thru GOUSR
1153
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 16
DAPLIB MAC 14-Jan-82 09:58 D$INIT Daplib initialization
1154 SUBTTL D$INIT Daplib initialization
1155
1156 ;Accepts S1/ Size of initialization block
1157 ; S2/ Address of initialization blocl
1158
1159 000404'00 260 17 0 00 000000* D$INIT::$SAVE <P1> ;Preserve an AC
1160 000405'00 202 17 0 00 000000# MOVEM P,DAPFRM ;Save in case of error
1161 000406'00 302 01 0 00 000002 CAIE S1,.DISIZ ;Proper arg block size?
1162 000407'00 260 17 0 00 011340' $FATAL (Invalid argument block length for D$INIT)
1163 000410'00 200 01 0 02 000000 MOVE S1,.DIFLG(S2) ;Get flags
1164 000411'00 202 01 0 00 000000# MOVEM S1,DAPFLG ;Save them
1165 000412'00 200 01 0 02 000001 MOVE S1,.DIMSG(S2) ;GET message designator
1166 000413'00 202 01 0 00 000000# MOVEM S1,MSGDSG ;Save it
1167 000414'00 135 01 0 00 011344' LOAD S1,DAPFLG,DI%CNT ;Get count to allocate
1168 000415'00 303 01 0 00 000001 CAILE S1,MAXLNK ;Check range
1169 000416'00 260 17 0 00 011360' $FATAL (Too many links requested)
1170 000417'00 213 00 0 00 000001 MOVNS S1 ;Negate count
1171 000420'00 514 07 0 00 000001 HRLZ P1,S1 ;Put it in P1
1172 MULINK <
1173 D$INI1: MOVX S1,NLLPGS ;Get count of pages per link
1174 $CALL M%AQNP ;Get them
1175 PG2ADR S1 ;Convert to address
1176 MOVEM S1,LNKPGS(P1) ;Store in proper place
1177 AOBJN P1,D$INI1 ;Do all requested
1178 > ;End MULINK
1179 000421'00 324740 000363* $RETT
1180
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 17
DAPLIB MAC 14-Jan-82 09:58 D$OPEN Establish a logical link
1181 SUBTTL D$OPEN Establish a logical link
1182
1183 ;Accepts S1/ Size of argument block (.DOSIZ)
1184 ; S2/ Address of Argument block
1185
1186 ;Returns TRUE S1/ Link index
1187 ; FALSE S1/ Dap error code
1188
1189 000422'00 304 00 0 00 000000 D$OPEN::$SAVE <AP,CP>
1190 000427'00 202 17 0 00 000000# MOVEM P,DAPFRM ;Save for error
1191 000430'00 200 16 0 00 000002 MOVE AP,S2 ;Save argument address
1192 000431'00 302 01 0 00 000015 CAIE S1,.DOSIZ ;SIZE MATCH?
1193 000432'00 260 17 0 00 011411' $FATAL (Invalid argument block length for D$OPEN)
1194 000433'00 332 00 0 00 000001' SKIPE PMRFLG ;[121]IF DOING PMR...
1195 000434'00 476 00 0 00 000001' SETOM PMRFLG ;[121]...SET FLAG TO -1
1196 000435'00 135 01 0 00 011415' LOAD S1,.DOFLG(S2),DO%LNK ;Get requested link index
1197 000436'00 D$OPN2: $GODAP <T1,T2,T3,T4> ;Get link context
1198 000446'00 265 00 0 00 000364'
1199 000447'00 201 01 0 00 000176 MOVEI S1,LNKSIZ ;Clear Link area
1200 000450'00 201 02 0 00 000000# MOVEI S2,LNKBEG ;...
1201 000451'00 260 17 0 00 000000* $CALL .ZCHNK
1202 000452'00 201 01 0 00 000000# MOVEI S1,LLOPNB ;Point to OPEN block
1203 000453'00 505 01 0 16 000000 HRLI S1,(AP) ;Point to Argument
1204 000454'00 251 01 0 00 000000# BLT S1,.DOSIZ-1+LLOPNB ;Copy calling argument
1205 000455'00 201 16 0 00 000000# MOVEI AP,LLOPNB ;Point to our copy
1206 000456'00 200 01 0 16 000001 MOVE S1,.DONOD(AP) ;[106]Address of the node block
1207 000003 ND$OST==3 ;[106]symbol local to NFT
1208 000457'00 550 01 0 01 000003 HRRZ S1,ND$OST(S1) ;[106]OS type
1209 000460'00 202 01 0 00 000000# MOVEM S1,REMOST ;[106]Save it for config mess
1210 000461'00 260 17 0 00 000000* $CALL L%CLST ;Create receive list
1211 000462'00 322 01 0 00 000461' JUMPE S1,.-1 ;Fudge if first list is 0
1212 000463'00 202 01 0 00 000000# MOVEM S1,RCVLST ;Remember index
1213 000464'00 322 01 0 00 000463' JUMPE S1,.-1 ;Should never happen
1214 000465'00 260 17 0 00 000461* $CALL L%CLST ;Create send list
1215 000466'00 202 01 0 00 000000# MOVEM S1,SNDLST ;Remember index
1216 000467'00 260 17 0 00 007730' $CALL LLGJFN ;Go get proper JFN
1217 000470'00 260 17 0 00 010116' $CALL LLOPEN ;Open and attach to PSI
1218 000471'00 200 01 0 16 000000 MOVE S1,.DOFLG(AP) ;Get the flags
1219 000472'00 603 01 0 00 100000 TXNE S1,DO%WCN ;Wait for a connection?
1220 000473'00 260 17 0 00 010161' $CALL LLWCON ;Yes.. go wait for it.
1221 000474'00 324740 000421* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 18
DAPLIB MAC 14-Jan-82 09:58 D$INTR Interrupt processing routines
1222 SUBTTL D$INTR Interrupt processing routines
1223
1224 ;Accepts S1/ Link index
1225 ; S2/ Interrupt cause
1226
1227
1228 000475'00 D$INTR::$GODAP <DAPFRM> ;Save current frame
1229 000502'00 265 00 0 00 000364'
1230 000503'00 476 00 0 00 000000# SETOM INTHAP ;[154]INTERRUPT HAS OCCURED
1231 000504'00 205 01 0 00 010000 MOVX S1,PC%USR ;Get user mode bit
1232 000505'00 332 00 0 00 000000# SKIPE SNDFLG ;In LLSEND routine?
1233 000506'00 436 01 0 00 000000* IORM S1,LEV1PC ;Yes..interrupt SOUT(r)
1234 000507'00 476 00 0 00 000000# SETOM INTFLG ;Say we've seen an interrupt
1235 000510'00 306 02 0 00 000001 CAIN S2,.DICDN ;Connect interrupt?
1236 000511'00 324 17 0 00 010515' PJRST CICON ;Yes..process it
1237 000512'00 306 02 0 00 000002 CAIN S2,.DIINA ;Interrupt message?
1238 000513'00 324 17 0 00 010563' PJRST PSIIM ;Yes..read the message
1239 ; CAIN S2,.DIDAV ;Data available?
1240 ; SETOM MSGFLG ;Yes..Flag it
1241 000514'00 306 02 0 00 000004 CAIN S2,.DIACP ;Want to force ACCOMP?
1242 000515'00 476 00 0 00 000000# SETOM ACPFLG ;Yes..Flag it
1243 000516'00 324740 000474* $RETT ;Return
1244
1245 SUBTTL D$CLOS Routine to close logical link
1246
1247 ;Accepts S1/ Link index
1248 ; S2/ Address of reason block
1249
1250 ;Reason block Length,,NSP disconnect code
1251 ; Pointer to optional data to be sent
1252
1253 ;Returns TRUE Link has been closed
1254
1255 000517'00 D$CLOS::$GODAP <T1,T2,T3,T4> ;Get link context
1256 000527'00 265 00 0 00 000364'
1257 000530'00 336 00 0 00 000000# SKIPN LLJFN ;Have a JFN?
1258 000531'00 254 00 0 00 000377' JRST FATAL ;[113]
1259 000532'00 200 01 0 02 000000 MOVE S1,.DCCOD(S2) ;Get the reason code
1260 000533'00 607 01 0 00 777776 TLNN S1,-2 ;Optional data specified?
1261 000534'00 634 02 0 00 000002 TDZA S2,S2 ;No..clear pointer
1262 000535'00 200 02 0 02 000001 MOVE S2,.DCPTR(S2) ;Yes..get the pointer
1263 000536'00 332 00 0 00 000000# D$CLO1: SKIPE LLJFN ;Still have JFN?
1264 000537'00 260 17 0 00 010231' $CALL LLCLOS ;Yes..Close the link
1265 000540'00 332 01 0 00 000000# SKIPE S1,RCVLST ;Get receive list index
1266 000541'00 260 17 0 00 000000* $CALL L%DLST ;Destroy it
1267 000542'00 402 00 0 00 000000# SETZM RCVLST ;Mark it deleted
1268 000543'00 332 01 0 00 000000# SKIPE S1,SNDLST ;Get send list index
1269 000544'00 260 17 0 00 000541* $CALL L%DLST ;Destroy it
1270 000545'00 402 00 0 00 000000# SETZM SNDLST ;Mark it deleted
1271 000546'00 332 00 0 00 000000# SKIPE LOCJFN ;Still have JFN?
1272 000547'00 260 17 0 00 006606' $CALL ABTFIL ;Yes..abort file operation
1273 000550'00 332 00 0 00 000000# SKIPE LOCJFN ;Still have JFN?
1274 000551'00 260 17 0 00 006624' $CALL RELJFN ;Yes..release it
1275 000552'00 402 00 0 00 000000# SETZM LLSTAT ;[134]CLEAR LLSTAT FOR ^A DISPLAY
1276 000553'00 324740 000516* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 18-1
DAPLIB MAC 14-Jan-82 09:58 D$CLOS Routine to close logical link
1277
1278 SUBTTL D$STAT Display link status
1279
1280 ;Accepts S1/ Link index
1281
1282 ;Returns TRUE S1/ Link status
1283 ; Link is open
1284
1285 ; FALSE S1/ Link status
1286 ; Link is not open
1287
1288 000554'00 D$STAT::$GODAP <S2,T1> ;Get link context
1289 000562'00 265 00 0 00 000364'
1290 000563'00 260 17 0 00 010210' $CALL LLCHK ;Get the link status
1291 000564'00 263 17 0 00 000000 $RET ;Return status to user
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 19
DAPLIB MAC 14-Jan-82 09:58 D$FUNC Daplib routine to perform a File function
1292 SUBTTL D$FUNC Daplib routine to perform a File function
1293
1294 ;Accepts S1/ Function block size
1295 ; S2/ Address of function block
1296
1297 000565'00 202 17 0 00 000000# D$FUNC::MOVEM P,DAPFRM ;Save for errors
1298 000566'00 302 01 0 00 000012 CAIE S1,.DFSIZ ;Proper size arg
1299 000567'00 260 17 0 00 011463' $FATAL (Invalid argument block length for D$FUNC)
1300 000570'00 135 01 0 00 011415' LOAD S1,.DFFLG(S2),DF%LNK ;Get reqested link
1301 000571'00 336 00 0 00 000001 SKIPN S1 ;link specified?
1302 000572'00 474 01 0 00 000000 SETO S1, ;No..use current
1303 $GODAP <T1,T2,T3,T4,DL,AP> ;Set link context
1304 000605'00 265 00 0 00 000364'
1305 000606'00 200 16 0 00 000002 MOVE AP,S2 ;Point to calling args
1306 000607'00 260 17 0 00 010161' $CALL LLWCON ;No..wait for it
1307 000610'00 603 01 0 00 200000 TXNE S1,MO%SRV ;Is it a server?
1308 000611'00 324 17 0 00 000713' PJRST SRVMSG ;Yes..Process server messages
1309 000612'00 201 01 0 00 001317 MOVEI S1,FNCSIZ ;Clear per function storage
1310 000613'00 201 02 0 00 000000# MOVEI S2,ATTMNU ;...
1311 000614'00 260 17 0 00 000451* $CALL .ZCHNK ;...
1312 000615'00 332 01 0 16 000002 SKIPE S1,.DFLFA(AP) ;Get local file switches
1313 000616'00 260 17 0 00 007205' $CALL SWLOOK ;Find them
1314 000617'00 322 00 0 00 011523' JUMPF [$FATAL (Invalid switches for local file)]
1315 000620'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;Assume local node is Source.
1316 000621'00 332 01 0 16 000004 SKIPE S1,.DFRFA(AP) ;Get remote file switches
1317 000622'00 260 17 0 00 007205' $CALL SWLOOK ;Find them
1318 000623'00 322 00 0 00 011545' JUMPF [$FATAL (Invalid switches for remote file)]
1319 000624'00 200 02 0 00 000000# MOVE S2,SRCMOD ;Put local mode in S2
1320 000625'00 135 03 0 00 011546' LOAD T1,.DFFLG(AP),DF%ACC ;Get our function
1321 000626'00 306 03 0 00 000002 CAIN T1,AF$CRE ;Creating remote file?
1322 000627'00 250 01 0 00 000002 EXCH S1,S2 ;Yes..S1=Local S2=Remote
1323 000630'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;Save source mode
1324 000631'00 202 02 0 00 000000# MOVEM S2,DSTMOD ;Save destination mode
1325 000632'00 260 17 0 00 007222' $CALL CHKMOD ;Check for valid mode
1326 000633'00 322 00 0 00 011572' JUMPF [$FATAL (Can't do requested file format conversion)]
1327 000634'00 324 17 0 00 002017' PJRST DAPDCN
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 20
DAPLIB MAC 14-Jan-82 09:58 SRVMSG Server initialization and tables
1328 SUBTTL SRVMSG Server initialization and tables
1329
1330 000635'00 000643' 000665' SRVMLS: SRVS00,,SRVI00 ;Server .LLCFG state
1331 000636'00 000645' 000673' SRVS01,,SRVI01 ;Server .LLACC state
1332 000637'00 000651' 000000 SRVS02,,0 ;Server .LLATT state
1333 000640'00 000655' 000000 SRVS03,,0 ;Server .LLCTL state
1334 000641'00 000660' 000000 SRVS04,,0 ;Server .LLDAT state
1335 000642'00 000663' 000711' SRVS05,,SRVI05 ;Server .LLACP state
1336
1337
1338 ;Message dispatch for .LLCFG state
1339
1340 000643'00 000001 000752' SRVS00: .DMCFG,,SRVCFI ;Accept only Config message
1341 000644'00 000000 000000 0
1342
1343
1344 ;Message dispatch for .LLACC state
1345
1346 000645'00 000001 000756' SRVS01: .DMCFG,,SRVCFG ;Process Config
1347 000646'00 000003 000762' .DMACC,,SRVACC ;Process Access
1348 000647'00 000002 002757' .DMATT,,VALATT ;Process Attributes
1349 000650'00 000000 000000 0
1350
1351
1352 ;Message dispatch for .LLATT state
1353
1354 000651'00 000015 003026' SRVS02: .DMDTI,,VALDTI ;Process Date/time Attributes
1355 000652'00 000016 003037' .DMPRO,,VALPRO ;Process Protection Attributes
1356 000653'00 000003 000762' .DMACC,,SRVACC ;Process Access
1357 000654'00 000000 000000 0
1358
1359
1360 ;Message dispatch for .LLCTL state
1361
1362 000655'00 000004 001365' SRVS03: .DMCTL,,SRVCTL ;Process Control
1363 000656'00 000007 001503' .DMACP,,SRVACP ;Process ACCOMP
1364 000657'00 000000 000000 0
1365
1366
1367 ;Message dispatch for .LLDAT state
1368
1369 000660'00 000010 011573' SRVS04: .DMDAT,,[$RETT] ;Processed by GETDAT
1370 000661'00 000007 001503' .DMACP,,SRVACP ;Process ACCOMP
1371 000662'00 000000 000000 0
1372
1373 ;Message dispatch for .LLACP state
1374
1375 000663'00 000007 001503' SRVS05: .DMACP,,SRVACP ;Process ACCOMP
1376 000664'00 000000 000000 0
1377
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 21
DAPLIB MAC 14-Jan-82 09:58 Server state initialization routines
1378 SUBTTL Server state initialization routines
1379
1380 ;Initialization for .LLCFG state
1381
1382 000665'00 201 01 0 00 000020 SRVI00: MOVEI S1,DAPSIZ ;Clear Config storage
1383 000666'00 201 02 0 00 000000# MOVEI S2,DAPBEG ;...
1384 000667'00 260 17 0 00 000614* $CALL .ZCHNK ;...
1385 000670'00 201 01 0 00 004544 MOVEI S1,DPMXM ;Set default Max message size
1386 000671'00 202 01 0 00 000000# MOVEM S1,OURSIZ ;Save for first message
1387 000672'00 324740 000553* $RETT
1388
1389 ;Initialization for .LLACC state
1390
1391 000673'00 332 00 0 00 000000# SRVI01: SKIPE LOCJFN ;Clean up any previous file ops
1392 000674'00 260 17 0 00 006606' $CALL ABTFIL
1393 000675'00 332 00 0 00 000000# SKIPE LOCJFN
1394 000676'00 260 17 0 00 006624' $CALL RELJFN
1395 000677'00 201 01 0 00 001317 MOVEI S1,FNCSIZ ;Clear per function area
1396 000700'00 201 02 0 00 000000# MOVEI S2,ATTMNU ;...
1397 000701'00 260 17 0 00 000667* $CALL .ZCHNK
1398 000702'00 200 01 0 00 011575' MOVX S1,TXT(PS) ;Set default device to PS:
1399 000703'00 202 01 0 00 000000# MOVEM S1,.GJDEV+JFNBLK ;...
1400 000704'00 200 01 0 00 000000# MOVE S1,.DOUSR+LLOPNB ;Set default directory to user
1401 000705'00 202 01 0 00 000000# MOVEM S1,.GJDIR+JFNBLK ;...
1402 000706'00 200 01 0 00 011576' MOVE S1,[.NULIO,,.NULIO] ;Set null string input
1403 000707'00 202 01 0 00 000000# MOVEM S1,.GJSRC+JFNBLK ;...
1404 000710'00 324740 000672* $RETT
1405
1406 ;Initialization for .LLACP state
1407
1408 000711'00 621 13 0 00 000016 SRVI05: TXZ S,S%EOF!S%GET!S%PUT ;Clear data flags
1409 000712'00 324740 000710* $RETT
1410
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 22
DAPLIB MAC 14-Jan-82 09:58 SRVMSG Server message processing loop
1411 SUBTTL SRVMSG Server message processing loop
1412
1413 000713'00 260 17 0 00 004667' SRVMSG: $CALL SNDQUE ;Dump the send queues
1414 JUMPF [$CALL LLRECV ;Check for incomming message
1415 000714'00 322 00 0 00 011577' JRST SRVMSG] ;Finish sending messages
1416 000715'00 623 13 0 00 000020 TXZE S,S%RETN ;Time to return?
1417 000716'00 263 17 0 00 000000 $RET ;Yes..return to caller
1418 000717'00 627 13 0 00 000040 TXZN S,S%INIT ;State just change?
1419 000720'00 254 00 0 00 000725' JRST SRVMS1 ;No..skip initialization
1420 000721'00 550 01 0 13 000635' HRRZ S1,SRVMLS(S) ;Do state initialization
1421 000722'00 322 01 0 00 000725' JUMPE S1,SRVMS1 ;If routine is present
1422 000723'00 260 17 0 01 000000 $CALL 0(S1)
1423 000724'00 254 00 0 00 000713' JRST SRVMSG ;Back to send again
1424
1425 000725'00 332 00 0 00 000000# SRVMS1: SKIPE MSGFLG ;[0130]If we have a message
1426 000726'00 254 00 0 00 000742' JRST SRVMS2 ;[0130]Don't call LLCHK
1427 000727'00 607 13 0 00 000004 TXNN S,S%GET ;[154]NEED A MESSAGE?
1428 000730'00 254 00 0 00 000742' JRST SRVMS2 ;[154]YES, GET IT
1429 000731'00 332 00 0 00 000000# SKIPE INTHAP ;[154]DID AN INTERRUPT OCCUR?
1430 000732'00 260 17 0 00 010210' $CALL LLCHK ;Check link status
1431 000733'00 332 00 0 00 000000# SKIPF MSGFLG ;[154]Message available
1432 000734'00 254 00 0 00 000742' JRST SRVMS2 ;Yes..process a message
1433 000735'00 260 17 0 00 001451' $CALL FILGET ;Get and send data record
1434 000736'00 322 00 0 00 000746' JUMPF SRVMS3 ;Go send the status
1435 000737'00 603 13 0 00 000002 TXNE S,S%EOF ;Did we see EOF?
1436 000740'00 260 17 0 00 003260' $CALL SNDEOF ;Yes..send EOF status
1437 000741'00 254 00 0 00 000713' JRST SRVMSG ;Back to send next message
1438
1439 000742'00 554 01 0 13 000635' SRVMS2: HLRZ S1,SRVMLS(S) ;Get proper message list address
1440 000743'00 260 17 0 00 003577' $CALL GETMSG ;Get a message
1441 000744'00 322 00 0 00 000746' JUMPF SRVMS3 ;Send failing status
1442 000745'00 254 00 0 00 000713' JRST SRVMSG ;Process next message
1443
1444 000746'00 260 17 0 00 003265' SRVMS3: $CALL SNDSTS ;Send status from routine
1445 000747'00 200 13 0 00 011601' $STATE .LLACC ;Back to initial Access state
1446 000750'00 260 17 0 00 001571' $CALL ENABLE ;Make sure we are enabled
1447 000751'00 254 00 0 00 000713' JRST SRVMSG
1448
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 23
DAPLIB MAC 14-Jan-82 09:58 SRVCFI Server routine to process Initial config message
1449 SUBTTL SRVCFI Server routine to process Initial config message
1450
1451 000752'00 260 17 0 00 000756' SRVCFI: $CALL SRVCFG ;Validate and return config
1452 000753'00 322 00 0 00 000000* $RETIF ;Return failing status
1453 000754'00 200 13 0 00 011601' $STATE .LLACC ;Move to access state
1454 000755'00 324740 000712* $RETT
1455
1456
1457 SUBTTL SRVCFG Server routine to Process Config message
1458
1459 000756'00 260 17 0 00 002701' SRVCFG: $CALL VALCFG ;Validate the message
1460 000757'00 322 00 0 00 000753* $RETIF ;Return failing status
1461 000760'00 260 17 0 00 003074' $CALL SNDCFG ;Send our config message
1462 000761'00 324740 000755* $RETT
1463
1464
1465 SUBTTL SRVACC Server routine to process an ACCESS message
1466
1467 000762'00 260 17 0 00 001571' SRVACC: $CALL ENABLE ;No..make sure we are wheel
1468 000763'00 200 01 0 00 000000# MOVE S1,ACCFNC ;Get the Function field
1469 000764'00 301 01 0 00 000001 CAIL S1,AF$OPN ;Is it valid
1470 000765'00 303 01 0 00 000010 CAILE S1,AF$EXE
1471 000766'00 254 00 0 00 011602' $MUERR .DMACC,20 ;No..return unsupported
1472 000767'00 560 02 0 01 001024' HRRO S2,FNCTXT-AF$OPN(S1) ;
1473 000770'00 260 17 0 00 000354* $TEXT (,<^Q/S2/>) ;
1474 000772'00 201 01 0 00 177777 MOVX S1,POLINI ;Initilize CRC to -1
1475 000773'00 202 01 0 00 000000# MOVEM S1,FILCRC
1476 000774'00 200 01 0 00 000000# MOVE S1,ACCOPT ;Get the options
1477 000775'00 602 01 0 00 000010 TXNE S1,AO$CRC ;Want to compute CRC
1478 000776'00 476 00 0 00 000000# SETOM CRCFLG ;Yes..remember that for all data
1479 000777'00 602 01 0 00 000026 TXNE S1,AO$RSS!AO$RSR!AO$GO ;Anything we don't support?
1480 001000'00 254 00 0 00 011612' $MUERR .DMACC,21 ;Yes..return unsupported
1481 001001'00 200 01 0 16 000003 MOVE S1,.DFLFS(AP) ;Point to user storage
1482 001002'00 561 02 0 00 000000# HRROI S2,ACCFIL ;Point to Access filespec
1483 001003'00 260 17 0 00 010113' $CALL CPYSTR ;Copy the name
1484 001004'00 200 01 0 16 000003 MOVE S1,.DFLFS(AP) ;[117]POINT TO FILE NAME
1485 001005'00 201 03 0 00 000056 MOVEI T1,"." ;[117]A PERIOD
1486 001006'00 134 02 0 00 000001 SRVAC1: ILDB S2,S1 ;[117]GET A BYTE
1487 001007'00 322 02 0 00 001013' JUMPE S2,SRVAC2 ;[117]END OF STRING?
1488 001010'00 306 02 0 00 000073 CAIN S2,";" ;[117]A SEMI COLON?
1489 001011'00 137 03 0 00 000001 DPB T1,S1 ;[117]CHANGE TO A PERIOD
1490 001012'00 254 00 0 00 001006' JRST SRVAC1 ;[117]KEEP LOOKING
1491
1492 001013'00 200 01 0 00 000000# SRVAC2: LOAD S1,ACCFNC ;[117]Get desired access
1493 001014'00 254 00 1 01 001014' JRST @ACCTBL-AF$OPN(S1) ;Dispatch to processor
1494
1495 001015'00 254 00 0 00 001035' ACCTBL: JRST SRVOPN ;Open existing files
1496 001016'00 254 00 0 00 001133' JRST SRVCRE ;Create a new file
1497 001017'00 254 00 0 00 011602' $MUERR .DMACC,20 ;Rename (Unsupported)
1498 001020'00 254 00 0 00 001166' JRST SRVDEL ;Delete files
1499 001021'00 254 00 0 00 011602' $MUERR .DMACC,20 ;Resrvd (Unsupported)
1500 001022'00 254 00 0 00 001314' JRST SRVDIR ;Directory of files
1501 001023'00 254 00 0 00 001131' JRST SRVSUB ;Submit file on close
1502 001024'00 254 00 0 00 001257' JRST SRVEXE ;Execute files
1503
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 23-1
DAPLIB MAC 14-Jan-82 09:58 SRVACC Server routine to process an ACCESS message
1504 001025'00 000000 011615' FNCTXT: [ASCIZ /Opening an existing file/]
1505 001026'00 000000 011622' [ASCIZ /Creating a new file/]
1506 001027'00 000000 011626' [ASCIZ /Renaming a file (unsupported)/]
1507 001030'00 000000 011634' [ASCIZ /Deleting files/]
1508 001031'00 000000 011637' [ASCIZ /Reserved function (unsupported)/]
1509 001032'00 000000 011646' [ASCIZ /Directory list/]
1510 001033'00 000000 011651' [ASCIZ /Create new file then submit on close/]
1511 001034'00 000000 011661' [ASCIZ /Submit existing file/]
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 24
DAPLIB MAC 14-Jan-82 09:58 SRVOPN Server routine to process ACCESS (Open)
1512 SUBTTL SRVOPN Server routine to process ACCESS (Open)
1513
1514 ;SRVOPN is called while processing an Access(Open). It is
1515 ; responsible for ensuring that FAL can open the specified
1516 ; file in the mode requested by the attributes message.
1517 ; Since DAP file attributes are not stored as in integral
1518 ; part of the file header (FDB) it is up to the requestor
1519 ; to specify how the file is to be opened.
1520
1521 ; The following rules apply to opening files:
1522 ; 1) If the requestor has sent an attributes message
1523 ; which specifies a non-native file access mode, the
1524 ; specified file will be opened in image mode using the
1525 ; actual file bytesize.
1526 ; 2) If the requestor has sent an attributes message
1527 ; which specifies a native file access mode the file
1528 ; will be opened using the bytesize demanded by that
1529 ; data mode. (Image mode allows the user to specify
1530 ; the bytesize to use when openning the file)
1531 ; 3) If the requestor has sent an attributes message
1532 ; which specifies Image mode but has excluded the bytesize
1533 ; attribute the actual file bytesize will be used for the
1534 ; open.
1535
1536 ;In all cases the attributes returned to the requestor reflect the
1537 ;current openning of the file. (i.e if the requestor wants to see
1538 ;the file data as a 36 bit image data but the files bytesize is actually
1539 ;7 bits per byte, the attributes returned will say the file is a 36
1540 ;bit file since the data will be returned in this fasion.)
1541
1542 ;DAP allows the user to use wild cards in the initial ACCESS (Open).
1543 ;In this case each file will be opened according to the initial
1544 ;attributes message if the requested mode is legal for that file. If
1545 ;the initial mode is not legal for a particular file (e.g the files
1546 ;bytesize does not match what is reqired for the data processor) the
1547 ;file will be opened in Image mode.
1548
1549
1550 001035'00 260 17 0 00 006241' SRVOPN: $CALL SETINP ;Setup for file input
1551 001036'00 322 00 0 00 000757* $RETIF
1552 001037'00 200 01 0 00 000000# MOVE S1,ATTMNU ;Get menu bits
1553 001040'00 606 01 0 00 000001 TXNN S1,AT$DAT ;Data mode specified?
1554 001041'00 402 00 0 00 000000# SETZM ATTDAT ;No..clear bogus default
1555 001042'00 606 01 0 00 000004 TXNN S1,AT$RFM ;Record format specified?
1556 001043'00 402 00 0 00 000000# SETZM ATTRFM ;No..clear bogus default
1557 001044'00 606 01 0 00 020000 TXNN S1,AT$BSZ ;Bytesize specified?
1558 001045'00 402 00 0 00 000000# SETZM ATTBSZ ;No..clear bogus default
1559 001046'00 336 00 0 00 000000# SKIPN WLDJFN ;Is this a wild open?
1560 001047'00 254 00 0 00 001054' JRST SRVNXT ;[131]No..process the request
1561 001050'00 505 01 0 00 000000# HRLI S1,ATTMNU ;Yes..Save original attributes
1562 001051'00 541 01 0 00 000000# HRRI S1,ATTSAV
1563 001052'00 251 01 0 00 000000# BLT S1,ATT$LN+ATTSAV
1564 001053'00 324 17 0 00 001054' PJRST SRVNXT ;Fall into common wild open code
1565
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 25
DAPLIB MAC 14-Jan-82 09:58 SRVOPN Server routine to process ACCESS (Open)
1566
1567 ;[131] SRVNXT is the entry for an ACCESS (Open)
1568
1569 ;[131] Delete one line at SRVNXT, rename label SRVNX1 to be SRVNXT
1570 ;SRVNXT: $CALL SNDWLD ;[131]Move WILD routine
1571 001054'00 201 01 0 00 000000 SRVNXT: MOVEI S1,.CKARD ;[131]Make sure requestor can read it
1572 001055'00 260 17 0 00 001613' $CALL JEDGAR
1573 001056'00 322 00 0 00 001036* $RETIF ;Return failing status
1574 001057'00 201 01 0 00 177777 MOVX S1,POLINI ;[133]RESET...
1575 001060'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]...THE CRC
1576 001061'00 260 17 0 00 007437' $CALL ATLOOK ;Lookup specified attributes
1577 JUMPF [MOVE T1,REMOST ;Get remote system type
1578 DMOVE S1,[EXP .MD1,.MD1] ;Assume image mode
1579 CAIN T1,.OSTP20 ;[103]TOPS20?
1580 JRST .+1 ;Yes..use image
1581 LOAD T2,.FBBYV+LOCFDB,FB%BSZ ;[103]No..check bytesize
1582 CAIE T1,.OSTP10 ;[103]TOPS10?
1583 CAIE T2,^D36 ;[103]IF BYTE SIZE IS 36...
1584 CAIN T2,^D7 ;[103]...OR 7
1585 DMOVE S1,[EXP .MD8,.MD8] ;Assume ascii mode
1586 001062'00 322 00 0 00 011673' JRST .+1]
1587 001063'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;Save local mode
1588 001064'00 202 02 0 00 000000# MOVEM S2,DSTMOD ;Save destination mode
1589 001065'00 332 01 0 00 000000# SKIPE S1,ATTBSZ ;User specified bytesize?
1590 001066'00 137 01 0 00 011705' STORE S1,.FBBYV+LOCFDB,FB%BSZ ;Yes..use it for Open
1591 001067'00 261 17 0 00 000000# PUSH P,ATTMRS ;Preserve calling MRS
1592 001070'00 201 01 0 00 000021' MOVEI S1,ATTMSD ;Clear remaining attributes
1593 001071'00 260 17 0 00 004057' $CALL CLRMSG
1594 001072'00 262 17 0 00 000000# POP P,ATTMRS ;Restor calling MRS
1595 001073'00 260 17 0 00 007562' $CALL SETMOD ;Check for proper mode
1596 001074'00 322 00 0 00 011711' JUMPF [$MUERR .DMATT,21] ;Else return bad mode
1597 001075'00 200 03 0 00 011712' MOVE T1,[POINT 4,MODTB2(S1)] ;Get pointer to destination mode
1598 001076'00 134 03 0 00 000003 ILDB T1,T1 ;Get default destination mode
1599 001077'00 336 00 0 00 000003 SKIPN T1 ;[125]IS THERE A DESTINATION MODE?
1600 JRST [$CALL PICMOD ;[125]NO, GO PICK ONE
1601 MOVE T1,S1 ;[125]SAVE IT IN T1
1602 001100'00 254 00 0 00 011713' JRST .+1] ;[125]RETURN TO MAINLINE CODE
1603 001101'00 336 00 0 00 000000# SKIPN DSTMOD
1604 001102'00 202 03 0 00 000000# MOVEM T1,DSTMOD
1605 001103'00 202 02 0 00 000000# MOVEM S2,ATTBSZ ;Save attributes bytesize
1606 001104'00 201 01 0 00 020015 MOVX S1,AT$DAT+AT$RFM+AT$RAT+AT$BSZ
1607 001105'00 202 01 0 00 000000# MOVEM S1,ATTMNU
1608 001106'00 260 17 0 00 006325' $CALL OPNFIL ;Open the file for input
1609 001107'00 326 00 0 00 001116' JUMPT SRVNX3 ;[131]Branch if OPENF succeeded
1610 001110'00 332 00 0 00 000000# SKIPE WLDJFN ;[131]Wild JFN?
1611 001111'00 302 02 0 00 602327 CAIE S2,OPNX31 ;[131]File off-line?
1612 001112'00 322 00 0 00 001056* $RETIF ;[131]No to both, failing return
1613 001113'00 260 17 0 00 006270' $CALL NXTINP ;[131]Another file to do?
1614 001114'00 322 00 0 00 001112* $RETIF ;[131]No, failing return
1615 001115'00 254 00 0 00 001054' JRST SRVNXT ;[131]Yes
1616 001116'00 332 00 0 00 000000# SRVNX3: SKIPE WLDJFN ;[131]Wild-carded?
1617 001117'00 260 17 0 00 003314' $CALL SNDWLD ;[131]Yes, send wild name messages
1618 001120'00 200 01 0 00 000000# MOVE S1,DSTMOD ;Get destination mode
1619 001121'00 200 02 0 00 000000# MOVE S2,ATTMRS ;Get MRS from original attributes
1620 001122'00 260 17 0 00 007166' $CALL SETATT ;Setup proper attributes
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 25-1
DAPLIB MAC 14-Jan-82 09:58 SRVOPN Server routine to process ACCESS (Open)
1621 001123'00 336 01 0 00 000000# SKIPN S1,ACCDSP ;Display requested?
1622 001124'00 201 01 0 00 000001 MOVX S1,DI$ATT ;No..default is attributes
1623 001125'00 260 17 0 00 003356' $CALL SNDDSP ;Send them off
1624 001126'00 260 17 0 00 003255' $CALL SNDACK ;Send an ACK for this ACCESS
1625 001127'00 200 13 0 00 011716' $STATE .LLCTL ;Wait for Control or Accomp
1626 001130'00 324740 000761* $RETT
1627
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 26
DAPLIB MAC 14-Jan-82 09:58 SRVCRE Server routine to process ACCESS (Create)
1628 SUBTTL SRVCRE Server routine to process ACCESS (Create)
1629
1630 ;SRVCRE is called while processing an ACCESS (Create) message.
1631 ; It is responsible for opening the file in the mode specified
1632 ; by the initial attributes message.
1633
1634 ; Since DAP file attributes are not stored as a part of the
1635 ; file header (FDB) it is up to the requestor to specify how
1636 ; the file is to be created.
1637
1638 ; The following rules apply to creating files:
1639
1640 ; 1) If the user specified that the file be created in a
1641 ; mode not native to our file system, an error will be returned.
1642
1643 ; 2) If the user specified that the file be created in image
1644 ; mode and failed to specify a byte size, the file will be opened
1645 ; as an 8 bit file. (DAP default for bytesize is 8 bit bytes)
1646
1647 ; 3) If the user specified image mode with a byte size of 0
1648 ; the file will be created as a 36 bit file.
1649
1650 ; 4) If the user specified image mode with a byte size of 1 to 36
1651 ; the file will be created per the requestors wishes.
1652
1653 ; 5) If the user specified ascii mode the file will be opened
1654 ; using a bytesize of 7 .
1655
1656 ;In all cases the attributes returned will reflect the current opening
1657 ;of the file.
1658
1659 001131'00 205 01 0 00 000010 SRVSUB: MOVX S1,FB$SUB ;Get submit bit for close
1660 001132'00 436 01 0 00 000000# IORM S1,ATTFOP ;Remember it
1661 ;Enter common create code
1662
1663 001133'00 260 17 0 00 007437' SRVCRE: $CALL ATLOOK ;Lookup incomming attributes
1664 001134'00 322 00 0 00 011711' JUMPF [$MUERR .DMATT,21] ;Bad data mode
1665 001135'00 336 00 0 01 007422' SKIPN MODTB7(S1) ;Legal mode for Create?
1666 001136'00 254 00 0 00 011706' $MUERR .DMATT,21 ;No..bad data mode
1667 001137'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;Save our source mode
1668 001140'00 202 02 0 00 000000# MOVEM S2,DSTMOD ;Save destination mode
1669 001141'00 260 17 0 00 006302' $CALL SETOUT ;Setup to create a file
1670 001142'00 322 00 0 00 001114* $RETIF ;Return failing status
1671 001143'00 201 01 0 00 000011 MOVEI S1,.CKACF ;Check access for file creation
1672 001144'00 260 17 0 00 001613' $CALL JEDGAR ;See if user can create
1673 001145'00 322 00 0 00 001142* $RETIF ;Return failing status
1674 001146'00 336 01 0 00 000000# SKIPN S1,ATTBSZ ;Bytesize equal 0?
1675 001147'00 201 01 0 00 000044 MOVEI S1,^D36 ;Yes..make it 36 (if image mode)
1676 001150'00 137 01 0 00 011717' STORE S1,.FBBYV+LOCFDB,FB%BSZ ;Save for SETMOD
1677 001151'00 260 17 0 00 007562' $CALL SETMOD ;Setup the data mode
1678 001152'00 322 00 0 00 011711' JUMPF [$MUERR .DMATT,21] ;Else return failing status
1679 001153'00 202 02 0 00 000000# MOVEM S2,ATTBSZ ;Save bytesize for attributes
1680 001154'00 260 17 0 00 006325' $CALL OPNFIL ;Open the file for output
1681 001155'00 322 00 0 00 001145* $RETIF ;Return failing status
1682 001156'00 201 01 0 00 060015 MOVX S1,AT$DAT+AT$RFM+AT$RAT+AT$DEV+AT$BSZ
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 26-1
DAPLIB MAC 14-Jan-82 09:58 SRVCRE Server routine to process ACCESS (Create)
1683 001157'00 202 01 0 00 000000# MOVEM S1,ATTMNU ;Setup minimum attributes menu
1684 001160'00 336 01 0 00 000000# SKIPN S1,ACCDSP ;Display field present?
1685 001161'00 201 01 0 00 000001 MOVX S1,DI$ATT ;No..Default is attributes
1686 001162'00 260 17 0 00 003356' $CALL SNDDSP ;Send them out
1687 001163'00 260 17 0 00 003255' $CALL SNDACK ;SEND OUT AN ACK
1688 001164'00 200 13 0 00 011716' $STATE .LLCTL ;Wait for Control or Accomp
1689 001165'00 324740 001130* $RETT ;AND RETURN SUCCESS
1690
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 27
DAPLIB MAC 14-Jan-82 09:58 SRVDEL Server routine to process Delete requests
1691 SUBTTL SRVDEL Server routine to process Delete requests
1692
1693 001166'00 201 01 0 00 000050 SRVDEL: MOVEI S1,FILMAX ;[111]SETUP MAX...
1694 001167'00 202 01 0 00 000000# MOVEM S1,FILCNT ;[111]... FILE COUNT PER DAP MESS BUFFER
1695 001170'00 201 01 0 00 000021' MOVEI S1,ATTMSD ;Clear attributes message
1696 001171'00 260 17 0 00 004057' $CALL CLRMSG
1697 001172'00 201 01 0 00 000002 MOVX S1,DT$IMA ;Set image mode
1698 001173'00 202 01 0 00 000000# MOVEM S1,ATTDAT
1699 001174'00 201 01 0 00 000000 MOVX S1,FB$UDF ;Undefined format
1700 001175'00 202 01 0 00 000000# MOVEM S1,ATTRFM
1701 001176'00 201 01 0 00 100005 MOVX S1,AT$DAT+AT$RFM+AT$BSZ+AT$DEV+AT$BSZ
1702 001177'00 202 01 0 00 000000# MOVEM S1,ATTMNU ;Set minimum attributes menu
1703 001200'00 260 17 0 00 006241' $CALL SETINP ;Setup to find existing file
1704 001201'00 322 00 0 00 001155* $RETIF
1705 001202'00 135 01 0 00 011720' SRVDE1: LOAD S1,.FBBYV+LOCFDB,FB%BSZ
1706 001203'00 202 01 0 00 000000# MOVEM S1,ATTBSZ ;Store actual bytesize
1707 001204'00 201 01 0 00 000010 MOVX S1,.CKACN ;Connect access required
1708 001205'00 260 17 0 00 001613' $CALL JEDGAR ;CHECK THE ACCESS
1709 001206'00 322 00 0 00 001201* $RETIF ;Return failing status
1710 001207'00 332 01 0 00 000000# SKIPE S1,ACCDSP ;Want any attributes?
1711 001210'00 260 17 0 00 003356' $CALL SNDDSP ;No..default is display none
1712 001211'00 260 17 0 00 006600' $CALL DELFIL ;Delete the file
1713 001212'00 322 00 0 00 001206* $RETIF ;Return on failure
1714 001213'00 377 00 0 00 000000# SOSG FILCNT ;[111]IS DAP MESS BUFFER FILLING?
1715 JRST [$CALL SNDQUE ;[111]YES, SEND CURRENT MESSAGES
1716 MOVEI S1,FILMAX ;[111]RESET...
1717 MOVEM S1,FILCNT ;[111]...THE MAX FILE COUNT
1718 001214'00 254 00 0 00 011721' JRST .+1] ;[111]RETURN TO MAINLINE CODE
1719 001215'00 260 17 0 00 006270' $CALL NXTINP ;Look for next file
1720 001216'00 326 00 0 00 001202' JUMPT SRVDE1 ;Found it..go delete it
1721 001217'00 260 17 0 00 001223' $CALL EXPUNG ;[124]EXPUNGE DELETED FILES
1722 001220'00 260 17 0 00 003307' $CALL SNDACA ;Send ACCOMP (resp)
1723 001221'00 200 13 0 00 011725' $STATE .LLACC+S%RETN ;Return to access state
1724 001222'00 324740 001165* $RETT
1725
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 28
DAPLIB MAC 14-Jan-82 09:58 EXPUNG Expunge deleted files
1726 SUBTTL EXPUNG Expunge deleted files
1727
1728 001223'00 205 01 0 00 001000 EXPUNG: MOVX S1,GJ%DEL ;[124]LOOK FOR DELETED FILES
1729 001224'00 436 01 0 00 000000# IORM S1,JFNBLK ;[124]THAT MATCH FILE SPEC FROM USER
1730 001225'00 201 01 0 00 000000# EXP2: MOVEI S1,JFNBLK ;[124]GET LIST OF DELETED FILES
1731 001226'00 200 02 0 16 000003 MOVE S2,.DFLFS(AP) ;[124]THE FILE SPEC
1732 001227'00 104 00 0 00 000020 GTJFN ;[124]
1733 001230'00 254 00 0 00 001254' JRST EXP4 ;[124]NONE LEFT
1734 001231'00 200 04 0 00 000001 MOVE T2,S1 ;[124]SAVE THE JFN
1735 001232'00 550 02 0 00 000001 EXP3: HRRZ S2,S1 ;[124]GET JFN WITHOUT FLAGS
1736 001233'00 561 01 0 00 000000# HRROI S1,MSGTXT ;[124]STRING ADDRESS
1737 001234'00 400 03 0 00 000000 SETZ T1, ;[124]
1738 001235'00 104 00 0 00 000030 JFNS ;[124]GENERATE FILE SPEC
1739 001236'00 205 01 0 00 001001 MOVX S1,GJ%SHT+GJ%DEL ;[124]NOW GET NEW JFN
1740 001237'00 561 02 0 00 000000# HRROI S2,MSGTXT ;[124]
1741 001240'00 104 00 0 00 000020 GTJFN ;[124]
1742 001241'00 254 00 0 00 001254' JRST EXP4 ;[124]
1743 001242'00 261 17 0 00 000001 PUSH P,S1 ;[124]SAVE NEW JFN
1744 001243'00 200 01 0 00 000004 MOVE S1,T2 ;[124]GET OLD JFN
1745 001244'00 104 00 0 00 000017 GNJFN ;[124]GET NEXT JFN
1746 001245'00 400 04 0 00 000000 SETZ T2, ;[124]
1747 001246'00 262 17 0 00 000001 POP P,S1 ;[124]GET SECOND JFN
1748 001247'00 505 01 0 00 200000 HRLI S1,(DF%EXP) ;[124]
1749 001250'00 104 00 0 00 000026 DELF ;[124]EXPUNGE THE FILE
1750 001251'00 255 00 0 00 000000 JFCL ;[124]
1751 001252'00 200 01 0 00 000004 MOVE S1,T2 ;[124]GET ORIGINAL JFN
1752 001253'00 326 04 0 00 001232' JUMPN T2,EXP3 ;[124]KEEP GOING
1753 001254'00 205 01 0 00 001000 EXP4: MOVX S1,GJ%DEL ;[124]
1754 001255'00 412 01 0 00 000000# ANDCAM S1,JFNBLK ;[124]
1755 001256'00 324740 001222* $RETT
1756
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 29
DAPLIB MAC 14-Jan-82 09:58 SRVEXE Server routine to process submit requests
1757 SUBTTL SRVEXE Server routine to process submit requests
1758
1759 001257'00 201 01 0 00 000050 SRVEXE: MOVEI S1,FILMAX ;[111]RESET...
1760 001260'00 202 01 0 00 000000# MOVEM S1,FILCNT ;[111]...THE MAX FILE COUNT
1761 001261'00 561 01 0 00 011726' HRROI S1,[ASCIZ/CTL/] ;Get default extention
1762 001262'00 202 01 0 00 000000# MOVEM S1,.GJEXT+JFNBLK
1763 001263'00 201 01 0 00 000021' MOVEI S1,ATTMSD ;Clear initial attributes
1764 001264'00 260 17 0 00 004057' $CALL CLRMSG ;Clear it
1765 001265'00 201 01 0 00 000010 MOVEI S1,.MD8 ;Set ascii stream attributes
1766 001266'00 402 00 0 00 000002 SETZM S2 ;No MRS or other attributes
1767 001267'00 260 17 0 00 007166' $CALL SETATT
1768 001270'00 260 17 0 00 006241' $CALL SETINP ;Set up for file input
1769 001271'00 322 00 0 00 001212* $RETIF ;Return failing status
1770 001272'00 135 01 0 00 011727' SRVEX1: LOAD S1,.FBBYV+LOCFDB,FB%BSZ ;Get file bytesize
1771 001273'00 302 01 0 00 000007 CAIE S1,^D7 ;Must be 7 or 36
1772 001274'00 306 01 0 00 000044 CAIN S1,^D36
1773 001275'00 334 00 0 00 000000 SKIPA ;Ok..submit it
1774 001276'00 254 00 0 00 011730' $MOERR ER$BSZ ;Bad bytesize
1775 001277'00 201 01 0 00 000000 MOVX S1,.CKARD ;Check read access
1776 001300'00 260 17 0 00 001613' $CALL JEDGAR ;Check access and submit
1777 001301'00 322 00 0 00 001271* $RETIF ;Return failing status
1778 001302'00 260 17 0 00 001674' $CALL SUBMIT ;Submit the file
1779 001303'00 332 01 0 00 000000# SKIPE S1,ACCDSP ;Want any attributes?
1780 001304'00 260 17 0 00 003356' $CALL SNDDSP ;Yes..send them out
1781 001305'00 377 00 0 00 000000# SOSG FILCNT ;[111]IS DAP MESS BUFFER FULL?
1782 JRST [$CALL SNDQUE ;[111]YES, SEND CURRENT MESSAGES
1783 MOVEI S1,FILMAX ;[111]RESET...
1784 MOVEM S1,FILCNT ;[111]...THE MAX FILE COUNT
1785 001306'00 254 00 0 00 011733' JRST .+1] ;[111]
1786 001307'00 260 17 0 00 006270' $CALL NXTINP ;Get next file in the group
1787 001310'00 326 00 0 00 001272' JUMPT SRVEX1 ;Back to submit next file
1788 001311'00 260 17 0 00 003307' $CALL SNDACA ;Send ACCOMP (Resp)
1789 001312'00 200 13 0 00 011725' $STATE .LLACC+S%RETN ;Return to Access state
1790 001313'00 324740 001256* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 30
DAPLIB MAC 14-Jan-82 09:58 SRVDIR Server routine to process Directory requests
1791 SUBTTL SRVDIR Server routine to process Directory requests
1792
1793 001314'00 201 01 0 00 000050 SRVDIR: MOVEI S1,FILMAX ;[111] MAX FILES TO PROC BEFORE SNDQUE
1794 001315'00 202 01 0 00 000000# MOVEM S1,FILCNT ;[111] SET IT UP
1795 001316'00 561 01 0 00 011737' HRROI S1,[ASCIZ/*/] ;Get some wild cards
1796 001317'00 202 01 0 00 000000# MOVEM S1,.GJNAM+JFNBLK ;Set wild filename
1797 001320'00 202 01 0 00 000000# MOVEM S1,.GJEXT+JFNBLK ;Set wild filetype
1798 001321'00 201 01 0 00 000021' MOVEI S1,ATTMSD ;Clear attributes message
1799 001322'00 260 17 0 00 004057' $CALL CLRMSG
1800 001323'00 201 01 0 00 000002 MOVX S1,DT$IMA ;Attributes are image undefined
1801 001324'00 202 01 0 00 000000# MOVEM S1,ATTDAT
1802 001325'00 201 01 0 00 000000 MOVX S1,FB$UDF
1803 001326'00 202 01 0 00 000000# MOVEM S1,ATTRFM
1804 001327'00 201 01 0 00 020005 MOVX S1,AT$DAT+AT$RFM+AT$BSZ
1805 001330'00 202 01 0 00 000000# MOVEM S1,ATTMNU ;Set minimum attributes menu
1806 001331'00 260 17 0 00 006241' $CALL SETINP ;Set up for file input
1807 001332'00 322 00 0 00 001301* $RETIF ;Return failing status
1808 001333'00 200 01 0 00 000000# MOVE S1,WLDJFN ;[112]GET THE BITS
1809 001334'00 434 01 0 00 011740' IOR S1,[GN%STR+GN%DIR] ;[112]INSURE VOL AND NAME MESS ARE
1810 ;[112]SENT FOR NON WILD DIR
1811 001335'00 202 01 0 00 000000# MOVEM S1,WLDSAV ;[112]SAVE FOR SNDWLD
1812 001336'00 135 01 0 00 011741' SRVDI1: LOAD S1,.FBBYV+LOCFDB,FB%BSZ
1813 001337'00 202 01 0 00 000000# MOVEM S1,ATTBSZ ;Save actual file bytesize
1814 001340'00 201 01 0 00 000004 MOVX S1,.CKADL ;Check directory list access
1815 001341'00 260 17 0 00 001613' $CALL JEDGAR ; directory list for file
1816 001342'00 322 00 0 00 001355' JUMPF SRVDI2 ;Failed - skip this file
1817 001343'00 200 01 0 00 000000# MOVE S1,WLDSAV ;[112]GET THE SAVED WILD BITS
1818 001344'00 404 01 0 00 011740' AND S1,[GN%STR+GN%DIR] ;[112]ISOLATE STR AND DIR
1819 001345'00 436 01 0 00 000000# ORM S1,WLDJFN ;[112]SAVE FOR SNDWLD
1820 001346'00 200 01 0 00 011740' MOVE S1,[GN%STR+GN%DIR] ;[112]
1821 001347'00 412 01 0 00 000000# ANDCAM S1,WLDSAV ;[112]TURN THEM OFF NOW
1822 001350'00 260 17 0 00 003314' $CALL SNDWLD ;Send off proper name messages
1823 001351'00 332 01 0 00 000000# SKIPE S1,ACCDSP ;Want any attributes returned?
1824 001352'00 260 17 0 00 003356' $CALL SNDDSP ;Send out requested attributes
1825 001353'00 377 00 0 00 000000# SOSG FILCNT ;[111]COUNT ANOTHER FILE
1826 JRST [$CALL SNDQUE ;[111]TOO MUCH CORE IN USE
1827 MOVEI S1,FILMAX ;[111]SEND MESSES AND RESET
1828 MOVEM S1,FILCNT ;[111]FILE COUNT
1829 001354'00 254 00 0 00 011742' JRST .+1] ;[111]
1830 001355'00 260 17 0 00 006270' SRVDI2: $CALL NXTINP ;Step to next file
1831 001356'00 200 01 0 00 000000# MOVE S1,WLDJFN ;[112]GET WILD BITS
1832 001357'00 404 01 0 00 011740' AND S1,[GN%STR+GN%DIR] ;[112]ISOLATE SR AND DIR
1833 001360'00 436 01 0 00 000000# ORM S1,WLDSAV ;[112]SAVE FOR SNDWLD
1834 001361'00 326 00 0 00 001336' JUMPT SRVDI1 ;Go back and process it
1835 001362'00 260 17 0 00 003307' $CALL SNDACA ;Send ACCOMP (Resp)
1836 001363'00 200 13 0 00 011725' $STATE .LLACC+S%RETN ;Return to Access state
1837 001364'00 324740 001313* $RETT ; And return success
1838
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 31
DAPLIB MAC 14-Jan-82 09:58 SRVCTL Server routine to process a CONTROL message
1839 SUBTTL SRVCTL Server routine to process a CONTROL message
1840
1841 001365'00 200 03 0 00 000000# SRVCTL: MOVE T1,CTLFNC ;Get desired function
1842 001366'00 301 03 0 00 000001 CAIL T1,CF$GET ;Do we support it?
1843 001367'00 303 03 0 00 000006 CAILE T1,CF$REW ;...
1844 001370'00 254 00 0 00 011746' $MUERR .DMCTL,20 ;No..return unsupported
1845 001371'00 200 01 0 00 000000# MOVE S1,CTLMNU ;Get the menu
1846 001372'00 200 02 0 00 000000# MOVE S2,RACSAV ;Get old record access field
1847 001373'00 606 01 0 00 000001 TXNN S1,CT$RAC ;RAC field present?
1848 001374'00 254 00 0 00 001404' JRST SRVCT1 ;No..use the previous one
1849 001375'00 200 02 0 00 000000# MOVE S2,CTLRAC ;Yes..get it and check it
1850 001376'00 301 02 0 00 000003 CAIL S2,RB$SQF ;...
1851 001377'00 303 02 0 00 000005 CAILE S2,RB$BKF ;...
1852 001400'00 254 00 0 00 011751' $MUERR .DMCTL,22
1853 001401'00 306 02 0 00 000004 CAIN S2,RB$VBN ;Random by VBN?
1854 001402'00 254 00 0 00 011751' $MUERR .DMCTL,22 ;Yes..that's unsupported
1855 001403'00 202 02 0 00 000000# MOVEM S2,RACSAV ;Save in case of null RAC field
1856 001404'00 202 02 0 00 000000# SRVCT1: MOVEM S2,CTLRAC ;Save for this access
1857 001405'00 332 00 0 00 000000# SKIPE CTLKRF ;Was KRF field specified?
1858 001406'00 254 00 0 00 011754' $MUERR .DMCTL,24 ;Yes..return unsupported
1859 001407'00 332 00 0 00 000000# SKIPE CTLROP ;Was ROP field specified?
1860 001410'00 254 00 0 00 011757' $MUERR .DMCTL,25 ;Yes..return unsupported
1861 001411'00 332 00 0 00 000000# SKIPE CTLHSH ;Was HSH field specified?
1862 001412'00 254 00 0 00 011762' $MUERR .DMCTL,26 ;Yes..return unsupported
1863 001413'00 332 00 0 00 000000# SKIPE CTLDSP ;Was display field specified?
1864 001414'00 254 00 0 00 011765' $MUERR .DMCTL,27 ;Yes..return unsupported
1865 001415'00 324 17 1 03 001415' PJRST @CTLTBL-CF$GET(T1) ;Yes..Dispatch to processor
1866
1867
1868 001416'00 324 17 0 00 001426' CTLTBL: PJRST CTLGET ;Control (Get)
1869 001417'00 324 17 0 00 001424' PJRST CTLCON ;Control (Connect)
1870 001420'00 254 00 0 00 011746' $MUERR .DMCTL,20 ;Control (Update) unsupported
1871 001421'00 324 17 0 00 001440' PJRST CTLPUT ;Control (Put)
1872 001422'00 254 00 0 00 011746' $MUERR .DMCTL,20 ;Control (Delete) unsupported
1873 001423'00 254 00 0 00 011746' $MUERR .DMCTL,20 ;Control (Rewind) unsupported
1874
1875 001424'00 260 17 0 00 003255' CTLCON: $CALL SNDACK ;Send ACK message
1876 001425'00 324740 001364* $RETT
1877
1878 001426'00 200 13 0 00 011770' CTLGET: $STATE .LLDAT+S%GET ;Getting file records
1879 001427'00 200 01 0 00 000000# MOVE S1,CTLRAC ;Get access type
1880 001430'00 302 01 0 00 000005 CAIE S1,RB$BKF ;Block mode file I/O?
1881 001431'00 324740 001425* $RETT ;No..just return
1882 001432'00 476 00 0 00 000000# SETOM PAGFLG ;Yes..do page mode
1883 001433'00 200 01 0 00 011771' MOVE S1,[GETPAG,,PUTPAG] ;Setup page mode processor
1884 001434'00 202 01 0 00 000000# MOVEM S1,DATDAT
1885 001435'00 200 01 0 00 000000# MOVE S1,CTLKEY ;Get the binary key
1886 001436'00 202 01 0 00 000000# MOVEM S1,DATRCN ;Save it
1887 001437'00 324740 001431* $RETT
1888
1889 001440'00 200 13 0 00 011772' CTLPUT: $STATE .LLDAT+S%PUT ;Writing file records
1890 001441'00 260 17 0 00 001602' $CALL DISABL ;Allow over quota checking
1891 001442'00 200 01 0 00 000000# MOVE S1,CTLRAC
1892 001443'00 302 01 0 00 000005 CAIE S1,RB$BKF ;Block mode file xfer?
1893 001444'00 324740 001437* $RETT ;No..just return
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 31-1
DAPLIB MAC 14-Jan-82 09:58 SRVCTL Server routine to process a CONTROL message
1894 001445'00 476 00 0 00 000000# SETOM PAGFLG ;Yes..set page mode flag
1895 001446'00 200 01 0 00 011771' MOVE S1,[GETPAG,,PUTPAG] ;Setup proper processor
1896 001447'00 202 01 0 00 000000# MOVEM S1,DATDAT
1897 001450'00 324740 001444* $RETT
1898
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 32
DAPLIB MAC 14-Jan-82 09:58 FILGET Server routine to send data messages
1899 SUBTTL FILGET Server routine to send data messages
1900
1901 001451'00 335 00 0 00 000000# FILGET: SKIPGE PAGFLG ;Page mode
1902 001452'00 336 01 0 00 000000# SKIPN S1,DATRCN ; and not FDB?
1903 001453'00 254 00 0 00 001461' JRST FILGE1 ;No..just send the message
1904 001454'00 275 01 0 00 000001 SUBI S1,1 ;Yes..convert VBN to page number
1905 001455'00 242 01 0 00 777776 LSH S1,-^D2
1906 001456'00 504 01 0 00 000000# HRL S1,LOCJFN
1907 001457'00 104 00 0 00 000057 RPACS ;Get page accessibility
1908 001460'00 320 16 0 00 007707' ERJMP TERCVT
1909 001461'00 201 01 0 00 000137' FILGE1: MOVEI S1,DATMSD ;Point to data message
1910 001462'00 260 17 0 00 004716' $CALL QUEMSG ;Build and send the message
1911 001463'00 322 00 0 00 001332* $RETIF
1912 001464'00 331 00 0 00 000000# SKIPL PAGFLG ;Page mode?
1913 001465'00 324740 001450* $RETT ;Return
1914 001466'00 336 01 0 00 000000# SKIPN S1,DATRCN ;Yes..ready for next page
1915 001467'00 254 00 0 00 001473' JRST FILGE2 ;If VBN was 0, start at page 0
1916 001470'00 275 01 0 00 000001 SUBI S1,1 ;Convert to file page number
1917 001471'00 242 01 0 00 777776 LSH S1,-^D2
1918 001472'00 271 01 0 00 000001 ADDI S1,1 ;Step to next page
1919 001473'00 504 01 0 00 000000# FILGE2: HRL S1,LOCJFN
1920 001474'00 104 00 0 00 000211 FFUFP ;Find next used page
1921 ERJMP [CAIE S1,FFUFX3 ;Eof?
1922 PJRST TERCVT ;No..return the failure
1923 TXO S,S%EOF ;Yes..mark the status
1924 001475'00 320 16 0 00 011773' $RETT]
1925 001476'00 550 01 0 00 000001 HRRZ S1,S1
1926 001477'00 242 01 0 00 000002 LSH S1,^D2 ;Convert to VBN
1927 001500'00 271 01 0 00 000001 ADDI S1,1
1928 001501'00 202 01 0 00 000000# MOVEM S1,DATRCN ;Save for next data message
1929 001502'00 324740 001465* $RETT
1930
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 33
DAPLIB MAC 14-Jan-82 09:58 SRVACP Server routine to process Access complete message
1931 SUBTTL SRVACP Server routine to process Access complete message
1932
1933 001503'00 260 17 0 00 001571' SRVACP: $CALL ENABLE ;Turn on wheel again
1934 001504'00 200 03 0 00 000000# MOVE T1,ACPFNC ;Get the closing function
1935 001505'00 301 03 0 00 000001 CAIL T1,AC$TRM ;Within range?
1936 001506'00 303 03 0 00 000005 CAILE T1,AC$SKP
1937 001507'00 254 00 0 00 011777' $MUERR .DMACP,20 ;No..Return unsupported
1938 001510'00 254 00 1 03 001510' JRST @ACPTBL-AC$TRM(T1) ;Do the function
1939
1940 001511'00 324 17 0 00 001520' ACPTBL: PJRST ACPTRM ;ACCOMP (Close)
1941 001512'00 254 00 0 00 012002' $MIERR .DMACP,20 ;Accomp (Resp) is illegal
1942 001513'00 324 17 0 00 001516' PJRST ACPPUR ;ACCOMP (Purge)
1943 001514'00 324 17 0 00 001566' PJRST ACPEOS ;ACCOMP (Eos)
1944 001515'00 324 17 0 00 001546' PJRST ACPSKP ;ACCOMP (Skip)
1945
1946 001516'00 260 17 0 00 006606' ACPPUR: $CALL ABTFIL ;Abort current file operation
1947 001517'00 324 17 0 00 001546' PJRST ACPSKP ;Step to next file
1948 001520'00 260 17 0 00 000404* ACPTRM: $SAVE <P1> ;Preserve an AC
1949 001521'00 260 17 0 00 003065' $CALL VALCRC ;Validate the CRC
1950 001522'00 322 00 0 00 001463* $RETIF ;Return error on failure
1951 001523'00 336 07 0 00 000000# SKIPN P1,ACPFOP ;Get completion file options
1952 001524'00 200 07 0 00 000000# MOVE P1,FILFOP ;Else use options from attributes
1953 001525'00 603 07 0 00 000010 TXNE P1,FB$SUB ;Want to submit file?
1954 001526'00 260 17 0 00 001674' $CALL SUBMIT ;Yes..do the submit
1955 001527'00 603 07 0 00 000004 TXNE P1,FB$SPL ;Want to spool the file
1956 001530'00 260 17 0 00 001673' $CALL PRINT ;Yes..do the print
1957 001531'00 603 07 0 00 000014 TXNE P1,FB$SPL+FB$SUB ;Spooling or printing?
1958 001532'00 254 00 0 00 001543' JRST ACPCLS ;Yes..just close the file
1959 001533'00 607 07 0 00 000020 TXNN P1,FB$DEL ;Want to delete the file?
1960 001534'00 254 00 0 00 001543' JRST ACPCLS ;No..just close the file
1961 001535'00 201 01 0 00 000010 MOVEI S1,.CKACN ;Connect access required
1962 001536'00 260 17 0 00 001613' $CALL JEDGAR
1963 001537'00 322 00 0 00 001522* $RETIF ;Return on failure
1964 001540'00 474 01 0 00 000000 SETO S1, ;[137]DELETE THE FILE ON CLOSE
1965 001541'00 476 00 0 00 000000# SETOM DELFLG ;[137]A FILE WAS DELETED
1966 001542'00 334 00 0 00 000000 SKIPA ;[137]
1967 001543'00 400 01 0 00 000000 ACPCLS: SETZ S1, ;[137]DON'T DELETE
1968 001544'00 260 17 0 00 006406' $CALL CLSFIL ;Close current file normally
1969 001545'00 322 00 0 00 001537* $RETIF ;Return failing status
1970 001546'00 336 00 0 00 000000# ACPSKP: SKIPN WLDJFN ;Wild JFN?
1971 001547'00 254 00 0 00 001560' JRST ACPACK ;No..send ACCOMP (Ack)
1972 001550'00 260 17 0 00 006270' $CALL NXTINP ;Another file to do?
1973 001551'00 322 00 0 00 001560' JUMPF ACPACK ;No..send ACCOMP (Ack)
1974 001552'00 505 01 0 00 000000# HRLI S1,ATTSAV ;Yes..restore initial attributes
1975 001553'00 541 01 0 00 000000# HRRI S1,ATTMNU ; before calling SRVNXT
1976 001554'00 251 01 0 00 000000# BLT S1,ATT$LN+ATTMNU
1977 001555'00 402 00 0 00 000000# SETZM SRCMOD ;Clear source and destination
1978 001556'00 402 00 0 00 000000# SETZM DSTMOD ; Modes
1979 001557'00 324 17 0 00 001054' PJRST SRVNXT ;Process the next file
1980
1981 001560'00 332 00 0 00 000000# ACPACK: SKIPE DELFLG ;[137]ANY FILES DELETED?
1982 001561'00 260 17 0 00 001223' $CALL EXPUNG ;[137]YES, EXPUNGE THEM
1983 001562'00 402 00 0 00 000000# SETZM DELFLG ;[137]RESET THE FLAG
1984 001563'00 260 17 0 00 003307' $CALL SNDACA ;No..send Accomp (Resp)
1985 001564'00 200 13 0 00 011725' $STATE .LLACC+S%RETN ;Back to initial access state
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 33-1
DAPLIB MAC 14-Jan-82 09:58 SRVACP Server routine to process Access complete message
1986 001565'00 324740 001502* $RETT
1987
1988 001566'00 260 17 0 00 003307' ACPEOS: $CALL SNDACA ;Send Accomp (Resp)
1989 001567'00 200 13 0 00 011716' $STATE .LLCTL ;Back to control state
1990 001570'00 324740 001565* $RETT
1991
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 34
DAPLIB MAC 14-Jan-82 09:58 ENABLE/DISABL Routine to set or clear capabilities for server
1992 SUBTTL ENABLE/DISABL Routine to set or clear capabilities for server
1993
1994
1995 001571'00 336 00 0 00 000135 ENABLE: SKIPN DEBUGW ;Are we debugging
1996 001572'00 332 03 0 00 000000# SKIPE T1,CAPIBL ; or are we already enabled?
1997 001573'00 263 17 0 00 000000 $RET ;Yes, just return
1998 001574'00 201 01 0 00 400000 MOVEI S1,.FHSLF ;Get my fork handle
1999 001575'00 104 00 0 00 000150 RPCAP ;Get my capabilites
2000 001576'00 666 03 0 00 600000 TXON T1,SC%OPR+SC%WHL ;Enable operator and/or wheel
2001 001577'00 104 00 0 00 000151 EPCAP ; if not already enabled
2002 001600'00 202 03 0 00 000000# MOVEM T1,CAPIBL ;Save for upcomming disable
2003 001601'00 263 17 0 00 000000 $RET
2004
2005 001602'00 336 00 0 00 000135 DISABL: SKIPN DEBUGW ;Are we debugging?
2006 001603'00 336 03 0 00 000000# SKIPN T1,CAPIBL ; or are we already disabled?
2007 001604'00 263 17 0 00 000000 $RET ;Yes, just return
2008 001605'00 201 01 0 00 400000 MOVEI S1,.FHSLF ;Get my for handle
2009 001606'00 474 02 0 00 000000 SETO S2,
2010 001607'00 620 03 0 00 600000 TXZ T1,SC%OPR+SC%WHL ;Clear operator and wheel
2011 001610'00 104 00 0 00 000151 EPCAP
2012 001611'00 402 00 0 00 000000# SETZM CAPIBL ;Say no longer enabled
2013 001612'00 263 17 0 00 000000 $RET
2014
2015
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 35
DAPLIB MAC 14-Jan-82 09:58 HOOVER Routine to validate a users access to a file
2016 SUBTTL HOOVER Routine to validate a users access to a file
2017
2018 ;Accepts S1/ Requested access
2019
2020 ;Returns TRUE Access is allowed
2021 ; FALSE Access denied
2022
2023 001613'00 260 17 0 00 000000* JEDGAR: STKVAR <<CHKBLK,5>>
2024 001614'00 000005 000005
2025 001615'00 202 01 0 17 777772 MOVEM S1,.CKAAC+CHKBLK ;Save requested access
2026 001616'00 550 01 0 00 000000# HRRZ S1,LOCJFN ;Get file JFN
2027 001617'00 202 01 0 17 777776 MOVEM S1,.CKAUD+CHKBLK ;Save the JFN
2028 001620'00 200 01 0 00 000000# MOVE S1,DIRNUM ;Get directory number
2029 001621'00 202 01 0 17 777774 MOVEM S1,.CKACD+CHKBLK ;Save as directory
2030 001622'00 200 01 0 00 000000# MOVE S1,USRNUM ;Get user number
2031 001623'00 202 01 0 17 777773 MOVEM S1,.CKALD+CHKBLK ;Save as user
2032 001624'00 402 00 0 17 777775 SETZM .CKAEC+CHKBLK ;Check with no privs
2033 001625'00 200 01 0 00 012005' MOVX S1,CK%JFN+5 ;Set JFN flag and length
2034 001626'00 201 02 0 17 777772 MOVEI S2,CHKBLK ;Point to args
2035 001627'00 104 00 0 00 000521 CHKAC ;Check the access
2036 001630'00 634 00 0 00 000000 TDZA TF,TF ;Jsys failed..return false
2037 001631'00 200 00 0 00 000001 MOVE TF,S1 ;Return True/False per chkacc
2038 001632'00 326 00 0 00 001640' JUMPT JEDGA1 ;Return success
2039 001633'00 201 01 0 00 040125 $STATUS ER$FIL,ER$PRV ;Return privilege failure
2040 001634'00 402 00 0 00 000002
2041 001635'00 200 02 0 17 777772 MOVE S2,.CKAAC+CHKBLK ;Get requested access
2042 001636'00 200 02 0 02 001661' MOVE S2,ACCERR(S2) ;Get proper extended error
2043 001637'00 324740 000403* $RETF ;Return the failure
2044
2045 001640'00 200 01 0 17 777772 JEDGA1: MOVE S1,.CKAAC+CHKBLK ;Get requested access
2046 001641'00 302 01 0 00 000011 CAIE S1,.CKACF ;Was it create?
2047 001642'00 324740 001570* $RETT ;No..just return
2048 001643'00 402 00 0 00 000001 SETZM S1 ;Yes..see if we have room
2049 001644'00 550 02 0 00 000000# HRRZ S2,LOCJFN
2050 001645'00 104 00 0 00 000553 RCDIR ;Get directory number
2051 001646'00 320 16 0 00 007707' ERJMP TERCVT
2052 001647'00 200 01 0 00 000003 MOVE S1,T1 ;Put directory number in S1
2053 001650'00 104 00 0 00 000305 GTDAL ;Get directory allocation
2054 001651'00 320 16 0 00 007707' ERJMP TERCVT
2055 001652'00 274 01 0 00 000002 SUB S1,S2 ;Get remaining page count
2056 001653'00 550 02 0 00 000000# LOAD S2,.FBBYV+ATTFDB,FB%PGC ;Get requested file page count
2057 001654'00 311 01 0 00 000002 CAML S1,S2 ;Enough room?
2058 001655'00 324740 001642* $RETT ;Yes..return success
2059 001656'00 201 01 0 00 040065 $STATUS ER$FIL,ER$FUL ;Report quota exceeded
2060 001657'00 402 00 0 00 000002
2061 001660'00 324740 001637* $RETF
2062
2063 001661'00 000000 600122 ACCERR: OPNX3 ;Read access required
2064 001662'00 000000 600123 OPNX4 ;Write access required
2065 001663'00 000000 000000 0
2066 001664'00 000000 000000 0
2067 001665'00 000000 000000 0
2068 001666'00 000000 000000 0
2069 001667'00 000000 000000 0
2070 001670'00 000000 000000 0
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 35-1
DAPLIB MAC 14-Jan-82 09:58 HOOVER Routine to validate a users access to a file
2071 001671'00 000000 600170 DELFX1 ;Delete access required
2072 001672'00 000000 600123 OPNX4 ;Write access required
2073
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 36
DAPLIB MAC 14-Jan-82 09:58 PRINT/SUBMIT Server routine to queue galaxy requests
2074 SUBTTL PRINT/SUBMIT Server routine to queue galaxy requests
2075
2076 001673'00 334 03 0 00 012006' PRINT: SKIPA T1,[.OTLPT] ;Get Printer object type
2077 001674'00 201 03 0 00 000004 SUBMIT: MOVEI T1,.OTBAT ;Get BATCH object type
2078 001675'00 201 01 0 00 000037 MOVEI S1,.QOCQE ;Get Create message type
2079 001676'00 202 01 0 00 000000# MOVEM S1,MSGHDR
2080 001677'00 402 00 0 00 000000# SETZM .MSFLG+MSGHDR ;Clear the flags
2081 001700'00 402 00 0 00 000000# SETZM .MSCOD+MSGHDR ;Clear the ack code
2082 001701'00 402 00 0 00 000000# SETZM MSGARF ;Clear argument flags
2083 001702'00 201 01 0 00 000004 MOVEI S1,4 ;Get minimum argument count
2084 001703'00 202 01 0 00 000000# MOVEM S1,MSGARC ;Save it
2085 001704'00 200 01 0 00 012007' MOVE S1,[2,,.QCQUE] ;Store que type argement header
2086 001705'00 202 01 0 00 000000# MOVEM S1,2+MSGARF
2087 001706'00 202 03 0 00 000000# MOVEM T1,3+MSGARF ;Store queue object type
2088 001707'00 200 01 0 00 012010' MOVE S1,[2,,.QCOID] ;Store user-id header
2089 001710'00 202 01 0 00 000000# MOVEM S1,4+MSGARF
2090 001711'00 200 01 0 00 000000# MOVE S1,USRNUM ;Store user number
2091 001712'00 202 01 0 00 000000# MOVEM S1,5+MSGARF
2092 001713'00 201 01 0 00 000000# MOVEI S1,6+MSGARF ;Point to next header
2093 001714'00 302 03 0 00 000004 CAIE T1,.OTBAT ;Submit?
2094 001715'00 254 00 0 00 001732' JRST PRIN10 ;No..don't send log disposition
2095 001716'00 200 02 0 00 012011' MOVE S2,[2,,.QCCDI] ;Store connected directory
2096 001717'00 202 02 0 01 000000 MOVEM S2,0(S1)
2097 001720'00 200 02 0 00 000000# MOVE S2,DIRNUM ;Use users directory
2098 001721'00 202 02 0 01 000001 MOVEM S2,1(S1)
2099 001722'00 271 01 0 00 000002 ADDI S1,2 ;Point to next header
2100 001723'00 350 00 0 00 000000# AOS MSGARC ;Bump argument count
2101 001724'00 200 02 0 00 012012' MOVE S2,[2,,.QCBLT] ;Store log file disposition
2102 001725'00 202 02 0 01 000000 MOVEM S2,0(S1)
2103 001726'00 201 02 0 00 000001 MOVEI S2,%BAPND ;Append logfile
2104 001727'00 202 02 0 01 000001 MOVEM S2,1(S1)
2105 001730'00 271 01 0 00 000002 ADDI S1,2 ;Point to next free arg
2106 001731'00 350 00 0 00 000000# AOS MSGARC ;Bump argument count
2107 001732'00 201 02 0 00 000010 PRIN10: MOVEI S2,.QCFIL ;Store file type
2108 001733'00 202 02 0 01 000000 MOVEM S2,(S1)
2109 001734'00 561 02 0 00 000000# HRROI S2,NAMFSP ;Point to file
2110 001735'00 260 17 0 00 001771' $CALL STRARG ;Store it
2111 001736'00 261 17 0 00 000001 PUSH P,S1 ;[144]SAVE S1
2112 001737'00 261 17 0 00 000003 PUSH P,T1 ;[144]SAVE T1
2113 001740'00 402 00 0 00 000000# SETZM LLNAME ;[144]FOR THE FILE TYPE
2114 001741'00 561 01 0 00 000000# HRROI S1,LLNAME ;[144]STRING POINTER
2115 001742'00 550 02 0 00 000000# HRRZ S2,LOCJFN ;[144]LOCAL FILE JFN
2116 001743'00 205 03 0 00 000100 MOVX T1,1B11 ;[144]FILE TYPE ONLY
2117 001744'00 104 00 0 00 000030 JFNS ;[144]GET THE FILE TYPE
2118 001745'00 262 17 0 00 000003 POP P,T1 ;[144]RESTORE T1
2119 001746'00 262 17 0 00 000001 POP P,S1 ;[144]RESTORE S1
2120 001747'00 200 02 0 00 012013' MOVE S2,[ASCIZ /DAT/] ;[144]FORTRAN FILE TYPE
2121 001750'00 316 02 0 00 000000# CAMN S2,LLNAME ;[144]TYPE WAS .DAT?
2122 JRST [AOS MSGARC ;[144]YES,INCREMENT ARG COUNT
2123 MOVE S2,[2,,.QCPTP] ;[144]FILE FORMAT HEADER
2124 MOVEM S2,0(S1) ;[144]PUT IN MESSSAGE
2125 ADDI S1,1 ;[144]BUMP POINTER
2126 MOVEI S2,.FPFFO ;[144]/FILE:FORTRAN
2127 MOVEM S2,0(S1) ;[144]PUT IN MESSAGE
2128 ADDI S1,1 ;[144]BUMP POINTER
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 36-1
DAPLIB MAC 14-Jan-82 09:58 PRINT/SUBMIT Server routine to queue galaxy requests
2129 001751'00 254 00 0 00 012015' JRST .+1] ;[144]JOIN MAINLINE CODE
2130 001752'00 201 02 0 00 000026 MOVEI S2,.QCNAM ;Get user string function
2131 001753'00 202 02 0 01 000000 MOVEM S2,0(S1) ;Store user function
2132 001754'00 200 02 0 00 000000# MOVE S2,.DOUSR+LLOPNB ;Point to user string
2133 001755'00 260 17 0 00 001771' $CALL STRARG ;Store it
2134 001756'00 336 00 0 00 000000# SKIPN .DOUSR+LLOPNB ;Account specified?
2135 001757'00 254 00 0 00 001765' JRST PRIN20 ;No..send what we have
2136 001760'00 350 00 0 00 000000# AOS MSGARC ;Yes..bump arg count
2137 001761'00 201 02 0 00 000023 MOVEI S2,.QCACT ;Store account header
2138 001762'00 202 02 0 01 000000 MOVEM S2,0(S1)
2139 001763'00 200 02 0 00 000000# MOVE S2,.DOACT+LLOPNB ;Point to account string
2140 001764'00 260 17 0 00 001771' $CALL STRARG ;Copy the string
2141 001765'00 275 01 0 00 000000# PRIN20: SUBI S1,MSGHDR ;Get message length
2142 001766'00 506 01 0 00 000000# HRLM S1,MSGHDR ;[0115]Message length
2143 001767'00 201 02 0 00 000000# MOVEI S2,MSGHDR ;Get message address
2144 001770'00 324 17 0 00 002002' PJRST SNDQSR ;Send it to QUASAR
2145
2146 001771'00 550 04 0 00 000001 STRARG: HRRZ T2,S1 ;Remember header address
2147 001772'00 561 01 0 01 000001 HRROI S1,1(S1) ;Point to destination
2148 001773'00 400 03 0 00 000000 SETZ T1, ;Terminate on null
2149 001774'00 104 00 0 00 000053 SOUT
2150 001775'00 201 01 0 01 000001 MOVEI S1,1(S1) ;Point S1 to next word
2151 001776'00 200 03 0 00 000001 MOVE T1,S1
2152 001777'00 274 03 0 00 000004 SUB T1,T2 ;Compute argument length
2153 002000'00 506 03 0 04 000000 HRLM T1,0(T2) ;Save in header
2154 002001'00 324740 001655* $RETT ;Return
2155
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 37
DAPLIB MAC 14-Jan-82 09:58 SNDQSR Routine to send message to quasar
2156 SUBTTL SNDQSR Routine to send message to quasar
2157
2158 ;ACCEPTS S1/ Length of message
2159 ; S2/ Address of message
2160
2161 002002'00 201 03 0 00 000002 SNDQSR: MOVX T1,SP.QSR ;Get quasars index
2162 002003'00 661 03 0 00 400000 TXO T1,SI.FLG ;Set special index flag
2163 002004'00 202 03 0 00 000000# MOVEM T1,SAB.SI+SNDSAB
2164 002005'00 402 00 0 00 000000# SETZM SAB.PD+SNDSAB ;Clear the pid
2165 002006'00 205 03 0 00 400000 MOVX T1,MF.ACK ;Lite ack bit
2166 002007'00 436 03 0 02 000001 IORM T1,.MSFLG(S2) ;Store in message
2167 002010'00 202 01 0 00 000000# MOVEM S1,SAB.LN+SNDSAB ;Store the length
2168 002011'00 202 02 0 00 000000# MOVEM S2,SAB.MS+SNDSAB ;Store the address
2169 002012'00 201 01 0 00 000005 MOVEI S1,SAB.SZ
2170 002013'00 201 02 0 00 000000# MOVEI S2,SNDSAB
2171 002014'00 260 17 0 00 000000* $CALL C%SEND
2172 002015'00 260 17 0 00 000000* $CALL C%BRCV ;Get the ack from QUASAR
2173 002016'00 263 17 0 00 000000 $RET ;Return true/false per C%SEND
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 38
DAPLIB MAC 14-Jan-82 09:58 DAPDCN Active Task function dispatch
2174 SUBTTL DAPDCN Active Task function dispatch
2175
2176 002017'00 205 13 0 00 000040 DAPDCN: $STATE .LLCFG ;Start at Config state
2177 002020'00 336 00 0 00 000000# SKIPN CFGVER ;Exchanged config messages?
2178 002021'00 260 17 0 00 002144' $CALL DCNMSG ;No..Exchange Config messages
2179 002022'00 322 00 0 00 001545* $RETIF ;Return failing status
2180
2181 002023'00 200 13 0 00 011601' $STATE .LLACC ;Step to access state
2182 002024'00 200 01 0 00 011576' MOVE S1,[.NULIO,,.NULIO] ;Set null string input
2183 002025'00 202 01 0 00 000000# MOVEM S1,.GJSRC+JFNBLK ;...
2184 002026'00 561 01 0 00 000000# HRROI S1,ACCFIL ;Store remote filespec
2185 002027'00 332 02 0 16 000006 SKIPE S2,.DFRFS(AP) ;Pointer present?
2186 002030'00 260 17 0 00 010113' $CALL CPYSTR ;Yes..store it
2187 002031'00 200 01 0 16 000005 MOVE S1,.DFRFO(AP) ;Get remote file options
2188 002032'00 202 01 0 00 000000# MOVEM S1,ACCOPT ;Save for access
2189 002033'00 135 01 0 00 011546' LOAD S1,.DFFLG(AP),DF%ACC ;Get desired function
2190 002034'00 202 01 0 00 000000# STORE S1,ACCFNC
2191 002035'00 301 01 0 00 000001 CAIL S1,AF$OPN ;Actual DAP function?
2192 002036'00 303 01 0 00 000010 CAILE S1,AF$EXE ;...
2193 002037'00 254 00 0 00 002063' JRST DAPDC1 ;No..Check for special request
2194 002040'00 260 17 1 01 002052' $CALL @DCNTBL-AF$OPN(S1) ;Process the request
2195 002041'00 322 00 0 00 002043' JUMPF DCNABT ;Abort link on error
2196 002042'00 324740 002001* $RETT
2197
2198 002043'00 561 03 0 00 000000# DCNABT: HRROI T1,STSTXT ;Expand failing status
2199 002044'00 607 13 0 00 000100 TXNN S,S%LERR ;Did we receive status?
2200 002045'00 260 17 0 00 007614' $CALL TYPSTS ;No..expand our message
2201 002046'00 200 03 0 00 012031' MOVX T1,TXT(Local status - ) ;[147]Assume local status error
2202 002047'00 603 13 0 00 000100 TXNE S,S%LERR ;Unless we received status
2203 002050'00 200 03 0 00 012036' MOVX T1,TXT(Remote status - );Get Remote status error
2204 002051'00 561 04 0 00 000000# HRROI T2,STSTXT ;Point to expaned text
2205 002052'00 260 17 0 00 012051' $FATAL (,^Q/T1/^Q/T2/) ;Display message and return
2206
2207
2208 002053'00 254 00 0 00 002257' DCNTBL: JRST DCNREC ;AF$OPN - Recieve existing files
2209 002054'00 254 00 0 00 002443' JRST DCNSND ;AF$CRE - Send existing file
2210 002055'00 254 00 0 00 002677' JRST DCNREN ;AF$REN - Rename existing files
2211 002056'00 254 00 0 00 002557' JRST DCNDEL ;AF$DEL - Delete existing files
2212 002057'00 254 00 0 00 002065' JRST DAPDC2 ;Function 5 (reserved)
2213 002060'00 254 00 0 00 002573' JRST DCNDIR ;AF$DIR - Directory of files
2214 002061'00 254 00 0 00 002700' JRST DCNSUB ;AF$SUB - Send and execute file
2215 002062'00 254 00 0 00 002554' JRST DCNEXE ;AF$EXE - Execute existing file
2216
2217 002063'00 301 01 0 00 000101 DAPDC1: CAIL S1,AF$TYP ;Special function?
2218 002064'00 303 01 0 00 000102 CAILE S1,AF$PRN ;...
2219 002065'00 260 17 0 00 012070' DAPDC2: $FATAL (Function not implimented)
2220 002066'00 260 17 1 01 001770' $CALL @DCNTB1-AF$TYP(S1) ;Process the request
2221 002067'00 322 00 0 00 002043' JUMPF DCNABT
2222 002070'00 324740 002042* $RETT
2223
2224 002071'00 254 00 0 00 002370' DCNTB1: JRST DCNTYP ;AF$TYP - Type remote files
2225 002072'00 254 00 0 00 002640' JRST DCNPRN ;AF$PRN - Print remote files
2226
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 39
DAPLIB MAC 14-Jan-82 09:58 Active Task message and State tables
2227 SUBTTL Active Task message and State tables
2228
2229 002073'00 002101' 002133' DCNMLS: DCNS00,,DCNI00 ;DCN .LLCFG state
2230 002074'00 002104' 000000 DCNS01,,0 ;DCN .LLACC state
2231 002075'00 002111' 000000 DCNS02,,0 ;DCN .LLATT state
2232 002076'00 002120' 000000 DCNS03,,0 ;DCN .LLCTL state
2233 002077'00 002123' 000000 DCNS04,,0 ;DCN .LLDAT state
2234 002100'00 002126' 002142' DCNS05,,DCNI05 ;DCN .LLACP state
2235
2236
2237 ;Message dispatch for .LLCFG state
2238
2239 002101'00 000001 002203' DCNS00: .DMCFG,,DCNCFG
2240 002102'00 000011 002240' .DMSTS,,DCNSTS
2241 002103'00 000000 000000 0
2242
2243 ;Message dispatch for .LLACC state
2244
2245 002104'00 000007 002234' DCNS01: .DMACP,,DCNACP
2246 002105'00 000017 002220' .DMNAM,,DCNNAM
2247 002106'00 000002 002757' .DMATT,,VALATT
2248 002107'00 000011 002240' .DMSTS,,DCNSTS
2249 002110'00 000000 000000 0
2250
2251 ;Message dispatch for .LLATT state
2252
2253 002111'00 000015 003026' DCNS02: .DMDTI,,VALDTI
2254 002112'00 000016 003037' .DMPRO,,VALPRO
2255 002113'00 000017 002210' .DMNAM,,ATTNAM
2256 002114'00 000006 002226' .DMACK,,ATTACK
2257 002115'00 000007 002233' .DMACP,,ATTACP
2258 002116'00 000011 002240' .DMSTS,,DCNSTS
2259 002117'00 000000 000000 0
2260
2261 ;Message dispatch for .LLCTL state
2262
2263 002120'00 000006 002231' DCNS03: .DMACK,,CTLACK
2264 002121'00 000011 002240' .DMSTS,,DCNSTS
2265 002122'00 000000 000000 0
2266
2267 ;Message dispatch for .LLDAT state
2268
2269 002123'00 000010 011573' DCNS04: .DMDAT,,[$RETT] ;Processed by GETDAT
2270 002124'00 000011 002240' .DMSTS,,DCNSTS
2271 002125'00 000000 000000 0
2272
2273 ;Message dispatch for .LLACP state
2274
2275 002126'00 000007 002234' DCNS05: .DMACP,,DCNACP
2276 002127'00 000017 002215' .DMNAM,,ACPNAM
2277 002130'00 000011 002240' .DMSTS,,DCNSTS
2278 002131'00 000010 011573' .DMDAT,,[$RETT]
2279 002132'00 000000 000000 0
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 40
DAPLIB MAC 14-Jan-82 09:58 Active Task state initialization routines
2280 SUBTTL Active Task state initialization routines
2281
2282 ;Active Task initialization for .LLCFG state
2283
2284 002133'00 201 01 0 00 000020 DCNI00: MOVEI S1,DAPSIZ ;Clear Config storage
2285 002134'00 201 02 0 00 000000# MOVEI S2,DAPBEG ;...
2286 002135'00 260 17 0 00 000701* $CALL .ZCHNK ;...
2287 002136'00 201 01 0 00 004544 MOVEI S1,DPMXM ;Store maximum message size
2288 002137'00 202 01 0 00 000000# MOVEM S1,OURSIZ
2289 002140'00 260 17 0 00 003074' $CALL SNDCFG ;Send config message
2290 002141'00 324740 002070* $RETT
2291
2292
2293
2294 ;Active Task initialization for .LLACP state
2295
2296 002142'00 260 17 0 00 003274' DCNI05: $CALL SNDACP ;Send an access complete
2297 002143'00 324740 002141* $RETT
2298
2299
2300
2301
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 41
DAPLIB MAC 14-Jan-82 09:58 DCNMSG Active Task message processing routine
2302 SUBTTL DCNMSG Active Task message processing routine
2303
2304 002144'00 260 17 0 00 004667' DCNMSG: $CALL SNDQUE ;Dump the send queues
2305 JUMPF [$CALL LLRECV ;Check for incomming messages
2306 002145'00 322 00 0 00 012074' JRST DCNMSG] ;Finish sending what we started
2307 002146'00 627 13 0 00 000040 TXZN S,S%INIT ;State just change?
2308 002147'00 254 00 0 00 002154' JRST DCNMS1 ;No..check for messages
2309 002150'00 550 01 0 13 002073' HRRZ S1,DCNMLS(S) ;Get initialization address
2310 002151'00 322 01 0 00 002154' JUMPE S1,DCNMS1 ;State initialization routine?
2311 002152'00 260 17 0 01 000000 $CALL 0(S1) ;Yes..Call it
2312 002153'00 254 00 0 00 002144' JRST DCNMSG ;Back to send again
2313
2314 002154'00 332 00 0 00 000000# DCNMS1: SKIPE MSGFLG ;[0130]If there is a message
2315 002155'00 254 00 0 00 002171' JRST DCNMS2 ;[0130]Don't call LLCHK
2316 002156'00 607 13 0 00 000010 TXNN S,S%PUT ;[154]DO WE NEED A MESSAGE?
2317 002157'00 254 00 0 00 002171' JRST DCNMS2 ;[154]YES, GO DO IT
2318 002160'00 332 00 0 00 000000# SKIPE INTHAP ;[154]DID AN INTERRUPT OCCUR?
2319 002161'00 260 17 0 00 010210' $CALL LLCHK ;Get link status
2320 002162'00 332 00 0 00 000000# SKIPF MSGFLG ;[154]Message available?
2321 002163'00 254 00 0 00 002171' JRST DCNMS2 ;Yes..go process the message
2322 002164'00 260 17 0 00 001451' $CALL FILGET ;Send a record
2323 002165'00 322 00 0 00 002022* $RETIF ;Else return the status
2324 002166'00 607 13 0 00 000002 TXNN S,S%EOF ;Seen EOF?
2325 002167'00 254 00 0 00 002144' JRST DCNMSG ;No..back to send next record
2326 002170'00 324740 002143* $RETT ;Yes..return to caller
2327
2328 002171'00 302 13 0 00 000004 DCNMS2: CAIE S,.LLDAT ;In data state?
2329 002172'00 254 00 0 00 002175' JRST DCNMS3 ;No..dont check ACPFLG yet
2330 002173'00 356 00 0 00 000000# AOSN ACPFLG ;Want early ACCOMP
2331 002174'00 324740 002170* $RETT ;Yes..return to send it
2332 002175'00 554 01 0 13 002073' DCNMS3: HLRZ S1,DCNMLS(S) ;Get message list address
2333 002176'00 260 17 0 00 003577' $CALL GETMSG ;Read the message
2334 002177'00 322 00 0 00 002165* $RETIF ;Return failing status
2335 002200'00 627 13 0 00 000020 TXZN S,S%RETN ;Return to caller?
2336 002201'00 254 00 0 00 002144' JRST DCNMSG ;No..Back to get next message
2337 002202'00 324740 002174* $RETT
2338
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 42
DAPLIB MAC 14-Jan-82 09:58 DCNCFG Routine to process Config message
2339 SUBTTL DCNCFG Routine to process Config message
2340
2341 002203'00 260 17 0 00 002701' DCNCFG: $CALL VALCFG ;Validate the Config
2342 002204'00 322 00 0 00 002177* $RETIF ;Return failing status
2343 002205'00 200 13 0 00 011601' $STATE .LLACC ;Move to next state
2344 002206'00 661 13 0 00 000020 TXO S,S%RETN ;Return to caller
2345 002207'00 324740 002202* $RETT
2346
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 43
DAPLIB MAC 14-Jan-82 09:58 DCNNAM Routine to process Name message
2347 SUBTTL DCNNAM Routine to process Name message
2348
2349
2350 002210'00 260 17 0 00 003050' ATTNAM: $CALL VALNAM ;Validate the message
2351 002211'00 322 00 0 00 002204* $RETIF ;Return failing status
2352 002212'00 602 01 0 00 000001 TXNE S1,NA$FSP ;Filespec?
2353 002213'00 254 00 0 00 002222' JRST DCNNA1 ;Yes..Call user with the message
2354 002214'00 260 17 0 00 002252' $CALL DCNATR ;Call user with our attributes
2355 002215'00 213 00 0 15 000000 ACPNAM: MOVNS .DPTYP(DL) ;Request Reparse of this message
2356 002216'00 661 13 0 00 000020 TXO S,S%RETN ;Return to caller
2357 002217'00 324740 002207* $RETT
2358
2359 002220'00 260 17 0 00 003050' DCNNAM: $CALL VALNAM ;Validate the name
2360 002221'00 322 00 0 00 002211* $RETIF ;Return failing status
2361 002222'00 514 01 0 00 000001 DCNNA1: HRLZ S1,S1 ;Put flags in left half of S1
2362 002223'00 541 01 0 00 000017 HRRI S1,.DMNAM ;Identify name message
2363 002224'00 260 17 0 00 002254' $CALL DCNRTN ;Call user routine
2364 002225'00 324740 002217* $RETT ;Return success
2365
2366 SUBTTL ATTACK Routine to process ACK for Attributes message
2367 SUBTTL CTLACK Routine to process ACK for Control message
2368
2369 002226'00 201 01 0 00 000006 ATTACK: MOVX S1,.DMACK ;Get ack message type
2370 002227'00 201 02 0 00 000000# MOVEI S2,ATTFDB ;Point to FDB
2371 002230'00 260 17 0 00 002254' $CALL DCNRTN ;Call user routine
2372 002231'00 661 13 0 00 000020 CTLACK: TXO S,S%RETN ;Return to caller
2373 002232'00 324740 002225* $RETT ;Return success
2374
2375
2376
2377 SUBTTL DCNACP Routine to process Accomp (Resp)
2378
2379 002233'00 260 17 0 00 002252' ATTACP: $CALL DCNATR ;Call user with attributes
2380 002234'00 661 13 0 00 000021 DCNACP: TXO S,S%ACP+S%RETN ;Set Accomp and return flags
2381 002235'00 201 01 0 00 000007 MOVX S1,.DMACP ;Get message type
2382 002236'00 260 17 0 00 002254' $CALL DCNRTN ;Call user routine
2383 002237'00 324740 002232* $RETT ;Return success
2384
2385
2386 SUBTTL DCNSTS Routine to process Status message
2387
2388 002240'00 200 01 0 00 000000# DCNSTS: MOVE S1,STSCOD ;Get the status code
2389 002241'00 200 02 0 00 000000# MOVE S2,STSSTV ;Get the extended status
2390 002242'00 302 01 0 00 050047 CAXE S1,FLD(ER$TRN,ER%MAC)+FLD(ER$EOF,ER%MIC) ;EOF?
2391 002243'00 254 00 0 00 002246' JRST DCNSTE ;No..return the status
2392 002244'00 661 13 0 00 000022 TXO S,S%EOF+S%RETN ;Yes..Set EOF and return flags
2393 002245'00 324740 002237* $RETT
2394
2395 002246'00 561 03 0 00 000000# DCNSTE: HRROI T1,STSTXT ;Point to text storage
2396 002247'00 260 17 0 00 007614' $CALL TYPSTS ;Expand this error
2397 002250'00 661 13 0 00 000100 TXO S,S%LERR ;Set remote status error flag
2398 002251'00 324740 001660* $RETF
2399
2400 SUBTTL DCNATR Routine to call user with received attributes
2401
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 43-1
DAPLIB MAC 14-Jan-82 09:58 DCNATR Routine to call user with received attributes
2402 002252'00 201 01 0 00 000002 DCNATR: MOVEI S1,.DMATT ;Say we have an attribute msg
2403 002253'00 201 02 0 00 000000# MOVEI S2,ATTFDB ;Point to the fudged FDB
2404 002254'00 332 00 0 16 000001 DCNRTN: SKIPE .DFRTN(AP) ;User routine specified?
2405 002255'00 260 17 1 16 000001 $CALL @.DFRTN(AP) ;Yes..call it
2406 002256'00 263 17 0 00 000000 $RET ;Return TF from user routine
2407
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 44
DAPLIB MAC 14-Jan-82 09:58 DCNREC Active Task routine to receive a file
2408 SUBTTL DCNREC Active Task routine to receive a file
2409
2410 002257'00 201 01 0 00 000021' DCNREC: MOVEI S1,ATTMSD ;Clear initial attributes msg
2411 002260'00 260 17 0 00 004057' $CALL CLRMSG
2412 002261'00 336 01 0 00 000000# SKIPN S1,SRCMOD ;[125]Get our source mode
2413 002262'00 201 01 0 00 000010 MOVEI S1,.MD8 ;[125]DEFAULT TO ASCII
2414 002263'00 200 02 0 00 000000# MOVE S2,REMOST ;[125]GET OUR SYSTEM TYPE
2415 002264'00 306 02 0 00 000010 CAIN S2,.OSTP20 ;[125]TOPS20?
2416 JRST [SKIPN SRCMOD ;[125]YES, DEF FOR 20S IS IMAGE
2417 SETZ S1, ;[125]
2418 002265'00 254 00 0 00 012076' JRST .+1] ;[125]
2419 002266'00 200 02 0 16 000004 MOVE S2,.DFRFA(AP) ;[125]GET REMOTE SWITCHES
2420 002267'00 606 02 0 00 177777 TXNN S2,DF%MRS ;[125]was MRS specified?
2421 002270'00 660 02 0 00 001000 IORX S2,<FLD(^D512,DF%MRS)> ;[125]No..default to 512
2422 002271'00 260 17 0 00 007166' $CALL SETATT ;[125]Yes..setup requested mode
2423 002272'00 260 17 0 00 003461' $CALL SNDATT ;Send of dummy attributes
2424 002273'00 201 02 0 00 000002 MOVX S2,FB$GET ;Setup Access message
2425 002274'00 202 02 0 00 000000# MOVEM S2,ACCFAC ; to allow shared reading
2426 002275'00 200 01 0 00 000000# MOVE S1,OURDSP ;Setup access display
2427 002276'00 202 01 0 00 000000# MOVEM S1,ACCDSP ; to request all attributes
2428 002277'00 476 00 0 00 000000# SETOM CRCFLG ;Request CRC validation
2429 002300'00 260 17 0 00 003124' $CALL SNDACC ;Send out file Access message
2430 002301'00 201 01 0 00 177777 DCNR20: MOVX S1,POLINI ;[133]
2431 002302'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]INITIALIZE CRC
2432 002303'00 200 13 0 00 011601' $STATE .LLACC ;Wait for file attributes
2433 002304'00 260 17 0 00 002144' $CALL DCNMSG ;Get Servers response
2434 002305'00 322 00 0 00 002221* $RETIF ;Return failing status
2435
2436 002306'00 260 17 0 00 007437' $CALL ATLOOK ;Lookup the attributes
2437 JUMPF [SKIPN S1,SRCMOD ;Get source mode
2438 $FATAL (Remote file attributes not supported)
2439 $WARN (File attributes don't match processing mode)
2440 PUSH P,ATTMOD(S1) ;Save default destination mode
2441 MOVE S2,.DFRFA(AP) ;Setup specified attributes
2442 TXNN S2,DF%MRS ;MRS specified?
2443 IORX S2,<FLD(^D512,DF%MRS)> ;No..use nice default
2444 $CALL SETATT ;Set the attributes
2445 POP P,S2 ;Get default destination mode
2446 002307'00 322 00 0 00 012147' JRST .+1] ;Proceed
2447 002310'00 332 00 0 00 000000# SKIPE SRCMOD ;Have a source mode
2448 JRST [CAME S1,SRCMOD ;Yes..see if it matches
2449 $WARN (File attributes don't match processing mode)
2450 002311'00 254 00 0 00 012173' JRST .+2] ;Proceed
2451 002312'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;No..store what we have
2452 002313'00 336 00 0 00 000000# SKIPN DSTMOD ;Have a destination mode?
2453 002314'00 202 02 0 00 000000# MOVEM S2,DSTMOD ;No..store our default
2454 002315'00 260 17 0 00 007222' $CALL CHKMOD ;Make sure modes are legal
2455 002316'00 322 00 0 00 012220' JUMPF [$FATAL (Illegal destination processing mode)]
2456 002317'00 260 17 0 00 006302' $CALL SETOUT ;Setup for local file output
2457 002320'00 322 00 0 00 002305* $RETIF ;[147]
2458 002321'00 201 01 0 00 000017 MOVEI S1,.DMNAM ;Give caller expanded filespec
2459 002322'00 260 17 0 00 002254' $CALL DCNRTN
2460 002323'00 200 01 0 00 000000# MOVE S1,ATTBSZ ;Get attributes byte size
2461 002324'00 137 01 0 00 012221' STORE S1,.FBBYV+LOCFDB,FB%BSZ ;Save for image mode
2462 002325'00 260 17 0 00 007562' $CALL SETMOD ;Setup data mode
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 44-1
DAPLIB MAC 14-Jan-82 09:58 DCNREC Active Task routine to receive a file
2463 002326'00 322 00 0 00 012245' JUMPF [$FATAL (Can't establish requested mode for output)]
2464 002327'00 260 17 0 00 006325' $CALL OPNFIL ;OPEN LOCAL FILE FOR OUTPUT
2465 002330'00 322 00 0 00 002320* $RETIF ;[147]
2466 002331'00 260 17 0 00 003160' $CALL SNDCTC ;START UP A DATA STREAM
2467 002332'00 200 13 0 00 011716' $STATE .LLCTL ;Get response to control
2468 002333'00 260 17 0 00 002144' $CALL DCNMSG ;GET ACK FROM SERVER
2469 002334'00 322 00 0 00 002330* $RETIF ;Return failing status
2470 002335'00 260 17 0 00 003172' $CALL SNDCTR ;Start record retrivial
2471 002336'00 135 02 0 00 012246' LOAD S2,LOCDEV,DV%TYP ;GET DEVICE TYPE
2472 002337'00 302 02 0 00 000012 CAIE S2,.DVTTY ;IS IT A TTY?
2473 002340'00 254 00 0 00 002347' JRST DCNR30 ;NO -- GET FIRST MESSAGE
2474 002341'00 201 01 0 00 000015 MOVX S1,.CHCRT ;YES - START WITH A <CRLF>
2475 002342'00 260 17 0 00 006766' $CALL OUTBYT ;Write to terminal
2476 002343'00 322 00 0 00 002334* $RETIF ;Return the failure on error
2477 002344'00 201 01 0 00 000012 MOVX S1,.CHLFD ;...
2478 002345'00 260 17 0 00 006766' $CALL OUTBYT ;Write to terminal
2479 002346'00 322 00 0 00 002343* $RETIF
2480 002347'00 200 13 0 00 012247' DCNR30: $STATE .LLDAT ;Accept Data or Status
2481 002350'00 260 17 0 00 002144' $CALL DCNMSG ;Process Data until EOF Status
2482 002351'00 322 00 0 00 002346* $RETIF ;Return failing status
2483 002352'00 260 17 0 00 004404' $CALL TSTPRN ;Terminate print file format
2484 002353'00 200 13 0 00 012250' $STATE .LLACP ;Wait for Accomp (Resp)
2485 002354'00 260 17 0 00 002144' $CALL DCNMSG ;GET THE ACCOMP ACK
2486 002355'00 322 00 0 00 002351* $RETIF ;Return failing status
2487 002356'00 400 01 0 00 000000 SETZ S1, ;[137]DON'T DELETE
2488 002357'00 260 17 0 00 006406' $CALL CLSFIL ;CLOSE OUT LOCAL FILE
2489 002360'00 322 00 0 00 002355* $RETIF ;[147]
2490 002361'00 603 13 0 00 000001 TXNE S,S%ACP ;Access complete?
2491 002362'00 324740 002245* $RETT ;Yes..just return
2492 002363'00 336 00 0 16 000004 SKIPN .DFRFA(AP) ;Remote mode specified?
2493 002364'00 402 00 0 00 000000# SETZM SRCMOD ;No..clear sorce mode
2494 002365'00 336 00 0 16 000002 SKIPN .DFLFA(AP) ;Local mode specified?
2495 002366'00 402 00 0 00 000000# SETZM DSTMOD ;No..clear destination mode
2496 002367'00 254 00 0 00 002301' JRST DCNR20 ;Back for next file
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 45
DAPLIB MAC 14-Jan-82 09:58 DCNTYP Active task to type remote files
2497 SUBTTL DCNTYP Active task to type remote files
2498
2499 002370'00 201 01 0 00 000021' DCNTYP: MOVEI S1,ATTMSD ;Clear initial attributes
2500 002371'00 260 17 0 00 004057' $CALL CLRMSG
2501 002372'00 201 01 0 00 000010 MOVEI S1,.MD8 ;Pretend user typed /ASCII
2502 002373'00 201 02 0 00 001000 MOVX S2,<FLD(^D512,DF%MRS)> ;Default MRS
2503 002374'00 260 17 0 00 007166' $CALL SETATT ;Set up dummy attributes message
2504 002375'00 260 17 0 00 003461' $CALL SNDATT ;Send of dummy attributes
2505 002376'00 201 01 0 00 000101 MOVEI S1,.PRIOU ;Output to terminal
2506 002377'00 202 01 0 00 000000# MOVEM S1,LOCJFN
2507 002400'00 201 01 0 00 000001 MOVX S1,AF$OPN ;Function is read existing file
2508 002401'00 202 01 0 00 000000# MOVEM S1,ACCFNC
2509 002402'00 201 01 0 00 000002 MOVX S1,FB$GET ;SET UP FAC FIELD
2510 002403'00 202 01 0 00 000000# MOVEM S1,ACCFAC ;TO ALLOW SHARED READING
2511 002404'00 201 01 0 00 000401 MOVX S1,DI$ATT+DI$NAM ;Display Attributes and name
2512 002405'00 202 01 0 00 000000# MOVEM S1,ACCDSP
2513 002406'00 260 17 0 00 003124' $CALL SNDACC ;Send out file Access message
2514 002407'00 201 01 0 00 177777 DCNT20: MOVX S1,POLINI ;[133]
2515 002410'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]INITIALIZE CRC
2516 002411'00 200 13 0 00 011601' $STATE .LLACC ;Get attributes and Ack
2517 002412'00 260 17 0 00 002144' $CALL DCNMSG ;Get Servers response
2518 002413'00 322 00 0 00 002360* $RETIF ;Return failing status
2519 002414'00 260 17 0 00 007437' $CALL ATLOOK ;Find attributes
2520 002415'00 322 00 0 00 012263' JUMPF [$FATAL (Remote file attributes not supported)]
2521 002416'00 202 01 0 00 000000# MOVEM S1,SRCMOD ;Save the mode
2522 002417'00 202 02 0 00 000000# MOVEM S2,DSTMOD ;Save default output mode
2523 002420'00 302 02 0 00 000010 CAIE S2,.MD8 ;Destination mode must be ascii
2524 002421'00 260 17 0 00 012276' $FATAL (File is not ASCII)
2525 002422'00 200 01 0 01 007336' MOVE S1,MODTB3(S1) ;Get processor address
2526 002423'00 202 01 0 00 000000# MOVEM S1,DATDAT ;Save it
2527 002424'00 260 17 0 00 003160' $CALL SNDCTC ;START UP A DATA STREAM
2528 002425'00 200 13 0 00 011716' $STATE .LLCTL ;Accept Ack from server
2529 002426'00 260 17 0 00 002144' $CALL DCNMSG ;Get the Ack
2530 002427'00 322 00 0 00 002413* $RETIF ;Return failing status
2531 002430'00 260 17 0 00 003172' $CALL SNDCTR ;Start record retrivial
2532 002431'00 200 13 0 00 012247' $STATE .LLDAT ;Accept Data or Status
2533 002432'00 260 17 0 00 002144' $CALL DCNMSG
2534 002433'00 322 00 0 00 002427* $RETIF ;Return failing status
2535 002434'00 260 17 0 00 004404' $CALL TSTPRN ;Do CRLF if needed
2536 002435'00 200 13 0 00 012250' $STATE .LLACP ;Wait for Access complete
2537 002436'00 260 17 0 00 002144' $CALL DCNMSG ;GET THE ACCOMP ACK
2538 002437'00 322 00 0 00 002433* $RETIF ;Return failing status
2539 002440'00 607 13 0 00 000001 TXNN S,S%ACP ;Access complete
2540 002441'00 254 00 0 00 002407' JRST DCNT20 ;No..process next file
2541 002442'00 324740 002362* $RETT ;ALL DONE!
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 46
DAPLIB MAC 14-Jan-82 09:58 DCNSND Active task to send files
2542 SUBTTL DCNSND Active task to send files
2543
2544 ;DCNSND Holds these truths to be self evident:
2545
2546 ; 1) The default mode for reading files is /IMAGE if no switches
2547 ; are specified.
2548
2549 ; 2) The local file will be read using the mode specified by the
2550 ; local file switches.
2551
2552 ; 3) If the user specified any remote file switches the file will
2553 ; be created using specified mode.
2554
2555 ; 4) If no remote switches are specified the remote file will be
2556 ; created using the mode of the input file. If the remote FAL
2557 ; cannot create files in that mode the following occurs:
2558
2559 ; a) If the local input mode is /ASCII a second try will be made
2560 ; to create the file as if the user had specified /ASCII/VARIABLE
2561 ; on the remote file specification.
2562
2563
2564 002443'00 260 17 0 00 001520* DCNSND: $SAVE <P1> ;Preserve an AC
2565 002444'00 260 17 0 00 006241' $CALL SETINP ;Setup for local file input
2566 002445'00 322 00 0 00 002437* $RETIF ;[147]
2567 002446'00 201 01 0 00 000017 MOVEI S1,.DMNAM ;Signify name message type
2568 002447'00 260 17 0 00 002254' $CALL DCNRTN ;Give expanded name to caller
2569 002450'00 336 00 0 16 000002 SKIPN .DFLFA(AP) ;Local file mode specified?
2570 JRST [SETZM SRCMOD ;No..clear requested mode
2571 MOVE T1,REMOST ;Talking to TOPS20?
2572 CAIN T1,.OSTP20 ;[103]
2573 JRST .+1 ;Yes..use default mode
2574 LOAD T2,.FBBYV+LOCFDB,FB%BSZ ;[103]No..get file bytesize
2575 MOVEI S1,.MD1 ;Assume image mode
2576 CAIE T1,.OSTP10 ;[103]TOPS10?
2577 CAIE T2,^D36 ;[103]Unless bytesize is 7 or 36
2578 CAIN T2,^D7 ;[103]
2579 MOVEI S1,.MD8 ;Use ascii mode
2580 MOVEM S1,SRCMOD
2581 002451'00 254 00 0 00 012303' JRST .+1] ;Continue
2582 002452'00 260 17 0 00 007562' $CALL SETMOD ;Setup proper data mode
2583 002453'00 322 00 0 00 012341' JUMPF [$FATAL (Can't establish requested input mode)]
2584 002454'00 202 02 0 00 000000# STORE S2,ATTBSZ ;Save bytesize for attributes
2585 002455'00 201 01 0 00 020000 MOVX S1,AT$BSZ ;Set bitsize menu bit
2586 002456'00 436 01 0 00 000000# IORM S1,ATTMNU
2587 002457'00 260 17 0 00 006325' $CALL OPNFIL ;Open in requested mode
2588 002460'00 326 00 0 00 002464' JUMPT DCNSN1 ;[131]Branch if OPENF succeeded
2589 002461'00 302 02 0 00 602327 CAIE S2,OPNX31 ;[131]Off-line file?
2590 002462'00 322 00 0 00 002445* $RETIF ;[147]
2591 002463'00 324740 002442* $RETT ;[131]Off-line, go on to next
2592 002464'00 200 01 0 00 000000# DCNSN1: MOVE S1,SRCMOD ;[131]Get our source mode
2593 002465'00 505 07 0 00 440400 HRLI P1,(POINT 4) ;Create default mode pointer
2594 002466'00 541 07 0 01 007321' HRRI P1,MODTB2(S1) ; per source mode
2595 002467'00 336 01 0 00 000000# SKIPN S1,DSTMOD ;Have a destination mode?
2596 002470'00 134 01 0 00 000007 ILDB S1,P1 ;No..get default
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 46-1
DAPLIB MAC 14-Jan-82 09:58 DCNSND Active task to send files
2597 002471'00 336 00 0 00 000001 DCNS10: SKIPN S1 ;[125]DO WE HAVE A DEST MODE?
2598 002472'00 260 17 0 00 007233' $CALL PICMOD ;[125]NO, GO PICK ONE
2599 002473'00 200 02 0 16 000004 MOVE S2,.DFRFA(AP) ;Get remote attributes
2600 002474'00 606 02 0 00 177777 TXNN S2,DF%MRS ;MRS specified?
2601 002475'00 660 02 0 00 001000 IORX S2,<FLD(^D512,DF%MRS)> ;No..use nice default
2602 002476'00 260 17 0 00 007166' $CALL SETATT ;Yes..setup attributes
2603 002477'00 200 01 0 00 000000# MOVE S1,REMOST ;[153]GET SYSTEM TYPE
2604 002500'00 302 01 0 00 000002 CAIE S1,.OSRST ;[153]IS IT RSTS?
2605 002501'00 254 00 0 00 002506' JRST DCNS11 ;[153]NO
2606 002502'00 201 01 0 00 000400 MOVX S1,FB$SUP ;[153]SUPERCEED EXISTING FILE
2607 002503'00 436 01 0 00 000000# IORM S1,ATTFOP ;[153]
2608 002504'00 201 01 0 00 010000 MOVX S1,AT$FOP ;[153]MENU BIT FOR FOP FIELD
2609 002505'00 436 01 0 00 000000# IORM S1,ATTMNU ;[153]SET IT
2610 002506'00 200 01 0 00 000000# DCNS11: MOVE S1,OURDSP ;Send out all supported attribs
2611 002507'00 620 01 0 00 000400 TXZ S1,DI$NAM ;Except name attributes
2612 002510'00 260 17 0 00 003356' $CALL SNDDSP ;Send file attributes
2613 002511'00 201 02 0 00 000001 MOVX S2,FB$PUT ;Setup ACCESS (Create)
2614 002512'00 202 02 0 00 000000# MOVEM S2,ACCFAC
2615 002513'00 201 01 0 00 000401 MOVX S1,DI$ATT+DI$NAM ;Request Attributes and name
2616 002514'00 202 01 0 00 000000# MOVEM S1,ACCDSP
2617 002515'00 476 00 0 00 000000# SETOM CRCFLG ;Request CRC validation
2618 002516'00 260 17 0 00 003124' $CALL SNDACC ;Send off the Access message
2619 002517'00 200 13 0 00 011601' $STATE .LLACC ;Accept Ack for Access
2620 002520'00 260 17 0 00 002144' $CALL DCNMSG ;Get servers response
2621 002521'00 326 00 0 00 002533' JUMPT DCNS20 ;Onward if we received ack
2622
2623 ;Here to see if we can try a second default for remote file attributes
2624
2625 002522'00 200 03 0 00 000001 MOVE T1,S1 ;Get the error code
2626 002523'00 620 03 0 00 000077 TXZ T1,ER%FLD ;Clear field type
2627 002524'00 302 03 0 00 020200 CAXE T1,FLD(ER$USP,ER%MAC)+FLD(.DMATT,ER%TYP)
2628 002525'00 324740 002251* $RETF ;No..return the DAP status
2629 002526'00 332 00 0 16 000004 SKIPE .DFRFA(AP) ;Remote switches specified?
2630 002527'00 260 17 0 00 012362' $FATAL (Remote system does not support requested mode)
2631 002530'00 134 01 0 00 000007 ILDB S1,P1 ;Get the next default
2632 002531'00 326 01 0 00 002471' JUMPN S1,DCNS10 ;Yes..try it out
2633 002532'00 260 17 0 00 012405' $FATAL (Remote system does not support default mode)
2634
2635 002533'00 201 01 0 00 177777 DCNS20: MOVX S1,POLINI ;[133]
2636 002534'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]INITIALIZE CRC
2637 002535'00 260 17 0 00 003160' $CALL SNDCTC ;START UP A DATA STREAM
2638 002536'00 200 13 0 00 011716' $STATE .LLCTL ;Get Ack for Contol
2639 002537'00 260 17 0 00 002144' $CALL DCNMSG ;GET THE ACK
2640 002540'00 322 00 0 00 002462* $RETIF ;Get failing status
2641 002541'00 260 17 0 00 003204' $CALL SNDCTS ;Send ctl msg to start Xmission
2642 002542'00 200 13 0 00 011772' $STATE .LLDAT+S%PUT ;We're doing a PUT
2643 002543'00 260 17 0 00 002144' $CALL DCNMSG ;Send the data
2644 002544'00 322 00 0 00 002540* $RETIF ;Get failing status
2645 002545'00 200 13 0 00 012250' $STATE .LLACP ;Access complete state
2646 002546'00 260 17 0 00 002144' $CALL DCNMSG ;Get the Accomp (Resp)
2647 002547'00 322 00 0 00 002544* $RETIF ;Get failing status
2648 002550'00 400 01 0 00 000000 SETZ S1, ;[137]DON'T DELETE
2649 002551'00 260 17 0 00 006406' $CALL CLSFIL ;CLOSE OUT LOCAL FILE
2650 002552'00 322 00 0 00 002547* $RETIF ;[147]
2651 002553'00 324740 002463* $RETT ;ALL DONE!
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 46-2
DAPLIB MAC 14-Jan-82 09:58 DCNSND Active task to send files
2652
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 47
DAPLIB MAC 14-Jan-82 09:58 DCNDEL ACTIVE TASK TO DELETE A FILE
2653 SUBTTL DCNDEL ACTIVE TASK TO DELETE A FILE
2654 SUBTTL DCNEXE ACTIVE TASK TO EXECUTE A FILE
2655
2656 002554'00 200 01 0 00 000000# DCNEXE: MOVE S1,OURCAP ;Get capabilities
2657 002555'00 606 01 0 00 040000 TXNN S1,SY$EXE ;Support submit?
2658 002556'00 260 17 0 00 012431' $FATAL (Remote system does not support file submission)
2659 002557'00 201 01 0 00 000400 DCNDEL: MOVX S1,DI$NAM ;Display file name
2660 002560'00 202 01 0 00 000000# MOVEM S1,ACCDSP
2661 002561'00 260 17 0 00 003124' $CALL SNDACC ;SEND ACCESS MESSAGE FOR DELETE
2662 002562'00 201 01 0 00 177777 DCND70: MOVX S1,POLINI ;[133]
2663 002563'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]INITIALIZE CRC
2664 002564'00 200 13 0 00 011601' $STATE .LLACC ;Get Name from Access or Accomp
2665 002565'00 260 17 0 00 002144' $CALL DCNMSG ;GET THE SERVERS ACCOMP
2666 002566'00 322 00 0 00 002552* $RETIF ;Get failing status
2667 002567'00 322 00 0 00 002525* JUMPF .RETF
2668 002570'00 607 13 0 00 000001 TXNN S,S%ACP ;Access complete?
2669 002571'00 254 00 0 00 002562' JRST DCND70 ;No..back for next file
2670 002572'00 324740 002553* $RETT ;ALL DONE!
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 48
DAPLIB MAC 14-Jan-82 09:58 DCNDIR Active Task routine to process Directory request
2671 SUBTTL DCNDIR Active Task routine to process Directory request
2672
2673 002573'00 200 01 0 00 000000# DCNDIR: MOVE S1,OURCAP ;Get mutual capabilities
2674 002574'00 607 01 0 00 000200 TXNN S1,SY$DIR ;Support directory?
2675 002575'00 254 00 0 00 002645' JRST DCNPR1 ;No..try anyhow!
2676 002576'00 200 01 0 00 000000# MOVE S1,OURDSP ;Get mutually supported display
2677 002577'00 620 01 0 00 000400 TXZ S1,DI$NAM ;Get all except name
2678 002600'00 202 01 0 00 000000# MOVEM S1,ACCDSP ;Display all
2679 002601'00 260 17 0 00 003124' $CALL SNDACC ;Send ACCESS (DIRECTORY)
2680 002602'00 201 01 0 00 177777 DCNDI1: MOVX S1,POLINI ;[133]RESET...
2681 002603'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]...THE CRC
2682 002604'00 200 13 0 00 011601' $STATE .LLACC ;Get response from Access
2683 002605'00 402 00 0 00 000000# SETZM ATTMNU ;Clear attributes menu
2684 002606'00 402 00 0 00 000000# SETZM DTIMNU ;Clear date/time menu
2685 002607'00 402 00 0 00 000000# SETZM PROMNU ;Clear protection menu
2686 002610'00 260 17 0 00 002144' $CALL DCNMSG ;Process the server's responses
2687 002611'00 326 00 0 00 002635' JUMPT DCNDI2 ;[132]Got valid message
2688 002612'00 607 13 0 00 000100 TXNN S,S%LERR ;[132]STATUS MESS RECEIVED?
2689 002613'00 263 17 0 00 000000 $RET ;[132]NO
2690 002614'00 200 01 0 00 000000# MOVE S1,STSCOD ;[132]Get status
2691 002615'00 200 02 0 00 000000# MOVE S2,STSSTV ;[132]
2692 002616'00 306 01 0 00 040060 CAXN S1,FLD(ER$FIL,ER%MAC)+FLD(ER$FLK,ER%MIC) ;[132]FILE LOCKED?
2693 002617'00 254 00 0 00 002627' JRST DCNDI0 ;[132]YES, CONTINUE
2694 002620'00 306 01 0 00 040125 CAXN S1,FLD(ER$FIL,ER%MAC)+FLD(ER$PRV,ER%MIC) ;[132]PRIV VIOLATION?
2695 002621'00 254 00 0 00 002627' JRST DCNDI0 ;[132]YES, CONTINUE
2696 002622'00 306 01 0 00 040002 CAXN S1,FLD(ER$FIL,ER%MAC)+FLD(ER$ACC,ER%MIC) ;[132]CAN'T ACCESS?
2697 002623'00 254 00 0 00 002627' JRST DCNDI0 ;[132]YES, CONTINUE
2698 002624'00 306 01 0 00 040012 CAXN S1,FLD(ER$FIL,ER%MAC)+FLD(ER$ATR,ER%MIC) ;[132]ATT READ ERROR?
2699 002625'00 254 00 0 00 002627' JRST DCNDI0 ;[132]YES, CONTINUE
2700 002626'00 263 17 0 00 000000 $RET ;[132]DON'T CONTINUE
2701 002627'00 561 03 0 00 000000# DCNDI0: HRROI T1,STSTXT ;[132]Storage for error status
2702 002630'00 260 17 0 00 007614' $CALL TYPSTS ;[132]Store error text
2703 002631'00 260 17 0 00 000770* $TEXT (,^T/NAMFNM/ Remote status - ^T/STSTXT/) ;[132]
2704 002633'00 260 17 0 00 003247' $CALL SNDCON ;[132]Yes, send CONTROL(skip)
2705 002634'00 254 00 0 00 002602' JRST DCNDI1 ;[132]Continue
2706
2707 002635'00 607 13 0 00 000001 DCNDI2: TXNN S,S%ACP ;[132]Access complete?
2708 002636'00 254 00 0 00 002602' JRST DCNDI1 ;No..back for next file
2709 002637'00 324740 002572* $RETT
2710
2711
2712 002640'00 200 01 0 00 000000# DCNPRN: MOVE S1,OURCAP ;Get mutual capabilities
2713 002641'00 607 01 0 00 004000 TXNN S1,SY$SPL ;Support spooling?
2714 002642'00 260 17 0 00 012471' $FATAL (Remote system does not support spooling option)
2715 002643'00 205 01 0 00 000004 MOVX S1,FB$SPL ;Yes..save for Access complete
2716 002644'00 202 01 0 00 000000# MOVEM S1,ACPFOP
2717
2718 002645'00 201 01 0 00 000021' DCNPR1: MOVEI S1,ATTMSD ;Point to attributes message
2719 002646'00 260 17 0 00 004057' $CALL CLRMSG ;Clear it
2720 002647'00 205 02 0 00 000004 MOVX S2,FB$SPL ;[146]FOP BIT FOR PRINTING
2721 002650'00 202 02 0 00 000000# MOVEM S2,ATTFOP ;[146]SAVE IN ATTRIBUTES MESSAGE
2722 002651'00 201 02 0 00 010000 MOVX S2,AT$FOP ;[146]FOP MENU BIT
2723 002652'00 202 02 0 00 000000# MOVEM S2,ATTMNU ;[146]SET IN ATTRIBUTES MENU
2724 002653'00 260 17 0 00 004716' $CALL QUEMSG ;Send it off
2725 002654'00 322 00 0 00 002566* $RETIF
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 48-1
DAPLIB MAC 14-Jan-82 09:58 DCNDIR Active Task routine to process Directory request
2726 002655'00 201 01 0 00 000001 MOVX S1,AF$OPN ;Open the file
2727 002656'00 202 01 0 00 000000# MOVEM S1,ACCFNC
2728 002657'00 201 01 0 00 000002 MOVX S1,FB$GET ;SET UP FAC FIELD
2729 002660'00 202 01 0 00 000000# MOVEM S1,ACCFAC ;TO ALLOW SHARED READING
2730 002661'00 200 01 0 00 000000# MOVE S1,OURDSP ;Request all attributes
2731 002662'00 202 01 0 00 000000# MOVEM S1,ACCDSP
2732 002663'00 260 17 0 00 003124' $CALL SNDACC ;Send out file Access message
2733 002664'00 201 01 0 00 177777 DCNPR2: MOVX S1,POLINI ;[133]RESET...
2734 002665'00 202 01 0 00 000000# MOVEM S1,FILCRC ;[133]...THE CRC
2735 002666'00 200 13 0 00 011601' $STATE .LLACC ;Wait for file attributes
2736 002667'00 260 17 0 00 002144' $CALL DCNMSG ;Get Servers response
2737 002670'00 322 00 0 00 002654* $RETIF ;Return failing status
2738 002671'00 200 13 0 00 012250' $STATE .LLACP ;Wait for Accomp (Resp)
2739 002672'00 260 17 0 00 002144' $CALL DCNMSG ;GET THE ACCOMP ACK
2740 002673'00 322 00 0 00 002670* $RETIF ;Return failing status
2741 002674'00 607 13 0 00 000001 TXNN S,S%ACP ;Access complete?
2742 002675'00 254 00 0 00 002664' JRST DCNPR2 ;No..back for next file
2743 002676'00 324740 002637* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 49
DAPLIB MAC 14-Jan-82 09:58 DCN Unimplimented functions
2744 SUBTTL DCN Unimplimented functions
2745
2746 002677'00 260 17 0 00 012503' DCNREN: $FATAL (Function not implimented)
2747 002700'00 260 17 0 00 012515' DCNSUB: $FATAL (Function not implimented)
2748
2749
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 50
DAPLIB MAC 14-Jan-82 09:58 VALCFG Validate contents of a CONFIG message
2750 SUBTTL VALCFG Validate contents of a CONFIG message
2751
2752 002701'00 201 01 0 00 004544 VALCFG: MOVX S1,DPMXM ;Get my maximum message size
2753 002702'00 200 02 0 00 000000# MOVE S2,REMOST ;[106]
2754 002703'00 306 02 0 00 000007 CAIN S2,.OSVAX ;[106]A VAX?
2755 002704'00 201 01 0 00 003144 MOVEI S1,DPMXMV ;[106]YES
2756 002705'00 332 00 0 00 000000# SKIPE CFGSIZ ;Use it if Config size is zero
2757 002706'00 315 01 0 00 000000# CAMGE S1,CFGSIZ ;Is config size smallest?
2758 002707'00 202 01 0 00 000000# MOVEM S1,CFGSIZ ;No..use my maximum size
2759 002710'00 200 01 0 00 000000# MOVE S1,CFGSIZ ;Compute maximim record size
2760 002711'00 202 01 0 00 000000# MOVEM S1,OURSIZ ;Save as maximum buffer size
2761 002712'00 275 01 0 00 000006 SUBI S1,DPMXH-2 ; as buffer size minus maximum
2762 002713'00 202 01 0 00 000000# MOVEM S1,OURMRS ; header size
2763 002714'00 336 01 0 00 000000# SKIPN S1,CFGOST ;OSTYPE valid?
2764 002715'00 254 00 0 00 012521' $MIERR .DMCFG,21 ;No..illegal field value
2765 002716'00 332 00 0 00 000000# SKIPE REMOST ;[106]If remote type not specified..
2766 002717'00 316 01 0 00 000000# CAMN S1,REMOST ;[106]..or specified correctly
2767 002720'00 334 00 0 00 000000 SKIPA ;[106]Don't complain
2768 002721'00 260 17 0 00 012547' $WARN (Remote OS type different from that specified with SET DEFAULT)
2769 ;[106]
2770 002722'00 202 01 0 00 000000# MOVEM S1,REMOST ;Save remote OSTYPE
2771 002723'00 336 00 0 00 000000# SKIPN CFGFST ;Filesys field valid?
2772 002724'00 254 00 0 00 012553' $MIERR .DMCFG,22 ;No..illegal field value
2773 002725'00 200 01 0 00 000000# MOVE S1,CFGVER ;Get Major DAP version
2774 002726'00 137 01 0 00 012556' DPB S1,[POINT 8,T1,7] ;Assemble version info
2775 002727'00 200 01 0 00 000000# MOVE S1,CFGECO ;Get minor DAP version
2776 002730'00 137 01 0 00 012557' DPB S1,[POINT 8,T1,15]
2777 002731'00 200 01 0 00 000000# MOVE S1,CFGUSR ;Get DAP user version
2778 002732'00 137 01 0 00 012560' DPB S1,[POINT 8,T1,23]
2779 002733'00 200 01 0 00 000000# MOVE S1,CFGSFT ;Get DAP software version
2780 002734'00 137 01 0 00 012561' DPB S1,[POINT 8,T1,31]
2781 002735'00 200 01 0 00 000000# MOVE S1,CFGUSS ;Get user software version
2782 002736'00 137 01 0 00 012562' DPB S1,[POINT 4,T1,35]
2783 002737'00 313 03 0 00 012563' CAXLE T1,DAPVER ;Use lowest version
2784 002740'00 200 03 0 00 012563' MOVX T1,DAPVER
2785 002741'00 202 03 0 00 000000# MOVEM T1,OURVER
2786 002742'00 120 01 0 00 000000# DMOVE S1,CFGCAP ;Get system capabilities
2787 002743'00 404 01 0 00 012564' AND S1,[CAP1] ;Get logical AND of capabilities
2788 002744'00 404 02 0 00 012565' AND S2,[CAP2] ; ...
2789 002745'00 124 01 0 00 000000# DMOVEM S1,OURCAP ;Save as our mutual capabilities
2790 002746'00 201 04 0 00 000001 MOVX T2,DI$ATT ;Get attributes display bit
2791 002747'00 603 01 0 00 001000 TXNE S1,SY$PRO ;Support protection attributes?
2792 002750'00 660 04 0 00 000040 TXO T2,DI$PRO ;Yes..Dont request it's display
2793 002751'00 603 01 0 00 000400 TXNE S1,SY$DTI ;Support date/time attributes?
2794 002752'00 660 04 0 00 000020 TXO T2,DI$DTI ;Yes..Dont request it' display
2795 002753'00 602 02 0 00 000020 TXNE S2,SY$NAM ;Support name message?
2796 002754'00 660 04 0 00 000400 TXO T2,DI$NAM ;Yes..Dont request it's display
2797 002755'00 202 04 0 00 000000# MOVEM T2,OURDSP ;Save mutual display bits
2798 002756'00 324740 002676* $RETT
2799
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 51
DAPLIB MAC 14-Jan-82 09:58 VALATT Validate contents of an ATTRIBUTES message
2800 SUBTTL VALATT Validate contents of an ATTRIBUTES message
2801
2802 002757'00 200 01 0 00 000000# VALATT: MOVE S1,ATTDAT ;Get DATATYPE field
2803 002760'00 135 02 0 00 011546' LOAD S2,.DFFLG(AP),DF%ACC ;[135]GET FUNCTION
2804 002761'00 306 02 0 00 000006 CAIN S2,AF$DIR ;[135]DIRECTORY?
2805 002762'00 254 00 0 00 002765' JRST NODATC ;[135]YES, DON'T CHECK DAT
2806 002763'00 606 01 0 00 000003 TXNN S1,DT$ASC!DT$IMA ;Ascii or image?
2807 002764'00 254 00 0 00 012566' $MIERR .DMATT,21 ;No..illegal field
2808 002765'00 602 01 0 00 000014 NODATC: TXNE S1,DT$EBC!DT$CMP ;[135]Ebcdic or compressed?
2809 002766'00 254 00 0 00 011706' $MUERR .DMATT,21 ;Yes..unsupported attributes
2810 002767'00 201 01 0 00 000037 MOVEI S1,.FBLEN ;Get the size of our FDB
2811 002770'00 201 02 0 00 000000# MOVEI S2,ATTFDB ;Point to it
2812 002771'00 260 17 0 00 002135* $CALL .ZCHNK ;Clear it
2813 002772'00 200 01 0 00 000000# MOVE S1,ATTBSZ ;Save byte size from attributes
2814 002773'00 303 01 0 00 000044 CAILE S1,^D36 ;Too large?
2815 002774'00 254 00 0 00 012571' $MIERR .DMATT,36 ;Yes..return unsupported
2816 002775'00 137 01 0 00 012574' STORE S1,.FBBYV+ATTFDB,FB%BSZ
2817 002776'00 200 03 0 00 000000# MOVE T1,ATTMNU ;Get attributes menu
2818 002777'00 606 03 0 00 000100 TXNN T1,AT$ALQ ;ALQ field present?
2819 003000'00 254 00 0 00 003012' JRST VALAT1 ;No..skip it
2820 003001'00 200 01 0 00 000000# MOVE S1,ATTALQ ;Number of blocks allocated
2821 003002'00 231 01 0 00 000004 IDIVI S1,4 ; divided by 4
2822 003003'00 332 00 0 00 000002 SKIPE S2 ; rounded up
2823 003004'00 271 01 0 00 000001 ADDI S1,1 ; equals number of pages
2824 003005'00 542 01 0 00 000000# STORE S1,.FBBYV+ATTFDB,FB%PGC
2825 003006'00 336 01 0 00 000000# SKIPN S1,ATTBLS ;Block size given?
2826 003007'00 201 01 0 00 001000 MOVEI S1,^D512 ;No..assume 512
2827 003010'00 220 01 0 00 000000# IMUL S1,ATTALQ ;BLS * ALQ
2828 003011'00 202 01 0 00 000000# STORE S1,.FBSIZ+ATTFDB ;Is approximate file byte count
2829 003012'00 650 03 0 00 012575' VALAT1: TXC T1,AT$EBK+AT$BLS+AT$FFB ;Can we compute file byte count?
2830 003013'00 652 03 0 00 012575' TXCE T1,AT$EBK+AT$BLS+AT$FFB
2831 003014'00 254 00 0 00 003022' JRST VALAT3 ;No..skip it
2832 003015'00 200 01 0 00 000000# MOVE S1,ATTEBK ;Yes..end of file block
2833 003016'00 275 01 0 00 000001 SUBI S1,1 ; Converted to LBN
2834 003017'00 220 01 0 00 000000# IMUL S1,ATTBLS ; times bytes per block
2835 003020'00 270 01 0 00 000000# ADD S1,ATTFFB ; plus first free byte
2836 003021'00 202 01 0 00 000000# STORE S1,.FBSIZ+ATTFDB ; equals file byte count
2837 003022'00 200 01 0 00 000000# VALAT3: MOVE S1,ATTFOP ;Save attributes options
2838 003023'00 202 01 0 00 000000# MOVEM S1,FILFOP
2839 003024'00 200 13 0 00 012576' $STATE .LLATT ;Move to attributes state
2840 003025'00 324740 002756* $RETT
2841
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 52
DAPLIB MAC 14-Jan-82 09:58 VALDTI Validate the contents of DATE/TIME attributes extention
2842 SUBTTL VALDTI Validate the contents of DATE/TIME attributes extention
2843
2844 003026'00 336 03 0 00 000000# VALDTI: SKIPN T1,DTIMNU ;Anything specified?
2845 003027'00 324740 003025* $RETT ;No..just return
2846 003030'00 200 01 0 00 000000# MOVE S1,DTICDT ;Get creation date/time
2847 003031'00 602 03 0 00 000001 TXNE T1,DA$CDT ;Was it given?
2848 003032'00 202 01 0 00 000000# MOVEM S1,.FBCRV+ATTFDB ;Yes..store it
2849 003033'00 200 01 0 00 000000# MOVE S1,DTIRDT ;Get last update date/time
2850 003034'00 602 03 0 00 000002 TXNE T1,DA$RDT ;Was it specified?
2851 003035'00 202 01 0 00 000000# MOVEM S1,.FBWRT+ATTFDB ;Yes..store it
2852 003036'00 324740 003027* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 53
DAPLIB MAC 14-Jan-82 09:58 VALPRO Validate the contents of protection attributes message
2853 SUBTTL VALPRO Validate the contents of protection attributes message
2854
2855 003037'00 336 03 0 00 000000# VALPRO: SKIPN T1,PROMNU ;Get protection menu
2856 003040'00 324740 003036* $RETT ;Return if menu is null
2857 ;[116]deleted 3 lines here
2858 003041'00 332 01 0 00 000000# SKIPE S1,PROSLF ;Get owners protection
2859 003042'00 137 01 0 00 012577' STORE S1,.FBPRT+ATTFDB,FP%SLF
2860 003043'00 332 01 0 00 000000# SKIPE S1,PROGRP ;Get group protection
2861 003044'00 137 01 0 00 012600' STORE S1,.FBPRT+ATTFDB,FP%GRP
2862 003045'00 332 01 0 00 000000# SKIPE S1,PROWLD ;Get wild protection
2863 003046'00 137 01 0 00 012601' STORE S1,.FBPRT+ATTFDB,FP%WLD
2864 003047'00 324740 003040* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 54
DAPLIB MAC 14-Jan-82 09:58 VALNAM Validate the contents of a NAME message
2865 SUBTTL VALNAM Validate the contents of a NAME message
2866
2867 ;Returns TRUE S1/ Flag from name message
2868 ; S2/ Pointer to string
2869
2870 003050'00 336 01 0 00 000000# VALNAM: SKIPN S1,NAMTYP ;Get the name menu flags
2871 003051'00 254 00 0 00 012602' $MIERR .DMNAM,20 ;Invalid menu
2872 003052'00 602 01 0 00 000060 TXNE S1,NA$DFS!NA$RFS ;Do we support it?
2873 003053'00 254 00 0 00 012605' $MUERR .DMNAM,20 ;No..unsupported
2874 003054'00 602 01 0 00 000001 TXNE S1,NA$FSP ;File spec?
2875 003055'00 561 02 0 00 000000# HRROI S2,NAMFSP ;Yes..point to it
2876 003056'00 602 01 0 00 000010 TXNE S1,NA$VOL ;Volume (or device)
2877 003057'00 561 02 0 00 000000# HRROI S2,NAMVOL ;Yes..point to it
2878 003060'00 602 01 0 00 000004 TXNE S1,NA$DIR ;Directory?
2879 003061'00 561 02 0 00 000000# HRROI S2,NAMDIR ;Yes..point to it
2880 003062'00 602 01 0 00 000002 TXNE S1,NA$FNM ;File name?
2881 003063'00 561 02 0 00 000000# HRROI S2,NAMFNM ;Yes..point to it
2882 003064'00 324740 003047* $RETT
2883
2884
2885 SUBTTL VALCRC Routine to validate the CRC
2886
2887 003065'00 331 00 0 00 000000# VALCRC: SKIPL ACPCRC ;Was CRC specified?
2888 003066'00 336 00 0 00 000000# SKIPT CRCFLG ;Checking CRC?
2889 003067'00 324740 003064* $RETT ;No..always return true
2890 003070'00 200 01 0 00 000000# MOVE S1,FILCRC ;Get computed CRC
2891 003071'00 312 01 0 00 000000# CAME S1,ACPCRC ;Had better match
2892 003072'00 254 00 0 00 012610' $MCERR (ER$CRC) ; else bad CRC
2893 003073'00 324740 003067* $RETT
2894
2895
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 55
DAPLIB MAC 14-Jan-82 09:58 SNDCFG Send CONFIG message
2896 SUBTTL SNDCFG Send CONFIG message
2897
2898 003074'00 201 01 0 00 004544 SNDCFG: MOVEI S1,DPMXM ;Store maximum buffer size
2899 003075'00 200 02 0 00 000000# MOVE S2,REMOST ;[106]GET REMOTE SYSTEM TYPE
2900 003076'00 306 02 0 00 000007 CAIN S2,.OSVAX ;[106]IS IT VMS?
2901 003077'00 201 01 0 00 003144 MOVEI S1,DPMXMV ;[106]YES, USER THE VMS MAX MESS SIZE
2902 003100'00 202 01 0 00 000000# MOVEM S1,CFGSIZ
2903 003101'00 201 01 0 00 000010 MOVEI S1,.OSTP20 ;Store operating system type
2904 003102'00 202 01 0 00 000000# MOVEM S1,CFGOST
2905 003103'00 201 01 0 00 000007 MOVEI S1,.FST20 ;Store file system type
2906 003104'00 202 01 0 00 000000# MOVEM S1,CFGFST
2907 003105'00 201 01 0 00 000005 MOVEI S1,.DVMAJ ;Store DAP major version
2908 003106'00 202 01 0 00 000000# MOVEM S1,CFGVER
2909 003107'00 201 01 0 00 000006 MOVEI S1,.DVMIN ;Store DAP minor version
2910 003110'00 202 01 0 00 000000# MOVEM S1,CFGECO
2911 003111'00 201 01 0 00 000000 MOVEI S1,.DVUSR ;Store DAP user version
2912 003112'00 202 01 0 00 000000# MOVEM S1,CFGUSR
2913 003113'00 201 01 0 00 000002 MOVEI S1,.DVSFT ;Store DECnet version
2914 003114'00 202 01 0 00 000000# MOVEM S1,CFGSFT
2915 003115'00 201 01 0 00 000000 MOVEI S1,.DVUSF ;Store User DECnet version
2916 003116'00 202 01 0 00 000000# MOVEM S1,CFGUSS
2917 003117'00 120 01 0 00 012564' DMOVE S1,[EXP CAP1,CAP2] ;Store our capabilities
2918 003120'00 124 01 0 00 000000# DMOVEM S1,CFGCAP
2919 003121'00 201 01 0 00 000005' MOVEI S1,CFGMSD ;Build configuration message
2920 003122'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
2921 003123'00 324740 003073* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 56
DAPLIB MAC 14-Jan-82 09:58 SNDACC Send an ACCESS message
2922 SUBTTL SNDACC Send an ACCESS message
2923
2924 ;Accepts ACCxxx setup by caller and DAPDCN
2925
2926 003124'00 200 01 0 00 000000# SNDACC: MOVE S1,OURVER ;Get version level check
2927 ;[133]delete 2 lines here
2928 003125'00 201 01 0 00 000006 MOVX S1,AF$DIR ;Is this directory request?
2929 003126'00 312 01 0 00 000000# CAME S1,ACCFNC
2930 003127'00 260 17 0 00 003144' $CALL CHKWLD ;No..Check for unsupported wild cards
2931 003130'00 200 01 0 00 000000# MOVE S1,OURCAP ;Get mutual capabilities
2932 003131'00 607 01 0 00 000010 TXNN S1,SY$CRC ;Do we both support CRC?
2933 003132'00 402 00 0 00 000000# SETZM CRCFLG ;No..don't ask for it
2934 003133'00 201 01 0 00 000010 MOVX S1,AO$CRC ;Get bit to request CRC
2935 003134'00 332 00 0 00 000000# SKIPE CRCFLG ;Want to do it?
2936 003135'00 436 01 0 00 000000# IORM S1,ACCOPT ;Yes..then request it
2937 003136'00 200 01 0 00 012613' MOVE S1,[POINT 7,ACCFIL] ;[136]
2938 003137'00 260 17 0 00 003404' $CALL CONREM ;[136]MAKE SYNTAX CORRECT FOR REMOTE
2939 003140'00 201 01 0 00 000064' MOVEI S1,ACCMSD ;Point to message descriptor
2940 003141'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
2941 003142'00 260 17 0 00 003452' $CALL RESREM ;[136]RESTORE THE FILE NAME
2942 003143'00 324740 003123* $RETT
2943
2944
2945 003144'00 120 01 0 00 000000# CHKWLD: DMOVE S1,OURCAP ;Get mutual capabilities
2946 003145'00 602 02 0 00 000004 TXNE S2,SY$WLD ;Support wild cards?
2947 003146'00 324740 003143* $RETT ;Yes..all is well
2948 003147'00 200 01 0 00 012614' MOVE S1,[POINT 7,ACCFIL] ;Point to filespec
2949 003150'00 134 02 0 00 000001 CHKWL1: ILDB S2,S1 ;Get a byte
2950 003151'00 322 02 0 00 003146* JUMPE S2,.RETT ;Return on end of string
2951 003152'00 302 02 0 00 000052 CAIE S2,"*" ;Wild card?
2952 003153'00 306 02 0 00 000045 CAIN S2,"%"
2953 003154'00 254 00 0 00 003157' JRST CHKWL2 ;Yes..we don't support it
2954 003155'00 302 02 0 00 000077 CAIE S2,"?"
2955 003156'00 254 00 0 00 003150' JRST CHKWL1 ;Back to check all characters
2956 003157'00 260 17 0 00 012636' CHKWL2: $FATAL (Remote system does not support wild card operations)
2957
2958
2959 SUBTTL SNDCTC Send a CONTROL (CONNECT) message
2960
2961 003160'00 201 01 0 00 000102' SNDCTC: MOVEI S1,CTLMSD ;Point to control message
2962 003161'00 260 17 0 00 004057' $CALL CLRMSG ;Clear all fields
2963 003162'00 201 02 0 00 000002 MOVX S2,CF$CON ;Function is start a data stream
2964 003163'00 202 02 0 00 000000# MOVEM S2,CTLFNC
2965 003164'00 201 02 0 00 000001 MOVX S2,CT$RAC ;Get Menu bits
2966 003165'00 202 02 0 00 000000# MOVEM S2,CTLMNU
2967 003166'00 201 02 0 00 000003 MOVX S2,RB$SQF ;Sequential file transfer
2968 003167'00 202 02 0 00 000000# MOVEM S2,CTLRAC
2969 003170'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
2970 003171'00 324740 003151* $RETT
2971
2972
2973
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 57
DAPLIB MAC 14-Jan-82 09:58 SNDCTR Send a CONTROL (GET) message
2974 SUBTTL SNDCTR Send a CONTROL (GET) message
2975
2976 003172'00 201 01 0 00 000102' SNDCTR: MOVEI S1,CTLMSD ;Point to control message
2977 003173'00 260 17 0 00 004057' $CALL CLRMSG ;Clear it out
2978 003174'00 201 02 0 00 000001 MOVX S2,CF$GET ;Get GET function
2979 003175'00 202 02 0 00 000000# MOVEM S2,CTLFNC
2980 003176'00 201 02 0 00 000001 MOVX S2,CT$RAC ;Get menu bits
2981 003177'00 202 02 0 00 000000# MOVEM S2,CTLMNU
2982 003200'00 201 02 0 00 000003 MOVX S2,RB$SQF ;Sequential transfer
2983 003201'00 202 02 0 00 000000# MOVEM S2,CTLRAC ; for Record Access
2984 003202'00 324 17 0 00 003215' PJRST SNDCTL ;Check to see if block mode ok.
2985 003203'00 324740 003171* $RETT
2986
2987
2988 SUBTTL SNDCTS Send a CONTROL (PUT) message
2989
2990 003204'00 201 01 0 00 000102' SNDCTS: MOVEI S1,CTLMSD ;Point to control message
2991 003205'00 260 17 0 00 004057' $CALL CLRMSG ;Clear it out
2992 003206'00 201 02 0 00 000004 MOVX S2,CF$PUT ;PUT PUT function
2993 003207'00 202 02 0 00 000000# MOVEM S2,CTLFNC
2994 003210'00 201 02 0 00 000001 MOVX S2,CT$RAC ;Get menu bits
2995 003211'00 202 02 0 00 000000# MOVEM S2,CTLMNU
2996 003212'00 201 02 0 00 000003 MOVX S2,RB$SQF ;Sequential transfer
2997 003213'00 202 02 0 00 000000# MOVEM S2,CTLRAC ; for Record Access
2998 003214'00 324 17 0 00 003215' PJRST SNDCTL ;Check to if block mode ok.
2999
3000 003215'00 336 00 0 16 000002 SNDCTL: SKIPN .DFLFA(AP) ;User specified mode?
3001 003216'00 332 00 0 16 000004 SKIPE .DFRFA(AP)
3002 003217'00 324 17 0 00 003244' PJRST SNDCT1 ;Yes..don't do page mode
3003 003220'00 200 01 0 00 000000# MOVE S1,REMOST
3004 003221'00 302 01 0 00 000010 CAIE S1,.OSTP20 ;Talking to TOPS20?
3005 003222'00 254 00 0 00 003244' JRST SNDCT1 ;No..don't do page mode
3006 003223'00 200 01 0 00 000000# MOVE S1,OURCAP
3007 003224'00 606 01 0 00 000200 TXNN S1,SY$VBN ;Remote FAL support block mode?
3008 003225'00 254 00 0 00 003244' JRST SNDCT1
3009 003226'00 200 01 0 00 000000# MOVE S1,ATTDEV
3010 003227'00 606 01 0 00 000010 TXNN S1,FB$MDI ;Remote device DSK?
3011 003230'00 254 00 0 00 003244' JRST SNDCT1
3012 003231'00 135 01 0 00 012642' LOAD S1,LOCDEV,DV%TYP
3013 003232'00 302 01 0 00 000000 CAIE S1,.DVDSK ;Local device DSK?
3014 003233'00 254 00 0 00 003244' JRST SNDCT1
3015 003234'00 476 00 0 00 000000# SETOM PAGFLG ;Great..use page mode
3016 003235'00 402 00 0 00 000000# SETZM CTLKEY ;Start with VBN 0 (FDB)
3017 003236'00 201 01 0 00 000002 MOVX S1,CT$KEY ;Set the menu bit
3018 003237'00 436 01 0 00 000000# IORM S1,CTLMNU
3019 003240'00 201 01 0 00 000005 MOVX S1,RB$BKF ;Request block mode
3020 003241'00 202 01 0 00 000000# MOVEM S1,CTLRAC
3021 003242'00 200 01 0 00 011771' MOVE S1,[GETPAG,,PUTPAG] ;Setup proper processor
3022 003243'00 202 01 0 00 000000# MOVEM S1,DATDAT
3023 003244'00 201 01 0 00 000102' SNDCT1: MOVEI S1,CTLMSD ;Point to the message
3024 003245'00 260 17 0 00 004713' $CALL PUTMSG ;Send it off
3025 003246'00 324740 003203* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 58
DAPLIB MAC 14-Jan-82 09:58 SNDCON Send a CONTROL TRANSFER (Skip) message ;[132]
3026 SUBTTL SNDCON Send a CONTROL TRANSFER (Skip) message ;[132]
3027
3028 003247'00 201 01 0 00 000115' SNDCON: MOVEI S1,CONMSD ;[132]Point to CONTRAN message
3029 003250'00 260 17 0 00 004057' $CALL CLRMSG ;[132]Clear it
3030 003251'00 201 02 0 00 000002 MOVX S2,CO$SKP ;[132]CONTROL(Skip)
3031 003252'00 202 02 0 00 000000# MOVEM S2,CONFNC ;[132]
3032 003253'00 260 17 0 00 004713' $CALL PUTMSG ;[132]Force it out
3033 003254'00 324740 003246* $RETT ;[132]
3034
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 59
DAPLIB MAC 14-Jan-82 09:58 SNDACK Send an ACKNOWLEDGE message
3035 SUBTTL SNDACK Send an ACKNOWLEDGE message
3036
3037 003255'00 201 01 0 00 000121' SNDACK: MOVEI S1,ACKMSD ;Point to ACK message
3038 003256'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
3039 003257'00 324740 003254* $RETT
3040
3041
3042 SUBTTL SNDEOF Send an EOF status message
3043
3044 003260'00 201 01 0 00 050047 SNDEOF: $STATUS ER$TRN,ER$EOF ;EOF status
3045 003261'00 402 00 0 00 000002
3046 003262'00 260 17 0 00 003265' $CALL SNDSTS ;Send a status message
3047 003263'00 200 13 0 00 012250' $STATE .LLACP ;Move to access complete state
3048 003264'00 324740 003257* $RETT
3049
3050
3051 SUBTTL SNDSTS Routine to send a status message
3052
3053 ;Accepts S1/ STATUS CODE
3054 ; S2/ SECONDARY STATUS
3055
3056 003265'00 120 03 0 00 000001 SNDSTS: DMOVE T1,S1 ;Save Calling args
3057 003266'00 201 01 0 00 000144' MOVEI S1,STSMSD ;Point to status message
3058 003267'00 260 17 0 00 004057' $CALL CLRMSG ;Clear it out
3059 003270'00 202 03 0 00 000000# MOVEM T1,STSCOD ;Save status code
3060 003271'00 202 04 0 00 000000# MOVEM T2,STSSTV ;Save extended status
3061 003272'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
3062 003273'00 263 17 0 00 000000 $RET
3063
3064
3065 SUBTTL SNDACP Send an ACCOMP (CLOSE) message
3066
3067
3068 003274'00 201 02 0 00 000001 SNDACP: MOVX S2,AC$TRM ;Get CLOSE function
3069 003275'00 202 02 0 00 000000# MOVEM S2,ACPFNC
3070 003276'00 260 17 0 00 003302' $CALL SNDCRC ;Put CRC into ACP message
3071 003277'00 201 01 0 00 000124' MOVEI S1,ACPMSD ;Point to message descriptor
3072 003300'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
3073 003301'00 263 17 0 00 000000 $RET ;Return
3074
3075 003302'00 336 00 0 00 000000# SNDCRC: SKIPT CRCFLG ;Want to send CRC?
3076 003303'00 324740 003264* $RETT ;No..just ruturn
3077 003304'00 200 01 0 00 000000# MOVE S1,FILCRC ;Yes..get what we computed
3078 003305'00 202 01 0 00 000000# MOVEM S1,ACPCRC ;Store in the message
3079 003306'00 324740 003303* $RETT
3080
3081 SUBTTL SNDACA Send an Accomp (Resp) message
3082
3083 003307'00 201 01 0 00 000124' SNDACA: MOVEI S1,ACPMSD ;Ppoint to message descriptor
3084 003310'00 201 02 0 00 000002 MOVX S2,AC$ACK ;Get ACK function
3085 003311'00 202 02 0 00 000000# MOVEM S2,ACPFNC
3086 003312'00 260 17 0 00 004713' $CALL PUTMSG ;Force it out
3087 003313'00 324740 003306* $RETT
3088
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 60
DAPLIB MAC 14-Jan-82 09:58 SNDWLD Routine to send required name messages per WLDJFN
3089 SUBTTL SNDWLD Routine to send required name messages per WLDJFN
3090
3091 ;Accepts WLDJFN and LOCJFN setup via SETINP
3092
3093 003314'00 260 17 0 00 002443* SNDWLD: $SAVE <P1>
3094 003315'00 200 07 0 00 000000# MOVE P1,WLDJFN ;Get change flags
3095 003316'00 607 07 0 00 000020 TXNN P1,GN%STR ;Structure change?
3096 003317'00 254 00 0 00 003330' JRST SNDWL1 ;No..check directory
3097 003320'00 561 01 0 00 000000# HRROI S1,NAMVOL
3098 003321'00 550 02 0 00 000000# HRRZ S2,LOCJFN
3099 003322'00 200 03 0 00 012643' MOVX T1,FLD(1,JS%DEV)+JS%PAF ;Send "DEV:"
3100 003323'00 104 00 0 00 000030 JFNS
3101 003324'00 320 16 0 00 007707' ERJMP TERCVT ;Return false if error
3102 003325'00 201 01 0 00 000010 MOVX S1,NA$VOL ;Say it's a volume (structure)
3103 003326'00 202 01 0 00 000000# MOVEM S1,NAMTYP ;Store Name type
3104 003327'00 260 17 0 00 003553' $CALL SNDNAM ;Send it off
3105 003330'00 607 07 0 00 000010 SNDWL1: TXNN P1,GN%DIR ;Directory change?
3106 003331'00 254 00 0 00 003342' JRST SNDWL2 ;No..just send filename
3107 003332'00 561 01 0 00 000000# HRROI S1,NAMDIR
3108 003333'00 550 02 0 00 000000# HRRZ S2,LOCJFN
3109 003334'00 200 03 0 00 012644' MOVX T1,FLD(1,JS%DIR)+JS%PAF ;Send "<Directory>"
3110 003335'00 104 00 0 00 000030 JFNS
3111 003336'00 320 16 0 00 007707' ERJMP TERCVT ;Return error if this fails
3112 003337'00 201 01 0 00 000004 MOVX S1,NA$DIR ;Say its a directory
3113 003340'00 202 01 0 00 000000# MOVEM S1,NAMTYP
3114 003341'00 260 17 0 00 003553' $CALL SNDNAM ;Send of the directory
3115 003342'00 561 01 0 00 000000# SNDWL2: HRROI S1,NAMFNM ;Point to name storage
3116 003343'00 550 02 0 00 000000# HRRZ S2,LOCJFN
3117 003344'00 200 03 0 00 012645' MOVX T1,FLD(1,JS%NAM)+FLD(1,JS%TYP)+FLD(1,JS%GEN)+JS%PAF
3118 003345'00 104 00 0 00 000030 JFNS
3119 003346'00 320 16 0 00 007707' ERJMP TERCVT
3120 003347'00 201 02 0 00 000002 MOVX S2,NA$FNM ;Say its a filename
3121 003350'00 202 02 0 00 000000# MOVEM S2,NAMTYP ;Store the name type
3122 003351'00 200 01 0 00 012646' MOVE S1,[POINT 7,NAMFNM] ;[136]POINTER TO FILESPEC
3123 003352'00 260 17 0 00 003404' $CALL CONREM ;[136]CONVERT NAME FOR REMOTE
3124 003353'00 260 17 0 00 003553' $CALL SNDNAM ;Send it off
3125 003354'00 260 17 0 00 003452' $CALL RESREM ;[136]RESTORE FILE NAME STRING
3126 003355'00 324740 003313* $RETT
3127
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 61
DAPLIB MAC 14-Jan-82 09:58 SNDDSP Send requested ATTRIBUTES messages
3128 SUBTTL SNDDSP Send requested ATTRIBUTES messages
3129
3130 ;Accepts S1/ Display field from Access message
3131
3132 003356'00 200 02 0 00 000000# SNDDSP: MOVE S2,CFGVER ;Check for old FAL
3133 003357'00 305 02 0 00 000005 CAIGE S2,^D5 ;Dap 5.1 or later?
3134 003360'00 254 00 0 00 003461' JRST SNDATT ;No..just send attrubutes
3135 003361'00 260 17 0 00 003314* $SAVE <P1> ;Preserve P1 for "menu"
3136 003362'00 336 07 0 00 000001 SKIPN P1,S1 ;Put requested fields in P1
3137 003363'00 201 07 0 00 000001 MOVX P1,DI$ATT ;Default is attributes
3138 003364'00 404 07 0 00 000000# AND P1,OURDSP ;Clear impossible requests
3139 003365'00 602 07 0 00 000001 TXNE P1,DI$ATT ;Return Main Attributes message?
3140 003366'00 260 17 0 00 003461' $CALL SNDATT ;Yes - Send off main attributes
3141 003367'00 602 07 0 00 000020 TXNE P1,DI$DTI ;Want DATE and Time message?
3142 003370'00 260 17 0 00 003540' $CALL SNDDTI ;Yes - do it
3143 003371'00 602 07 0 00 000040 TXNE P1,DI$PRO ;Send Protection message?
3144 003372'00 260 17 0 00 003523' $CALL SNDPRO ;Yes - do it
3145 003373'00 606 07 0 00 000400 TXNN P1,DI$NAM ;Want Name stuff?
3146 003374'00 324740 003355* $RETT ;No - then just return ok
3147 003375'00 201 01 0 00 000001 MOVX S1,NA$FSP ;Will send whole filespec
3148 003376'00 202 01 0 00 000000# MOVEM S1,NAMTYP ;Store argument type
3149 003377'00 200 01 0 00 012647' MOVE S1,[POINT 7,NAMFSP] ;[136]
3150 003400'00 260 17 0 00 003404' $CALL CONREM ;[136]CONVERT NAME FOR REMOTE SYS
3151 003401'00 260 17 0 00 003553' $CALL SNDNAM
3152 003402'00 260 17 0 00 003452' $CALL RESREM ;[136]RESTORE THE NAME
3153 003403'00 324740 003374* $RETT
3154
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 62
DAPLIB MAC 14-Jan-82 09:58 CONREM/RESREM Send file names in correct format
3155 SUBTTL CONREM/RESREM Send file names in correct format
3156
3157 ;CONREM is called to edit a filspec to coorespond to the
3158 ; format required by the remote node. This is all
3159 ; EDIT [136].
3160
3161 ;CONREM S1/ byte pointer to filespec
3162
3163 ;RESREM no arguments
3164
3165 003404'00 402 00 0 00 000000# CONREM: SETZM SAVPNT ;ZERO THE OLD POINTER
3166 003405'00 200 02 0 00 000000# MOVE S2,REMOST ;REMOTE SYSTEM TYPE
3167 003406'00 302 02 0 00 000010 CAIE S2,.OSTP20 ;TOPS-20?
3168 003407'00 306 02 0 00 000011 CAIN S2,.OSTP10 ;OR TOPS-10?
3169 003410'00 324740 003403* $RETT ;YES, DO NO CONVERSION
3170 003411'00 134 02 0 00 000001 CONR1: ILDB S2,S1 ;GET A BYTE
3171 003412'00 336 00 0 00 000002 SKIPN S2 ;END OF STRING?
3172 003413'00 324740 003410* $RETT ;YES
3173 003414'00 302 02 0 00 000133 CAIE S2,"[" ;DIRECTORY?
3174 003415'00 306 02 0 00 000074 CAIN S2,"<" ;
3175 003416'00 254 00 0 00 003443' JRST CONR4 ;YES, EAT IT UP
3176 003417'00 302 02 0 00 000056 CAIE S2,"." ;FOUND END OF FILE NAME?
3177 003420'00 254 00 0 00 003411' JRST CONR1 ;NO, KEEP LOOKING
3178 003421'00 134 02 0 00 000001 CONR2: ILDB S2,S1 ;LOOK FOR END OF FILE TYPE
3179 003422'00 336 00 0 00 000002 SKIPN S2 ;END OF STRING?
3180 003423'00 324740 003413* $RETT ;YES
3181 003424'00 302 02 0 00 000056 CAIE S2,"." ;FOUND END OF FILE TYPE?
3182 003425'00 254 00 0 00 003421' JRST CONR2 ;NO, KEEP LOOKING
3183 003426'00 202 01 0 00 000000# MOVEM S1,SAVPNT ;YES, SAVE POINTER TO "."
3184 003427'00 134 02 0 00 000001 ILDB S2,S1 ;FIRST CHAR OF VERSION
3185 003430'00 302 02 0 00 000055 CAIE S2,"-" ;NEGATIVE?
3186 003431'00 306 02 0 00 000060 CAIN S2,"0" ;OR ZERO?
3187 003432'00 254 00 0 00 003437' JRST CONR3 ;YES, BAD VERSION FOR REMOTE
3188 003433'00 200 01 0 00 000000# MOVE S1,SAVPNT ;POINT TO THE PERIOD
3189 003434'00 201 02 0 00 000073 MOVEI S2,";" ;REPLACE WITH A SEMICOLON
3190 003435'00 137 02 0 00 000001 DPB S2,S1 ;DO IT
3191 003436'00 324740 003423* $RETT ;RETURN
3192 003437'00 200 01 0 00 000000# CONR3: MOVE S1,SAVPNT ;POINT TO THE PERIOD
3193 003440'00 400 02 0 00 000000 SETZ S2, ;ZERO
3194 003441'00 137 02 0 00 000001 DPB S2,S1 ;END THE NAME AFTER FILE TYPE
3195 003442'00 324740 003436* $RETT
3196 003443'00 134 02 0 00 000001 CONR4: ILDB S2,S1 ;GET A BYTE
3197 003444'00 336 00 0 00 000002 SKIPN S2 ;END OF STRING?
3198 003445'00 324740 003442* $RETT ;YES
3199 003446'00 302 02 0 00 000135 CAIE S2,"]" ;END OF DIR?
3200 003447'00 306 02 0 00 000076 CAIN S2,">" ;?
3201 003450'00 254 00 0 00 003411' JRST CONR1 ;YES
3202 003451'00 254 00 0 00 003443' JRST CONR4 ;NO, KEEP EATING THE DIRECTORY
3203
3204 003452'00 336 00 0 00 000000# RESREM: SKIPN SAVPNT ;WAS ANYTHING CHANGED?
3205 003453'00 324740 003445* $RETT ;NO
3206 003454'00 200 01 0 00 000000# MOVE S1,SAVPNT ;POINT TO CHANGED BYTE
3207 003455'00 201 02 0 00 000056 MOVEI S2,"." ;CHANGE BACK TO A "."
3208 003456'00 137 02 0 00 000001 DPB S2,S1 ;CHANGE IT
3209 003457'00 402 00 0 00 000000# SETZM SAVPNT ;
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 62-1
DAPLIB MAC 14-Jan-82 09:58 CONREM/RESREM Send file names in correct format
3210 003460'00 324740 003453* $RETT
3211
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 63
DAPLIB MAC 14-Jan-82 09:58 SNDATT Send an attributes message
3212 SUBTTL SNDATT Send an attributes message
3213
3214 ;SNDATT is called to send file attributes per this openning of file.
3215 ; Datatype and record formats must be setup by SETBSZ.
3216
3217 ;Accepts ATTxxx setup via GETFDB, SETBSZ and SETATT
3218
3219 003461'00 201 01 0 00 020000 SNDATT: MOVX S1,AT$BSZ ;Get menu bytesize bit
3220 003462'00 616 01 0 00 000000# TDNN S1,ATTMNU ;Is it present?
3221 003463'00 254 00 0 00 003520' JRST SNDAT2 ;No..assume we are all set
3222 003464'00 200 02 0 00 000000# MOVE S2,ATTBSZ ;Get the bytesize
3223 003465'00 306 02 0 00 000010 CAIN S2,^D8 ;Is it 8?
3224 003466'00 412 01 0 00 000000# ANDCAM S1,ATTMNU ;Yes..no need to send it
3225 003467'00 200 02 0 00 000000# LOAD S2,ACCFNC ;Get requested function
3226 003470'00 302 02 0 00 000002 CAXE S2,AF$CRE ;Creating a file?
3227 003471'00 254 00 0 00 003501' JRST SNDAT1 ;No..send what we have
3228 003472'00 200 02 0 00 000000# MOVE S2,REMOST ;Get remote system type
3229 003473'00 302 02 0 00 000010 CAXE S2,.OSTP20 ;To TOPS20?
3230 003474'00 306 02 0 00 000011 CAXN S2,.OSTP10 ; or TOPS10?
3231 003475'00 254 00 0 00 003501' JRST SNDAT1 ;Yes..send everything
3232 003476'00 200 01 0 00 012650' MOVX S1,AT$BLS+AT$ALQ+AT$EBK+AT$FFB
3233 003477'00 412 01 0 00 000000# ANDCAM S1,ATTMNU ; else don't send these
3234 003500'00 254 00 0 00 003520' JRST SNDAT2
3235
3236 003501'00 550 02 0 00 000000# SNDAT1: LOAD S2,.FBBYV+LOCFDB,FB%PGC ;Get page count
3237 003502'00 221 02 0 00 000004 IMULI S2,^D4 ;Compute block allocated
3238 003503'00 202 02 0 00 000000# MOVEM S2,ATTALQ ;ATTALQ=Page_count/4
3239 003504'00 200 04 0 00 000000# LOAD T2,.FBSIZ+LOCFDB ;Get actual file bytecnt
3240 003505'00 135 01 0 00 012651' LOAD S1,.FBBYV+LOCFDB,FB%BSZ ;Get actual file bytesiz
3241 003506'00 201 02 0 00 000044 MOVEI S2,^D36 ;
3242 003507'00 230 02 0 00 000001 IDIV S2,S1 ;Compute bytes per word
3243 003510'00 221 02 0 00 000200 IMULI S2,^D128 ;Compute bytes per block
3244 003511'00 202 02 0 00 000000# MOVEM S2,ATTBLS ;ATTBLS=Bytes_per_word*128
3245 003512'00 230 04 0 00 000002 IDIV T2,S2 ;Compute end block
3246 003513'00 271 04 0 00 000001 ADDI T2,1 ;EBK begins at 1
3247 003514'00 202 04 0 00 000000# MOVEM T2,ATTEBK ;ATTEBK=File_byte_count/ATTBLS+1
3248 003515'00 202 05 0 00 000000# MOVEM T3,ATTFFB ;ATTFFB=REM(File_byte_count/ATTBLS)
3249 003516'00 200 01 0 00 012650' MOVX S1,AT$BLS+AT$ALQ+AT$EBK+AT$FFB
3250 003517'00 436 01 0 00 000000# IORM S1,ATTMNU ;Set proper menu bits
3251 003520'00 201 01 0 00 000021' SNDAT2: MOVEI S1,ATTMSD ;Point to message
3252 003521'00 260 17 0 00 004716' $CALL QUEMSG ;Send it out
3253 003522'00 263 17 0 00 000000 $RET
3254
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 64
DAPLIB MAC 14-Jan-82 09:58 SNDPRO Send File Protection Attributes
3255 SUBTTL SNDPRO Send File Protection Attributes
3256
3257 ;Accepts LOCFDB setup via GETFDB
3258
3259 003523'00 403 03 0 00 000000# SNDPRO: SETZB T1,PROMNU ;Clear our menu
3260 ;[116]deleted 6 lines here
3261 003524'00 336 01 0 00 000000# SKIPN S1,.FBPRT+LOCFDB ;Get file protection
3262 003525'00 254 00 0 00 003534' JRST SNDPR1 ;Send null protection field
3263 003526'00 202 01 0 00 000000# MOVEM S1,PROWLD ;Save wild protection
3264 003527'00 242 01 0 00 777772 LSH S1,-6
3265 003530'00 202 01 0 00 000000# MOVEM S1,PROGRP ;Save group protection
3266 003531'00 242 01 0 00 777772 LSH S1,-6
3267 003532'00 202 01 0 00 000000# MOVEM S1,PROSLF ;Save owner protection
3268 003533'00 660 03 0 00 000034 TXO T1,PR$SLF+PR$GRP+PR$WLD ;Set the menu bits
3269 003534'00 202 03 0 00 000000# SNDPR1: MOVEM T1,PROMNU
3270 003535'00 201 01 0 00 000247' MOVEI S1,PROMSD ;Point to message descriptor
3271 003536'00 260 17 0 00 004716' $CALL QUEMSG ;Send it off
3272 003537'00 263 17 0 00 000000 $RET
3273
3274
3275 SUBTTL SNDDTI Send Date/time attributes
3276
3277 ;Accepts LOCFDB Setup via GETFDB
3278
3279 003540'00 201 02 0 00 000003 SNDDTI: MOVX S2,DA$CDT+DA$RDT ;Get menu bits
3280 003541'00 336 01 0 00 000000# SKIPN S1,.FBCRV+LOCFDB ;Get local creation date/time
3281 003542'00 620 02 0 00 000001 TXZ S2,DA$CDT ;Clear the menu bit
3282 003543'00 202 01 0 00 000000# MOVEM S1,DTICDT
3283 003544'00 336 01 0 00 000000# SKIPN S1,.FBWRT+LOCFDB ;Get last update date/time
3284 003545'00 620 02 0 00 000002 TXZ S2,DA$RDT ;Clear the menu bit
3285 003546'00 202 01 0 00 000000# MOVEM S1,DTIRDT
3286 003547'00 202 02 0 00 000000# MOVEM S2,DTIMNU ;Setup the menu
3287 003550'00 201 01 0 00 000235' MOVEI S1,DTIMSD ;Point to message descriptor
3288 003551'00 260 17 0 00 004716' $CALL QUEMSG ;Send it out
3289 003552'00 263 17 0 00 000000 $RET
3290
3291
3292 SUBTTL SNDNAM Send a Name message
3293
3294 ;Accepts NAMxxx setup via GETFDB or SNDWLD
3295
3296 003553'00 201 01 0 00 000265' SNDNAM: MOVEI S1,NAMMSD ;Point to message descriptor
3297 003554'00 260 17 0 00 004716' $CALL QUEMSG ;Send it off
3298 003555'00 263 17 0 00 000000 $RET
3299
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 65
DAPLIB MAC 14-Jan-82 09:58 MSGTBL List of valid DAP messages
3300 SUBTTL MSGTBL List of valid DAP messages
3301
3302 ;Generate a message table for defined DAP message types
3303 ;GETMSG uses this list to accept or reject a specific DAP message type
3304
3305 ;Each entry is of the form:
3306
3307 ; Message Type,,Message descriptor address
3308
3309 ;Message types are defined in the DOMSG macro of DAPSYM
3310
3311
3312 ;Define a macro to build the message table entry
3313 DEFINE XX (MSG,VAL,NAME,FLAG) <
3314 .DM'MSG,,MSG'MSD>
3315
3316 ;Define a macro to ignore the specific message argument types and version
3317 DEFINE VV (VER) <>
3318 DEFINE YY (FLD,TYP,SIZ,DEF) <>
3319
3320 ;Expand the list of valid messages
3321
3322 003556'00 000001 000005' MSGTBL: DOMSG
3323 003557'00 000002 000021'
3324 003560'00 000003 000064'
3325 003561'00 000004 000102'
3326 003562'00 000005 000115'
3327 003563'00 000006 000121'
3328 003564'00 000007 000124'
3329 003565'00 000010 000137'
3330 003566'00 000011 000144'
3331 003567'00 000012 000153'
3332 003570'00 000013 000204'
3333 003571'00 000014 000223'
3334 003572'00 000015 000235'
3335 003573'00 000016 000247'
3336 003574'00 000017 000265'
3337 003575'00 000021 000277'
3338 003576'00 000200 000306'
3339 000021 MSG$LN==.-MSGTBL
3340
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 66
DAPLIB MAC 14-Jan-82 09:58 GETMSG Routine to get next DAP message from Link
3341 SUBTTL GETMSG Routine to get next DAP message from Link
3342
3343 ;Accepts S1/ Message list address
3344
3345 ;Returns TRUE Message fields stored in respective storage cells
3346 ;
3347 ; S1/ Calling message list entry
3348 ; S2/ Parsed message type
3349
3350
3351 ;Returns FALSE S1/ Sync or Unsupported Error code
3352 ; S2/ Parsed message type
3353
3354 003577'00 260 17 0 00 000000* GETMSG: $SAVE <P2,P1> ;Preserve some AC's
3355 003600'00 200 07 0 00 000001 MOVE P1,S1 ;Remember calling list address
3356 003601'00 205 10 0 00 777757 MOVSI P2,-MSG$LN ;Get length of table
3357 003602'00 260 17 0 00 010456' $CALL LLRECA ;[154]Get a message
3358 003603'00 200 15 0 00 000001 MOVE DL,S1 ;Put message address in DL
3359 003604'00 260 17 0 00 003665' $CALL VALHDR ;Validate the header
3360 JUMPF [$SAVE <TF,S1,S2> ;[123]REMOVE BAD MESSAGE...
3361 MOVE S1,RCVLST ;[123]...
3362 $CALL L%DENT ;[123]...FROM RECEIVE QUEUE
3363 003605'00 322 00 0 00 012661' $RET] ;[123]
3364 003606'00 554 02 0 10 003556' GETMS1: HLRZ S2,MSGTBL(P2) ;Get the message type
3365 003607'00 316 01 0 00 000002 CAMN S1,S2 ;Is it a match?
3366 003610'00 254 00 0 00 003621' JRST GETMS2 ;Yes..process it
3367 003611'00 253 10 0 00 003606' AOBJN P2,GETMS1 ;No..try the next
3368 003612'00 201 01 0 00 020010 $STATUS ER$USP,0,ER$TYP ;Not found..unsupported message type
3369 003613'00 402 00 0 00 000002
3370 003614'00 200 02 0 15 000000 MOVE S2,.DPTYP(DL) ;Return the message type
3371 003615'00 137 02 0 00 012672' STORE S2,S1,ER%TYP ;Save in Unsupported status
3372 003616'00 200 01 0 00 000000# MOVE S1,RCVLST ;[123]REMOVE BAD MESS...
3373 003617'00 260 17 0 00 000000* $CALL L%DENT ;[123]FROM RECEIVE QUEUE
3374 003620'00 324740 002567* $RETF
3375
3376 003621'00 336 02 0 07 000000 GETMS2: SKIPN S2,0(P1) ;Find message in calling list
3377 JRST [$STATUS ER$SNC,0 ;Return SYNC error
3378 MOVE S2,.DPTYP(DL) ;Return message type
3379 STORE S2,S1,ER%MIC ;Save in DAP status
3380 MOVE S1,RCVLST ;[123]REMOVE BAD MESS...
3381 $CALL L%DENT ;[123]...FROM RECEIVE QUEUE
3382 003622'00 254 00 0 00 012674' $RETF] ;Return the failure
3383 003623'00 554 02 0 00 000002 HLRZ S2,S2 ;Get the list type
3384 003624'00 312 01 0 00 000002 CAME S1,S2 ;Is it a match?
3385 003625'00 344 07 0 00 003621' AOJA P1,GETMS2 ;No..try the next
3386 003626'00 550 01 0 10 003556' HRRZ S1,MSGTBL(P2) ;Get message header address
3387 003627'00 260 17 0 00 003766' $CALL VALMSG ;Validate the message
3388 JUMPF [$SAVE <TF,S1,S2> ;Save status for return
3389 MOVE S1,RCVLST
3390 $CALL L%DENT ;Delete the bad message
3391 003630'00 322 00 0 00 012703' $RET]
3392 003631'00 550 01 0 07 000000 HRRZ S1,0(P1) ;Return calling list entry
3393 003632'00 554 02 0 07 000000 HLRZ S2,0(P1) ;Return parsed message type
3394 003633'00 260 17 0 01 000000 $CALL 0(S1) ;Call the routine
3395 003634'00 304 00 0 00 000000 $SAVE <TF,S1,S2> ;Save staus for return
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 66-1
DAPLIB MAC 14-Jan-82 09:58 GETMSG Routine to get next DAP message from Link
3396 003642'00 335 00 0 15 000000 SKIPGE .DPTYP(DL) ;Want to reparse it?
3397 003643'00 254 00 0 00 003653' JRST GETMS4 ;Yes..reset the pointers
3398 003644'00 200 01 0 00 000000# MOVE S1,RCVLST ;Point to receive list
3399 003645'00 260 17 0 00 003617* $CALL L%DENT ;Delete the entry
3400 003646'00 200 01 0 00 000000# MOVE S1,RCVLST
3401 003647'00 260 17 0 00 000000* $CALL L%FIRST
3402 003650'00 336 00 0 00 000000 SKIPT
3403 003651'00 402 00 0 00 000000# SETZM MSGFLG
3404 003652'00 324740 003460* $RETT
3405
3406 003653'00 200 03 0 15 000000 GETMS4: MOVE T1,.DPTYP(DL) ;Reset pointers if reparse wanted
3407 003654'00 216 03 0 15 000000 MOVMM T1,.DPTYP(DL)
3408 003655'00 200 03 0 15 000002 MOVE T1,.DPLEN(DL)
3409 003656'00 250 03 0 15 000005 EXCH T1,.DPCNT(DL)
3410 003657'00 274 03 0 15 000002 SUB T1,.DPLEN(DL)
3411 003660'00 133 03 0 15 000006 ADJBP T1,.DPBPT(DL)
3412 003661'00 202 03 0 15 000006 MOVEM T1,.DPBPT(DL)
3413 003662'00 550 01 0 07 000000 HRRZ S1,0(P1) ;Return calling list entry
3414 003663'00 554 02 0 07 000000 HLRZ S2,0(P1) ;Return parsed message type
3415 003664'00 324740 003652* $RETT
3416
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 67
DAPLIB MAC 14-Jan-82 09:58 VALHDR Routine to validate standard dap message header
3417 SUBTTL VALHDR Routine to validate standard dap message header
3418
3419 ;Accepts DL/ Address of current message header
3420
3421 ;Creates a new header for this message if more messages follow
3422
3423
3424 ;Returns TRUE S1/ Type field of received message
3425
3426 ; FALSE S1/ Message format error status
3427
3428 003665'00 333 01 0 15 000000 VALHDR: SKIPLE S1,.DPTYP(DL) ;Reparse?
3429 003666'00 324740 003664* $RETT ;Yes..just return
3430 003667'00 260 17 0 00 003577* $SAVE <P1,P2> ;P1 HOLDS FLAGS
3431 003670'00 403 07 0 00 000010 SETZB P1,P2 ;P2 HOLDS LENGTH FIELD
3432 003671'00 260 17 0 00 004116' $CALL GETBYT ;GET MESSAGE TYPE FIELD
3433 003672'00 322 00 0 00 012717' JUMPF [$MFERR 0,10] ;BAD
3434 003673'00 202 01 0 15 000000 MOVEM S1,.DPTYP(DL) ;STORE MESSAGE TYPE
3435 003674'00 201 01 0 00 000005 MOVEI S1,5 ;Maximum flag size is 5
3436 003675'00 201 02 0 15 000001 MOVEI S2,.DPFLG(DL) ;Store in DPFLG
3437 003676'00 260 17 0 00 004244' $CALL GETEXF ;GET HEADER FLAGS
3438 003677'00 322 00 0 00 012717' JUMPF [$MFERR 0,10] ;NULL - FAILED
3439 003700'00 200 07 0 15 000001 MOVE P1,.DPFLG(DL) ;Put the flags in P1
3440 003701'00 606 07 0 00 000001 TXNN P1,HD$SID ;STREAMID FIELD IN MESSAGE?
3441 003702'00 254 00 0 00 003706' JRST VALHD1 ;NO
3442 003703'00 260 17 0 00 004116' $CALL GETBYT ;YES..GET IT
3443 003704'00 322 00 0 00 012723' JUMPF [$MFERR 0,11] ;FAILED
3444 003705'00 202 01 0 15 000003 MOVEM S1,.DPSID(DL) ;SAVE IT
3445 003706'00 606 07 0 00 000002 VALHD1: TXNN P1,HD$LEN ;LENGTH FIELD PRESENT?
3446 003707'00 254 00 0 00 003721' JRST VALHD2 ;NO
3447 003710'00 260 17 0 00 004116' $CALL GETBYT ;GET IT
3448 003711'00 322 00 0 00 012727' JUMPF [$MFERR 0,12] ;FAILED
3449 003712'00 200 10 0 00 000001 MOVE P2,S1 ;SAVE IN P2
3450 003713'00 606 07 0 00 000004 TXNN P1,HD$LN2 ;LENGTH 256 BIT PRESENT?
3451 003714'00 254 00 0 00 003721' JRST VALHD2 ;NO
3452 003715'00 260 17 0 00 004116' $CALL GETBYT ;GET HIGH ORDER PART
3453 003716'00 322 00 0 00 012733' JUMPF [$MFERR 0,13] ;BAD FORMAT
3454 003717'00 242 01 0 00 000010 LSH S1,10 ;MAKE IT HIGH ORDER
3455 003720'00 270 10 0 00 000001 ADD P2,S1 ;ADD TO LOW ORDER PART
3456 003721'00 606 07 0 00 000010 VALHD2: TXNN P1,HD$BCT ;IS BIT COUNT PRESENT?
3457 003722'00 254 00 0 00 003733' JRST VALHD3 ;NO
3458 003723'00 260 17 0 00 004116' $CALL GETBYT ;YES..GET IT
3459 003724'00 322 00 0 00 012737' JUMPF [$MFERR 0,14] ;BAD FORMAT
3460 003725'00 202 01 0 15 000004 MOVEM S1,.DPBCT(DL) ;SAVE IT
3461 003726'00 303 01 0 00 000007 CAILE S1,7 ;Within range?
3462 003727'00 254 00 0 00 012740' $MIERR (0,14) ;No..return invalid field
3463 003730'00 200 01 0 15 000000 MOVE S1,.DPTYP(DL) ;Get message type
3464 003731'00 304 01 0 00 000010 CAIA S1,.DMDAT ;Data message ;**Skip for Kludge
3465 003732'00 254 00 0 00 012740' $MIERR (0,14) ;No..return invalid field
3466 003733'00 602 07 0 00 000020 VALHD3: TXNE P1,HD$SEG ;Segmented message?
3467 003734'00 254 00 0 00 012743' $MUERR (0,15) ;Yes..return unsupported
3468 003735'00 602 07 0 00 000006 TXNE P1,HD$LEN!HD$LN2 ;IS MESSAGE BLOCKED?
3469 003736'00 316 10 0 15 000005 CAMN P2,.DPCNT(DL) ;YES..IS SIZE EXACT?
3470 003737'00 254 00 0 00 003753' JRST VALHD5 ;YES..JUST RETURN
3471 003740'00 200 01 0 00 000000# MOVE S1,RCVLST ;Message is blocked.
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 67-1
DAPLIB MAC 14-Jan-82 09:58 VALHDR Routine to validate standard dap message header
3472 003741'00 260 17 0 00 003757' $CALL NEWHDR ;Create a new header
3473 003742'00 202 10 0 15 000005 MOVEM P2,.DPCNT(DL) ;Save actual count
3474 003743'00 276 10 0 02 000005 SUBM P2,.DPCNT(S2) ;Adjust next message count
3475 003744'00 213 03 0 02 000005 MOVNS T1,.DPCNT(S2) ;Get positive count
3476 003745'00 202 03 0 02 000002 MOVEM T1,.DPLEN(S2) ;Save actual length
3477 003746'00 133 10 0 02 000006 ADJBP P2,.DPBPT(S2) ;Adjust next message pointer
3478 003747'00 202 10 0 02 000006 MOVEM P2,.DPBPT(S2) ;Save for next parse
3479 003750'00 402 00 0 02 000000 SETZM .DPTYP(S2) ;Clear next message type
3480 003751'00 402 00 0 02 000001 SETZM .DPFLG(S2) ;Clear next message flags
3481 003752'00 402 00 0 02 000004 SETZM .DPBCT(S2) ;Clear next message bitcnt
3482 003753'00 200 01 0 15 000005 VALHD5: MOVE S1,.DPCNT(DL) ;Set length and count the same
3483 003754'00 202 01 0 15 000002 MOVEM S1,.DPLEN(DL)
3484 003755'00 200 01 0 15 000000 MOVE S1,.DPTYP(DL) ;Return current message type
3485 003756'00 324740 003666* $RETT
3486
3487 SUBTTL NEWHDR Routine to create a new header only
3488
3489 ;Accepts S1/ Send of recieve list address
3490
3491 ;Returns TRUE DL/ Address of new message header
3492 ; S2/ Address of old message header
3493 ; Old header copied to new header
3494
3495 003757'00 201 02 0 00 000011 NEWHDR: MOVEI S2,.DPSIZ ;Create header entry
3496 003760'00 260 17 0 00 000000* $CALL L%CBFR ; Before current entry
3497 003761'00 504 01 0 00 000015 HRL S1,DL ;Source is old header
3498 003762'00 540 01 0 00 000002 HRR S1,S2 ;Dest is new header
3499 003763'00 251 01 0 02 000010 BLT S1,.DPSIZ-1(S2) ;Copy old header
3500 003764'00 250 15 0 00 000002 EXCH DL,S2 ;Make new header current
3501 003765'00 324740 003756* $RETT
3502
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 68
DAPLIB MAC 14-Jan-82 09:58 VALMSG Routine to parse current DAP message
3503 SUBTTL VALMSG Routine to parse current DAP message
3504
3505 ;VALMSG reads the message descriptor and parses each argument field
3506 ; described in the message descriptor. The message descriptor
3507 ; is defined using the DOMSG and xxxMSG macros that live in
3508 ; DAPSYM, thus to add another message or field to a message
3509 ; it is only necessary to add the definition to DAPSYM.
3510
3511 ;VALMSG will ensure that the message information is parsed and stored
3512 ; in the appropriate local storage.
3513
3514 ;Accepts S1/ Address of message descriptor
3515
3516 ;Returns TRUE All message fields stored
3517
3518 ; FALSE S1/ Message format error code
3519 ; S2/ Parsed message type
3520
3521 003766'00 260 17 0 00 000000* VALMSG: $SAVE <P1,P2,P3,P4>
3522 003767'00 200 07 0 00 000001 MOVE P1,S1 ;P1 points to message descriptor
3523 003770'00 332 00 0 00 000000# $DEBUG (Parsing ,<^Q/0(P1),RHMASK/ message>)
3524 003771'00 260 17 0 00 012764'
3525 003772'00 200 03 0 07 000002 MOVE T1,2(P1) ;Get message flags and fld count
3526 003773'00 607 03 0 00 400000 TXNN T1,DA%NOZ ;Clear message before recieve?
3527 003774'00 260 17 0 00 004057' $CALL CLRMSG ;Yes..zero message storage
3528 003775'00 201 11 0 00 100020 MOVX P3,FLD(ER$FMT,ER%MAC)+FLD(20,ER%FLD) ;Init format error
3529 003776'00 554 01 0 07 000000 HLRZ S1,0(P1) ;Get message type
3530 003777'00 137 01 0 00 012770' STORE S1,P3,ER%TYP ;Save message type in error code
3531 004000'00 514 03 0 00 000003 HRLZ T1,T1 ;Get message field count
3532 004001'00 322 03 0 00 004056' JUMPE T1,VALMS7 ;Exit if no message fields
3533 004002'00 210 03 0 00 000003 MOVN T1,T1 ;Negate it to form AOBJN pointer
3534 004003'00 541 03 0 07 000003 HRRI T1,3(P1) ;Point to first argument
3535 004004'00 200 07 0 00 000003 MOVE P1,T1 ;Put pointer in P1
3536 004005'00 476 00 0 00 000010 SETOM P2 ;Setup initial menu
3537 004006'00 200 03 0 07 000000 VALMS1: MOVE T1,(P1) ;Get next field type
3538 004007'00 607 03 0 00 400000 TXNN T1,DA%VER ;Want version check?
3539 004010'00 254 00 0 00 004013' JRST VALMS2 ;No..see if default is present
3540 004011'00 271 07 0 00 000001 ADDI P1,1 ;Yes..point past it
3541 004012'00 344 07 0 00 004006' AOJA P1,VALMS1 ;Get the next field descriptor
3542 004013'00 135 01 0 00 012771' VALMS2: LOAD S1,T1,DA%SIZ ;Get max size of argument
3543 004014'00 550 02 0 00 000003 LOAD S2,T1,DA%STG ;Get storage offset for argument
3544 MULINK< ADD S2,CP> ;Get actual storage address
3545 004015'00 135 12 0 00 012772' LOAD P4,T1,DA%TYP ;Get argument type
3546 004016'00 607 03 0 00 200000 TXNN T1,DA%DEF ;Default present?
3547 004017'00 254 00 0 00 004023' JRST VALMS3 ;No..call the processor
3548 004020'00 271 07 0 00 000001 ADDI P1,1 ;Yes..point to it
3549 004021'00 200 03 0 07 000000 MOVE T1,0(P1) ;Get the default
3550 004022'00 202 03 0 02 000000 MOVEM T1,(S2) ;Store it
3551
3552 ;VALMSG Continued on next page
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 69
DAPLIB MAC 14-Jan-82 09:58 VALMSG Routine to parse current DAP message
3553 ;VALMSG Continued from previous page
3554
3555 004023'00 606 10 0 00 000001 VALMS3: TXNN P2,1 ;Is field specified by menu?
3556 004024'00 254 00 0 00 004034' JRST VALMS5 ;No..skip it
3557 004025'00 554 03 0 12 000317' HLRZ T1,ARGTBL(P4) ;Yes..get processor address
3558 004026'00 306 12 0 00 000007 CAIN P4,.ARDAT ;Message data field?
3559 004027'00 254 00 0 00 004032' JRST VALMS4 ;Yes..always call the processor
3560 004030'00 337 00 0 15 000005 SKIPG .DPCNT(DL) ;No..is field present?
3561 004031'00 634 01 0 00 000001 TDZA S1,S1 ;No..clear possible menu result
3562 004032'00 260 17 0 03 000000 VALMS4: $CALL 0(T1) ;Yes..call the processor
3563 004033'00 322 00 0 00 004051' JUMPF VALMS6 ;Return format error if false
3564 004034'00 242 10 0 00 777777 VALMS5: LSH P2,-1 ;Shift menu one place
3565 004035'00 306 12 0 00 000004 CAIN P4,.ARMNU ;Argument type a menu?
3566 004036'00 404 10 0 00 000001 AND P2,S1 ;Yes..Save selected menu bits
3567 004037'00 271 11 0 00 000001 ADDI P3,1 ;Bump format error to next field
3568 004040'00 253 07 0 00 004006' AOBJN P1,VALMS1 ;Do all fields
3569 004041'00 200 03 0 15 000000 MOVE T1,.DPTYP(DL) ;Get message type
3570 004042'00 302 03 0 00 000001 CAIE T1,.DMCFG ;Don't check length for config
3571 004043'00 306 03 0 00 000010 CAIN T1,.DMDAT ; or data message
3572 004044'00 254 00 0 00 004056' JRST VALMS7 ;Data will be processed later
3573 004045'00 337 00 0 15 000005 SKIPG .DPCNT(DL) ;Finished..Everything parse?
3574 004046'00 254 00 0 00 004056' JRST VALMS7 ;Yes..return success
3575 004047'00 201 01 0 00 000002 MOVX S1,ER$USP ;No..specify Unsupported field
3576 004050'00 137 01 0 00 012773' STORE S1,P3,ER%MAC
3577 004051'00 603 13 0 00 000200 VALMS6: TXNE S,S%JERR ;[127]WAS IT A JSYS ERROR?
3578 004052'00 324740 003620* $RETF ;[127]YES RETURN IT
3579 004053'00 200 01 0 00 000011 MOVE S1,P3 ;Get current field format error
3580 004054'00 135 02 0 00 012672' LOAD S2,S1,ER%TYP ;Extract message type
3581 004055'00 324740 004052* $RETF ;Return the failure
3582
3583 004056'00 324740 003765* VALMS7: $RETT
3584
3585
3586 SUBTTL CLRMSG Routine to clear DAP message storage
3587
3588 ;Accepts S1/ Message descriptor address
3589
3590 004057'00 304 00 0 00 000000 CLRMSG: $SAVE <S1,S2> ;Preserve scratch AC's
3591 004064'00 550 02 0 01 000001 HRRZ S2,1(S1) ;Get starting offsett
3592 004065'00 554 01 0 01 000001 HLRZ S1,1(S1) ;Get size of storage
3593 MULINK< ADD S2,CP> ;Get storage address
3594 004066'00 260 17 0 00 002771* $CALL .ZCHNK
3595 004067'00 324740 004056* $RETT
3596
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 70
DAPLIB MAC 14-Jan-82 09:58 GETFIX Routine to process DAP byte arguments
3597 SUBTTL GETFIX Routine to process DAP byte arguments
3598
3599 ;GETFIX Get 1 to 4 bytes from DAP message
3600
3601 ;Accepts S1/ number of bytes to retrieve
3602 ; S2/ destination address
3603
3604 ;Returns S1/ result (bytes stored right to left)
3605 ; S2/ destination address
3606
3607 004070'00 301 01 0 00 000001 GETFIX: CAIL S1,1 ;Check range
3608 004071'00 303 01 0 00 000004 CAILE S1,4
3609 004072'00 324740 004055* $RETF ;Return failure
3610 004073'00 200 03 0 00 000001 MOVE T1,S1 ;Save byte count
3611 004074'00 260 17 0 00 004116' $CALL GETBYT ;Get byte from message
3612 004075'00 322 00 0 00 002673* $RETIF ;Return on failure
3613 004076'00 200 04 0 00 000001 MOVE T2,S1 ;Put byte in T2
3614 004077'00 362 03 0 00 004113' SOJE T1,GETFI1 ;Exit if count is zero
3615 004100'00 260 17 0 00 004116' $CALL GETBYT
3616 004101'00 322 00 0 00 004075* $RETIF
3617 004102'00 137 01 0 00 013002' DPB S1,[POINT 8,T2,27] ;Store next byte
3618 004103'00 362 03 0 00 004113' SOJE T1,GETFI1 ;Exit if count is zero
3619 004104'00 260 17 0 00 004116' $CALL GETBYT ;Get next byte
3620 004105'00 322 00 0 00 004101* $RETIF ;Return on failure
3621 004106'00 137 01 0 00 013003' DPB S1,[POINT 8,T2,19] ;Store next byte
3622 004107'00 362 03 0 00 004113' SOJE T1,GETFI1 ;Exit if count is zero
3623 004110'00 260 17 0 00 004116' $CALL GETBYT
3624 004111'00 322 00 0 00 004105* $RETIF ;Return on failure
3625 004112'00 137 01 0 00 013004' DPB S1,[POINT 8,T2,11] ;Store this byte
3626 004113'00 202 04 0 02 000000 GETFI1: MOVEM T2,(S2) ;Store the result
3627 004114'00 200 01 0 00 000004 MOVE S1,T2 ;Return answer in S1
3628 004115'00 324740 004067* $RETT
3629
3630 SUBTTL GETBYT Routine to return a single DAP message byte
3631 ;GETBYT is the lowest level routine called in message parsing
3632 ; It is called to return a single DAP message byte
3633
3634 ;Returns TRUE S1/ 8 bit byte from message
3635
3636 ; FALSE S1/ 0 (no more bytes in current message)
3637
3638 004116'00 375 00 0 15 000005 GETBYT: SOSGE .DPCNT(DL) ;Is byte available?
3639 JRST [SETZM S1 ;No..Clear our answer
3640 004117'00 254 00 0 00 013005' $RETF] ;Return a failure
3641 004120'00 134 01 0 15 000006 ILDB S1,.DPBPT(DL) ;Yes..return the byte
3642 004121'00 324740 004115* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 71
DAPLIB MAC 14-Jan-82 09:58 GETVAR Routine to process DAP variable length arguments
3643 SUBTTL GETVAR Routine to process DAP variable length arguments
3644
3645 ;GETVAR Get variable length ascii field from DAP message
3646 ; Field is stored as an Asciz string
3647
3648 ;Accepts S1/ Maximum size of argument
3649 ; S2/ Storage address
3650
3651 ;Returns S1/ Actual size of argument
3652 ; S2/ Storage address
3653
3654 004122'00 200 03 0 00 000001 GETVAR: MOVE T1,S1 ;Put count in T1
3655 004123'00 260 17 0 00 004116' $CALL GETBYT ;Get the count byte
3656 004124'00 322 00 0 00 004111* $RETIF ;Return on failure
3657 004125'00 313 01 0 00 000003 CAMLE S1,T1 ;Check length of field
3658 004126'00 324740 004072* $RETF ;Argument to long
3659 004127'00 304 00 0 00 000000 $SAVE <S1,S2> ;Save returning arguments
3660 004134'00 505 02 0 00 440700 HRLI S2,(POINT 7) ;Point to destination
3661 004135'00 336 03 0 00 000001 SKIPN T1,S1 ;Put actual count in T1
3662 004136'00 254 00 0 00 004143' JRST GETVA2 ;Exit on null count
3663 004137'00 260 17 0 00 004116' GETVA1: $CALL GETBYT ;Get a byte from message
3664 004140'00 322 00 0 00 004124* $RETIF ;Return on failure
3665 004141'00 136 01 0 00 000002 IDPB S1,S2 ;Store the byte in message
3666 004142'00 367 03 0 00 004137' SOJG T1,GETVA1 ;Get all the bytes
3667 004143'00 136 03 0 00 000002 GETVA2: IDPB T1,S2 ;Store a null
3668 004144'00 324740 004121* $RETT ;Return
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 72
DAPLIB MAC 14-Jan-82 09:58 GETINT Routine to process DAP integer arguments
3669 SUBTTL GETINT Routine to process DAP integer arguments
3670
3671 ;GETINT Get variable length integer field from DAP message
3672
3673 ;Accepts S1/ Maximum size of field
3674 ; S2/ Storage address
3675
3676 ;Returns S1/ Argument low order bits
3677 ; S2/ Argument high order bits
3678
3679 004145'00 540 06 0 00 000002 GETINT: HRR T4,S2 ;Save original address
3680 004146'00 504 06 0 00 000001 HRL T4,S1 ;Save original count
3681 004147'00 403 03 0 00 000004 SETZB T1,T2 ;Clear the result
3682 004150'00 260 17 0 00 004116' $CALL GETBYT ;Get the count byte
3683 004151'00 322 00 0 00 004140* $RETIF ;Return on failure
3684 004152'00 322 01 0 00 004213' JUMPE S1,GETIN1 ;Exit on null count
3685 004153'00 307 01 0 00 000011 CAIG S1,^D9 ;Argument length ok?
3686 004154'00 313 01 0 15 000005 CAMLE S1,.DPCNT(DL) ;Enough bytes left?
3687 004155'00 324740 004126* $RETF ;No..return the error
3688 004156'00 200 05 0 00 000001 MOVE T3,S1 ;Store the actual length
3689 004157'00 260 17 0 00 004116' $CALL GETBYT ;Get the least significant byte
3690 004160'00 137 01 0 00 013007' DPB S1,[POINT 8,T1,35] ;Store it
3691 004161'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3692 004162'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3693 004163'00 137 01 0 00 013010' DPB S1,[POINT 8,T1,27] ;Store it
3694 004164'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3695 004165'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3696 004166'00 137 01 0 00 013011' DPB S1,[POINT 8,T1,19] ;Store it
3697 004167'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3698 004170'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3699 004171'00 137 01 0 00 013012' DPB S1,[POINT 8,T1,11] ;Store it
3700 004172'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3701 004173'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3702 004174'00 137 01 0 00 013013' DPB S1,[POINT 4,T1,3] ;Store 4 bits
3703 004175'00 242 01 0 00 777774 LSH S1,-4 ;Get the next 4
3704 004176'00 137 01 0 00 013014' DPB S1,[POINT 4,T2,35] ;Store them
3705 004177'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3706 004200'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3707 004201'00 137 01 0 00 013015' DPB S1,[POINT 8,T2,31] ;Store it
3708 004202'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3709 004203'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3710 004204'00 137 01 0 00 013016' DPB S1,[POINT 8,T2,23] ;Store it
3711 004205'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3712 004206'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3713 004207'00 137 01 0 00 013017' DPB S1,[POINT 8,T2,15] ;Store it
3714 004210'00 362 05 0 00 004213' SOJE T3,GETIN1 ;Exit if count is zero
3715 004211'00 260 17 0 00 004116' $CALL GETBYT ;Get the next byte
3716 004212'00 137 01 0 00 013020' DPB S1,[POINT 8,T2,7] ;Store it
3717 004213'00 120 01 0 00 000003 GETIN1: DMOVE S1,T1 ;Return the result
3718 004214'00 202 01 0 06 000000 MOVEM S1,0(T4) ;Save low order part
3719 004215'00 554 05 0 00 000006 HLRZ T3,T4 ;Get argument length
3720 004216'00 301 05 0 00 000005 CAIL T3,^D5 ;Want a high order part?
3721 004217'00 202 02 0 06 000001 MOVEM S2,1(T4) ;Save high order part
3722 004220'00 263 17 0 00 000000 $RET
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 73
DAPLIB MAC 14-Jan-82 09:58 GETPRO Routine to get Protection field from DAP message
3723 SUBTTL GETPRO Routine to get Protection field from DAP message
3724
3725 ;GETPRO Get 3 byte extensible protection field from message
3726 ; and store in internal format
3727
3728 ;Accepts S1/ Size of protection field (3)
3729 ; S2/ Storage address
3730
3731 ;Returns S1/ Internal protection right justified
3732 ; S2/ Storage address
3733
3734
3735 004221'00 261 17 0 00 000002 GETPRO: PUSH P,S2 ;Save storage address
3736 004222'00 260 17 0 00 004244' $CALL GETEXF ;Process as extensible field
3737 004223'00 201 02 0 00 000077 MOVX S2,77 ;Assume full access allowed
3738 004224'00 602 01 0 00 000001 TXNE S1,PR$DRA ;Allow read access?
3739 004225'00 620 02 0 00 000040 TXZ S2,FP%RD ;No..then deny it
3740 004226'00 602 01 0 00 000002 TXNE S1,PR$DWA ;Allow write access?
3741 004227'00 620 02 0 00 000020 TXZ S2,FP%WR ;No..then deny it
3742 004230'00 602 01 0 00 000004 TXNE S1,PR$DEA ;Allow execute access?
3743 004231'00 620 02 0 00 000010 TXZ S2,FP%EX ;No..then deny it
3744 004232'00 602 01 0 00 000020 TXNE S1,PR$DAA ;Allow append access?
3745 004233'00 620 02 0 00 000004 TXZ S2,FP%APP ;No..then deny it
3746 004234'00 602 01 0 00 000040 TXNE S1,PR$DLA ;Allow directory list access?
3747 004235'00 620 02 0 00 000002 TXZ S2,FP%DIR ;No..then deny it
3748 004236'00 302 02 0 00 000077 CAIE S2,77 ;Anything denied?
3749 004237'00 620 02 0 00 000001 TXZ S2,1 ;Yes..clear LSB
3750 004240'00 200 01 0 00 000002 MOVE S1,S2 ;Put internal protection in S1
3751 004241'00 262 17 0 00 000002 POP P,S2 ;Restore storage address
3752 004242'00 202 01 0 02 000000 MOVEM S1,(S2) ;Store the result
3753 004243'00 263 17 0 00 000000 $RET ;Return True/false per result
3754 ; of GETEXF call
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 74
DAPLIB MAC 14-Jan-82 09:58 GETEXF Routine to process DAP extensible fields
3755 SUBTTL GETEXF Routine to process DAP extensible fields
3756 SUBTTL GETMNU Routine to process DAP extensible menu fields
3757
3758 ;GETEXF Reads an extensible field from DAP message
3759 ;Extensible fields are stored right justifed and may be up to
3760 ;70 information bits in length (10 dap bytes)
3761 ;The Extention bits are not stored in the extensible field
3762
3763 ;Accepts S1/ Maximum size of field
3764 ; S2/ Storage address
3765
3766 ;Returns S1/ Low order bits of extensible field
3767 ; S2/ High order bits of extensible field
3768
3769 004244'00 GETMNU:
3770 004244'00 403 03 0 00 000004 GETEXF: SETZB T1,T2 ;Clear result
3771 004245'00 402 00 0 00 000005 SETZM T3 ;Clear counter
3772 004246'00 200 06 0 00 000001 MOVE T4,S1 ;Save maximum size
3773 004247'00 260 17 0 00 004116' GETEX1: $CALL GETBYT ;Get the low order byte
3774 004250'00 322 00 0 00 004151* $RETIF ;Return on error
3775 004251'00 303 05 0 00 000012 CAILE T3,^D10 ;Done too much?
3776 004252'00 324740 004155* $RETF ;Yes..return failure
3777 004253'00 137 01 0 05 004275' DPB S1,EXFTBL(T3) ;Store the byte
3778 004254'00 306 05 0 00 000005 CAIN T3,5 ;Doing 1 bit entry?
3779 004255'00 254 00 0 00 004261' JRST GETEX2 ;Yes..store next 6 bits
3780 004256'00 606 01 0 00 000200 TXNN S1,DP$EXF ;No..Extended?
3781 004257'00 254 00 0 00 004266' JRST GETEX3 ;No..check the result
3782 004260'00 344 05 0 00 004247' AOJA T3,GETEX1 ;Get next byte
3783
3784 004261'00 271 05 0 00 000001 GETEX2: ADDI T3,1 ;Get next pointer
3785 004262'00 242 01 0 00 777777 LSH S1,-1 ;Get next 6 bits
3786 004263'00 137 01 0 05 004275' DPB S1,EXFTBL(T3) ;Store them
3787 004264'00 612 01 0 00 013021' TXNE S1,DP$EXF/2(T3) ;Extended?
3788 004265'00 344 05 0 00 004247' AOJA T3,GETEX1 ;Yes..do the next byte
3789
3790 004266'00 303 05 0 06 000001 GETEX3: CAILE T3,1(T4) ;Done too many bytes?
3791 004267'00 324740 004252* $RETF ;Yes..return failure
3792 004270'00 202 03 0 02 000000 MOVEM T1,0(S2) ;Store low order bits
3793 004271'00 303 06 0 00 000005 CAILE T4,5 ;Double word value?
3794 004272'00 202 04 0 02 000001 MOVEM T2,1(S2) ;Yes..store high order bits
3795 004273'00 120 01 0 00 000003 DMOVE S1,T1 ;Return result in S1-S2
3796 004274'00 324740 004144* $RETT
3797
3798 004275'00 00 07 0 00 000003 EXFTBL: POINT 7,T1,35 ;Byte 0 (bits 1-7)
3799 004276'00 07 07 0 00 000003 POINT 7,T1,28 ;Byte 1
3800 004277'00 16 07 0 00 000003 POINT 7,T1,21 ;Byte 2
3801 004300'00 25 07 0 00 000003 POINT 7,T1,14 ;Byte 3
3802 004301'00 34 07 0 00 000003 POINT 7,T1,7 ;Byte 4
3803 004302'00 43 01 0 00 000003 POINT 1,T1,0 ;Byte 5 (bit 7)
3804 004303'00 00 06 0 00 000004 POINT 6,T2,35 ;Byte 5 (bits 1-6)
3805 004304'00 06 07 0 00 000004 POINT 7,T2,29 ;Byte 6 (bits 1-7)
3806 004305'00 15 07 0 00 000004 POINT 7,T2,22 ;Byte 7
3807 004306'00 24 07 0 00 000004 POINT 7,T2,15 ;Byte 8
3808 004307'00 33 07 0 00 000004 POINT 7,T2,8 ;Byte 9
3809 004310'00 42 02 0 00 000004 POINT 2,T2,1 ;Byte 10 (Bits 6-7)
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 75
DAPLIB MAC 14-Jan-82 09:58 GETDTI Routine to process Date/time field in DAP message
3810 SUBTTL GETDTI Routine to process Date/time field in DAP message
3811
3812 ;GETDTI Gets an 18 byte date time field stored as dd-mmm-yyyy hh:mm
3813 ; and stored the field in standard internal format
3814
3815 ;Accepts S1/ Argument size (18)
3816 ; S2/ Storage address
3817
3818 ;Returns S1/ Internal Date/time
3819 ; S2/ Storage address
3820
3821 004311'00 313 01 0 15 000005 GETDTI: CAMLE S1,.DPCNT(DL) ;Enough room in message?
3822 004312'00 324740 004267* $RETF ;No..return failure
3823 004313'00 261 17 0 00 000002 PUSH P,S2 ;Save storage address
3824 004314'00 201 02 0 00 000000# MOVEI S2,MSGJNK ;Point to temporary string
3825 004315'00 505 02 0 00 440700 HRLI S2,(POINT 7) ;Generate pointer
3826 004316'00 200 03 0 00 000001 MOVE T1,S1 ;Move count to T1
3827 004317'00 260 17 0 00 004137' $CALL GETVA1 ;Extract bytes from message
3828 004320'00 322 00 0 00 004326' JUMPF GETDT1 ;Return False on failure
3829 004321'00 561 01 0 00 000000# HRROI S1,MSGJNK ;Point to string
3830 004322'00 205 02 0 00 201206 MOVX S2,IT%NNM!IT%AIS!IT%AAC!IT%NTM!IT%NTZ
3831 004323'00 104 00 0 00 000221 IDTIM ;Convert to internal form
3832 004324'00 201 00 0 00 000000 MOVX TF,FALSE ;Indicate failure
3833 004325'00 200 01 0 00 000002 MOVE S1,S2 ;Return result in S1
3834 004326'00 262 17 0 00 000002 GETDT1: POP P,S2 ;Restore storage address
3835 004327'00 202 01 0 02 000000 MOVEM S1,(S2) ;Store the result
3836 004330'00 263 17 0 00 000000 $RET ;Return TF per results
3837
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 76
DAPLIB MAC 14-Jan-82 09:58 GETDAT Routine to process DATA field from DAP message
3838 SUBTTL GETDAT Routine to process DATA field from DAP message
3839
3840
3841 004331'00 200 01 0 15 000006 GETDAT: MOVE S1,.DPBPT(DL) ;Point to the data
3842 004332'00 200 02 0 15 000005 MOVE S2,.DPCNT(DL) ;Get the count
3843 004333'00 332 00 0 00 000000# SKIPF CRCFLG ;Doing CRC?
3844 004334'00 260 17 0 00 005301' $CALL DOCRC ;Yes, calculate it
3845 004335'00 554 01 0 00 000000# HLRZ S1,DATDAT ;Get routine address
3846 004336'00 260 17 0 01 000000 $CALL 0(S1) ;Call the routine
3847 004337'00 263 17 0 00 000000 $RET ;Return per processing routine
3848
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 77
DAPLIB MAC 14-Jan-82 09:58 GETASC Routine to process ascii data in message
3849 SUBTTL GETASC Routine to process ascii data in message
3850
3851 004340'00 200 01 0 00 000000# GETASC: MOVE S1,SRCMOD ;Get source data mode
3852 004341'00 306 01 0 00 000013 CAIN S1,.MD11 ;Print files?
3853 004342'00 324 17 0 00 004410' PJRST GETPRN ;Yes..process it
3854 004343'00 306 01 0 00 000014 CAIN S1,.MD12 ;Fortran files?
3855 004344'00 255 00 0 00 000000 JFCL ;[126]STRIP THE FIXED CONTROL PART
3856 004345'00 200 01 0 00 000000# MOVE S1,ATTRFM ;Get record format
3857 004346'00 302 01 0 00 000003 CAXE S1,FB$VFC ;Variable with fixed control?
3858 004347'00 254 00 0 00 004355' JRST GETAS1 ;No..standard ascii
3859 004350'00 336 03 0 00 000000# SKIPN T1,ATTFSZ ;Yes..get fixed control size
3860 004351'00 254 00 0 00 004355' JRST GETAS1 ;Null fixed size..ignore it
3861 004352'00 260 17 0 00 004116' $CALL GETBYT ;Just strip the Line seq for now
3862 004353'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
3863 004354'00 367 03 0 00 004352' SOJG T1,.-2 ;Get entire fixed header
3864 004355'00 260 17 0 00 004116' GETAS1: $CALL GETBYT ;Get byte from message
3865 004356'00 322 00 0 00 004362' JUMPF GETAS2 ;Check for implied CR-LF
3866 004357'00 260 17 0 00 006766' $CALL OUTBYT ;Write the byte
3867 004360'00 322 00 0 00 004250* $RETIF ;Return the error on failure
3868 004361'00 254 00 0 00 004355' JRST GETAS1 ;Get the next byte
3869
3870 004362'00 200 01 0 00 000000# GETAS2: MOVE S1,ATTRAT ;Get file attributes
3871 004363'00 606 01 0 00 000002 TXNN S1,FB$CR ;Implied CR-LF?
3872 004364'00 602 01 0 00 000001 TXNE S1,FB$FTN ;[126]OR FORTRAN CARRAIGE CONTROL?
3873 004365'00 334 00 0 00 000000 SKIPA ;[126]
3874 004366'00 324740 004274* $RETT ;No..just return
3875 004367'00 135 01 0 15 000006 LDB S1,.DPBPT(DL) ;Get terminating byte
3876 004370'00 201 02 0 00 000001 MOVEI S2,1 ;Get a one bit
3877 004371'00 242 02 0 01 000000 LSH S2,0(S1) ;Justify per character
3878 004372'00 612 02 0 00 013022' TXNE S2,ASCBRK ;Was it a break character?
3879 004373'00 324740 004366* $RETT ;Yes..don't append CRLF
3880 004374'00 201 01 0 00 000015 GETAS3: MOVEI S1,.CHCRT ;Get a CR
3881 004375'00 260 17 0 00 006766' $CALL OUTBYT ;Write to file
3882 004376'00 322 00 0 00 004360* $RETIF ;Return the error on failure
3883 004377'00 201 01 0 00 000012 MOVEI S1,.CHLFD ;Get a LF
3884 004400'00 260 17 0 00 006766' $CALL OUTBYT
3885 004401'00 322 00 0 00 004376* $RETIF ;Return the error on failure
3886 004402'00 324740 004373* $RETT
3887
3888 004403'00 254 00 0 00 013023' ILLREC: $MTERR (ER$IRC) ;Illegal record format
3889 SUBTTL TSTPRN Routine to do final linefeed for print files
3890
3891 004404'00 200 01 0 00 000000# TSTPRN: MOVE S1,ATTRAT ;Get record attributes
3892 004405'00 602 01 0 00 000005 TXNE S1,FB$PRN+FB$FTN ;Print or Fortran format?
3893 004406'00 254 00 0 00 004374' JRST GETAS3 ;Yes..do final <CRLF>
3894 004407'00 324740 004402* $RETT ;No..just return
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 78
DAPLIB MAC 14-Jan-82 09:58 GETPRN Routine to process print file format (vax)
3895 SUBTTL GETPRN Routine to process print file format (vax)
3896
3897 004410'00 260 17 0 00 004116' GETPRN: $CALL GETBYT ;Get the first byte
3898 004411'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
3899 004412'00 260 17 0 00 004425' $CALL GETPR3 ;Write prefix
3900 004413'00 322 00 0 00 004401* $RETIF ;Return the error on failure
3901 004414'00 260 17 0 00 004116' $CALL GETBYT ;Get postfix byte
3902 004415'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
3903 004416'00 200 06 0 00 000001 MOVE T4,S1 ;Remember it
3904 004417'00 260 17 0 00 004116' GETPR1: $CALL GETBYT ;Get byte from message
3905 004420'00 322 00 0 00 004424' JUMPF GETPR2 ;Do post fixup
3906 004421'00 260 17 0 00 006766' $CALL OUTBYT ;Write the byte
3907 004422'00 322 00 0 00 004413* $RETIF ;Return the error on failure
3908 004423'00 254 00 0 00 004417' JRST GETPR1 ;Get the next byte
3909 004424'00 200 01 0 00 000006 GETPR2: MOVE S1,T4 ;Get post fixup character
3910 004425'00 336 03 0 00 000001 GETPR3: SKIPN T1,S1 ;Put character in T1
3911 004426'00 254 00 0 00 004437' JRST GETPR5 ;Ignore nulls
3912 004427'00 602 01 0 00 000200 TXNE S1,200 ;Count of linefeeds?
3913 004430'00 634 03 0 00 000003 TDZA T1,T1 ;No..clear the count
3914 004431'00 201 01 0 00 000012 MOVEI S1,.CHLFD ;Get the character
3915 004432'00 626 01 0 00 000140 TXZN S1,140 ;8 bit control character?
3916 004433'00 620 01 0 00 000200 TXZ S1,200 ;No..clear MSB
3917 004434'00 260 17 0 00 006766' GETPR4: $CALL OUTBYT ;No..just store the character
3918 004435'00 322 00 0 00 004422* $RETIF ;Return the error on failure
3919 004436'00 367 03 0 00 004434' SOJG T1,GETPR4 ;Repeat until finished
3920 004437'00 324740 004407* GETPR5: $RETT
3921
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 79
DAPLIB MAC 14-Jan-82 09:58 GETPAG Routine to get a file page from DAP message
3922 SUBTTL GETPAG Routine to get a file page from DAP message
3923
3924 ;GETPAG is called to create a filepage whose VBN is in DATRCN from
3925 ; the data in this message. Trailing zero words need not be
3926 ; part of the data message.
3927
3928 ; If VBN is 0 the file FDB will be transferred. VBN is the LBN +1.
3929 ;
3930
3931 004440'00 260 17 0 00 000000* GETPAG: $SAVE <P1,P2,P3>
3932 004441'00 402 00 0 00 000000# SETZM PAGNUM ;[134]RESET CURRENT FILE PAGE #
3933 004442'00 336 11 0 00 000000# SKIPN P3,DATRCN ;Get Requested VBN
3934 004443'00 254 00 0 00 004477' JRST GETPA3 ;Zero is special case for FDB
3935 004444'00 275 11 0 00 000001 SUBI P3,1 ;Convert to file page number
3936 004445'00 242 11 0 00 777776 LSH P3,-^D2
3937 004446'00 202 11 0 00 000000# MOVEM P3,PAGNUM ;[134]STORE CURRENT FILE PAGE NUMBER
3938 004447'00 260 17 0 00 000000* $CALL M%NXPG ;Get a page for the file
3939 004450'00 200 10 0 00 000001 MOVE P2,S1 ;Remember page number
3940 004451'00 242 01 0 00 000011 LSH S1,^D9 ;Convert to address
3941 004452'00 200 07 0 00 000001 MOVE P1,S1 ;Save the address
3942 004453'00 505 07 0 00 777000 HRLI P1,-PAGSIZ ;Build AOBJN pointer
3943 004454'00 402 00 0 07 000000 SETZM 0(P1) ;Create the page
3944 004455'00 402 00 0 15 000004 SETZM .DPBCT(DL) ;Clear starting bitcount
3945 004456'00 201 02 0 00 000044 GETPA1: MOVEI S2,^D36 ;Get a word from the messagee
3946 004457'00 260 17 0 00 004573' $CALL GETBCT
3947 004460'00 322 00 0 00 004463' JUMPF GETPA2 ;Finished if zero words are missing
3948 004461'00 202 01 0 07 000000 MOVEM S1,0(P1) ;Save the word for file
3949 004462'00 253 07 0 00 004456' AOBJN P1,GETPA1 ;Finish the page
3950 004463'00 333 00 0 15 000005 GETPA2: SKIPLE .DPCNT(DL) ;Make sure byte count is exausted
3951 004464'00 254 00 0 00 004403' JRST ILLREC ;Else return illegal record format
3952 004465'00 200 01 0 00 000010 MOVE S1,P2 ;Get page number
3953 004466'00 505 01 0 00 400000 HRLI S1,.FHSLF ;Map from process to file
3954 004467'00 200 02 0 00 000011 MOVE S2,P3 ;Get the file page number
3955 004470'00 504 02 0 00 000000# HRL S2,LOCJFN
3956 004471'00 205 03 0 00 160000 MOVX T1,PM%WR+PM%RD+PM%EX ;Set appropriate access bits
3957 004472'00 104 00 0 00 000056 PMAP
3958 004473'00 320 16 0 00 007707' ERJMP TERCVT ;Return the error
3959 004474'00 200 01 0 00 000010 MOVE S1,P2 ;Release the page
3960 004475'00 260 17 0 00 000000* $CALL M%RELP
3961 004476'00 324740 004437* $RETT
3962
3963 004477'00 304 00 0 00 000000 GETPA3: $SAVE <.FBAUT+ATTFDB> ;Save author if any from Attributes
3964 ;Replace rest of FDB from data message
3965 004503'00 205 07 0 00 777741 MOVSI P1,-.FBLEN ;Get length of the FDB
3966 004504'00 541 07 0 00 000000# HRRI P1,ATTFDB ;Point to it
3967 004505'00 402 00 0 15 000004 SETZM .DPBCT(DL) ;Clear initial bit count
3968 004506'00 201 02 0 00 000044 GETPA4: MOVEI S2,^D36 ;Get an FDB word
3969 004507'00 260 17 0 00 004573' $CALL GETBCT
3970 004510'00 322 00 0 00 004513' JUMPF GETPA5 ;Premature end of FDB
3971 004511'00 202 01 0 07 000000 MOVEM S1,0(P1) ;Store the word
3972 004512'00 253 07 0 00 004506' AOBJN P1,GETPA4 ;Get all the words
3973 004513'00 402 00 0 15 000005 GETPA5: SETZM .DPCNT(DL) ;Ignore short or long FDB
3974 004514'00 324740 004476* $RETT ;Return
3975
3976
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 80
DAPLIB MAC 14-Jan-82 09:58 GETIMG Routine to process image bit stream in data message
3977 SUBTTL GETIMG Routine to process image bit stream in data message
3978
3979 ;GETIMG Processes an image mode bit stream in the DAP message and
3980 ; turns it into a byte stream which is stored on disk. This
3981 ; routine is the standard routine called to Unpack n-bit
3982 ; bytes from the DAP message. The routine supports 4 record
3983 ; formats and stores the information on disk in the following
3984 ; manner:
3985
3986 ; UDF <Data...Data>
3987 ; FIX <Data...Data>
3988 ; VAR <Cnt(LSB)><Cnt(MSB)><Data...Data>
3989 ; VFC <Hdr(LSB)..Hdr(MSB)><Cnt(LSB)><Cnt(MSB)><Data...Data>
3990
3991 ;The actual bytesize of the image mode bit stream in the message
3992 ;is specified in the attributes message that proceeds the data.
3993
3994 004515'00 260 17 0 00 003667* GETIMG: $SAVE <P1,P2> ;Save some AC's
3995 004516'00 200 10 0 00 000000# MOVE P2,ATTBSZ ;P2 gets size of bitstream
3996 004517'00 200 01 0 15 000005 MOVE S1,.DPCNT(DL) ;Get remaining count
3997 004520'00 221 01 0 00 000010 IMULI S1,^D8 ;Get number of bits
3998 004521'00 274 01 0 15 000004 SUB S1,.DPBCT(DL) ;[141]COMPUTE TOTAL REAL BITS
3999 004522'00 230 01 0 00 000010 IDIV S1,P2 ;Compute BYTEcount
4000 004523'00 332 00 0 00 000002 SKIPE S2 ;[141]ANY LEFTOVER BITS?
4001 004524'00 254 00 0 00 013033' $MFERR (.DMDAT,14) ;No..invalid format
4002 004525'00 200 07 0 00 000001 MOVE P1,S1 ;P1 gets count of bytes
4003 004526'00 402 00 0 15 000004 SETZM .DPBCT(DL) ;Bitcount must start at 0
4004 004527'00 200 01 0 00 000000# MOVE S1,ATTRFM ;Get record format
4005 004530'00 302 01 0 00 000001 CAIE S1,FB$FIX ;Fixed record format?
4006 004531'00 306 01 0 00 000000 CAIN S1,FB$UDF ; or Undefined record format?
4007 004532'00 254 00 0 00 004563' JRST GETIM3 ;Yes..just store the data
4008 004533'00 306 01 0 00 000002 CAIN S1,FB$VAR ;Variable?
4009 JRST [SKIPLE MCYIDX ;Yes..doing MACY11 mode?
4010 $CALL ALNMCY ;Yes..align on even byte
4011 004534'00 254 00 0 00 013036' JRST GETIM2] ;Process variable records
4012 004535'00 336 01 0 00 000000# SKIPN S1,ATTFSZ ;Fixed header size?
4013 004536'00 254 00 0 00 004551' JRST GETIM2 ;No..process as variable.
4014 004537'00 274 07 0 00 000001 SUB P1,S1 ;Yes..subtract the fixed size
4015 004540'00 261 17 0 00 000007 PUSH P,P1 ;Save variable portion count
4016 004541'00 200 07 0 00 000001 MOVE P1,S1 ;Store the fixed part
4017 004542'00 200 02 0 00 000010 GETIM1: MOVE S2,P2 ;Get the bytesize
4018 004543'00 260 17 0 00 004573' $CALL GETBCT ;Get the first byte
4019 JUMPF [POP P,P1 ;Restore the stack
4020 004544'00 322 00 0 00 013041' $RET] ;Return the error
4021 004545'00 260 17 0 00 006766' $CALL OUTBYT ;Write the byte
4022 004546'00 322 00 0 00 004435* $RETIF ;Return the error on failure
4023 004547'00 367 07 0 00 004542' SOJG P1,GETIM1 ;Finish the fixed part
4024 004550'00 262 17 0 00 000007 POP P,P1 ;Restore variable count
4025 004551'00 200 01 0 00 000007 GETIM2: MOVE S1,P1 ;Write the record count
4026 004552'00 260 17 0 00 006766' $CALL OUTBYT
4027 004553'00 322 00 0 00 004546* $RETIF ;Return the error on failure
4028 004554'00 301 10 0 00 000014 CAIL P2,^D12 ;Small bytes?
4029 004555'00 254 00 0 00 004563' JRST GETIM3 ;No..Don't write second byte
4030 004556'00 210 02 0 00 000010 MOVN S2,P2 ;Yes..Get shift value
4031 004557'00 200 01 0 00 000007 MOVE S1,P1 ;Get the record count
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 80-1
DAPLIB MAC 14-Jan-82 09:58 GETIMG Routine to process image bit stream in data message
4032 004560'00 242 01 0 02 000000 LSH S1,0(S2) ;get the second byte
4033 004561'00 260 17 0 00 006766' $CALL OUTBYT ;Write the MSB of count
4034 004562'00 322 00 0 00 004553* $RETIF ;Return the error on failure
4035 004563'00 361 07 0 00 004572' GETIM3: SOJL P1,GETIM4 ;Finish when count expired
4036 004564'00 200 02 0 00 000010 MOVE S2,P2 ;Get the Attributes byte size
4037 004565'00 260 17 0 00 004573' $CALL GETBCT ;Get the bit stream
4038 004566'00 322 00 0 00 004562* $RETIF ;Return the error
4039 004567'00 260 17 0 00 006766' $CALL OUTBYT ;Write the byte to file
4040 004570'00 322 00 0 00 004566* $RETIF ;Return the error on failure
4041 004571'00 254 00 0 00 004563' JRST GETIM3 ;Get the next word
4042
4043 004572'00 324740 004514* GETIM4: $RETT ;Return to caller
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 81
DAPLIB MAC 14-Jan-82 09:58 GETBCT Routine to return bitstream from DAP message
4044 SUBTTL GETBCT Routine to return bitstream from DAP message
4045
4046 ;Accepts S2/ Bytesize (1-36)
4047
4048 ;Returns TRUE S1/ Byte right justified
4049
4050 004573'00 306 02 0 00 000010 GETBCT: CAIN S2,^D8 ;Nice bytesize?
4051 JRST [$CALL GETBYT ;Yes, get one and return
4052 $RETIT ; Success if one was found
4053 004574'00 254 00 0 00 013043' JRST ILLREC] ;Else return failure
4054 004575'00 400 06 0 00 000000 SETZ T4, ;Clear result
4055 004576'00 200 05 0 00 013046' MOVE T3,[POINT 8,T4,35] ;Get pointer to result
4056 004577'00 336 03 0 15 000004 SKIPN T1,.DPBCT(DL) ;Residual bit count?
4057 004600'00 254 00 0 00 004607' JRST GETBC1 ;no..start at byte boundry
4058 004601'00 510 04 0 03 006166' HLLZ T2,BCTTBL(T1) ;Get pointer adjustment
4059 004602'00 270 04 0 15 000006 ADD T2,.DPBPT(DL) ;Get pointer to bits
4060 004603'00 135 06 0 00 000004 LDB T4,T2 ;Put them in answer
4061 004604'00 137 03 0 00 013047' DPB T1,[POINT 6,T3,5] ;Pos = Bitcount
4062 004605'00 274 02 0 00 000003 SUB S2,T1 ;Get remaining bits
4063 004606'00 323 02 0 00 004624' JUMPLE S2,GETBC4 ;None left to get
4064 004607'00 231 02 0 00 000010 GETBC1: IDIVI S2,^D8 ;Get S2 bytcnt T1 Bitcnt
4065 004610'00 322 02 0 00 004616' JUMPE S2,GETBC3 ;Any full bytes to do?
4066 004611'00 260 17 0 00 004116' GETBC2: $CALL GETBYT ;Yes..Get a byte
4067 004612'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
4068 004613'00 137 01 0 00 000005 DPB S1,T3 ;Store in result
4069 004614'00 270 05 0 00 013050' ADD T3,[100000,,0] ;Say we stored 8 bits
4070 004615'00 367 02 0 00 004611' SOJG S2,GETBC2 ;Get next full byte
4071 004616'00 322 03 0 00 004624' GETBC3: JUMPE T1,GETBC4 ;Any residual bits?
4072 004617'00 260 17 0 00 004116' $CALL GETBYT ;Yes..get them
4073 004620'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
4074 004621'00 137 03 0 00 013051' DPB T1,[POINT 6,T3,11] ;Size = Bitcount
4075 004622'00 137 01 0 00 000005 DPB S1,T3 ;Store the odd bytes
4076 004623'00 570 02 0 03 006166' HRRE S2,BCTTBL(T1) ;Get residual bitcnt
4077 004624'00 212 02 0 15 000004 GETBC4: MOVNM S2,.DPBCT(DL) ;Store it
4078 004625'00 200 01 0 00 000006 MOVE S1,T4 ;Get the result
4079 004626'00 324740 004572* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 82
DAPLIB MAC 14-Jan-82 09:58 GETDOS Routine to store MACY11 variable length files
4080 SUBTTL GETDOS Routine to store MACY11 variable length files
4081
4082 004627'00 260 17 0 00 004515* GETDOS: $SAVE <P1,P2> ;Preserve some AC's
4083 004630'00 201 01 0 00 000001 MOVEI S1,1 ;Write first sync frame
4084 004631'00 260 17 0 00 006766' $CALL OUTBYT
4085 004632'00 322 00 0 00 004570* $RETIF ;Return the error on failure
4086 004633'00 201 01 0 00 000000 MOVEI S1,0 ;Write next sync frame
4087 004634'00 260 17 0 00 006766' $CALL OUTBYT
4088 004635'00 322 00 0 00 004632* $RETIF ;Return the error on failure
4089 004636'00 200 07 0 15 000005 MOVE P1,.DPCNT(DL) ;Get the record count
4090 004637'00 201 01 0 07 000004 MOVEI S1,4(P1) ;Get count to include header
4091 004640'00 201 10 0 01 000001 MOVEI P2,1(S1) ;Initialize checksum
4092 004641'00 260 17 0 00 006766' $CALL OUTBYT ;Store first count byte in file
4093 004642'00 322 00 0 00 004635* $RETIF ;Return the error on failure
4094 004643'00 242 01 0 00 777770 LSH S1,-^D8 ;Get High order byte
4095 004644'00 270 10 0 00 000001 ADD P2,S1 ;Include in checksum
4096 004645'00 260 17 0 00 006766' $CALL OUTBYT ;Store in file
4097 004646'00 322 00 0 00 004642* $RETIF ;Return the error on failure
4098 004647'00 260 17 0 00 004116' GETDO1: $CALL GETBYT ;Get a byte from the record
4099 004650'00 322 00 0 00 004403' JUMPF ILLREC ;Illegal record format
4100 004651'00 270 10 0 00 000001 ADD P2,S1 ;Tally the checksum
4101 004652'00 260 17 0 00 006766' $CALL OUTBYT ;Write to file
4102 004653'00 322 00 0 00 004646* $RETIF ;Return the error on failure
4103 004654'00 367 07 0 00 004647' SOJG P1,GETDO1 ;Do all record bytes
4104 004655'00 210 01 0 00 000010 MOVN S1,P2 ;Negate checsum
4105 004656'00 405 01 0 00 000377 ANDX S1,377 ;Just write 8 bits
4106 004657'00 260 17 0 00 006766' $CALL OUTBYT ;Store in file
4107 004660'00 322 00 0 00 004653* $RETIF ;Return the error on failure
4108 004661'00 201 07 0 00 000006 MOVEI P1,6 ;Store 6 null bytes
4109 004662'00 201 01 0 00 000000 MOVEI S1,0
4110 004663'00 260 17 0 00 006766' $CALL OUTBYT
4111 004664'00 322 00 0 00 004660* $RETIF ;Return the error on failure
4112 004665'00 367 07 0 00 004663' SOJG P1,.-2
4113 004666'00 324740 004626* $RETT
4114
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 83
DAPLIB MAC 14-Jan-82 09:58 SNDQUE Routine to send all messages in the send queue
4115 SUBTTL SNDQUE Routine to send all messages in the send queue
4116
4117 ;This routine will cause all message on the SNDQUE to be sent
4118 ;to the remote system with the possible exception of the last
4119 ;message segment (to allow subsequent blocking)
4120
4121 004667'00 260 17 0 00 000000* SNDQUE: $SAVE <DL> ;Preserve an AC
4122 004670'00 402 00 0 00 000015 SETZM DL ;Clear pointer to last message
4123 004671'00 200 01 0 00 000000# MOVE S1,SNDLST ;Position to last entry
4124 004672'00 260 17 0 00 000000* $CALL L%LAST
4125 004673'00 322 00 0 00 004707' JUMPF SNDQU2 ;Return when finished
4126 004674'00 332 00 0 02 000002 SKIPE .DPLEN(S2) ;Forcing last message out?
4127 004675'00 200 15 0 00 000002 MOVE DL,S2 ;No..save pointer to last segment
4128
4129 004676'00 200 01 0 00 000000# SNDQU1: MOVE S1,SNDLST ;Point to send que
4130 004677'00 260 17 0 00 003647* $CALL L%FIRST ;Get first message address
4131 004700'00 322 00 0 00 004707' JUMPF SNDQU2 ;Return when finished
4132 004701'00 316 15 0 00 000002 CAMN DL,S2 ;Want to retain last segment?
4133 004702'00 254 00 0 00 004707' JRST SNDQU2 ;Yes..just return for now
4134 004703'00 260 17 0 00 010342' $CALL LLSEND ;Send the message
4135 004704'00 322 00 0 00 004664* $RETIF ;Return if error
4136 004705'00 260 17 0 00 004710' $CALL DELMSG ;Delete current message
4137 004706'00 254 00 0 00 004676' JRST SNDQU1 ;Send the rest
4138
4139 004707'00 324740 004666* SNDQU2: $RETT ;The queues are empty!
4140
4141 ;SUBTTL DELMSG Routine to delete current message in the Send Queue
4142
4143 004710'00 200 01 0 00 000000# DELMSG: MOVE S1,SNDLST ;Delete current send Queue entry
4144 004711'00 260 17 0 00 003645* $CALL L%DENT
4145 004712'00 324740 004707* $RETT
4146
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 84
DAPLIB MAC 14-Jan-82 09:58 PUTMSG Routine to build and force all messages out
4147 SUBTTL PUTMSG Routine to build and force all messages out
4148
4149 ;This routine will place a message at the end of the SNDQUE and then
4150 ;clear the remaining length to ensure that the message is sent on
4151 ;a subsequent call to SNDQUE
4152
4153 ;Accepts S1/ Address of message descriptor
4154
4155 004713'00 260 17 0 00 004716' PUTMSG: $CALL QUEMSG ;Do header fixup
4156 004714'00 402 00 0 15 000002 SETZM .DPLEN(DL) ;Clear to force message out
4157 004715'00 263 17 0 00 000000 $RET ;Return per QUEMSG
4158
4159
4160 SUBTTL QUEMSG Routine to block current message if possible
4161
4162 ;This routine is called to block a message to the existing send queue
4163 ;if blocking is possible. A subsequent call to SNDQUE will cause all
4164 ;message segments to be sent with the possible exception of the last
4165 ;segment
4166
4167 ;Accepts S1/ Address of message descriptor
4168
4169
4170 004716'00 260 17 0 00 004740' QUEMSG: $CALL BLDMSG ;Build the message
4171 JUMPF [$SAVE <TF,S1,S2> ;Save any errors for return
4172 004717'00 322 00 0 00 013052' JRST .+1] ;Continue in line
4173 004720'00 337 00 0 15 000000 SKIPG .DPTYP(DL) ;Valid message?
4174 004721'00 324 17 0 00 004710' PJRST DELMSG ;No..delete it and return
4175 004722'00 260 17 0 00 005034' $CALL BLDHDR ;Build the header
4176 004723'00 200 01 0 00 000000# MOVE S1,SNDLST ;Get previous entry
4177 004724'00 260 17 0 00 000000* $CALL L%PREV
4178 004725'00 322 00 0 00 004732' JUMPF QUEMS1 ;No previous entry
4179 004726'00 200 01 0 02 000002 MOVE S1,.DPLEN(S2) ;Get previous remaining length
4180 004727'00 274 01 0 15 000005 SUB S1,.DPCNT(DL) ;May we block this message?
4181 JUMPLE S1,[SETZM .DPLEN(S2) ;No..Clear previous length
4182 004730'00 323 01 0 00 013061' JRST QUEMS1]
4183 004731'00 202 01 0 15 000002 MOVEM S1,.DPLEN(DL) ;Save new remaining length
4184 004732'00 200 01 0 15 000002 QUEMS1: MOVE S1,.DPLEN(DL)
4185 004733'00 200 02 0 15 000001 MOVE S2,.DPFLG(DL)
4186 004734'00 301 01 0 00 000010 CAIL S1,DPMXH ;May we block current message?
4187 004735'00 606 02 0 00 000002 TXNN S2,HD$LEN ;...
4188 004736'00 402 00 0 15 000002 SETZM .DPLEN(DL) ;No..mark end of message
4189 004737'00 324740 004712* $RETT ;Return
4190
4191
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 85
DAPLIB MAC 14-Jan-82 09:58 BLDMSG Routine to build a DAP message
4192 SUBTTL BLDMSG Routine to build a DAP message
4193
4194 ;BLDMSG is called to construct a DAP message from the message descriptor
4195 ; storing all requested fields in the DAP message. BLDMSG checks
4196 ; the version check words from the message descriptor to ensure
4197 ; that extra fields known locally are not sent to a DAP implimen-
4198 ; tation that doesn't understand them
4199
4200 ;Accepts S1/ Address of message descriptor
4201
4202 004740'00 260 17 0 00 004627* BLDMSG: $SAVE <P1,P2>
4203 004741'00 200 07 0 00 000001 MOVE P1,S1 ;P1 points to message descriptor
4204 004742'00 332 00 0 00 000000# $DEBUG (Building ,<^Q/0(P1),RHMASK/ message>)
4205 004743'00 260 17 0 00 013076'
4206 004744'00 200 01 0 00 000000# MOVE S1,SNDLST ;Allocate a message buffer
4207 004745'00 200 02 0 00 000000# MOVE S2,OURSIZ ; for largest message
4208 004746'00 275 02 0 00 000006 SUBI S2,DPMXH-2 ;Subtract maximum header size
4209 004747'00 260 17 0 00 010476' $CALL NEWBUF
4210 004750'00 200 15 0 00 000001 MOVE DL,S1 ;Setup global message pointer
4211 004751'00 554 01 0 07 000000 HLRZ S1,0(P1) ;Store message type
4212 004752'00 202 01 0 15 000000 MOVEM S1,.DPTYP(DL) ; in message header
4213 004753'00 514 03 0 07 000002 HRLZ T1,2(P1) ;Get field count
4214 004754'00 322 03 0 00 005033' JUMPE T1,BLDMS7 ;Exit if no message fields
4215 004755'00 210 03 0 00 000003 MOVN T1,T1 ;Make AOBJN pointer
4216 004756'00 541 03 0 07 000003 HRRI T1,3(P1) ;Point to first argument
4217 004757'00 200 04 0 00 000000# MOVE T2,OURVER ;Get our version for checking
4218 004760'00 620 04 0 00 000017 TRZ T2,17 ;Clear user version level
4219 004761'00 200 07 0 00 000003 MOVE P1,T1 ;Put pointer in P1
4220 004762'00 476 00 0 00 000010 SETOM P2 ;Set initial menu to all fields
4221 004763'00 200 01 0 03 000000 BLDMS1: MOVE S1,0(T1) ;Get first argument type
4222 004764'00 607 01 0 00 400000 TXNN S1,DA%VER ;Version check word?
4223 004765'00 254 00 0 00 004775' JRST BLDMS2 ;No..check next arg
4224 004766'00 271 03 0 00 000001 ADDI T1,1 ;Yes..point to it
4225 004767'00 200 05 0 03 000000 MOVE T3,0(T1) ;Get the check word
4226 004770'00 602 05 0 00 000017 TXNE T3,17 ;OSTYPE specifed for check?
4227 JRST [XOR T3,REMOST ;Yes..it must match.
4228 TXNE T3,17 ;did they match?
4229 AOJA T1,BLDMS1 ;No..skip this check
4230 004771'00 254 00 0 00 013102' JRST .+1] ;Yes..check it
4231 004772'00 313 04 0 00 000005 CAMLE T2,T3 ;Within our range?
4232 004773'00 344 03 0 00 004763' AOJA T1,BLDMS1 ;Yes..on to get next field
4233 004774'00 254 00 0 00 005001' JRST BLDMS3 ;No..terminate our menu
4234 004775'00 603 01 0 00 200000 BLDMS2: TXNE S1,DA%DEF ;Default word presnt?
4235 004776'00 271 03 0 00 000001 ADDI T1,1 ;Yes..bump past it
4236 004777'00 242 10 0 00 000001 LSH P2,1 ;Mark a valid menu item
4237 005000'00 253 03 0 00 004763' AOBJN T1,BLDMS1 ;On to finish all fields
4238 005001'00 452 10 0 00 000010 BLDMS3: SETCAM P2,P2 ;Fixup our menu
4239 005002'00 200 03 0 07 000000 BLDMS4: MOVE T1,0(P1) ;Get argument descriptor
4240 005003'00 603 03 0 00 400000 TXNE T1,DA%VER ;Is there a version check field?
4241 JRST [ADDI P1,1 ;Yes..ignore it
4242 005004'00 254 00 0 00 013106' AOJA P1,BLDMS4] ;Get the next field
4243 005005'00 603 03 0 00 200000 TXNE T1,DA%DEF ;Is there a default word?
4244 005006'00 271 07 0 00 000001 ADDI P1,1 ;Yes..bump past it
4245 005007'00 606 10 0 00 000001 TXNN P2,1 ;Is menu bit set?
4246 005010'00 254 00 0 00 005031' JRST BLDMS5 ;No..try next field
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 85-1
DAPLIB MAC 14-Jan-82 09:58 BLDMSG Routine to build a DAP message
4247 005011'00 242 10 0 00 777777 LSH P2,-1 ;Yes..get next menu bit
4248 005012'00 135 01 0 00 012771' LOAD S1,T1,DA%SIZ ;Get Maximum field len
4249 005013'00 550 02 0 00 000003 LOAD S2,T1,DA%STG ;Get storage offset
4250 MULINK< ADD S2,CP> ;Get actual storage address
4251 005014'00 135 03 0 00 012772' LOAD T1,T1,DA%TYP ;Get the argument type
4252 005015'00 306 03 0 00 000004 CAIN T1,.ARMNU ;Is argument a menu?
4253 005016'00 407 10 0 02 000000 ANDB P2,0(S2) ;Yes..remember it
4254 005017'00 550 03 0 03 000317' HRRZ T1,ARGTBL(T1) ;Get the processor address
4255 005020'00 260 17 0 03 000000 $CALL 0(T1) ;Store the field
4256 005021'00 326 00 0 00 005032' JUMPT BLDMS6 ;Do the next field
4257 005022'00 304 00 0 00 000000 $SAVE <TF,S1,S2> ;Else save the error for return
4258 005030'00 254 00 0 00 005032' JRST BLDMS6
4259 005031'00 242 10 0 00 777777 BLDMS5: LSH P2,-1 ;Get next menu item
4260 005032'00 253 07 0 00 005002' BLDMS6: AOBJN P1,BLDMS4 ;Back for next field
4261 005033'00 324740 004737* BLDMS7: $RETT
4262
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 86
DAPLIB MAC 14-Jan-82 09:58 BLDHDR Routine to build header for current message
4263 SUBTTL BLDHDR Routine to build header for current message
4264
4265 ;Accepts DL/ Address of current message header
4266
4267 005034'00 200 01 0 15 000001 BLDHDR: MOVE S1,.DPFLG(DL) ;Get existing flags
4268 005035'00 200 02 0 15 000005 MOVE S2,.DPCNT(DL) ;Get remaining count
4269 005036'00 274 02 0 15 000002 SUB S2,.DPLEN(DL) ;Subtract original count
4270 005037'00 272 02 0 15 000002 ADDM S2,.DPLEN(DL) ;Adjust remaining length
4271 005040'00 214 04 0 00 000002 MOVM T2,S2 ;Remember operand length
4272 005041'00 200 05 0 00 000000# MOVE T3,OURCAP ;Get mutual capabilities
4273 005042'00 332 00 0 15 000004 SKIPE .DPBCT(DL) ;Bitcount present?
4274 005043'00 660 01 0 00 000010 TXO S1,HD$BCT ;Yes..set the flag
4275 005044'00 332 00 0 15 000003 SKIPE .DPSID(DL) ;Stream ID present?
4276 005045'00 660 01 0 00 000001 TXO S1,HD$SID ;Yes..set the flag
4277 005046'00 307 04 0 00 000377 CAIG T2,^D255 ;More than 255 bytes?
4278 JRST [TXO S1,HD$LEN ;No..set length flag
4279 005047'00 254 00 0 00 013110' JRST BLDHD1] ;Check blocking support
4280 005050'00 603 05 0 00 000004 TXNE T3,SY$LN2 ;Yes..do we support Len 256?
4281 005051'00 660 01 0 00 000006 TXO S1,HD$LEN+HD$LN2 ;Yes..set both flags
4282 005052'00 607 05 0 00 000001 BLDHD1: TXNN T3,SY$BLK ;Do we support blocking?
4283 005053'00 620 01 0 00 000006 TXZ S1,HD$LEN+HD$LN2 ;No..Don't send length fields
4284 005054'00 202 01 0 15 000001 MOVEM S1,.DPFLG(DL) ;Save the flags
4285 005055'00 275 02 0 00 000002 SUBI S2,2 ;Count message type and flags
4286 005056'00 602 01 0 00 000001 TXNE S1,HD$SID ;Stream Id?
4287 005057'00 275 02 0 00 000001 SUBI S2,1 ;Yes..count it
4288 005060'00 602 01 0 00 000002 TXNE S1,HD$LEN ;Length field?
4289 005061'00 275 02 0 00 000001 SUBI S2,1 ;Yes..count it
4290 005062'00 602 01 0 00 000004 TXNE S1,HD$LN2 ;Length 256?
4291 005063'00 275 02 0 00 000001 SUBI S2,1 ;Yes..count it
4292 005064'00 602 01 0 00 000010 TXNE S1,HD$BCT ;Bit count?
4293 005065'00 275 02 0 00 000001 SUBI S2,1 ;Yes..count it
4294 005066'00 216 02 0 15 000005 MOVMM S2,.DPCNT(DL) ;Save count of bytes in message
4295 005067'00 133 02 0 15 000006 ADJBP S2,.DPBPT(DL) ;Reset message pointer
4296 005070'00 202 02 0 15 000006 MOVEM S2,.DPBPT(DL) ;Save for Sending message
4297 005071'00 200 03 0 15 000000 MOVE T1,.DPTYP(DL) ;Get message type
4298 005072'00 136 03 0 00 000002 IDPB T1,S2 ;Store the message type
4299 005073'00 136 01 0 00 000002 IDPB S1,S2 ;Store the flag byte
4300 005074'00 200 03 0 15 000003 MOVE T1,.DPSID(DL) ;Get Stream Id
4301 005075'00 602 01 0 00 000001 TXNE S1,HD$SID ;Want it?
4302 005076'00 136 03 0 00 000002 IDPB T1,S2 ;Yes..store it
4303 005077'00 602 01 0 00 000002 TXNE S1,HD$LEN ;Want Length field?
4304 005100'00 136 04 0 00 000002 IDPB T2,S2 ;Yes..store it
4305 005101'00 135 03 0 00 013002' LDB T1,[POINT 8,T2,27] ;Get Length 256 field
4306 005102'00 602 01 0 00 000004 TXNE S1,HD$LN2 ;Want it?
4307 005103'00 136 03 0 00 000002 IDPB T1,S2 ;Yes..store it
4308 005104'00 200 03 0 15 000004 MOVE T1,.DPBCT(DL) ;Get bitcount field
4309 005105'00 602 01 0 00 000010 TXNE S1,HD$BCT ;Want it?
4310 005106'00 136 03 0 00 000002 IDPB T1,S2 ;Yes..store it
4311 005107'00 324740 005033* $RETT
4312
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 87
DAPLIB MAC 14-Jan-82 09:58 PUTFIX Routine to store 1 to 4 BYTE fields in DAP message
4313 SUBTTL PUTFIX Routine to store 1 to 4 BYTE fields in DAP message
4314
4315 ;Accepts S1/ Number of bytes to store (1 to 4)
4316 ; S2/ Address of word containing bytes (MSB thru LSB)
4317
4318 005110'00 301 01 0 00 000001 PUTFIX: CAIL S1,1 ;Check range
4319 005111'00 303 01 0 00 000004 CAILE S1,4
4320 005112'00 260 17 0 00 005127' $CALL PUTERR ;Die on error
4321 005113'00 313 01 0 15 000005 CAMLE S1,.DPCNT(DL) ;Check for room
4322 005114'00 260 17 0 00 005127' $CALL PUTERR ;Die on error
4323 005115'00 200 03 0 00 000001 MOVE T1,S1 ;Save the count
4324 005116'00 200 01 0 02 000000 MOVE S1,0(S2) ;Get the argument
4325 005117'00 260 17 0 00 005123' PUTFI1: $CALL PUTBYT ;Store the byte
4326 005120'00 242 01 0 00 777770 LSH S1,-^D8 ;Get the next byte
4327 005121'00 367 03 0 00 005117' SOJG T1,PUTFI1 ;Do all bytes
4328 005122'00 324740 005107* $RETT
4329
4330
4331 SUBTTL PUTBYT Routine to store a character in current message
4332
4333 ;Accepts S1/ Character to store in message
4334
4335 005123'00 375 00 0 15 000005 PUTBYT: SOSGE .DPCNT(DL) ;Any room left in buffer?
4336 005124'00 260 17 0 00 005127' $CALL PUTERR ;Die on error
4337 005125'00 136 01 0 15 000006 IDPB S1,.DPBPT(DL) ;PUT BYTE IN MESSAGE
4338 005126'00 324740 005122* $RETT ;AND RETURN
4339
4340 SUBTTL PUTERR Routine to die on invalid argument
4341
4342 ;PUTERR is called from PUT??? when bad arguments are encountered
4343 ; or the message buffer is out of room
4344
4345 005127'00 260 17 0 00 013126' PUTERR: $FATAL (Dap message buffer is full)
4346
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 88
DAPLIB MAC 14-Jan-82 09:58 PUTVAR Routine to store a variable length field in DAP message
4347 SUBTTL PUTVAR Routine to store a variable length field in DAP message
4348
4349 ;Accepts S1/ Maximum size of field
4350 ; S2/ Address of ASCIZ string to store
4351
4352 005130'00 200 06 0 00 000001 PUTVAR: MOVE T4,S1 ;Remember maximum size
4353 005131'00 307 06 0 00 000377 CAIG T4,^D255 ;Request too large
4354 005132'00 311 06 0 15 000005 CAML T4,.DPCNT(DL) ;...
4355 005133'00 260 17 0 00 005127' $CALL PUTERR ;Yes..return a failure
4356 005134'00 505 02 0 00 440700 HRLI S2,(POINT 7)
4357 005135'00 200 03 0 00 000002 MOVE T1,S2 ;Save pointer to source
4358 005136'00 403 04 0 00 000001 SETZB T2,S1 ;Clear counts
4359 005137'00 260 17 0 00 005123' $CALL PUTBYT ;Store null count for now
4360 005140'00 200 05 0 15 000006 MOVE T3,.DPBPT(DL) ;Remember pointer to count
4361 005141'00 134 01 0 00 000003 PUTVA1: ILDB S1,T1 ;Get source byte
4362 005142'00 322 01 0 00 005145' JUMPE S1,PUTVA2 ;Exit on null
4363 005143'00 260 17 0 00 005123' $CALL PUTBYT ;Store byte in message
4364 005144'00 344 04 0 00 005141' AOJA T2,PUTVA1 ;Back for next
4365 005145'00 200 01 0 00 000003 PUTVA2: MOVE S1,T1 ;Return updated pointer
4366 005146'00 137 04 0 00 000005 DPB T2,T3 ;Store actual count
4367 005147'00 313 04 0 00 000006 CAMLE T2,T4 ;Within requested size?
4368 005150'00 260 17 0 00 005127' $CALL PUTERR ;No..return a failure
4369 005151'00 324740 005126* $RETT ;Return success
4370
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 89
DAPLIB MAC 14-Jan-82 09:58 PUTINT Routine to store variable length integer
4371 SUBTTL PUTINT Routine to store variable length integer
4372
4373 ;Accepts S1/ Maximum size of field
4374 ; S2/ Address of integer to store in message
4375
4376 005152'00 200 06 0 00 000001 PUTINT: MOVE T4,S1 ;Remember maximum size
4377 005153'00 307 06 0 00 000011 CAIG T4,^D9 ;Request too large?
4378 005154'00 311 06 0 15 000005 CAML T4,.DPCNT(DL) ;...
4379 005155'00 260 17 0 00 005127' $CALL PUTERR ;Yes..return a failure
4380 005156'00 260 17 0 00 005123' $CALL PUTBYT ;Write a dummy count
4381 005157'00 200 05 0 15 000006 MOVE T3,.DPBPT(DL) ;Save the pointer
4382 005160'00 200 04 0 02 000000 MOVE T2,0(S2) ;Get low order part
4383 005161'00 307 06 0 00 000004 CAIG T4,4 ;Hi order part?
4384 005162'00 634 03 0 00 000003 TDZA T1,T1 ;No..clear holding reg
4385 005163'00 200 03 0 02 000001 MOVE T1,1(S2) ;Yes..get it
4386 005164'00 201 02 0 00 000001 MOVEI S2,1 ;Get a count of 1
4387 005165'00 200 01 0 00 000004 PUTIN1: MOVE S1,T2 ;Get Least significant byte
4388 005166'00 260 17 0 00 005123' $CALL PUTBYT ;Store byte from integer
4389 005167'00 246 03 0 00 777770 LSHC T1,-^D8 ;Get next byte
4390 005170'00 336 00 0 00 000003 SKIPN T1 ;Time to quit?
4391 005171'00 332 00 0 00 000004 SKIPE T2 ;...
4392 005172'00 344 02 0 00 005165' AOJA S2,PUTIN1 ;No..do the next byte
4393 005173'00 137 02 0 00 000005 DPB S2,T3 ;Store actual count
4394 005174'00 313 02 0 00 000006 CAMLE S2,T4 ;Within requested size?
4395 005175'00 260 17 0 00 005127' $CALL PUTERR ;No..return a failure
4396 005176'00 324740 005151* $RETT ;Yes..return success
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 90
DAPLIB MAC 14-Jan-82 09:58 PUTPRO Routine to store DAP protection argument
4397 SUBTTL PUTPRO Routine to store DAP protection argument
4398
4399 ;PUTPRO is called with internal protection code and converts
4400 ; it to DAP protection before sending off the argument
4401
4402 ;Accepts S1/ Maximum size of field (3 bytes)
4403 ; S2/ Address of local protection code
4404
4405 005177'00 402 00 0 00 000003 PUTPRO: SETZM T1 ;Assume all access allowed
4406 005200'00 200 04 0 02 000000 MOVE T2,0(S2) ;Get argument
4407 005201'00 606 04 0 00 000040 TXNN T2,FP%RD ;Read access allowed?
4408 005202'00 660 03 0 00 000001 TXO T1,PR$DRA ;No..deny it
4409 005203'00 606 04 0 00 000020 TXNN T2,FP%WR ;Write access allowed?
4410 005204'00 660 03 0 00 000012 TXO T1,PR$DWA!PR$DDA ;No..deny write and delete
4411 005205'00 606 04 0 00 000010 TXNN T2,FP%EX ;Execute access allowed?
4412 005206'00 660 03 0 00 000004 TXO T1,PR$DEA ;No..deny it
4413 005207'00 606 04 0 00 000004 TXNN T2,FP%APP ;Append access allowed?
4414 005210'00 660 03 0 00 000020 TXO T1,PR$DAA ;No..deny it
4415 005211'00 606 04 0 00 000002 TXNN T2,FP%DIR ;Directory list access allowed?
4416 005212'00 660 03 0 00 000040 TXO T1,PR$DLA ;No..deny it
4417 005213'00 201 02 0 00 000003 MOVEI S2,T1 ;Point to extensible field
4418 ; PJRST PUTEXF ;Send the dap protection
4419
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 91
DAPLIB MAC 14-Jan-82 09:58 PUTEXF Routine to store extensible field in Dap message
4420 SUBTTL PUTEXF Routine to store extensible field in Dap message
4421 SUBTTL PUTMNU Routine to store DAP extensible fields
4422
4423 ;Accepts S1/ Maximum size of field (1 to 10)
4424 ; S2/ Address of EXARG
4425
4426 ;EXARG: Low order 36 bits of extensible field
4427 ; High order 36 bits of extensible field
4428
4429
4430 005214'00 PUTMNU:
4431 005214'00 313 01 0 15 000005 PUTEXF: CAMLE S1,.DPCNT(DL) ;Enough room?
4432 005215'00 260 17 0 00 005127' $CALL PUTERR ;No..die on error
4433 005216'00 200 03 0 02 000000 MOVE T1,0(S2) ;Low order part to T1
4434 005217'00 307 01 0 00 000005 CAIG S1,5 ;More than 5 bytes?
4435 005220'00 634 02 0 00 000002 TDZA S2,S2 ;No..clear high order part
4436 005221'00 200 02 0 02 000001 MOVE S2,1(S2) ;Yes..high order part to S2
4437 005222'00 201 01 0 00 000177 PUTEX1: MOVEI S1,177 ;Get 7 bit mask
4438 005223'00 404 01 0 00 000003 AND S1,T1 ;Get 7 bits from low order part
4439 005224'00 246 02 0 00 777771 LSHC S2,-^D7 ;Get next 7 bytes
4440 005225'00 336 00 0 00 000002 SKIPN S2 ;Have more to do after this?
4441 005226'00 332 00 0 00 000003 SKIPE T1
4442 005227'00 660 01 0 00 000200 TXO S1,DP$EXF ;Yes..set extension bit
4443 005230'00 260 17 0 00 005123' $CALL PUTBYT ;Store in the message
4444 005231'00 602 01 0 00 000200 TXNE S1,DP$EXF ;Anything left?
4445 005232'00 254 00 0 00 005222' JRST PUTEX1 ;Yes..back for next byte
4446 005233'00 324740 005176* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 92
DAPLIB MAC 14-Jan-82 09:58 PUTDTI Routine to store date time field in DAP message
4447 SUBTTL PUTDTI Routine to store date time field in DAP message
4448
4449 ;Accepts S1/ Message field size (18)
4450 ; S2/ Address of Date/time word
4451
4452 005234'00 306 01 0 00 000022 PUTDTI: CAIN S1,^D18 ;Proper size?
4453 005235'00 313 01 0 15 000005 CAMLE S1,.DPCNT(DL) ; and enough room?
4454 005236'00 260 17 0 00 005127' $CALL PUTERR ;No..return a failure
4455 005237'00 200 02 0 02 000000 MOVE S2,0(S2) ;Put value in S2
4456 005240'00 561 01 0 00 000000# HRROI S1,MSGJNK ;Point to temporary storage
4457 005241'00 402 00 0 00 000003 SETZM T1 ;Standard options
4458 005242'00 104 00 0 00 000220 ODTIM ;Generate the date string
4459 005243'00 201 03 0 00 000000# MOVEI T1,MSGJNK ;Point to the string
4460 005244'00 505 03 0 00 440700 HRLI T1,(POINT 7)
4461 005245'00 201 04 0 00 000022 MOVEI T2,^D18 ;Store 18 bytes
4462 005246'00 134 01 0 00 000003 ILDB S1,T1 ;[122]GET THE FIRST CHARACTER
4463 005247'00 306 01 0 00 000040 CAIN S1," " ;[122]CONVERT BLANKS TO ZEROS
4464 005250'00 201 01 0 00 000060 MOVEI S1,"0" ;[122]GET A LEADING 0
4465 005251'00 334 00 0 00 000000 SKIPA ;[122]
4466 005252'00 134 01 0 00 000003 PUTDT1: ILDB S1,T1 ;Get a byte
4467 005253'00 260 17 0 00 005123' $CALL PUTBYT ;Store in message
4468 005254'00 367 04 0 00 005252' SOJG T2,PUTDT1 ;Finish all bytes
4469 005255'00 324740 005233* $RETT
4470
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 93
DAPLIB MAC 14-Jan-82 09:58 PUTDAT Routine to store Data field in DAP message
4471 SUBTTL PUTDAT Routine to store Data field in DAP message
4472
4473 005256'00 260 17 0 00 004740* PUTDAT: $SAVE <P1,P2>
4474 005257'00 200 07 0 15 000006 MOVE P1,.DPBPT(DL) ;Get pointer to data
4475 005260'00 200 10 0 15 000005 MOVE P2,.DPCNT(DL) ;Preserve remaining count
4476 005261'00 550 01 0 00 000000# HRRZ S1,DATDAT ;Get processor address
4477 005262'00 260 17 0 01 000000 $CALL 0(S1) ;Call the processor
4478 005263'00 336 00 0 00 000000 SKIPT ;Save status for return on error
4479 005264'00 304 00 0 00 000000 $SAVE <TF,S1,S2>
4480 005272'00 336 00 0 15 000000 SKIPN .DPTYP(DL) ;Was message deleted?
4481 005273'00 324740 005255* $RETT ;Yes..just return
4482 005274'00 120 01 0 00 000007 DMOVE S1,P1 ;Restore starting pointer and count
4483 005275'00 274 02 0 15 000005 SUB S2,.DPCNT(DL) ;Compute actual count
4484 005276'00 332 00 0 00 000000# SKIPF CRCFLG ;Computing CRC?
4485 005277'00 260 17 0 00 005301' $CALL DOCRC ;Compute the CRC
4486 005300'00 324740 005273* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 94
DAPLIB MAC 14-Jan-82 09:58 DOCRC Routine to update cumulative CRC for data messages
4487 SUBTTL DOCRC Routine to update cumulative CRC for data messages
4488
4489 ;ACCEPTS S1/ Pointer to 8 bit data stream
4490 ; S2/ Byte count
4491
4492
4493 ; This routine is used to build the 16-bit CRC checksum character used
4494 ; to ensure DAP data integrity. The CRC is initialized to -1 when a
4495 ; file ACCESS is initiated. Both NFT and FAL compute the CRC on each
4496 ; data byte sent or recieved. When the file is closed the CRC's NFT
4497 ; sends the CRC it has generated to the remote system where it must
4498 ; match the CRC generated by FAL.
4499
4500 005301'00 323 02 0 00 005300* DOCRC: JUMPLE S2,.RETT ;Return on null count
4501 005302'00 200 03 0 00 000000# MOVE T1,FILCRC ;Get current CRC
4502 005303'00 134 04 0 00 000001 DOCR1: ILDB T2,S1 ;Get a byte from message
4503 005304'00 433 03 0 00 000004 XORB T1,T2 ;Include byte in CRC
4504 005305'00 405 04 0 00 000377 ANDI T2,377 ;Compute offset into table
4505 005306'00 242 03 0 00 777770 LSH T1,-^D8 ;Xor remaining CRC from table
4506 005307'00 430 03 0 04 005313' XOR T1,CRCTAB(T2) ;Compute new CRC
4507 005310'00 367 02 0 00 005303' SOJG S2,DOCR1 ;Do the next
4508 005311'00 202 03 0 00 000000# MOVEM T1,FILCRC ;Save computed CRC
4509 005312'00 324740 005301* $RETT
4510
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 95
DAPLIB MAC 14-Jan-82 09:58 CRCTAB CRC TABLE DEFINITION
4511 SUBTTL CRCTAB CRC TABLE DEFINITION
4512
4513
4514 164405 POLY==164405 ;X^16+X^15+X^13+X^7+X^4+X^2+X^1+1
4515
4516 177777 POLINI==177777 ;Initial value of -1 (16 bits)
4517
4518
4519 DEFINE BLDCRC <
4520 LSTOF. XCREF
4521 ZZ==0
4522 REPEAT ^D256, <CRC (\ZZ)
4523 ZZ==ZZ+1>
4524 LSTON.
4525 > ;End BLDCRC
4526
4527
4528 DEFINE CRC (BYTE) <
4529 .CRC=BYTE
4530 REPEAT ^D8,<
4531 .X=.CRC&1
4532 IFN <.X>,<.CRC=.CRC_-1
4533 .CRC=.CRC^!POLY>
4534 IFE <.X>,<.CRC=.CRC_-1>>
4535 EXP .CRC
4536 > ;End CRC
4537
4538
4539 005313'00 CRCTAB: BLDCRC ;Generate the table
4540
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 96
DAPLIB MAC 14-Jan-82 09:58 PUTASC ROUTINE TO READ ASCII DATA AND FORMAT AN OUTPUT DAP MESSAGE
4541 SUBTTL PUTASC ROUTINE TO READ ASCII DATA AND FORMAT AN OUTPUT DAP MESSAGE
4542
4543 ;PUTASC breaks ascii stream text up into records for transmission.
4544 ;Break characters are: <ESC><^Z><DC1-4><DLE><FF><VT> and <LF>
4545
4546 001407 616000 ASCBRK==^B00001100000111110001110000000000
4547
4548 005713'00 400 03 0 00 000000 PUTASC: SETZ T1, ;[142]CHARACTER COUNT
4549 005714'00 200 04 0 00 000000# MOVE T2,ATTRAT ;Get record attributes
4550 005715'00 602 04 0 00 000002 TXNE T2,FB$CR ;[150]IMPLIED CRLF?
4551 005716'00 476 00 0 00 000000# SETOM LINFLG ;[150]YES, STRIP NULLS
4552 005717'00 336 05 0 00 000000# SKIPN T3,ATTMRS ;GET MAXIMUM RECORD SIZE
4553 005720'00 200 05 0 15 000005 MOVE T3,.DPCNT(DL) ;No MRS..use remaining count
4554 005721'00 476 00 0 00 000001 SETOM S1 ;Say Last character was -1
4555 005722'00 375 00 0 00 000005 PUTAS1: SOSGE T3 ;Any room left?
4556 JRST [SETOM BUFFUL ;[142]No, set buf full flag
4557 005723'00 254 00 0 00 013132' JRST PUTAS5] ;[142]Output the record
4558 005724'00 200 06 0 00 000001 MOVE T4,S1 ;Remember last character stored
4559 005725'00 260 17 0 00 006647' PUTAS2: $CALL INPBYT ;Get a byte from file
4560 005726'00 322 00 0 00 005763' JUMPF PUTAS3 ;Check for EOF
4561 JUMPN S2,[SETOM LINFLG ;[150]LINE NUMBER SEEN, STRIP NULLS
4562 005727'00 326 02 0 00 013134' JRST PUTAS2] ;[130]DISCARD LINE NUMBERS
4563 005730'00 332 00 0 00 000000# SKIPE LINFLG ;[150]STRIP NULLS?
4564 005731'00 322 01 0 00 005725' JUMPE S1,PUTAS2 ;Yes..then strip nulls
4565 005732'00 260 17 0 00 005123' $CALL PUTBYT ;Store in the message
4566 005733'00 271 03 0 00 000001 ADDI T1,1 ;[142]INCREMENT CHARACTER COUNT
4567 005734'00 301 01 0 00 000012 CAIL S1,.CHLFD ;Possible break character?
4568 005735'00 303 01 0 00 000033 CAILE S1,.CHESC
4569 005736'00 254 00 0 00 005722' JRST PUTAS1 ;No..send next charcter
4570 005737'00 201 02 0 00 000001 MOVEI S2,1 ;Yes..check it out
4571 005740'00 242 02 0 01 000000 LSH S2,0(S1) ;Justify bit per charcter
4572 005741'00 616 02 0 00 013022' TXNN S2,ASCBRK ;Break character?
4573 005742'00 254 00 0 00 005722' JRST PUTAS1 ;Not a break..get next character
4574 005743'00 306 01 0 00 000012 CAIN S1,.CHLFD ;<CRLF>?
4575 005744'00 302 06 0 00 000015 CAIE T4,.CHCRT
4576 005745'00 254 00 0 00 005762' JRST PUTAS5 ;No..send the record
4577 005746'00 606 04 0 00 000002 TXNN T2,FB$CR ;Yes..Stripping <CRLF>?
4578 005747'00 254 00 0 00 005762' JRST PUTAS5 ;No..send the record
4579 005750'00 201 01 0 00 000002 MOVEI S1,2 ;Yes..Get 2
4580 005751'00 272 01 0 15 000005 ADDM S1,.DPCNT(DL) ;Back up count by 2
4581 005752'00 211 01 0 00 000002 MOVNI S1,2
4582 005753'00 133 01 0 15 000006 ADJBP S1,.DPBPT(DL) ;Back up pointer by 2
4583 005754'00 202 01 0 15 000006 MOVEM S1,.DPBPT(DL)
4584 005755'00 336 00 0 00 000000# SKIPN BUFFUL ;[142]Last rec out no crlf?
4585 005756'00 254 00 0 00 005762' JRST PUTAS5 ;[142]No, output this empty record
4586 005757'00 402 00 0 00 000000# SETZM BUFFUL ;[142]Yes, reset flag
4587 005760'00 306 03 0 00 000002 CAIN T1,2 ;[142]ONLY A CRLF?
4588 005761'00 254 00 0 00 005713' JRST PUTASC ;[142]YES, IGNORE THE RECORD
4589 005762'00 324740 005312* PUTAS5: $RETT ;Return and send the record
4590
4591 005763'00 260 17 0 00 006636' PUTAS3: $CALL EOFCHK ;Check error for EOF
4592 005764'00 322 00 0 00 004704* $RETIF ;Return False on error
4593 005765'00 335 00 0 00 000006 SKIPGE T4 ;Stored any characters?
4594 005766'00 402 00 0 15 000000 SETZM .DPTYP(DL) ;No..delete this message
4595 005767'00 324740 005762* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 96-1
DAPLIB MAC 14-Jan-82 09:58 PUTASC ROUTINE TO READ ASCII DATA AND FORMAT AN OUTPUT DAP MESSAGE
4596
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 97
DAPLIB MAC 14-Jan-82 09:58 PUTPAG Routine to store file page in DAP message
4597 SUBTTL PUTPAG Routine to store file page in DAP message
4598
4599 ;PUTPAG sends a file page whose VBN is in DATRCN. Trailing zero
4600 ;words in the file page are not sent.
4601
4602 005770'00 260 17 0 00 004440* PUTPAG: $SAVE <P1,P2,P3> ;Preserve some AC's
4603 005771'00 402 00 0 00 000000# SETZM PAGNUM ;[134]RESET LOCAL PAGE #
4604 005772'00 336 07 0 00 000000# SKIPN P1,DATRCN ;Get requested VBN.
4605 005773'00 254 00 0 00 006041' JRST PUTP50 ;Zero is special case for FDB
4606 005774'00 275 07 0 00 000001 SUBI P1,1 ;Convert to file page address
4607 005775'00 242 07 0 00 777776 LSH P1,-^D2
4608 005776'00 202 07 0 00 000000# MOVEM P1,PAGNUM ;[134]SAVE CURRENT PAGE NUMBER
4609 005777'00 260 17 0 00 004447* $CALL M%NXPG ;Get non existant page
4610 006000'00 202 01 0 00 000000# MOVEM S1,PAGMEM ;[151]REMEMBER PAGE IN MEM
4611 006001'00 205 02 0 00 400000 MOVSI S2,.FHSLF ;Map file page to my process
4612 006002'00 540 02 0 00 000001 HRR S2,S1
4613 006003'00 200 11 0 00 000002 MOVE P3,S2 ;Remember for unmapping
4614 006004'00 250 01 0 00 000007 EXCH S1,P1 ;Remember process page
4615 006005'00 504 01 0 00 000000# HRL S1,LOCJFN ;Get JFN,,file page
4616 006006'00 205 03 0 00 110000 MOVX T1,PM%RD+PM%PLD ;Preload page
4617 006007'00 104 00 0 00 000056 PMAP
4618 006010'00 320 16 0 00 007707' ERJMP TERCVT
4619 006011'00 242 07 0 00 000011 LSH P1,^D9 ;Convert P1 to address
4620 006012'00 505 07 0 00 777000 HRLI P1,-PAGSIZ ;Create AOBJN pointer
4621 006013'00 400 10 0 00 000000 SETZ P2, ;Clear count of trailing nulls
4622 006014'00 336 01 0 07 000000 PUTP10: SKIPN S1,0(P1) ;Get a word
4623 006015'00 344 10 0 00 006026' AOJA P2,PUTP40 ;Count a null
4624 006016'00 322 10 0 00 006024' JUMPE P2,PUTP30 ;Any zeros to write?
4625 006017'00 400 01 0 00 000000 PUTP20: SETZ S1, ;Yes..write them
4626 006020'00 201 02 0 00 000044 MOVEI S2,^D36
4627 006021'00 260 17 0 00 006141' $CALL PUTBCT
4628 006022'00 367 10 0 00 006017' SOJG P2,PUTP20
4629 006023'00 200 01 0 07 000000 MOVE S1,0(P1) ;Reclaim data
4630 006024'00 201 02 0 00 000044 PUTP30: MOVEI S2,^D36
4631 006025'00 260 17 0 00 006141' $CALL PUTBCT ;Write it
4632 006026'00 253 07 0 00 006014' PUTP40: AOBJN P1,PUTP10 ;Write the entire page
4633 006027'00 476 00 0 00 000001 SETOM S1 ;Unmap the file page
4634 006030'00 200 02 0 00 000011 MOVE S2,P3
4635 006031'00 402 00 0 00 000003 SETZM T1
4636 006032'00 104 00 0 00 000056 PMAP
4637 006033'00 320 16 0 00 007707' ERJMP TERCVT
4638 006034'00 402 00 0 00 000000# SETZM PAGMEM ;[151]FORGET PAGE NUMBER
4639 006035'00 201 01 0 07 777000 MOVEI S1,-PAGSIZ(P1) ;Release our page
4640 006036'00 242 01 0 00 777767 LSH S1,-^D9
4641 006037'00 260 17 0 00 004475* $CALL M%RELP
4642 006040'00 324740 005767* $RETT
4643
4644 006041'00 260 17 0 00 007077' PUTP50: $CALL GETFDD ;Setup actual FDB
4645 006042'00 205 07 0 00 777741 MOVSI P1,-.FBLEN
4646 006043'00 541 07 0 00 000000# HRRI P1,LOCFDB
4647 006044'00 200 01 0 07 000000 PUTP60: MOVE S1,0(P1) ;Send entire FDB
4648 006045'00 201 02 0 00 000044 MOVEI S2,^D36
4649 006046'00 260 17 0 00 006141' $CALL PUTBCT
4650 006047'00 253 07 0 00 006044' AOBJN P1,PUTP60
4651 006050'00 324740 006040* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 97-1
DAPLIB MAC 14-Jan-82 09:58 PUTPAG Routine to store file page in DAP message
4652
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 98
DAPLIB MAC 14-Jan-82 09:58 PUTIMG Routine to store n-bit bytes in data message
4653 SUBTTL PUTIMG Routine to store n-bit bytes in data message
4654
4655 ;This routine is the counterpart for GETIMG. It reads file bytes
4656 ;and stores them in the DAP message as a bitstream whose size is
4657 ;determined by the attributes bytesize.
4658
4659 006051'00 260 17 0 00 005770* PUTIMG: $SAVE <P1,P2,P3> ;Preserve some AC's
4660 006052'00 200 01 0 00 000000# MOVE S1,ATTRFM ;Get record format
4661 006053'00 200 10 0 00 000000# MOVE P2,ATTBSZ ;Get attributes bytesize
4662 006054'00 306 01 0 00 000000 CAIN S1,FB$UDF ;Undefined record format?
4663 006055'00 254 00 0 00 006106' JRST PUTIM4 ;Yes..calculate largest MRS
4664 006056'00 306 01 0 00 000001 CAIN S1,FB$FIX ;Fixed length?
4665 006057'00 254 00 0 00 006113' JRST PUTIM5 ;Yes..go process it
4666 006060'00 302 01 0 00 000002 CAIE S1,FB$VAR ;Variable length records?
4667 006061'00 336 07 0 00 000000# SKIPN P1,ATTFSZ ;No..Zero length VFC?
4668 006062'00 254 00 0 00 006071' JRST PUTIM2 ;Yes..process variable length
4669 006063'00 260 17 0 00 006647' PUTIM1: $CALL INPBYT ;Get a header byte
4670 006064'00 322 00 0 00 006135' JUMPF PUTI10 ;See if it's EOF
4671 006065'00 200 02 0 00 000010 MOVE S2,P2 ;Get attributes byte size
4672 006066'00 260 17 0 00 006141' $CALL PUTBCT ;Store the bitstream
4673 006067'00 367 07 0 00 006063' SOJG P1,PUTIM1 ;Store entire fixed header
4674 006070'00 254 00 0 00 006073' JRST PUTIM3 ;Process the variable count
4675 006071'00 333 00 0 00 000000# PUTIM2: SKIPLE MCYIDX ;Doing MACY11 file?
4676 006072'00 260 17 0 00 007066' $CALL ALNMCY ;Yes..align on half-word
4677 006073'00 260 17 0 00 006647' PUTIM3: $CALL INPBYT ;Get LSB of count
4678 006074'00 322 00 0 00 006135' JUMPF PUTI10 ;See if it's EOF
4679 006075'00 200 07 0 00 000001 MOVE P1,S1 ;Save it
4680 006076'00 301 10 0 00 000014 CAIL P2,^D12 ;MSB of count present?
4681 006077'00 254 00 0 00 006115' JRST PUTIM6 ;No..go check our count
4682 006100'00 260 17 0 00 006647' $CALL INPBYT ;Get it
4683 006101'00 322 00 0 00 006135' JUMPF PUTI10 ;Check for EOF
4684 006102'00 242 01 0 10 000000 LSH S1,(P2) ;Position MSB of count
4685 006103'00 434 07 0 00 000001 IOR P1,S1 ;Tally the total count
4686 006104'00 322 07 0 00 006123' JUMPE P1,PUTIM8 ;[114]ZERO LENGTH RECORD?
4687 006105'00 254 00 0 00 006115' JRST PUTIM6 ;Check count against MRS
4688 006106'00 200 01 0 15 000005 PUTIM4: MOVE S1,.DPCNT(DL) ;Get remaining count
4689 006107'00 221 01 0 00 000010 IMULI S1,^D8 ;Get number of remaining bits
4690 006110'00 230 01 0 00 000010 IDIV S1,P2 ;Get bits/bytesize
4691 006111'00 200 07 0 00 000001 MOVE P1,S1 ;Store computed maximum size
4692 006112'00 254 00 0 00 006115' JRST PUTIM6 ;Check against actual maximum
4693 006113'00 336 07 0 00 000000# PUTIM5: SKIPN P1,ATTMRS ;Get maximum record size
4694 006114'00 200 07 0 00 000000# MOVE P1,OURMRS ;Use our maximum as default
4695 006115'00 200 11 0 00 000007 PUTIM6: MOVE P3,P1 ;Save requested count
4696 006116'00 260 17 0 00 006647' PUTIM7: $CALL INPBYT ;get a byte from file
4697 006117'00 322 00 0 00 006124' JUMPF PUTIM9 ;Check for EOF
4698 006120'00 200 02 0 00 000010 MOVE S2,P2 ;Get the attributes bytesize
4699 006121'00 260 17 0 00 006141' $CALL PUTBCT ;Store the bit stream
4700 006122'00 367 07 0 00 006116' SOJG P1,PUTIM7 ;Return when count exausted
4701 006123'00 324740 006050* PUTIM8: $RETT
4702
4703 ;PUTIMG continued on next page
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 99
DAPLIB MAC 14-Jan-82 09:58 PUTIMG Routine to store n-bit bytes in data message
4704 ;PUTIMG continued from previous page
4705
4706 006124'00 260 17 0 00 006636' PUTIM9: $CALL EOFCHK ;EOF while fetching data?
4707 006125'00 322 00 0 00 005764* $RETIF ;No..return the error
4708 006126'00 200 01 0 00 000000# MOVE S1,ATTRFM ;Yes..get our record format
4709 006127'00 302 01 0 00 000002 CAIE S1,FB$VAR ;Is it variable or VFC?
4710 006130'00 306 01 0 00 000003 CAIN S1,FB$VFC
4711 006131'00 254 00 0 00 013023' $MTERR ER$IRC ;Yes..then illegal record
4712 006132'00 316 07 0 00 000011 CAMN P1,P3 ;Have we stored anything?
4713 006133'00 402 00 0 15 000000 SETZM .DPTYP(DL) ;No..scratch this message
4714 006134'00 324740 006123* $RETT ;No..just return
4715
4716 006135'00 260 17 0 00 006636' PUTI10: $CALL EOFCHK ;EOF looking for Hdr or Cnt?
4717 006136'00 322 00 0 00 006125* $RETIF ;No..return the faliure
4718 006137'00 402 00 0 15 000000 SETZM .DPTYP(DL) ;Yes..scatch this message
4719 006140'00 324740 006134* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 100
DAPLIB MAC 14-Jan-82 09:58 PUTBCT Store image bit stream in DAP message
4720 SUBTTL PUTBCT Store image bit stream in DAP message
4721
4722 ;Accepts S1/ right justified byte
4723 ; S2/ byte size (1-36 bits)
4724
4725 006141'00 306 02 0 00 000010 PUTBCT: CAIN S2,^D8 ;Nice byte size?
4726 006142'00 324 17 0 00 005123' PJRST PUTBYT ;Yes..putone and return
4727 006143'00 336 03 0 15 000004 SKIPN T1,.DPBCT(DL) ;Any residual bitcount?
4728 006144'00 254 00 0 00 006154' JRST PUTBC1 ;No..start at byte boundry
4729 006145'00 510 04 0 03 006166' HLLZ T2,BCTTBL(T1) ;Yes..get pointer adjustment
4730 006146'00 270 04 0 15 000006 ADD T2,.DPBPT(DL) ;Point to residual bits
4731 006147'00 137 01 0 00 000004 DPB S1,T2 ;Store them
4732 006150'00 274 02 0 00 000003 SUB S2,T1 ;Get bits remaining in S1
4733 006151'00 323 02 0 00 006164' JUMPLE S2,PUTBC4 ;All done?
4734 006152'00 210 03 0 00 000003 MOVN T1,T1 ;No..get shift right value
4735 006153'00 242 01 0 03 000000 LSH S1,0(T1) ;Right justify remaining bits
4736 006154'00 231 02 0 00 000010 PUTBC1: IDIVI S2,^D8 ;Get S2 bytecount T1 bitcount
4737 006155'00 322 02 0 00 006161' JUMPE S2,PUTBC3 ;Any full bytes to send?
4738 006156'00 260 17 0 00 005123' PUTBC2: $CALL PUTBYT ;Yes..store a byte
4739 006157'00 242 01 0 00 777770 LSH S1,-^D8 ;Get next byte
4740 006160'00 367 02 0 00 006156' SOJG S2,PUTBC2 ;Do them all
4741 006161'00 322 03 0 00 006164' PUTBC3: JUMPE T1,PUTBC4 ;Any odd bits?
4742 006162'00 260 17 0 00 005123' $CALL PUTBYT ;Yes..store them
4743 006163'00 570 02 0 03 006166' HRRE S2,BCTTBL(T1) ;Get negitive bitcount
4744 006164'00 212 02 0 15 000004 PUTBC4: MOVNM S2,.DPBCT(DL) ;Save the bitcount
4745 006165'00 324740 006140* $RETT ;All finished
4746
4747 006166'00 000000 000000 BCTTBL: 000000,,0 ;Pointer adjust,,-bitcount
4748 006167'00 067100 777771 067100,,-7 ;Bytesize==1
4749 006170'00 057200 777772 057200,,-6 ;Bytesize==2 etc.
4750 006171'00 047300 777773 047300,,-5
4751 006172'00 037400 777774 037400,,-4
4752 006173'00 027500 777775 027500,,-3
4753 006174'00 017600 777776 017600,,-2
4754 006175'00 007700 777777 007700,,-1 ;Bytesize==7 Bitcnt==1
4755
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 101
DAPLIB MAC 14-Jan-82 09:58 PUTDOS Process MACY11 assembler output
4756 SUBTTL PUTDOS Process MACY11 assembler output
4757
4758 ;PUTDOS Processes MACY11 assembler output files and stores
4759 ; them as variable length data. MACY11 assembler
4760 ; is equivalent in format to PDP21 style paper tape format
4761 ; as follows
4762
4763 ;Byte 0 <1> sync byte
4764 ;Byte 1 <0> null follows sync
4765 ;Byte 2 <cnt> low order of (length of "Data" in bytes)+4=[n]
4766 ;Byte 3 <cnt> high order of (length of "Data in bytes)+4=[n]
4767 ;Byte 4 <data>
4768 ;Byte n (last byte of "Data")
4769 ;Byte n+1 Checksum byte (Two's complement add with carry ignored)
4770 ; Checksum includes all bytes in record including header
4771
4772 ;6 Nulls followed by next record (The nulls are ignored)
4773
4774
4775 006176'00 260 17 0 00 005256* PUTDOS: $SAVE <P1,P2> ;Save an AC for checksum
4776 006177'00 260 17 0 00 006647' PUTDO1: $CALL INPBYT ;Get a byte
4777 JUMPF [$CALL EOFCHK ;Check for EOF
4778 $RETIF ;Return if not EOF
4779 SETZM .DPTYP(DL) ;Else cancel this message
4780 006200'00 322 00 0 00 013136' $RETT] ;And return
4781 006201'00 322 01 0 00 006177' JUMPE S1,PUTDO1 ;Ignore leading nulls
4782 006202'00 302 01 0 00 000001 CAIE S1,1 ;First byte is <1>
4783 006203'00 254 00 0 00 006240' JRST PUTDO4 ; Else bad record format
4784 006204'00 200 10 0 00 000001 MOVE P2,S1 ;Initialize checksum
4785 006205'00 260 17 0 00 006647' $CALL INPBYT ;Get the next byte
4786 006206'00 322 00 0 00 006236' JUMPF PUTDO3 ;Check EOF and return failure
4787 006207'00 326 01 0 00 006240' JUMPN S1,PUTDO4 ;Second byte is <0>
4788 006210'00 260 17 0 00 006647' $CALL INPBYT ;Third byte is L.O. count
4789 006211'00 322 00 0 00 006236' JUMPF PUTDO3 ;Check EOF and return failure
4790 006212'00 270 10 0 00 000001 ADD P2,S1 ;Tally Checksum
4791 006213'00 200 07 0 00 000001 MOVE P1,S1 ;P1 will contain count
4792 006214'00 260 17 0 00 006647' $CALL INPBYT ;Fourth byte is H.O. count
4793 006215'00 322 00 0 00 006236' JUMPF PUTDO3 ;Check EOF and return failure
4794 006216'00 270 10 0 00 000001 ADD P2,S1 ;Tally checksum
4795 006217'00 137 01 0 00 013142' DPB S1,[POINT 8,P1,27] ;Store High order part of count
4796 006220'00 275 07 0 00 000004 SUBI P1,4 ;Subtract four bytes for header
4797 006221'00 313 07 0 00 000000# CAMLE P1,OURMRS ;Do we have enough room for it?
4798 006222'00 254 00 0 00 013143' $MTERR (ER$RTB) ;Nope..record too big!
4799 006223'00 260 17 0 00 006647' PUTDO2: $CALL INPBYT ;Get next byte
4800 006224'00 322 00 0 00 006236' JUMPF PUTDO3 ;Check EOF and return failure
4801 006225'00 270 10 0 00 000001 ADD P2,S1 ;Tally checksum
4802 006226'00 260 17 0 00 005123' $CALL PUTBYT ;Store in message
4803 006227'00 367 07 0 00 006223' SOJG P1,PUTDO2 ;Repeat until count exausted
4804 006230'00 260 17 0 00 006647' $CALL INPBYT ;Last byte is checksum
4805 006231'00 322 00 0 00 006236' JUMPF PUTDO3 ;Check EOF and return error
4806 006232'00 270 10 0 00 000001 ADD P2,S1 ;Tally checksum
4807 006233'00 602 10 0 00 000377 TXNE P2,377 ;Are all checksum bits zero?
4808 006234'00 254 00 0 00 006240' JRST PUTDO4 ;No..Bad checksum
4809 006235'00 324740 006165* $RETT ;Hurray..We made it!
4810
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 101-1
DAPLIB MAC 14-Jan-82 09:58 PUTDOS Process MACY11 assembler output
4811 006236'00 260 17 0 00 006636' PUTDO3: $CALL EOFCHK ;Check for EOF
4812 006237'00 322 00 0 00 006136* $RETIF ;Return if file error
4813 006240'00 254 00 0 00 013023' PUTDO4: $MTERR ER$IRC ;Else return record format error
4814
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 102
DAPLIB MAC 14-Jan-82 09:58 SETINP Setup for local file input
4815 SUBTTL SETINP Setup for local file input
4816
4817 ;Accepts AP/ Address of D$FUNC argument block
4818
4819 ;Returns TRUE S1/ Wild JFN flags
4820 ; S2/ Pointer to expanded filespec
4821
4822
4823 006241'00 201 01 0 00 000000# SETINP: MOVEI S1,JFNBLK ;Point to GTJFN block
4824 006242'00 200 03 0 00 000000# MOVE T1,1+OURCAP ;Get second capability word
4825 006243'00 205 02 0 00 100000 MOVX S2,GJ%OLD ;File must exist
4826 006244'00 200 04 0 00 000000# MOVE T2,ACCFNC ;Get requested access
4827 006245'00 302 04 0 00 000006 CAIE T2,AF$DIR ;Directory
4828 006246'00 602 03 0 00 000004 TXNE T1,SY$WLD ; or do we support wild cards?
4829 006247'00 661 02 0 00 000120 TXO S2,GJ%IFG+GJ%FLG ;Yes..allow them and get flags
4830 006250'00 202 02 0 01 000000 MOVEM S2,.GJGEN(S1) ;Save for GTJFN
4831 006251'00 200 02 0 16 000003 MOVE S2,.DFLFS(AP) ;Get pointer to local file spec
4832 006252'00 104 00 0 00 000020 GTJFN
4833 006253'00 320 16 0 00 007707' ERJMP TERCVT ;Convert error and fail
4834 006254'00 332 00 0 00 000002 SKIPE S2 ;[143]IF FILENAME SPECIFIED
4835 JRST [LDB S2,S2 ;[143]GET DELIMTING BYTE
4836 SKIPN S2 ;[143]NULL?
4837 JRST .+1 ;[143]YES, GOOD FILE NAME
4838 MOVEI S2,GJFX4 ;[143]NO, BAD FILENAME
4839 006255'00 254 00 0 00 013146' JRST TERCV0] ;[143]
4840 006256'00 202 01 0 00 000000# MOVEM S1,LOCJFN ;Save JFN and flags
4841 006257'00 607 01 0 00 570000 TXNN S1,GJ%DEV+GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER ;Anything wild?
4842 006260'00 634 01 0 00 000001 TDZA S1,S1 ;No..clear wild JFN
4843 006261'00 661 01 0 00 000036 TXO S1,GN%STR+GN%DIR+GN%NAM+GN%EXT ;Mark change flags
4844 006262'00 202 01 0 00 000000# MOVEM S1,WLDJFN ;Save for message generation
4845 006263'00 260 17 0 00 007114' $CALL GETDEV ;Get device attributes
4846 006264'00 322 00 0 00 006237* $RETIF ;Return if this fails
4847 006265'00 607 02 0 00 200000 TXNN S2,DV%IN ;Can device do input?
4848 006266'00 324 17 0 00 007152' PJRST DEVERR ;No..bad device
4849 006267'00 254 00 0 00 006274' JRST NXTIN1 ;Continue after GNJFN
4850
4851 006270'00 200 01 0 00 000000# NXTINP: MOVE S1,LOCJFN ;Get original JFN
4852 006271'00 104 00 0 00 000017 GNJFN ;Get the next file
4853 ERJMP [$CALL RELJFN ;No file match..release JFN
4854 006272'00 320 16 0 00 013153' $RETF] ;Return false
4855 006273'00 202 01 0 00 000000# MOVEM S1,WLDJFN ;Save state change flags
4856 006274'00 260 17 0 00 007072' NXTIN1: $CALL GETFDB ;Read FDB and Get byte size
4857 006275'00 201 01 0 00 200000 MOVX S1,OF%RD ;Get read access bit for open
4858 006276'00 202 01 0 00 000000# MOVEM S1,OPNFLG ;Save for open
4859 006277'00 200 01 0 00 000000# MOVE S1,WLDJFN ;Return wild JFN and flags
4860 006300'00 561 02 0 00 000000# HRROI S2,NAMFSP ;Point to full filespec
4861 006301'00 324740 006235* $RETT
4862
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 103
DAPLIB MAC 14-Jan-82 09:58 SETOUT Setup for local file output
4863 SUBTTL SETOUT Setup for local file output
4864
4865 ;Accepts AP/ Address of D$FUNC argment block
4866
4867 ;Returns S1/ Local JFN
4868 ; S2/ Pointer to expanded filespec
4869
4870 006302'00 201 01 0 00 000000# SETOUT: MOVEI S1,JFNBLK ;Point to JFN block
4871 006303'00 205 02 0 00 400000 MOVX S2,GJ%FOU ;File is for output
4872 006304'00 202 02 0 01 000000 MOVEM S2,.GJGEN(S1) ;Save the flags
4873 006305'00 200 02 0 16 000003 MOVE S2,.DFLFS(AP) ;Get pointer to local file spec
4874 006306'00 104 00 0 00 000020 GTJFN ;Find the file
4875 006307'00 320 16 0 00 007707' ERJMP TERCVT
4876 006310'00 332 00 0 00 000002 SKIPE S2 ;[143]IF FILENAME SPECIFIED
4877 JRST [LDB S2,S2 ;[143]GET THE DELIMITER BYTE
4878 SKIPN S2 ;[143]NULL?
4879 JRST .+1 ;[143]YES, ITS OK
4880 MOVEI S2,GJFX4 ;[143]NO, ERROR IN FILE NAME
4881 006311'00 254 00 0 00 013155' JRST TERCV0] ;[143]
4882 006312'00 202 01 0 00 000000# MOVEM S1,LOCJFN ;Save the JFN
4883 006313'00 260 17 0 00 007114' $CALL GETDEV ;Get device attributes
4884 006314'00 322 00 0 00 006264* $RETIF ;Return if this fails
4885 006315'00 607 02 0 00 400000 TXNN S2,DV%OUT ;Can device do output?
4886 006316'00 324 17 0 00 007152' PJRST DEVERR ;No..then fail
4887 006317'00 260 17 0 00 007072' $CALL GETFDB ;Get the FDB info
4888 006320'00 201 01 0 00 100000 MOVX S1,OF%WR ;Get write access bit for open
4889 006321'00 202 01 0 00 000000# MOVEM S1,OPNFLG ;Save for Open
4890 006322'00 200 01 0 00 000000# MOVE S1,LOCJFN ;Return the JFN
4891 006323'00 561 02 0 00 000000# HRROI S2,NAMFSP ;Point to full filespec
4892 006324'00 324740 006301* $RETT
4893
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 104
DAPLIB MAC 14-Jan-82 09:58 OPNFIL Routine to open the local file
4894 SUBTTL OPNFIL Routine to open the local file
4895
4896
4897 006325'00 550 01 0 00 000000# OPNFIL: HRRZ S1,LOCJFN ;Get local JFN
4898 006326'00 200 02 0 00 000000# MOVE S2,OPNFLG ;Get our flags
4899 006327'00 104 00 0 00 000021 OPENF ;Open the file
4900 006330'00 320 16 0 00 007707' ERJMP TERCVT ;Return the error
4901 006331'00 402 00 0 00 000000# SETZM BUFFUL ;[142]
4902 006332'00 402 00 0 00 000000# SETZM LINFLG ;[150]
4903 006333'00 402 00 0 00 000000# SETZM PAGBP ;[130]ZERO THE PMAP VARIABLES
4904 006334'00 402 00 0 00 000000# SETZM PAGNUM ;[130]...
4905 006335'00 402 00 0 00 000000# SETZM PFBSIZ ;[130]...
4906 006336'00 402 00 0 00 000000# SETZM PAG1 ;[130]...
4907 006337'00 402 00 0 00 000000# SETZM PAGMEM ;[151]
4908 006340'00 402 00 0 00 000000# SETZM LINNUM ;[130]...
4909 006341'00 201 02 0 00 000001 MOVEI S2,1 ;[130]INTIAL PAGFLG
4910 006342'00 135 01 0 00 013162' LOAD S1,LOCDEV,DV%TYP ;[130]GET DEVICE TYPE
4911 006343'00 302 01 0 00 000000 CAIE S1,.DVDSK ;[130]A DISK?
4912 006344'00 324740 006324* $RETT ;[130]NO
4913 006345'00 202 02 0 00 000000# MOVEM S2,PAGFLG ;[130]YES
4914 006346'00 200 01 0 00 000000# MOVE S1,OPNFLG ;[130]GET FLAGS
4915 006347'00 602 01 0 00 100000 TXNE S1,OF%WR ;[130]WRITTING THE FILE?
4916 006350'00 324740 006344* $RETT ;[130]YES, DON'T COMPUTE EOF COUNT
4917 006351'00 550 01 0 00 000000# HRRZ S1,LOCJFN ;[130]GET THE JFN
4918 006352'00 200 02 0 00 013163' MOVE S2,[1,,.FBBYV] ;[130]GET THE file's BYTE SIZE
4919 006353'00 261 17 0 00 000003 PUSH P,T1 ;[130]
4920 006354'00 261 17 0 00 000004 PUSH P,T2 ;[130]
4921 006355'00 201 03 0 00 000004 MOVEI T1,T2 ;[130]
4922 006356'00 104 00 0 00 000063 GTFDB ;[130]
4923 006357'00 242 04 0 00 777750 LSH T2,-^D24 ;[130]
4924 006360'00 405 04 0 00 000077 ANDI T2,77 ;[130]
4925 006361'00 200 03 0 00 000000# OPNFI0: MOVE T1,OPNFLG ;[152][130]GET BYTE SIZE USED IN OPENF
4926 006362'00 242 03 0 00 777742 LSH T1,-^D30 ;[130]
4927 006363'00 306 03 0 00 000044 CAIN T1,^D36 ;[130]36 BIT BYTE READ?
4928 006364'00 302 04 0 00 000022 CAIE T2,^D18 ;[130]BUT 18 BIT BYTES?
4929 006365'00 334 00 0 00 000000 SKIPA ;[130]
4930 JRST [MOVEI T2,0 ;[130]YES, SET THE FLAG
4931 006366'00 254 00 0 00 013164' JRST OPNFI1] ;[130]AND CONTINUE
4932 006367'00 230 04 0 00 000003 IDIV T2,T1 ;[130]COMPUTE BYTES PER FILE BYTE
4933 006370'00 337 00 0 00 000004 SKIPG T2 ;[130]BAD BYTE SIZE?
4934 JRST [MOVE T2,REMOST ;[152]SYSTEM TYPE
4935 CAIE T2,.OSTP20 ;[152]NO WARNING FOR TOPS20 NODES
4936 $WARN (Byte size of local file is unusable - 7 assumed) ;[152]
4937 MOVEI T2,^D7 ;[152]ASSUME 7 BIT BYTES
4938 006371'00 254 00 0 00 013212' JRST OPNFI0] ;[152]
4939 006372'00 261 17 0 00 000004 OPNFI1: PUSH P,T2 ;[130]
4940 006373'00 200 02 0 00 013217' MOVE S2,[1,,.FBSIZ] ;[130]
4941 006374'00 201 03 0 00 000004 MOVEI T1,T2 ;[130]
4942 006375'00 104 00 0 00 000063 GTFDB ;[130]GET FILES BYTE COUNT
4943 006376'00 262 17 0 00 000003 POP P,T1 ;[130]
4944 006377'00 336 00 0 00 000003 SKIPN T1 ;[130]36/18?
4945 JRST [MOVE T1,T2 ;[130]
4946 SETZ T2, ;[130]
4947 LSHC T1,-1 ;[130]DIVIDE BY 2
4948 SKIPE T2 ;[130]REMAINDER?
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 104-1
DAPLIB MAC 14-Jan-82 09:58 OPNFIL Routine to open the local file
4949 ADDI T1,1 ;[130]YES
4950 006400'00 254 00 0 00 013220' JRST OPNFI2] ;[130]
4951 006401'00 220 03 0 00 000004 IMUL T1,T2 ;[130]
4952 006402'00 202 03 0 00 000000# OPNFI2: MOVEM T1,EOFCNT ;[130]REAL NUMBER OF BYTES IN FILE
4953 006403'00 262 17 0 00 000004 POP P,T2 ;[130]
4954 006404'00 262 17 0 00 000003 POP P,T1 ;[130]
4955 006405'00 324740 006350* $RETT ;Return success
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 105
DAPLIB MAC 14-Jan-82 09:58 CLSFIL Routine to close local file and update FDB
4956 SUBTTL CLSFIL Routine to close local file and update FDB
4957
4958 006406'00 260 17 0 00 003361* CLSFIL: $SAVE <P1> ;[137]
4959 006407'00 200 07 0 00 000001 MOVE P1,S1 ;[137]SAVE THE DELETE ON CLOSE FLAG
4960 006410'00 135 01 0 00 013226' LOAD S1,LOCDEV,DV%TYP ;Get device type
4961 006411'00 200 02 0 00 000000# MOVE S2,OPNFLG ;Get file open flags
4962 006412'00 602 02 0 00 200000 TXNE S2,OF%RD ;[130]READING THE FILE?
4963 006413'00 337 00 0 00 000000# SKIPG PAGFLG ;[130]AND USING PMAPS TO DO IT?
4964 006414'00 334 00 0 00 000000 SKIPA ;[130]NO
4965 006415'00 260 17 0 00 006535' $CALL UNMAP ;[130]YES, UNMAP THE FILE PAGE
4966 006416'00 322 00 0 00 006314* $RETIF ;[147]FAIL IF ERROR IN UNMAP
4967 006417'00 306 01 0 00 000000 CAIN S1,.DVDSK ;Is it disk?
4968 006420'00 606 02 0 00 100000 TXNN S2,OF%WR ; and writing file?
4969 006421'00 324 17 0 00 006553' PJRST CLSINP ;No..just close it
4970 006422'00 333 00 0 00 000000# SKIPLE MCYIDX ;Yes..Residual MACY11 byte?
4971 006423'00 260 17 0 00 007054' $CALL OUTMCD ;Yes..write last word
4972 006424'00 335 00 0 00 000000# SKIPGE PAGFLG ;[130]TOPS-20 PAGE MODE
4973 006425'00 254 00 0 00 006444' JRST CLSFI0 ;[130]YES, DON'T DO THIS
4974 006426'00 200 01 0 00 000000# MOVE S1,PAGBP ;[130]CURRENT PAGE BYTE POINTER
4975 006427'00 271 01 0 00 001000 ADDI S1,1000 ;[130]
4976 006430'00 316 01 0 00 000000# CAMN S1,PAG1 ;[130]IS THIS PAGE EMPTY?
4977 006431'00 254 00 0 00 006436' JRST CLSFIN ;[130]YES
4978 006432'00 336 00 0 00 000000# SKIPN PAG1 ;[130]NULL FILE?
4979 006433'00 254 00 0 00 006436' JRST CLSFIN ;[130]YES
4980 006434'00 260 17 0 00 007026' $CALL PAGOUT ;[130]NO, OUTPUT THE PARTIAL PAGE
4981 006435'00 322 00 0 00 007707' JUMPF TERCVT ;[130]
4982 006436'00 200 03 0 00 000000# CLSFIN: MOVE T1,PFBSIZ ;[130]
4983 006437'00 202 03 0 00 000000# MOVEM T1,.FBSIZ+ATTFDB ;[130]THE BYTE COUNT
4984 006440'00 200 03 0 00 000000# MOVE T1,OPNFLG ;[130]
4985 006441'00 242 03 0 00 777772 LSH T1,-6 ;[130]
4986 006442'00 404 03 0 00 013227' AND T1,[7700,,0] ;[130]
4987 006443'00 202 03 0 00 000000# MOVEM T1,.FBBYV+ATTFDB ;[130]BYTE SIZE
4988 006444'00 205 01 0 00 400000 CLSFI0: MOVX S1,CO%NRJ ;Don't release JFN
4989 006445'00 540 01 0 00 000000# HRR S1,LOCJFN
4990 006446'00 104 00 0 00 000022 CLOSF ;Close the file
4991 006447'00 320 16 0 00 007707' ERJMP TERCVT
4992 006450'00 205 01 0 00 400013 MOVX S1,CF%NUD+<.FBCRV>B17 ;Get offset
4993 006451'00 561 02 0 00 777777 MOVX S2,FWMASK ;set all bits to change
4994 006452'00 332 03 0 00 000000# SKIPE T1,.FBCRV+ATTFDB ;Get creation date/time
4995 006453'00 260 17 0 00 006632' $CALL CHNGFD ;Change the FDB
4996 006454'00 205 01 0 00 400014 MOVX S1,CF%NUD+<.FBWRT>B17 ;Get the offset
4997 006455'00 332 03 0 00 000000# SKIPE T1,.FBWRT+ATTFDB ;Get last update date/time
4998 006456'00 260 17 0 00 006632' $CALL CHNGFD ;Change the FDB
4999 ; MOVX S1,CF%NUD+<.FBPRT>B17 ;Get the offset
5000 ; MOVX S2,FP%SLF+FP%GRP+FP%WLD ;Get protection mask
5001 ; SKIPE T1,.FBPRT+ATTFDB ;Get file protection
5002 ; $CALL CHNGFD ;Change the FDB
5003 006457'00 205 01 0 00 400012 MOVX S1,CF%NUD+<.FBSIZ>B17 ;Get offset for bytecount word
5004 006460'00 561 02 0 00 777777 MOVX S2,FWMASK ;CHANGE ALL BITS
5005 006461'00 332 03 0 00 000000# SKIPE T1,.FBSIZ+ATTFDB ;Get file byte count
5006 006462'00 260 17 0 00 006632' $CALL CHNGFD ;CHANGE THE FDB
5007 006463'00 205 01 0 00 400011 MOVX S1,CF%NUD+<.FBBYV>B17 ;Get offset for bytesize
5008 006464'00 205 02 0 00 007700 MOVX S2,FB%BSZ ;Change bytesize
5009 006465'00 332 03 0 00 000000# SKIPE T1,.FBBYV+ATTFDB ;Get file bytesize
5010 006466'00 260 17 0 00 006632' $CALL CHNGFD ;CHANGE THE FDB
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 105-1
DAPLIB MAC 14-Jan-82 09:58 CLSFIL Routine to close local file and update FDB
5011 006467'00 331 00 0 00 000000# SKIPL PAGFLG ;Recieve entire FDB?
5012 006470'00 254 00 0 00 006515' JRST CLSFI1 ;No..don't update remaining info
5013 006471'00 205 01 0 00 400001 MOVX S1,CF%NUD+<.FBCTL>B17 ;Yes..update remaining INFO
5014 006472'00 205 02 0 00 000017 MOVX S2,FB%FCF ;Get mask for countrol word
5015 006473'00 332 03 0 00 000000# SKIPE T1,.FBCTL+ATTFDB
5016 006474'00 260 17 0 00 006632' $CALL CHNGFD
5017 006475'00 205 01 0 00 400011 MOVX S1,CF%NUD+<.FBBYV>B17 ;Update mode and bytesize
5018 006476'00 205 02 0 00 007717 MOVX S2,FB%BSZ+FB%MOD
5019 006477'00 332 03 0 00 000000# SKIPE T1,.FBBYV+ATTFDB
5020 006500'00 260 17 0 00 006632' $CALL CHNGFD
5021 006501'00 205 01 0 00 400005 MOVX S1,CF%NUD+<.FBCRE>B17 ;Update creation date if possible
5022 006502'00 561 02 0 00 777777 MOVX S2,FWMASK
5023 006503'00 332 03 0 00 000000# SKIPE T1,.FBCRE+ATTFDB
5024 006504'00 260 17 0 00 006632' $CALL CHNGFD
5025 006505'00 205 01 0 00 400015 MOVX S1,CF%NUD+<.FBREF>B17 ;Update last reference
5026 006506'00 561 02 0 00 777777 MOVX S2,FWMASK
5027 006507'00 332 03 0 00 000000# SKIPE T1,.FBREF+ATTFDB
5028 006510'00 260 17 0 00 006632' $CALL CHNGFD
5029 ; MOVX S1,CF%NUD+<.FBCNT>B17 ;Update access counts if possible
5030 ; MOVX S2,FWMASK
5031 ; SKIPE T1,.FBCNT+ATTFDB
5032 ; $CALL CHNGFD
5033 006511'00 205 01 0 00 400024 MOVX S1,CF%NUD+<.FBUSW>B17 ;Update user settable word
5034 006512'00 561 02 0 00 777777 MOVX S2,FWMASK
5035 006513'00 332 03 0 00 000000# SKIPE T1,.FBUSW+ATTFDB
5036 006514'00 260 17 0 00 006632' $CALL CHNGFD
5037 006515'00 550 01 0 00 000000# CLSFI1: HRRZ S1,LOCJFN ;Get file JFN
5038 006516'00 200 02 0 00 000000# MOVE S2,.DOACT+LLOPNB ;Point to files account
5039 006517'00 104 00 0 00 000062 SACTF ;SET FILE'S ACCOUNT DESIGNATOR
5040 006520'00 320 16 0 00 006532' ERJMP CLSFI2 ;[137]Failed..Release JFN
5041 006521'00 505 01 0 00 000000 HRLI S1,.SFAUT ;SET THE AUTHOR STRING
5042 006522'00 336 02 0 00 000000# SKIPN S2,.FBAUT+ATTFDB ;Author specified?
5043 006523'00 200 02 0 00 000000# MOVE S2,.DOUSR+LLOPNB ;Pickup pointer to user string
5044 006524'00 104 00 0 00 000551 SFUST ;DO IT
5045 006525'00 320 16 0 00 006532' ERJMP CLSFI2 ;[137]Failed..Release JFN
5046 006526'00 505 01 0 00 000001 HRLI S1,.SFLWR ;SET LAST WRITER
5047 006527'00 200 02 0 00 000000# MOVE S2,.DOUSR+LLOPNB ;Pickup pointer to user string
5048 006530'00 104 00 0 00 000551 SFUST ;DO IT
5049 006531'00 320 16 0 00 006532' ERJMP CLSFI2 ;[137]Failed..Release JFN
5050 006532'00 336 00 0 00 000007 CLSFI2: SKIPN P1 ;[137]DELETE THE FILE?
5051 006533'00 324 17 0 00 006624' PJRST RELJFN ;Release output JFN
5052 006534'00 324 17 0 00 006600' PJRST DELFIL ;[137]YES
5053
5054 006535'00 304 00 0 00 000000 UNMAP: $SAVE <S1,S2> ;[130]
5055 006542'00 336 02 0 00 000000# SKIPN S2,PAGMEM ;[151][130]DID WE MAP A PAGE?
5056 006543'00 324740 006405* $RETT ;[130]NO
5057 006544'00 402 00 0 00 000000# SETZM PAGMEM ;[151]
5058 006545'00 571 01 0 00 777777 HRREI S1,-1 ;[130]YES, UNMAP IT
5059 006546'00 505 02 0 00 400000 HRLI S2,.FHSLF ;[130]PROCESS ID
5060 006547'00 400 03 0 00 000000 SETZ T1, ;[130]
5061 006550'00 104 00 0 00 000056 PMAP ;[130]
5062 006551'00 320 16 0 00 007707' ERJMP TERCVT ;[130]
5063 006552'00 324740 006543* $RETT ;[130]
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 106
DAPLIB MAC 14-Jan-82 09:58 CLSINP Routine to close input file
5064 SUBTTL CLSINP Routine to close input file
5065
5066 006553'00 337 00 0 00 000000# CLSINP: SKIPG PAGFLG ;[130]
5067 006554'00 254 00 0 00 006563' JRST CLSIN1 ;[130]
5068 006555'00 200 01 0 00 000000# MOVE S1,PAGBP ;[130]
5069 006556'00 322 01 0 00 006563' JUMPE S1,CLSIN1 ;[130]NEVER ALLOCATED A PAGE
5070 006557'00 242 01 0 00 777767 LSH S1,-11 ;[130]
5071 006560'00 405 01 0 00 000777 ANDI S1,777 ;[130]THE PAGE NUMBER
5072 006561'00 260 17 0 00 006037* $CALL M%RELP ;[130]RELEASE THE PAGE
5073 006562'00 402 00 0 00 000000# SETZM PAGBP ;[151]
5074 006563'00 336 00 0 00 000007 CLSIN1: SKIPN P1 ;[137]DELETE THE FILE?
5075 006564'00 254 00 0 00 006572' JRST CLSIN2 ;[137]NO
5076 006565'00 550 01 0 00 000000# HRRZ S1,LOCJFN ;[137]
5077 006566'00 661 01 0 00 400000 TXO S1,DF%NRJ ;[137]
5078 006567'00 400 02 0 00 000000 SETZ S2, ;[137]
5079 006570'00 104 00 0 00 000026 DELF ;[137]
5080 006571'00 320 16 0 00 007707' ERJMP TERCVT ;[137]
5081 006572'00 200 01 0 00 000000# CLSIN2: MOVE S1,LOCJFN ;Input JFN wild?
5082 006573'00 623 01 0 00 570000 TXZE S1,GJ%DEV+GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER
5083 006574'00 661 01 0 00 400000 TXO S1,CO%NRJ ;Yes..don't release JFN
5084 006575'00 104 00 0 00 000022 CLOSF ;Always close the file
5085 006576'00 320 16 0 00 007707' ERJMP TERCVT
5086 006577'00 324740 006552* $RETT
5087
5088 SUBTTL DELFIL Routine to delete the local file
5089
5090 006600'00 550 01 0 00 000000# DELFIL: HRRZ S1,LOCJFN ;Get the local JFN
5091 006601'00 661 01 0 00 400000 TXO S1,DF%NRJ ;Don't release JFN
5092 006602'00 400 02 0 00 000000 SETZ S2, ;Default number of generations
5093 006603'00 104 00 0 00 000026 DELF ;Delete it
5094 006604'00 320 16 0 00 007707' ERJMP TERCVT ;Convert the error and return
5095 006605'00 324 17 0 00 006621' PJRST RLNJFN ;Release JFN if not wild
5096
5097 SUBTTL ABTFIL Routine to abort local file operation
5098
5099 006606'00 260 17 0 00 006535' ABTFIL: $CALL UNMAP ;[151]UNMAP MAPPED FILE PAGE
5100 006607'00 200 01 0 00 000000# MOVE S1,PAGBP ;[151]
5101 006610'00 322 01 0 00 006615' JUMPE S1,ABTFI1 ;[151]DID WE ALLOCATE A PAGE?
5102 006611'00 242 01 0 00 777767 LSH S1,-11 ;[151]YES
5103 006612'00 405 01 0 00 000777 ANDI S1,777 ;[151]
5104 006613'00 260 17 0 00 006561* $CALL M%RELP ;[151]RELEASE THE PAGE
5105 006614'00 402 00 0 00 000000# SETZM PAGBP ;[151]
5106 006615'00 550 01 0 00 000000# ABTFI1: HRRZ S1,LOCJFN ;[151]GET JFN FOR LOCAL FILE
5107 006616'00 661 01 0 00 404000 TXO S1,CZ%ABT!CO%NRJ ;ABORT OPERATIONS
5108 006617'00 104 00 0 00 000022 CLOSF ;AND CLOSE THE FILE
5109 006620'00 320 16 0 00 007707' ERJMP TERCVT ;Return failure
5110 006621'00 200 01 0 00 000000# RLNJFN: MOVE S1,LOCJFN ;Get local JFN
5111 006622'00 603 01 0 00 570000 TXNE S1,GJ%DEV+GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER
5112 006623'00 324740 006577* $RETT ;Don't release wild JFN
5113 006624'00 550 01 0 00 000000# RELJFN: HRRZ S1,LOCJFN ;Get file JFN
5114 006625'00 104 00 0 00 000023 RLJFN ;Release it
5115 ERJMP [CAIE S1,DESX3 ;JFN not assigned?
5116 PJRST TERCVT ;No..return failure
5117 006626'00 320 16 0 00 013230' JRST .+1] ;Return in line
5118 006627'00 402 00 0 00 000000# SETZM LOCJFN ;Clear file JFN
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 106-1
DAPLIB MAC 14-Jan-82 09:58 ABTFIL Routine to abort local file operation
5119 006630'00 402 00 0 00 000000# SETZM WLDJFN ;Clear wild JFN
5120 006631'00 324740 006623* $RETT
5121
5122 SUBTTL CHNGFD Routine to change a field in output files FDB
5123
5124 ;Accepts S1/ Offset to FDB location,,0
5125 ; S2/ Mask for requested bits
5126 ; T1/ Requested bits
5127
5128 006632'00 540 01 0 00 000000# CHNGFD: HRR S1,LOCJFN ;Get file JFN
5129 006633'00 104 00 0 00 000064 CHFDB ;Change FDB per S1-T1
5130 006634'00 320 16 0 00 004312* ERJMP .RETF ;Pass back failure
5131 006635'00 324740 006631* $RETT ;Return success
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 107
DAPLIB MAC 14-Jan-82 09:58 EOFCHK Routine to check for EOF in local file
5132 SUBTTL EOFCHK Routine to check for EOF in local file
5133
5134 ;Returns TRUE We are at EOF
5135 ; FALSE Some other file error occured
5136
5137 006636'00 332 00 0 00 000000# EOFCHK: SKIPE PAGFLG ;[130]PMAPS?
5138 006637'00 254 00 0 00 006644' JRST EOFCH1 ;[130]YES
5139 006640'00 260 17 0 00 007707' $CALL TERCVT ;Get the last error code
5140 006641'00 302 01 0 00 050047 CAXE S1,FLD(ER$TRN,ER%MAC)+FLD(ER$EOF,ER%MIC) ;EOF?
5141 006642'00 324740 006634* $RETF ;No..give bad return
5142 006643'00 661 13 0 00 000002 TXO S,S%EOF ;Yes..set EOF flag
5143 006644'00 603 13 0 00 000002 EOFCH1: TXNE S,S%EOF ;[130]
5144 006645'00 324740 006635* $RETT ;[130]
5145 006646'00 324740 006642* $RETF ;[130]
5146
5147 SUBTTL INPBYT Routine to read a byte from file
5148
5149 ;Returns TRUE S1/ Next byte in File
5150 ; FALSE Byte not available
5151
5152 006647'00 332 00 0 00 000000# INPBYT: SKIPE MCYIDX ;MACY11 mode?
5153 006650'00 254 00 0 00 006746' JRST INPMCY ;Yes..get a byte
5154 006651'00 336 00 0 00 000000# INPBYM: SKIPN PAGFLG ;[130]NON DISK DEVICE?
5155 JRST [HRRZ S1,LOCJFN ;[130]YES
5156 BIN ;[130]
5157 ERJMP TERCVT ;[130]
5158 MOVE S1,S2 ;[130]
5159 SETZ S2, ;[130]
5160 006652'00 254 00 0 00 013233' $RETT] ;[130]
5161 006653'00 200 01 0 00 000000# MOVE S1,EOFCNT ;[130]EOF BYTE COUNT
5162 006654'00 316 01 0 00 000000# CAMN S1,PFBSIZ ;[130]EOF?
5163 JRST [MOVEI S2,IOX4 ;[130]EOF STATUS
5164 TXO S,S%EOF ;[130]
5165 006655'00 254 00 0 00 013241' JRST TERCV0] ;[130]SIMULATE IT
5166 006656'00 332 00 0 00 000000# SKIPE PAGBP ;[130]FIRST TIME HERE?
5167 006657'00 254 00 0 00 006662' JRST INPBY1 ;[130]
5168 006660'00 260 17 0 00 006702' $CALL PAGIN ;[130]YES
5169 006661'00 322 00 0 00 011370' JUMPF [$RET] ;[130]
5170 006662'00 200 01 0 00 000000# INPBY1: MOVE S1,PAGBP ;[130]CURRENT BYTE POINTER
5171 006663'00 312 01 0 00 000000# CAME S1,PAG1 ;[130]AT END OF PAGE?
5172 006664'00 254 00 0 00 006667' JRST INPBY2 ;[130]
5173 006665'00 260 17 0 00 006717' $CALL PAGINN ;[130]GET NEXT PAGE
5174 006666'00 322 00 0 00 011370' JUMPF [$RET] ;[130]
5175 006667'00 134 01 0 00 000000# INPBY2: ILDB S1,PAGBP ;[130]GET NEXT BYTE
5176 006670'00 350 00 0 00 000000# AOS PFBSIZ ;[130]INCREMENT BYTE COUNT
5177 006671'00 550 02 0 00 000000# HRRZ S2,PAGBP ;[130]ADR OF WORD WITH BYTE
5178 006672'00 200 02 0 02 000000 MOVE S2,0(S2) ;[130]WORD WITH BYTE
5179 006673'00 405 02 0 00 000001 ANDI S2,1 ;[130]ISOLATE LIN NUM FLAG
5180 006674'00 250 02 0 00 000000# EXCH S2,LINNUM ;[130]SAVE IT
5181 006675'00 306 02 0 00 000001 CAIN S2,1 ;[130]IS THIS THE TAB...
5182 006676'00 302 01 0 00 000011 CAIE S1," " ;[130]AFTER A LINE NUM?
5183 JRST [MOVE S2,LINNUM ;[130]NO
5184 006677'00 254 00 0 00 013244' $RETT] ;[130]
5185 006700'00 201 02 0 00 000001 MOVEI S2,1 ;[130]YES
5186 006701'00 324740 006645* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 107-1
DAPLIB MAC 14-Jan-82 09:58 INPBYT Routine to read a byte from file
5187
5188 006702'00 260 17 0 00 005777* PAGIN: $CALL M%NXPG ;[130]GET A NON EXISTANT PAGE
5189 006703'00 242 01 0 00 000011 LSH S1,11 ;[130]CONVERT TO AN ADDRESS
5190 006704'00 200 02 0 00 000000# MOVE S2,OPNFLG ;[130]OPEN FLAGS
5191 006705'00 242 02 0 00 777772 LSH S2,-6 ;[130]BYTE SIZE
5192 006706'00 404 02 0 00 013227' AND S2,[7700,,0] ;[130]ISLOATE IT
5193 006707'00 270 01 0 00 000002 ADD S1,S2 ;[130]
5194 006710'00 434 01 0 00 013246' IOR S1,[440000,,0] ;[130]
5195 006711'00 271 01 0 00 001000 ADDI S1,1000 ;[130]
5196 006712'00 133 00 0 00 000001 IBP 0,S1 ;[130]POINT AT FIRST BYTE
5197 006713'00 571 02 0 00 777777 HRREI S2,-1 ;[130]
5198 006714'00 133 02 0 00 000001 ADJBP S2,S1 ;[130]
5199 006715'00 202 02 0 00 000000# MOVEM S2,PAGBP ;[130]
5200 006716'00 202 02 0 00 000000# MOVEM S2,PAG1 ;[130]MARKER FOR END OF PAGE
5201
5202 006717'00 304 00 0 00 000000 PAGINN: $SAVE <T1> ;[130]SAVE T1
5203 006723'00 200 01 0 00 000000# MOVE S1,PAGNUM ;[130]FILE PAGE NUMBER
5204 006724'00 350 00 0 00 000000# AOS PAGNUM ;[130]SET UP FOR NEXT PAGE
5205 006725'00 504 01 0 00 000000# HRL S1,LOCJFN ;[130]FILES JFN
5206 006726'00 104 00 0 00 000057 RPACS ;[130]
5207 006727'00 320 16 0 00 007707' ERJMP TERCVT ;[130]
5208 006730'00 607 02 0 00 010000 TXNN S2,PA%PEX ;[130]PAGE EXISTS?
5209 JRST [MOVEI S2,PMAPX1 ;[130]
5210 006731'00 254 00 0 00 013254' JRST TERCV0] ;[130]NO
5211 006732'00 200 02 0 00 000000# MOVE S2,PAGBP ;[130]GET BYTE POINTER
5212 006733'00 275 02 0 00 001000 SUBI S2,1000 ;[130]SET UP NEW POINTER
5213 006734'00 202 02 0 00 000000# MOVEM S2,PAGBP ;[130]
5214 006735'00 242 02 0 00 777767 LSH S2,-11 ;[130]
5215 006736'00 405 02 0 00 000777 ANDI S2,777 ;[130]PAGE NUMBER
5216 006737'00 271 02 0 00 000001 ADDI S2,1 ;[130]
5217 006740'00 202 02 0 00 000000# MOVEM S2,PAGMEM ;[151]
5218 006741'00 505 02 0 00 400000 HRLI S2,.FHSLF ;[130]TO THIS PROCESS
5219 006742'00 205 03 0 00 110000 MOVX T1,PM%RD+PM%PLD ;[130]PRELOAD THE PAGE
5220 006743'00 104 00 0 00 000056 PMAP ;[130]
5221 006744'00 320 16 0 00 007707' ERJMP TERCVT ;[130]AN ERROR?
5222 006745'00 324740 006701* $RETT ;[130]
5223
5224 006746'00 356 02 0 00 000000# INPMCY: AOSN S2,MCYIDX ;Increment byte index
5225 006747'00 254 00 0 00 006752' JRST INPMC1 ;Read first word of file
5226 006750'00 305 02 0 00 000005 CAIGE S2,5 ;Time for a new word?
5227 006751'00 254 00 0 00 006760' JRST INPMC2 ;No..just return the byte
5228 006752'00 550 01 0 00 000000# INPMC1: HRRZ S1,LOCJFN ;Yes..get a file word
5229 006753'00 260 17 0 00 006651' $CALL INPBYM ;[130]
5230 006754'00 322 00 0 00 011370' JUMPF [$RET] ;[130]
5231 006755'00 202 01 0 00 000000# MOVEM S1,MCYDAT ;[130]Save the word
5232 006756'00 201 02 0 00 000001 MOVEI S2,1 ;Index begins at 1 for byte 1
5233 006757'00 202 02 0 00 000000# MOVEM S2,MCYIDX ;Save for next pass
5234 006760'00 135 01 0 02 006761' INPMC2: LDB S1,MCYTBL-1(S2)
5235 006761'00 324740 006745* $RETT
5236
5237
5238 006762'00 22 10 0 00 000000# MCYTBL: POINT 8,MCYDAT,17 ;MACY11 byte 1
5239 006763'00 32 10 0 00 000000# POINT 8,MCYDAT,9 ;MACY11 byte 2
5240 006764'00 00 10 0 00 000000# POINT 8,MCYDAT,35 ;MACY11 byte 3
5241 006765'00 10 10 0 00 000000# POINT 8,MCYDAT,27 ;MACY11 byte 4
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 107-2
DAPLIB MAC 14-Jan-82 09:58 INPBYT Routine to read a byte from file
5242
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 108
DAPLIB MAC 14-Jan-82 09:58 OUTBYT Routine to write a byte to file
5243 SUBTTL OUTBYT Routine to write a byte to file
5244
5245 ;Accepts S1/ Byte to write to file
5246
5247 ;Returns TRUE S1/ Byte that was written
5248 ; FALSE Byte could not be written
5249
5250 006766'00 332 00 0 00 000000# OUTBYT: SKIPE MCYIDX ;MACY11 mode?
5251 006767'00 254 00 0 00 007050' JRST OUTMCY ;Yes..bumble it!
5252 006770'00 336 00 0 00 000000# OUTBYM: SKIPN PAGFLG ;[130]DISK DEVICE?
5253 JRST [MOVE S2,S1 ;[130]NO
5254 MOVE S1,LOCJFN ;[130]
5255 BOUT ;[130]
5256 ERJMP TERCVT ;[130]
5257 MOVE S1,S2 ;[130]
5258 006771'00 254 00 0 00 013256' $RETT] ;[130]
5259 006772'00 336 00 0 00 000000# SKIPN PAGBP ;[130]DOES THE PAGE EXIST?
5260 006773'00 260 17 0 00 007004' $CALL NEWPAG ;[130]NO, MAKE A NEW ONE
5261 006774'00 136 01 0 00 000000# IDPB S1,PAGBP ;[130]OUTPUT THE BYTE
5262 006775'00 350 00 0 00 000000# AOS PFBSIZ ;[130]INCREMENT THE BYTE COUNT
5263 006776'00 200 01 0 00 000000# MOVE S1,PAGBP ;[130]GET THE CURRENT POINTER
5264 006777'00 312 01 0 00 000000# CAME S1,PAG1 ;[130]IS THE PAGE FULL?
5265 007000'00 324740 006761* $RETT ;[130]
5266 007001'00 260 17 0 00 007026' $CALL PAGOUT ;[130]YES
5267 007002'00 322 00 0 00 011370' JUMPF [$RET] ;[130]
5268 007003'00 324740 007000* $RETT
5269
5270 007004'00 304 00 0 00 000000 NEWPAG: $SAVE <S1> ;[130]
5271 007010'00 260 17 0 00 006702* $CALL M%NXPG ;[130]GET A NON EXISTANT PAGE
5272 007011'00 242 01 0 00 000011 LSH S1,11 ;[130]MAKE IT AN ADDRESS
5273 007012'00 200 02 0 00 000000# MOVE S2,OPNFLG ;[130]
5274 007013'00 242 02 0 00 777772 LSH S2,-6 ;[130]
5275 007014'00 404 02 0 00 013227' AND S2,[7700,,0] ;[130]
5276 007015'00 270 02 0 00 000001 ADD S2,S1 ;[130]THE BYTE POINTER
5277 007016'00 434 02 0 00 013246' OR S2,[440000,,00] ;[130]
5278 007017'00 202 02 0 00 000000# MOVEM S2,PAGBP ;[130]
5279 007020'00 133 00 0 00 000002 IBP 0,S2 ;[130]
5280 007021'00 571 01 0 00 777777 HRREI S1,-1 ;[130]
5281 007022'00 133 01 0 00 000002 ADJBP S1,S2 ;[130]
5282 007023'00 271 01 0 00 001000 ADDI S1,1000 ;[130]
5283 007024'00 202 01 0 00 000000# MOVEM S1,PAG1 ;[130]MARKER TO FIND END OF PAGE
5284 007025'00 324740 007003* $RETT ;[130]
5285
5286 007026'00 304 00 0 00 000000 PAGOUT: $SAVE <T1> ;[130]
5287 007032'00 550 01 0 00 000000# HRRZ S1,PAGBP ;[130]THE PAGE BYTE POINTER
5288 007033'00 242 01 0 00 777767 LSH S1,-11 ;[130]
5289 007034'00 405 01 0 00 000777 ANDI S1,777 ;[130]THE PROCESS PAGE NUMBER
5290 007035'00 505 01 0 00 400000 HRLI S1,.FHSLF ;[130]PROCESS HANDLE
5291 007036'00 504 02 0 00 000000# HRL S2,LOCJFN ;[130]JFN OF THE FILE
5292 007037'00 540 02 0 00 000000# HRR S2,PAGNUM ;[130]
5293 007040'00 350 00 0 00 000000# AOS PAGNUM ;[130]
5294 007041'00 205 03 0 00 160000 MOVX T1,PM%WR+PM%RD+PM%EX ;[130]PROPER ACCESS BITS
5295 007042'00 104 00 0 00 000056 PMAP ;[130]
5296 007043'00 320 16 0 00 007707' ERJMP TERCVT ;[130]ERROR?
5297 007044'00 200 01 0 00 000000# MOVE S1,PAGBP ;[130]
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 108-1
DAPLIB MAC 14-Jan-82 09:58 OUTBYT Routine to write a byte to file
5298 007045'00 275 01 0 00 001000 SUBI S1,1000 ;[130]
5299 007046'00 202 01 0 00 000000# MOVEM S1,PAGBP ;[130]
5300 007047'00 324740 007025* $RETT ;[130]
5301
5302 007050'00 356 02 0 00 000000# OUTMCY: AOSN S2,MCYIDX ;Bump the byte index
5303 007051'00 350 02 0 00 000000# AOS S2,MCYIDX ;Once more for first word
5304 007052'00 305 02 0 00 000005 CAIGE S2,5 ;Ready to write word?
5305 007053'00 254 00 0 00 007064' JRST OUTMC1 ;No..just store the byte
5306 007054'00 261 17 0 00 000001 OUTMCD: PUSH P,S1 ;Yes..save our byte
5307 007055'00 200 01 0 00 000000# MOVE S1,MCYDAT ;[130]Get our last word
5308 007056'00 260 17 0 00 006770' $CALL OUTBYM ;[130]
5309 JUMPF [POP P,S1 ;[130]
5310 007057'00 322 00 0 00 012777' $RET] ;[130]
5311 007060'00 262 17 0 00 000001 POP P,S1 ;Retrieve our byte
5312 007061'00 402 00 0 00 000000# SETZM MCYDAT ;Clear our last word
5313 007062'00 201 02 0 00 000001 MOVEI S2,1 ;Index begins at 1
5314 007063'00 202 02 0 00 000000# MOVEM S2,MCYIDX
5315 007064'00 137 01 0 02 006761' OUTMC1: DPB S1,MCYTBL-1(S2) ;Store the byte
5316 007065'00 324740 007047* $RETT
5317
5318
5319 007066'00 201 00 0 00 000001 ALNMCY: MOVEI TF,1 ;Get a bit
5320 007067'00 612 00 0 00 000000# TDNE TF,MCYIDX ;Even byte boundry?
5321 007070'00 350 00 0 00 000000# AOS MCYIDX ;No..Align it
5322 007071'00 324740 007065* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 109
DAPLIB MAC 14-Jan-82 09:58 GETFDB Routine to read local file FDB and other info
5323 SUBTTL GETFDB Routine to read local file FDB and other info
5324
5325 007072'00 561 01 0 00 000000# GETFDB: HRROI S1,NAMFSP ;Point to filespec storage
5326 007073'00 550 02 0 00 000000# HRRZ S2,LOCJFN ;Expand this file name
5327 007074'00 200 03 0 00 013271' MOVX T1,FFSPEC ;Dev:<directory>name.ext.gen
5328 007075'00 104 00 0 00 000030 JFNS
5329 007076'00 320 16 0 00 007707' ERJMP TERCVT ;Convert error and return
5330 007077'00 550 01 0 00 000000# GETFDD: HRRZ S1,LOCJFN ;Get JFN
5331 007100'00 515 02 0 00 000037 HRLZI S2,.FBLEN ;Read all words form FDB
5332 007101'00 201 03 0 00 000000# MOVEI T1,LOCFDB ; into local copy
5333 007102'00 104 00 0 00 000063 GTFDB
5334 ERJMP [MOVEI S1,.FBLEN ;Get length of FDB
5335 MOVEI S2,LOCFDB ;Point to it
5336 $CALL .ZCHNK ;Clear it
5337 007103'00 320 16 0 00 013272' JRST GETFD1] ;Just return
5338 007104'00 200 02 0 00 000000# GETFD1: MOVE S2,REMOST ;[110]GET SYSTEM TYPE
5339 007105'00 306 02 0 00 000010 CAIN S2,.OSTP20 ;[110]TOPS20?
5340 007106'00 324740 007071* $RETT ;[110]YES
5341 007107'00 201 02 0 00 000007 MOVEI S2,7 ;[110]DEFAULT BYTE SIZE IS 7
5342 007110'00 135 01 0 00 013276' LOAD S1,.FBBYV+LOCFDB,FB%BSZ ;[110]GET BYTE SIZE
5343 007111'00 336 00 0 00 000001 SKIPN S1 ;[110]ZERO BYTE SIZE?
5344 007112'00 137 02 0 00 013277' STORE S2,.FBBYV+LOCFDB,FB%BSZ ;[110]YES, USE DEFAULT
5345 007113'00 324740 007106* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 110
DAPLIB MAC 14-Jan-82 09:58 GETDEV Routine to get device attributes
5346 SUBTTL GETDEV Routine to get device attributes
5347
5348 ;Accepts LOCJFN setup by SETINP or SETOUT
5349
5350 ;Returns TRUE S1/ DAP device word (Also stored in ATTDEV)
5351 ; S2/ Local device characteristics word
5352
5353 ; FALSE S1/ DAP unsupported device error
5354
5355 007114'00 550 01 0 00 000000# GETDEV: HRRZ S1,LOCJFN ;Get device JFN
5356 007115'00 104 00 0 00 000117 DVCHR ;Read device characteristics
5357 007116'00 320 16 0 00 007152' ERJMP DEVERR ;Return unsupported device
5358 007117'00 202 02 0 00 000000# MOVEM S2,LOCDEV ;Save device word
5359 007120'00 607 02 0 00 010000 TXNN S2,DV%AV ;Available?
5360 007121'00 324 17 0 00 007152' PJRST DEVERR ;No..return an error
5361 007122'00 201 01 0 00 200000 MOVX S1,FB$AVL ;Device must be available
5362 007123'00 603 02 0 00 400000 TXNE S2,DV%OUT ;Capable of output?
5363 007124'00 660 01 0 00 040000 TXO S1,FB$ODV ;Yes..
5364 007125'00 603 02 0 00 200000 TXNE S2,DV%IN ;Capable of input?
5365 007126'00 660 01 0 00 020000 TXO S1,FB$IDV ;Yes..
5366 007127'00 603 02 0 00 100000 TXNE S2,DV%DIR ;Have a directory?
5367 007130'00 660 01 0 00 000020 TXO S1,FB$SDI ;Yes..assume single for now
5368 007131'00 603 02 0 00 020000 TXNE S2,DV%MDD ;Multiple directories
5369 007132'00 660 01 0 00 000010 TXO S1,FB$MDI ;Yes..
5370 007133'00 603 02 0 00 004000 TXNE S2,DV%ASN ;Assigned?
5371 007134'00 660 01 0 00 010000 TXO S1,FB$ALL ;Yes..
5372 007135'00 603 02 0 00 001000 TXNE S2,DV%MNT ;Mounted?
5373 007136'00 660 01 0 00 002000 TXO S1,FB$MNT ;Yes..
5374 007137'00 630 02 0 00 013300' ANDX S2,DV%TYP ;Issolate device type
5375 007140'00 201 03 0 00 007155' MOVEI T1,DEVTBL ;Point to devices
5376 007141'00 336 04 0 03 000000 GETDE1: SKIPN T2,0(T1) ;Get table entry
5377 007142'00 254 00 0 00 007152' JRST DEVERR ;Unsupported device
5378 007143'00 540 02 0 00 000004 HRR S2,T2 ;Setup for equallity
5379 007144'00 312 02 0 00 000004 CAME S2,T2 ;Does it match?
5380 007145'00 344 03 0 00 007141' AOJA T1,GETDE1 ;No..try the next
5381 007146'00 434 01 0 04 000000 IOR S1,(T2) ;Yes..set the bits
5382 007147'00 202 01 0 00 000000# MOVEM S1,ATTDEV ;Save device attributes
5383 007150'00 200 02 0 00 000000# MOVE S2,LOCDEV ;Return local device char word
5384 007151'00 324740 007113* $RETT
5385
5386 007152'00 201 01 0 00 040035 DEVERR: $STATUS ER$FIL,ER$DEV ;Bad device
5387 007153'00 402 00 0 00 000002
5388 007154'00 324740 006646* $RETF
5389
5390
5391 007155'00 000000 013301' DEVTBL: .DVDSK,,[FB$MDI+FB$SHR+FB$RAD] ;Disk
5392 007156'00 000007 013302' .DVLPT,,[FB$REC+FB$SQD+FB$SPL] ;Line printer
5393 007157'00 000021 013302' .DVCDP,,[FB$REC+FB$SQD+FB$SPL] ;Card punch
5394 007160'00 000017 013302' .DVPLT,,[FB$REC+FB$SQD+FB$SPL] ;Plotter
5395 007161'00 000002 013303' .DVMTA,,[FB$FOD+FB$SQD] ;Magtape
5396 007162'00 000012 013304' .DVTTY,,[FB$TRM+FB$SQD] ;Terminal
5397 007163'00 000010 013305' .DVCDR,,[FB$REC+FB$SQD] ;Card reader
5398 007164'00 000015 013306' .DVNUL,,[FB$NUL] ;Null device
5399 007165'00 000000 000000 EXP 0 ;Terminate list
5400
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 111
DAPLIB MAC 14-Jan-82 09:58 SETATT Set attributes from switches
5401 SUBTTL SETATT Set attributes from switches
5402
5403 ;SETATT is called to setup the attributes message per S1
5404
5405 ;Accepts S1/ Mode to setup in attributes
5406 ; S2/ extra file attributes and Max record size
5407
5408
5409 ;Returns with
5410 ; ATTMNU with appropriate bits set
5411 ; ATTDAT with appropriate datatype
5412 ; ATTRFM with appropriate record format
5413 ; ATTRAT with appropriate record attributes
5414 ; ATTMRS with calling value
5415
5416 007166'00 201 04 0 00 000055 SETATT: MOVX T2,AT$DAT+AT$RFM+AT$RAT+AT$MRS
5417 007167'00 412 04 0 00 000000# ANDCAM T2,ATTMNU ;Clear the Menu bits
5418 007170'00 135 03 0 00 013307' LOAD T1,S2,DF%MRS ;Get maximum record size
5419 007171'00 202 03 0 00 000000# MOVEM T1,ATTMRS ;Save it
5420 007172'00 200 01 0 01 007304' MOVE S1,MODTB1(S1) ;Get attributes per mode
5421 007173'00 135 03 0 00 013310' LOAD T1,S1,DF%DAT ;Get Data type
5422 007174'00 202 03 0 00 000000# MOVEM T1,ATTDAT ;Save it
5423 007175'00 135 03 0 00 013311' LOAD T1,S1,DF%RFM ;Get record format
5424 007176'00 202 03 0 00 000000# MOVEM T1,ATTRFM ;Save it
5425 007177'00 306 03 0 00 000000 CAIN T1,FB$UDF ;Undefined record format?
5426 007200'00 620 04 0 00 000040 TXZ T2,AT$MRS ;Yes..clear the MRS menu bit
5427 007201'00 135 03 0 00 013312' LOAD T1,S1,DF%RAT ;Get record attributes
5428 007202'00 202 03 0 00 000000# MOVEM T1,ATTRAT ;Save it
5429 007203'00 436 04 0 00 000000# IORM T2,ATTMNU ;Set the menu bits
5430 007204'00 324740 007151* $RETT
5431
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 112
DAPLIB MAC 14-Jan-82 09:58 SWLOOK Lookup user switches and convert to DAP attriubtes
5432 SUBTTL SWLOOK Lookup user switches and convert to DAP attriubtes
5433
5434 ;Accepts S1/ Data type - record format - record attributes
5435
5436 ;Returns S1/ Data mode implied by switches
5437
5438 007205'00 620 01 0 00 377777 SWLOOK: ANDX S1,DF%DAT+DF%RFM+DF%RAT ;Keep interesting bits
5439 007206'00 205 02 0 00 777763 MOVSI S2,-MOD$LN ;Get length of the table
5440 007207'00 322 01 0 00 007220' JUMPE S1,SWLOO3 ;Establish default mode
5441 007210'00 603 01 0 00 006000 TXNE S1,FLD(DT$IMA+DT$ASC,DF%DAT) ;Datatype specified?
5442 007211'00 254 00 0 00 007214' JRST SWLOO1 ;Yes..see what we have
5443 007212'00 607 01 0 00 000100 TXNN S1,FLD(FB$MCY,DF%RAT) ;No..Was MACY11 specified?
5444 007213'00 661 01 0 00 004000 TXO S1,FLD(DT$IMA,DF%DAT) ;No..Datatype is image
5445 007214'00 316 01 0 02 007252' SWLOO1: CAMN S1,MODTBL(S2) ;Match an entry?
5446 007215'00 254 00 0 00 007220' JRST SWLOO3 ;Yes..finish up
5447 007216'00 253 02 0 00 007214' AOBJN S2,SWLOO1 ;No..try the next
5448 007217'00 324740 007154* $RETF ;Return a failure
5449
5450 007220'00 550 01 0 00 000002 SWLOO3: HRRZ S1,S2 ;Return mode in S1
5451 007221'00 324740 007204* $RETT
5452
5453 SUBTTL CHKMOD Routine to check for legal input to output mode
5454
5455
5456 007222'00 332 01 0 00 000000# CHKMOD: SKIPE S1,SRCMOD ;Unspecified source?
5457 007223'00 336 02 0 00 000000# SKIPN S2,DSTMOD ;Unspecified destination?
5458 007224'00 324740 007221* $RETT ;Yes..can't check it yet!
5459 007225'00 213 00 0 00 000002 MOVNS S2 ;Get right shift value for mode
5460 007226'00 205 03 0 00 400000 MOVX T1,1B0 ;Get the bit for Mode (0)
5461 007227'00 242 03 0 02 000000 LSH T1,0(S2) ;Get the bit for dest mode
5462 007230'00 616 03 0 01 007267' TDNN T1,MODTBO(S1) ;Valid for source mode?
5463 007231'00 324740 007217* $RETF ;No..return the error
5464 007232'00 324740 007224* $RETT
5465
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 113
DAPLIB MAC 14-Jan-82 09:58 [125] PICMOD - Pick default file mode by system type
5466 SUBTTL [125] PICMOD - Pick default file mode by system type
5467
5468 007233'00 200 01 0 00 000000# PICMOD: MOVE S1,REMOST ;GET REMOTE HOST TYPE
5469 007234'00 200 01 0 01 007236' MOVE S1,PMTAB(S1) ;GET DEF MODE FOR THAT HOST
5470 007235'00 324740 007232* $RETT ;RETURN
5471
5472 007236'00 000000 000010 PMTAB: .MD8 ;?
5473 007237'00 000000 000010 .MD8 ;RT
5474 007240'00 000000 000010 .MD8 ;RSTS
5475 007241'00 000000 000012 .MD10 ;RSX11S
5476 007242'00 000000 000012 .MD10 ;RSX11M
5477 007243'00 000000 000012 .MD10 ;RSX11D
5478 007244'00 000000 000012 .MD10 ;IAS
5479 007245'00 000000 000012 .MD10 ;VMS
5480 007246'00 000000 000010 .MD8 ;TOPS-20
5481 007247'00 000000 000010 .MD8 ;TOPS-10
5482 007250'00 000000 000010 .MD8 ;OS-8
5483 007251'00 000000 000012 .MD10 ;RSX11M-PLUS
5484
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 114
DAPLIB MAC 14-Jan-82 09:58 File mode table definitions
5485 SUBTTL File mode table definitions
5486
5487 ;Define a macro to generate table entries
5488
5489 DEFINE XX (MOD,RFM<0>,RAT<0>) <
5490 FLD(MOD,DF%DAT)+FLD(RFM,DF%RFM)+FLD(RAT,DF%RAT)>
5491
5492 ;Define a macro to generate a bit mask
5493
5494 DEFINE XB (BIT) <
5495 ZZ==0
5496 IRP <BIT>,<ZZ==ZZ!1B<BIT>>
5497 EXP ZZ>
5498
5499 ;Define a macro to generate default mode word
5500
5501 DEFINE XM (MODES) <
5502 BYTE (4) MODES>
5503
5504 000001 .MD1==^D1 ;/IMAGE
5505 000002 .MD2==^D2 ;/IMAGE/FIXED
5506 000003 .MD3==^D3 ;/IMAGE/VARIABLE
5507 000004 .MD4==^D4 ;/IMAGE/MACY
5508 000005 .MD5==^D5 ;/MACY
5509 000006 .MD6==^D6 ;/MACY/FIXED
5510 000007 .MD7==^D7 ;/MACY/VARIABLE
5511 000010 .MD8==^D8 ;/ASCII
5512 000011 .MD9==^D9 ;/ASCII/FIXED
5513 000012 .MD10==^D10 ;/ASCII/VARIABLE
5514 000013 .MD11==^D11 ;Print file format
5515 000014 .MD12==^D12 ;Fortran format
5516
5517
5518 ;Table of valid calling switches
5519
5520 007252'00 000000 000000 MODTBL: XX 0 ;Mode(0) unspecified
5521 007253'00 004000 000000 XX DT$IMA ;Mode(1) /IMAGE
5522 007254'00 004200 000000 XX DT$IMA,FB$FIX ;Mode(2) /IMAGE/FIXED
5523 007255'00 004400 000000 XX DT$IMA,FB$VAR ;Mode(3) /IMAGE/VARIABLE
5524 007256'00 004100 000000 XX DT$IMA, 0 ,FB$MCY ;Mode(4) /IMAGE/MACY11
5525 007257'00 000100 000000 XX 0 , 0 ,FB$MCY ;Mode(5) /MACY11
5526 007260'00 000300 000000 XX 0 ,FB$FIX,FB$MCY ;Mode(6) /MACY11/FIXED
5527 007261'00 000500 000000 XX 0 ,FB$VAR,FB$MCY ;Mode(7) /MACY11/VARIABLE
5528 007262'00 002000 000000 XX DT$ASC ;Mode(8) /ASCII
5529 007263'00 002200 000000 XX DT$ASC,FB$FIX ;Mode(9) /ASCII/FIXED
5530 007264'00 002400 000000 XX DT$ASC,FB$VAR ;Mode(10) /ASCII/VARIABLE
5531 007265'00 776000 000000 XX -1 ;Mode(11) Cant be specified
5532 007266'00 776000 000000 XX -1 ;Mode(12) Can't be specified
5533
5534 000015 MOD$LN==.-MODTBL ;Compute length
5535
5536 ;Table of valid output modes per input mode
5537
5538 007267'00 000000 000000 MODTBO: 0
5539 007270'00 200000 000000 XB <.MD1>
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 114-1
DAPLIB MAC 14-Jan-82 09:58 File mode table definitions
5540 007271'00 304000 000000 XB <.MD1,.MD2,.MD6>
5541 007272'00 052000 000000 XB <.MD3,.MD5,.MD7>
5542 007273'00 220000 000000 XB <.MD1,.MD4>
5543 007274'00 052000 000000 XB <.MD3,.MD5,.MD7>
5544 007275'00 324000 000000 XB <.MD1,.MD2,.MD4,.MD6>
5545 007276'00 052000 000000 XB <.MD3,.MD5,.MD7>
5546 007277'00 001200 000000 XB <.MD8,.MD10>
5547 007300'00 001400 000000 XB <.MD8,.MD9>
5548 007301'00 001200 000000 XB <.MD8,.MD10>
5549 007302'00 001000 000000 XB <.MD8>
5550 007303'00 001000 000000 XB <.MD8>
5551
5552 ;Table for DAP equivalent attributes
5553
5554 007304'00 004000 000000 MODTB1: XX DT$IMA,FB$UDF ;unspecified
5555 007305'00 004000 000000 XX DT$IMA,FB$UDF ;/IMAGE
5556 007306'00 004200 000000 XX DT$IMA,FB$FIX ;/IMAGE/FIXED
5557 007307'00 004400 000000 XX DT$IMA,FB$VAR ;/IMAGE/VARIABLE
5558 007310'00 004100 000000 XX DT$IMA,FB$UDF,FB$MCY ;/IMAGE/MACY11
5559 007311'00 005100 000000 XX DT$IMA,FB$STM,FB$MCY ;/MACY (Dos Binary)
5560 007312'00 004300 000000 XX DT$IMA,FB$FIX,FB$MCY ;/MACY11/FIXED
5561 007313'00 004500 000000 XX DT$IMA,FB$VAR,FB$MCY ;/MACY11/VARIABLE
5562 007314'00 003000 000000 XX DT$ASC,FB$STM ;/ASCII
5563 007315'00 002201 000000 XX DT$ASC,FB$FIX,FB$CR ;/ASCII/FIXED
5564 007316'00 002401 000000 XX DT$ASC,FB$VAR,FB$CR ;/ASCII/VARIABLE
5565 007317'00 002602 000000 XX DT$ASC,FB$VFC,FB$PRN ;Print format is read only
5566 007320'00 002600 400000 XX DT$ASC,FB$VFC,FB$FTN ;Fortran format is read only
5567
5568 ;Table of default output modes per source mode
5569
5570 007321'00 000000 000000 MODTB2: 0
5571 007322'00 01 00000000000 XM <.MD1> ;/IMAGE (TO) /IMAGE
5572 007323'00 02 00000000000 XM <.MD2> ;/IMAGE/FIX (TO) /IMAGE/FIX
5573 007324'00 03 00000000000 XM <.MD3> ;/IMAGE/VAR (TO) /IMAGE/VAR
5574 007325'00 01 00000000000 XM <.MD1> ;/IMAGE/MAC (TO) /IMAGE
5575 007326'00 03 00000000000 XM <.MD3> ;/MACY (TO) /IMAGE/VAR
5576 007327'00 02 00000000000 XM <.MD2> ;/MACY/FIX (TO) /IMAGE/FIX
5577 007330'00 03 00000000000 XM <.MD3> ;/MACY/VAR (TO) /IMAGE/VAR
5578 007331'00 00 10 12 00000000 XM <0,.MD8,.MD10> ;[125] PICK DEF BY SYSTEM TYPE
5579 007332'00 00 10 12 00000000 XM <0,.MD8,.MD10> ;[125] PICK DEF BY SYSTEM TYPE
5580 007333'00 00 10 12 00000000 XM <0,.MD8,.MD10> ;[125] PICK DEF BY SYSTEM TYPE
5581 007334'00 13 00000000000 XM <.MD11> ;Print file to ascii stream
5582 007335'00 14 00000000000 XM <.MD12> ;Fortran file to ascii stream
5583
5584 ;Table of processor addresses for various modes
5585
5586 007336'00 000000 000000 MODTB3: 0
5587 007337'00 004515' 006051' XWD GETIMG,PUTIMG ;/IMAGE
5588 007340'00 004515' 006051' XWD GETIMG,PUTIMG ;/IMAGE/FIXED
5589 007341'00 004515' 006051' XWD GETIMG,PUTIMG ;/IMAGE/VARIABLE
5590 007342'00 004515' 006051' XWD GETIMG,PUTIMG ;/MACY/IMAGE
5591 007343'00 004627' 006176' XWD GETDOS,PUTDOS ;/MACY
5592 007344'00 004515' 006051' XWD GETIMG,PUTIMG ;/MACY/FIXED
5593 007345'00 004515' 006051' XWD GETIMG,PUTIMG ;/MACY/VARIABLE
5594 007346'00 004340' 005713' XWD GETASC,PUTASC ;/ASCII
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 114-2
DAPLIB MAC 14-Jan-82 09:58 File mode table definitions
5595 007347'00 004340' 005713' XWD GETASC,PUTASC ;/ASCII/FIXED
5596 007350'00 004340' 005713' XWD GETASC,PUTASC ;/ASCII/VARIABLE
5597 007351'00 004340' 011573' XWD GETASC,[PJRST .RETT] ;PRN format is read only
5598 007352'00 004340' 011573' XWD GETASC,[PJRST .RETT] ;FTN format is read only
5599
5600 ;Table of valid file bytesizes for mode
5601
5602 007353'00 000000 000000 MODTB4: 0
5603 007354'00 777777 777777 EXP -1 ;1 to 36 for IMAGE
5604 007355'00 777777 777777 EXP -1
5605 007356'00 777777 777777 EXP -1
5606 007357'00 400000 400000 XB <18,0> ;18 or 36 for MACY
5607 007360'00 400000 400000 XB <18,0>
5608 007361'00 400000 400000 XB <18,0>
5609 007362'00 400000 400000 XB <18,0>
5610 007363'00 403000 000000 XB <7,8,0> ;7 8 or 36 for ASCII
5611 007364'00 403000 000000 XB <7,8,0>
5612 007365'00 403000 000000 XB <7,8,0>
5613 007366'00 002000 000000 XB <7> ;7 for print format
5614 007367'00 002000 000000 XB <7> ;7 for fortran format
5615
5616 ;Table of file open bytesize for mode
5617
5618 007370'00 000000 000000 MODTB5: 0
5619 007371'00 000000 000000 EXP 0 ;Actual file bytesize for IMAGE
5620 007372'00 000000 000000 EXP 0
5621 007373'00 000000 000000 EXP 0
5622 007374'00 000000 000044 EXP ^D36 ;36 for /MACY
5623 007375'00 000000 000044 EXP ^D36
5624 007376'00 000000 000044 EXP ^D36
5625 007377'00 000000 000044 EXP ^D36
5626 007400'00 000000 000007 EXP ^D7 ;7 for ASCII
5627 007401'00 000000 000007 EXP ^D7 ;7 for ASCII FIXED
5628 007402'00 000000 000007 EXP ^D7 ;7 for ASCII VARIABLE
5629 007403'00 000000 000007 EXP ^D7 ;7 for print format
5630 007404'00 000000 000007 EXP ^D7 ;7 for fortran format
5631
5632 ;Table of attributes bytesize for mode
5633
5634 007405'00 000000 000000 MODTB6: 0
5635 007406'00 000000 000000 EXP 0 ;Actual file bytesize for IMAGE
5636 007407'00 000000 000000 EXP 0
5637 007410'00 000000 000000 EXP 0
5638 007411'00 000000 000010 EXP ^D8 ;8 bit bytes for MACY11
5639 007412'00 000000 000010 EXP ^D8
5640 007413'00 000000 000010 EXP ^D8
5641 007414'00 000000 000010 EXP ^D8
5642 007415'00 000000 000010 EXP ^D8 ;8 bit bytes for ASCII
5643 007416'00 000000 000010 EXP ^D8
5644 007417'00 000000 000010 EXP ^D8
5645 007420'00 000000 000010 EXP ^D8 ;8 bit bytes for print format
5646 007421'00 000000 000010 EXP ^D8 ;8 bit bytes for fortran format
5647
5648 ;Table of valid modes for FAL file create
5649
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 114-3
DAPLIB MAC 14-Jan-82 09:58 File mode table definitions
5650 007422'00 000000 000000 MODTB7: 0
5651 007423'00 777777 777777 EXP -1 ;Image undefined Ok for FAL
5652 007424'00 000000 000000 0
5653 007425'00 000000 000000 0
5654 007426'00 777777 777777 EXP -1 ;Macy11 Ok for FAL
5655 007427'00 777777 777777 EXP -1
5656 007430'00 777777 777777 EXP -1
5657 007431'00 777777 777777 EXP -1
5658 007432'00 777777 777777 EXP -1 ;Ascii stream Ok for FAL
5659 007433'00 000000 000000 0
5660 007434'00 000000 000000 0 ;Can't create print files
5661 007435'00 000000 000000 0 ;Can't create print format
5662 007436'00 000000 000000 0 ;Can't create fortran format
5663
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 115
DAPLIB MAC 14-Jan-82 09:58 ATLOOK Routine to lookup attributes
5664 SUBTTL ATLOOK Routine to lookup attributes
5665
5666 ;ATLOOK is called after recieving an attributes message to return
5667 ; the data mode implied by the message and also the default
5668 ; output mode.
5669
5670 ;Returns TRUE S1/ Source mode implied by attributes
5671 ; S2/ Default output mode implied by source mode
5672
5673 ; FALSE S1/ Unsupported data type
5674
5675 007437'00 200 01 0 00 000000# ATLOOK: MOVE S1,ATTDAT ;Get data mode of attributes
5676 007440'00 137 01 0 00 013313' STORE S1,S2,DF%DAT ;Store in proper field
5677 007441'00 200 01 0 00 000000# MOVE S1,ATTRFM ;Get record format of attributes
5678 007442'00 137 01 0 00 013314' STORE S1,S2,DF%RFM ;Store in proper field
5679 007443'00 200 01 0 00 000000# MOVE S1,ATTRAT ;Get record attributes
5680 007444'00 620 01 0 00 000030 TXZ S1,FB$BLK+FB$EBF ;[125]IGNORE BLOCKING&IMBED CC
5681 007445'00 137 01 0 00 013315' STORE S1,S2,DF%RAT ;Store in proper field
5682 007446'00 620 02 0 00 377777 ANDX S2,DF%DAT+DF%RFM+DF%RAT ;Keep interesting fields
5683 007447'00 621 02 0 00 740000 TXZ S2,FLD(DT$EXE+DT$EXP+DT$SEN+100+,DF%DAT) ;ignored bits
5684 007450'00 205 01 0 00 777737 MOVSI S1,-AT$$LN ;Get count of valid entries
5685 007451'00 316 02 0 01 007460' ATLOO1: CAMN S2,ATTTBL(S1) ;Entry match?
5686 007452'00 254 00 0 00 007455' JRST ATLOO2 ;Yes..process it
5687 007453'00 253 01 0 00 007451' AOBJN S1,ATLOO1 ;No..try the next
5688 007454'00 254 00 0 00 011706' $MUERR .DMATT,21 ;Not found..return unsupported
5689
5690 007455'00 550 02 0 01 007521' ATLOO2: HRRZ S2,ATTMOD(S1) ;Get default output mode
5691 007456'00 554 01 0 01 007521' HLRZ S1,ATTMOD(S1) ;Get implied source mode
5692 007457'00 324740 007235* $RETT ;Return success
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 116
DAPLIB MAC 14-Jan-82 09:58 Attributes list
5693 SUBTTL Attributes list
5694
5695 007460'00 003000 000000 ATTTBL: XX DT$ASC,FB$STM ;Stream ascii
5696 007461'00 002000 000000 XX DT$ASC,FB$UDF ;Undefined ascii
5697 007462'00 003010 000000 XX DT$ASC,FB$STM,FB$EBF ;Stream ascii
5698 007463'00 004000 000000 XX DT$IMA,FB$UDF ;Undefined image
5699 007464'00 004100 000000 XX DT$IMA,FB$UDF,FB$MCY ;Macy image
5700 007465'00 004300 000000 XX DT$IMA,FB$FIX,FB$MCY ;Macy Fixed
5701 007466'00 004500 000000 XX DT$IMA,FB$VAR,FB$MCY ;Macy variable
5702 007467'00 005100 000000 XX DT$IMA,FB$STM,FB$MCY ;Macy stream (Assembler)
5703 007470'00 002200 000000 XX DT$ASC,FB$FIX ;Fixed ascii
5704 007471'00 002201 000000 XX DT$ASC,FB$FIX,FB$CR ;Fixed ascii
5705 007472'00 002210 000000 XX DT$ASC,FB$FIX,FB$EBF ;Fixed ascii
5706 007473'00 002400 000000 XX DT$ASC,FB$VAR ;Variable ascii
5707 007474'00 002401 000000 XX DT$ASC,FB$VAR,FB$CR ;Variable ascii
5708 007475'00 002410 000000 XX DT$ASC,FB$VAR,FB$EBF ;Variable ascii
5709 007476'00 004200 000000 XX DT$IMA,FB$FIX ;Fixed image
5710 007477'00 004400 000000 XX DT$IMA,FB$VAR ;Variable image
5711 007500'00 004201 000000 XX DT$IMA,FB$FIX,FB$CR ;Fixed image [ascii]
5712 007501'00 004401 000000 XX DT$IMA,FB$VAR,FB$CR ;Variable image [ascii]
5713 007502'00 004602 000000 XX DT$IMA,FB$VFC,FB$PRN ;Print file format
5714 007503'00 004601 000000 XX DT$IMA,FB$VFC,FB$CR ;Sos file format
5715 007504'00 002602 000000 XX DT$ASC,FB$VFC,FB$PRN ;Ascii print
5716 007505'00 002601 000000 XX DT$ASC,FB$VFC,FB$CR ;Ascii Sos
5717 007506'00 004600 400000 XX DT$IMA,FB$VFC,FB$FTN ;Fortran files
5718 007507'00 002600 400000 XX DT$ASC,FB$VFC,FB$FTN
5719 007510'00 002400 400000 XX DT$ASC,FB$VAR,FB$FTN ;[126]
5720 007511'00 004400 400000 XX DT$IMA,FB$VAR,FB$FTN ;[126]
5721 007512'00 004200 400000 XX DT$IMA,FB$FIX,FB$FTN ;[126]
5722 007513'00 002200 400000 XX DT$ASC,FB$FIX,FB$FTN ;[126]
5723 007514'00 005000 000000 XX DT$IMA,FB$STM ;Ascii stream from RSTS
5724 007515'00 005001 000000 XX DT$IMA,FB$STM,FB$CR ;[125]another RSTS oddity
5725 007516'00 003001 000000 XX DT$ASC,FB$STM,FB$CR ;[126]VMS STREAM FILES
5726 007517'00 002600 000000 XX DT$ASC,FB$VFC ;[125]
5727 007520'00 004600 000000 XX DT$IMA,FB$VFC ;[125]
5728 000041 AT$$LN==.-ATTTBL ;Number of valid attributes
5729
5730 007521'00 000010 000010 ATTMOD: XWD .MD8,.MD8 ;Stream ascii (to) Stream ascii
5731 007522'00 000010 000010 XWD .MD8,.MD8 ;Undefined ascii (to) Stream ascii
5732 007523'00 000010 000010 XWD .MD8,.MD8 ;Stream ascii (to) Stream ascii
5733 007524'00 000001 000001 XWD .MD1,.MD1 ;Undefined image (to) Undefined image
5734 007525'00 000004 000004 XWD .MD4,.MD4 ;Macy image (to) Macy image
5735 007526'00 000006 000006 XWD .MD6,.MD6 ;Macy fixed (to) Macy fixed
5736 007527'00 000007 000007 XWD .MD7,.MD7 ;Macy variable (to) Macy variable
5737 007530'00 000005 000005 XWD .MD5,.MD5 ;Macy stream (to) Macy stream
5738 007531'00 000011 000010 XWD .MD9,.MD8 ;Fixed ascii (to) Stream ascii
5739 007532'00 000011 000010 XWD .MD9,.MD8 ;Fixed ascii (to) Stream ascii
5740 007533'00 000011 000010 XWD .MD9,.MD8 ;Fixed ascii (to) Stream ascii
5741 007534'00 000012 000010 XWD .MD10,.MD8 ;Variable ascii (to) Stream ascii
5742 007535'00 000012 000010 XWD .MD10,.MD8 ;Variable ascii (to) Stream ascii
5743 007536'00 000012 000010 XWD .MD10,.MD8 ;Variable ascii (to) Stream ascii
5744 007537'00 000002 000002 XWD .MD2,.MD2 ;Fixed image (to) Fixed image
5745 007540'00 000003 000003 XWD .MD3,.MD3 ;Variable image (to) Variable image
5746 007541'00 000011 000010 XWD .MD9,.MD8 ;Fixed image [ascii] (to) stream ascii
5747 007542'00 000012 000010 XWD .MD10,.MD8 ;Variable image [ascii] (to) Strm ascii
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 116-1
DAPLIB MAC 14-Jan-82 09:58 Attributes list
5748 007543'00 000013 000010 XWD .MD11,.MD8 ;Print format to stream ascii
5749 007544'00 000012 000010 XWD .MD10,.MD8 ;Sos to stream ascii
5750 007545'00 000013 000010 XWD .MD11,.MD8 ;Print format to stream ascii
5751 007546'00 000012 000010 XWD .MD10,.MD8 ;Sos to stream ascii
5752 007547'00 000014 000010 XWD .MD12,.MD8 ;Fortran files
5753 007550'00 000014 000010 XWD .MD12,.MD8 ;Fortran files
5754 007551'00 000012 000010 XWD .MD10,.MD8 ;[126]
5755 007552'00 000012 000010 XWD .MD10,.MD8 ;[126]
5756 007553'00 000012 000010 XWD .MD10,.MD8 ;[126]
5757 007554'00 000012 000010 XWD .MD10,.MD8 ;[126]
5758 007555'00 000010 000010 XWD .MD8,.MD8
5759 007556'00 000010 000010 XWD .MD8,.MD8 ;[125]
5760 007557'00 000010 000010 XWD .MD8,.MD8 ;[126]VMS STREAM
5761 007560'00 000012 000010 XWD .MD10,.MD8 ;[125]
5762 007561'00 000012 000010 XWD .MD10,.MD8 ;[125]
5763
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 117
DAPLIB MAC 14-Jan-82 09:58 SETMOD Routine to setup processor address and bytesizes
5764 SUBTTL SETMOD Routine to setup processor address and bytesizes
5765
5766 ;SETMOD is called after SETINP or SETOUT to establish proper mode
5767
5768 ;Returns TRUE S1/ mode
5769 ; S2/ Attributes bytesize
5770
5771
5772 007562'00 200 01 0 00 000000# SETMOD: MOVE S1,OPNFLG ;Get file open flags
5773 007563'00 606 01 0 00 200000 TXNN S1,OF%RD ;Reading the file?
5774 JRST [MOVE T1,DSTMOD ;Get destination mode
5775 007564'00 254 00 0 00 013316' JRST SETMO2] ;Setup per destination
5776 007565'00 135 01 0 00 013320' LOAD S1,.FBBYV+LOCFDB,FB%BSZ ;Yes..get file BSZ
5777 007566'00 205 02 0 00 400000 MOVX S2,1B0 ;Get a bit to test
5778 007567'00 336 03 0 00 000000# SKIPN T1,SRCMOD ;Get the source mode
5779 JRST [MOVEI T1,.MD1 ;Assume image mode
5780 CAIN S1,^D7 ;Unless bytesize is 7
5781 MOVEI T1,.MD8 ;which means ascii
5782 MOVEM T1,SRCMOD ;Remember it
5783 007570'00 254 00 0 00 013321' JRST .+1] ;Continue
5784 007571'00 306 01 0 00 000044 CAIN S1,^D36 ;Bytesize = 36?
5785 007572'00 254 00 0 00 007575' JRST SETMO1 ;Yes..test with bit 0
5786 007573'00 213 00 0 00 000001 MOVNS S1 ;Get -bytesize
5787 007574'00 242 02 0 01 000000 LSH S2,0(S1) ;Shift to proper bit
5788 007575'00 616 02 0 03 007353' SETMO1: TDNN S2,MODTB4(T1) ;OK for this mode?
5789 007576'00 254 00 0 00 012571' $MIERR .DMATT,36 ;No..bad bytesize
5790 007577'00 336 01 0 03 007370' SETMO2: SKIPN S1,MODTB5(T1) ;Get open BSZ
5791 007600'00 135 01 0 00 013326' LOAD S1,.FBBYV+LOCFDB,FB%BSZ ;Use file BSZ
5792 007601'00 336 02 0 03 007405' SKIPN S2,MODTB6(T1) ;Get BSZ for attributes
5793 007602'00 200 02 0 00 000001 MOVE S2,S1 ;Use file open BSZ
5794 007603'00 137 01 0 00 013327' STORE S1,OPNFLG,OF%BSZ ;Save for open
5795 007604'00 200 04 0 03 007336' MOVE T2,MODTB3(T1) ;Get processor dispatch
5796 007605'00 202 04 0 00 000000# MOVEM T2,DATDAT
5797 007606'00 200 04 0 03 007304' MOVE T2,MODTB1(T1) ;Get DAP attributes
5798 007607'00 402 00 0 00 000000# SETZM MCYIDX ;Clear MACY flag
5799 007610'00 603 04 0 00 000100 TXNE T2,FLD(FB$MCY,DF%RAT) ;Unless wanted
5800 007611'00 476 00 0 00 000000# SETOM MCYIDX
5801 007612'00 200 01 0 00 000003 MOVE S1,T1 ;Return mode in S1
5802 007613'00 324740 007457* $RETT
5803
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 118
DAPLIB MAC 14-Jan-82 09:58 TYPSTS Routine to expand DAP status codes
5804 SUBTTL TYPSTS Routine to expand DAP status codes
5805
5806 ;Accepts S1/ Status code
5807 ; S2/ Extended status
5808 ; T1/ Output designator
5809
5810 ; T1/ Updated designator
5811
5812 007614'00 304 00 0 00 000000 TYPSTS: $SAVE <S1,S2,P1,P2,P3,P4> ;Preserve some AC's
5813 007625'00 200 07 0 00 000003 MOVE P1,T1 ;Save output designator
5814 007626'00 135 10 0 00 013342' LOAD P2,S1,ER%MAC ;Get MACODE
5815 007627'00 135 11 0 00 012673' LOAD P3,S1,ER%MIC ;Get MICODE
5816 007630'00 332 12 0 00 000002 SKIPE P4,S2 ;Save extended status
5817 JRST [CAIL P4,.ERBAS ;Check for valid error codes
5818 CAILE P4,.ERBAS+.ERMAX
5819 JRST .+1 ;Invalid code for our system
5820 MOVE S1,P1 ;Get output designator
5821 HRROI S2,[ASCIZ//] ;No text
5822 MOVEI T1,[ITEXT<^E/P4/>] ;Only our error
5823 007631'00 254 00 0 00 013346' JRST TYPST8] ;Display it
5824 007632'00 205 02 0 00 777602 MOVSI S2,-MIC$LN ;Get length of table
5825 007633'00 306 10 0 00 000002 CAIN P2,ER$USP ;Unsupported status error?
5826 007634'00 254 00 0 00 007640' JRST TYPST1 ;Yes..do actual lookup
5827 007635'00 301 10 0 00 000010 CAIL P2,ER$FMT ;Format, Invalid, or SYNC error?
5828 007636'00 303 10 0 00 000012 CAILE P2,ER$SNC ;...
5829 007637'00 405 01 0 00 007777 ANDX S1,ER%MIC ;No..do generic lookup
5830 007640'00 550 03 0 02 010661' TYPST1: HRRZ T1,MICTBL(S2) ;Get the status code
5831 007641'00 316 01 0 00 000003 CAMN S1,T1 ;Match what we have?
5832 007642'00 254 00 0 00 007653' JRST TYPST2 ;Yes..display it
5833 007643'00 253 02 0 00 007640' AOBJN S2,TYPST1 ;No..check the next
5834 007644'00 306 10 0 00 000002 CAIN P2,ER$USP ;Unsupported status error?
5835 007645'00 254 00 0 00 007657' JRST TYPST3 ;Yes..do name lookup
5836 007646'00 301 10 0 00 000010 CAIL P2,ER$FMT ;Format, Invalid, or SYNC error?
5837 007647'00 303 10 0 00 000012 CAILE P2,ER$SNC ;...
5838 007650'00 334 01 0 00 000007 SKIPA S1,P1 ;No..get output designator
5839 007651'00 254 00 0 00 007657' JRST TYPST3 ;Yes..do name lookup
5840 007652'00 254 00 0 00 007675' JRST TYPST7 ;Display per ITEXT
5841
5842 007653'00 200 01 0 00 000007 TYPST2: MOVE S1,P1 ;Get output designator
5843 007654'00 564 02 0 02 010661' HLRO S2,MICTBL(S2) ;Get pointer to string
5844 007655'00 400 03 0 00 000000 SETZ T1, ;No ITEXT
5845 007656'00 254 00 0 00 007677' JRST TYPST8 ;Store the status
5846 007657'00 205 02 0 00 777757 TYPST3: MOVSI S2,-MSG$LN ;Get number of message types
5847 007660'00 200 01 0 00 000011 MOVE S1,P3 ;Get MICODE
5848 007661'00 302 10 0 00 000012 CAIE P2,ER$SNC ;SYNC error?
5849 007662'00 242 01 0 00 777772 LSH S1,-6 ;No..get message type
5850 007663'00 554 03 0 02 003556' TYPST4: HLRZ T1,MSGTBL(S2) ;Get Message type
5851 007664'00 316 01 0 00 000003 CAMN S1,T1 ;Match what we have?
5852 007665'00 254 00 0 00 007671' JRST TYPST5 ;Yes..get the name
5853 007666'00 253 02 0 00 007663' AOBJN S2,TYPST4 ;No..try the next
5854 007667'00 561 03 0 00 013355' HRROI T1,[ASCIZ/Unknown/]
5855 007670'00 254 00 0 00 007673' JRST TYPST6
5856 007671'00 550 02 0 02 003556' TYPST5: HRRZ S2,MSGTBL(S2) ;Get Message descriptor
5857 007672'00 560 03 0 02 000000 HRRO T1,0(S2) ;Get pointer to name
5858 007673'00 250 07 0 00 000003 TYPST6: EXCH P1,T1 ;Put pointer in P1
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 118-1
DAPLIB MAC 14-Jan-82 09:58 TYPSTS Routine to expand DAP status codes
5859 007674'00 200 01 0 00 000003 MOVE S1,T1 ;Put output designator in S1
5860 007675'00 561 02 0 00 011204' TYPST7: HRROI S2,[ASCIZ//] ;Null string
5861 007676'00 200 03 0 10 010646' MOVE T1,MACTBL(P2) ;Get proper ITEXT to expand
5862 007677'00 400 04 0 00 000000 TYPST8: SETZ T2, ;Get null prefix character
5863 007700'00 260 17 0 00 000340' $CALL TYPER ;Display the string
5864 007701'00 561 02 0 00 011204' HRROI S2,[ASCIZ //] ;[113]
5865 007702'00 201 03 0 00 013365' MOVEI T1,[ITEXT < (MAC:^O/P2/ MIC:^O/P3/ STV:^O/P4/)>] ;[113]
5866 007703'00 400 04 0 00 000000 SETZ T2, ;[113]
5867 007704'00 260 17 0 00 000340' $CALL TYPER ;[113] APPEND (MAC:MIC:EXTEND)
5868 007705'00 200 03 0 00 000001 MOVE T1,S1 ;Return designator in T1
5869 007706'00 324740 007613* $RETT
5870
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 119
DAPLIB MAC 14-Jan-82 09:58 TERCVT Routine to convert TOPS20 error code to dap status
5871 SUBTTL TERCVT Routine to convert TOPS20 error code to dap status
5872
5873 ;Returns S1/ Dap status code
5874 ; S2/ Last TOPS20 error code
5875
5876 007707'00 260 17 0 00 000327' TERCVT: $CALL GETTER ;Get last JSYS error in S2
5877 007710'00 200 03 0 00 013400' TERCV0: MOVE T1,[IOWD S20DLN,S20DAP+1] ;Point to table
5878 007711'00 554 01 0 03 000000 TERCV1: HLRZ S1,(T1) ;GET TOPS-20 ERROR FROM TABLE
5879 007712'00 316 01 0 00 000002 CAMN S1,S2 ;MATCHING ENTRY?
5880 007713'00 254 00 0 00 007716' JRST TERCVF ;YES!
5881 007714'00 253 03 0 00 007711' AOBJN T1,TERCV1 ;NO MATCH - LOOP BACK FOR NEXT
5882 007715'00 634 01 0 00 000001 TDZA S1,S1 ;Return unspecified error
5883 007716'00 550 01 0 03 000000 TERCVF: HRRZ S1,(T1) ;GET CORRESPONDING DAP STATUS
5884 007717'00 201 03 0 00 000004 MOVX T1,ER$FIL ;Assume file open error
5885 007720'00 607 13 0 00 000016 TXNN S,S%GET+S%PUT+S%EOF ;Is it?
5886 007721'00 254 00 0 00 007725' JRST TERCV2 ;yes
5887 007722'00 201 03 0 00 000005 MOVX T1,ER$TRN ;No..Assume transfer error
5888 007723'00 603 13 0 00 000002 TXNE S,S%EOF ;Is it?
5889 007724'00 201 03 0 00 000007 MOVX T1,ER$TRM ;Termination error
5890 007725'00 137 03 0 00 013342' TERCV2: STORE T1,S1,ER%MAC ;STUFF MACCODE INTO DAP STATUS
5891 007726'00 661 13 0 00 000200 TXO S,S%JERR ;[127]FLAG A JSYS ERROR
5892 007727'00 324740 007231* $RETF ;Return calling failure
5893
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 120
DAPLIB MAC 14-Jan-82 09:58 LLGJFN Routine to get JFN for logical link
5894 SUBTTL LLGJFN Routine to get JFN for logical link
5895
5896 SUBTTL LLGJFN Get a JFN for logical link
5897 ;Accepts CP/ Base of per link info
5898 ; AP/ Base of calling argument block
5899
5900 ;Returns TRUE Link has a JFN
5901
5902 007730'00 200 04 0 16 000000 LLGJFN: MOVE T2,.DOFLG(AP) ;GET ARGUMENT BLOCK FLAGS
5903 007731'00 200 06 0 00 013401' MOVE T4,[-DCNSIZ,,DCNPFX+1] ;ASSUME DCN
5904 007732'00 603 04 0 00 400000 TXNE T2,DO%SRV ; UNLESS WE WANT TO BE A SERVER
5905 JRST [$CALL ENABLE ;YES..MAKE SURE WE ARE WHEEL
5906 MOVE T4,[-SRVSIZ,,SRVPFX+1] ;DEVICE IS SRV:
5907 007733'00 254 00 0 00 013403' JRST LLGJF0] ;CONTINUE ON.
5908 007734'00 402 00 0 00 000000# SETZM MESIN ;[134]
5909 007735'00 402 00 0 00 000000# SETZM MESOUT ;[134]
5910 007736'00 336 00 0 00 000001' SKIPN PMRFLG ;[121]DOING POOR MAN'S ROUTING?
5911 007737'00 254 00 0 00 010011' JRST LLGJF0 ;[121]NO.
5912 007740'00 201 01 0 00 000015 MOVEI S1,.NDVFY ;[121]
5913 007741'00 201 02 0 00 000003 MOVEI S2,T1 ;[121]
5914 007742'00 200 03 0 16 000001 MOVE T1,.DONOD(AP) ;[121]POINTER TO HOST NAME
5915 007743'00 400 04 0 00 000000 SETZ T2, ;[121]
5916 007744'00 104 00 0 00 000567 NODE ;[121]
5917 007745'00 603 04 0 00 400000 TXNE T2,ND%EXM ;[121]EXACT MATCH?
5918 JRST [MOVEI S1,1 ;[121]
5919 MOVEM S1,PMRFLG ;[121]
5920 007746'00 254 00 0 00 013406' JRST LLGJF0] ;[121]YES, DON'T DO PMR
5921 007747'00 200 01 0 16 000001 MOVE S1,.DONOD(AP) ;[121]POINTER TO HOST NAME
5922 007750'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.HST ;[121]SAVE IT
5923 007751'00 201 01 0 00 000021 MOVEI S1,^D17 ;[121]FAL OBJECT TYPE
5924 007752'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.ROB ;[121]SAVE IT
5925 007753'00 201 01 0 00 000010 MOVEI S1,^D8 ;[121]BYTE SIZE
5926 007754'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.BSZ ;[121]SAVE IT
5927 007755'00 200 01 0 00 013411' MOVE S1,[POINT 7,MSGTXT] ;[121]
5928 007756'00 200 02 0 16 000006 MOVE S2,.DOPSW(AP) ;[121]POINTER TO PASSWORD
5929 007757'00 403 03 0 00 000004 SETZB T1,T2 ;[121]
5930 007760'00 260 17 0 00 010060' $CALL QSOUT ;[121] COPY STRING AND QUOTE
5931 007761'00 561 01 0 00 000000# HRROI S1,MSGTXT ;[121] POINTER TO TEMP PASSWORD
5932 007762'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.PWD ;[121]
5933 007763'00 200 01 0 00 013412' MOVE S1,[POINT 7,MSGTXT+12] ;[121]
5934 007764'00 200 02 0 16 000007 MOVE S2,.DOACT(AP) ;[121]POINTER TO ACCOUNT NUMBER
5935 007765'00 260 17 0 00 010060' $CALL QSOUT ;[121]
5936 007766'00 561 01 0 00 000000# HRROI S1,MSGTXT+12 ;[121]
5937 007767'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.ACN ;[121]
5938 007770'00 200 01 0 00 013413' MOVE S1,[POINT 7,MSGTXT+24] ;[121]
5939 007771'00 200 02 0 16 000005 MOVE S2,.DOUSR(AP) ;[121]POINTER TO USERID
5940 007772'00 260 17 0 00 010060' $CALL QSOUT ;[121]
5941 007773'00 561 01 0 00 000000# HRROI S1,MSGTXT+24 ;[121]
5942 007774'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.USR ;[121]
5943 007775'00 201 01 0 00 000101 MOVEI S1,.PRIOU ;[121]
5944 007776'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.WRN ;[121]
5945 007777'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.INF ;[121]
5946 010000'00 202 01 0 00 000000# MOVEM S1,CONBLK+DN.ERR ;[121]
5947 010001'00 400 02 0 00 000000 SETZ S2, ;[121]
5948 010002'00 200 01 0 00 000000# MOVE S1,REMOST ;[121]
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 120-1
DAPLIB MAC 14-Jan-82 09:58 LLGJFN Get a JFN for logical link
5949 010003'00 306 01 0 00 000010 CAIN S1,.OSTP20 ;[121]
5950 010004'00 474 02 0 00 000000 SETO S2, ;[121]
5951 010005'00 201 01 0 00 000000# MOVEI S1,CONBLK ;[121]
5952 010006'00 260 17 0 00 000000* $CALL .DNCON## ;[121]
5953 010007'00 254 00 0 00 000377' JRST FATAL ;[121]
5954 010010'00 254 00 0 00 010033' JRST LLGJF3 ;[121]
5955 010011'00 550 05 0 06 777777 LLGJF0: HRRZ T3,-1(T4) ;GET OFFSET TO FIRST POINTER
5956 010012'00 271 05 0 16 000000 ADDI T3,(AP) ;GET ACTUAL ADDRESS
5957 010013'00 561 01 0 00 000000# HRROI S1,LLNAME ;POINT TO NAME AREA
5958 010014'00 205 03 0 00 774000 LLGJF1: MOVX T1,177B6 ;Get first character mask
5959 010015'00 332 04 0 05 000000 SKIPE T2,(T3) ;IS THIS field present
5960 010016'00 616 03 0 04 000000 TDNN T1,(T2) ; AND NOT NULL?
5961 010017'00 254 00 0 00 010025' JRST LLGJF2 ;NO..SKIP IT
5962 010020'00 200 02 0 06 000000 MOVE S2,(T4) ;YES..DO PREFIX
5963 010021'00 400 03 0 00 000000 SETZ T1,
5964 010022'00 104 00 0 00 000053 SOUT
5965 010023'00 200 02 0 00 000004 MOVE S2,T2 ;DO THE FIELD
5966 010024'00 260 17 0 00 010060' $CALL QSOUT ;COPY STRING
5967 010025'00 340 05 0 00 000000 LLGJF2: AOJ T3, ;NEXT FIELD
5968 010026'00 253 06 0 00 010014' AOBJN T4,LLGJF1 ;DO ALL PRESENT
5969
5970 010027'00 205 01 0 00 200001 MOVX S1,GJ%NEW+GJ%SHT ;MUST NOT EXIST
5971 010030'00 561 02 0 00 000000# HRROI S2,LLNAME ;POINT TO FILESPEC
5972 010031'00 104 00 0 00 000020 GTJFN ;GO GET THE JFN
5973 010032'00 260 17 0 00 013434' $FATAL (Can't get JFN for logical link - ,^E/[-2]/)
5974 010033'00 202 01 0 00 000000# LLGJF3: MOVEM S1,LLJFN ;SAVE THE JFN
5975 010034'00 561 01 0 00 000000# HRROI S1,LLNAME ;POINT TO NAME STRING STORAGE
5976 010035'00 550 02 0 00 000000# HRRZ S2,LLJFN ;GET LL JFN
5977 010036'00 200 03 0 00 013271' MOVX T1,FFSPEC ;Full file spec
5978 010037'00 104 00 0 00 000030 JFNS ;SAVE OFF FULL FILESPEC STRING
5979 010040'00 332 00 0 00 000000# $DEBUG <Network JFN Established, >,<^T/LLNAME/>
5980 010041'00 260 17 0 00 013460'
5981 010042'00 324740 007706* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 121
DAPLIB MAC 14-Jan-82 09:58 LLGJFN Get a JFN for logical link
5982 010043'00 000010 000001 DCNPFX: DCNSIZ,,.DONOD ;SIZE,,FIRST OFFSET
5983 010044'00 44 07 0 00 013464' TXT(DCN:) ;PREFIX FOR NODE
5984 010045'00 44 07 0 00 013465' TXT(-) ;PREFIX FOR OBJECT
5985 010046'00 44 07 0 00 013465' TXT(-) ;PREFIX FOR DISCRIPTOR
5986 010047'00 44 07 0 00 013466' TXT(.) ;PREFIX FOR TASKNAME
5987 010050'00 44 07 0 00 013467' TXT(;USERID:) ;PREFIX FOR USERID
5988 010051'00 44 07 0 00 013471' TXT(;PASSWORD:) ;PREFIX FOR PASSWORD
5989 010052'00 44 07 0 00 013474' TXT(;CHARGE:) ;PREFIX FOR ACCOUNT
5990 010053'00 44 07 0 00 013476' TXT(;DATA:) ;PREFIX FOR DATA
5991 000010 DCNSIZ==.-DCNPFX-1 ;SIZE OF TABLE
5992
5993 010054'00 000003 000002 SRVPFX: SRVSIZ,,.DOOBJ ;SIZE,,FIRST OFFSET
5994 010055'00 44 07 0 00 013500' TXT(SRV:) ;PREFIX FOR OBJECT
5995 010056'00 44 07 0 00 013465' TXT(-) ;PREFIX FOR DESCRIPTOR
5996 010057'00 44 07 0 00 013466' TXT(.) ;PREFIX FOR TASKNAME
5997 000003 SRVSIZ==.-SRVPFX-1 ;SIZE OF TABLE
5998
5999 SUBTTL QSOUT move asciz string and quote if required
6000
6001 010060'00 304 00 0 00 000000 QSOUT: $SAVE <T1,T2>
6002 010065'00 643 02 0 00 777777 TLCE S2,-1
6003 010066'00 647 02 0 00 777777 TLCN S2,-1
6004 010067'00 505 02 0 00 440700 HRLI S2,(POINT 7,0)
6005 010070'00 134 03 0 00 000002 QSOUT1: ILDB T1,S2 ;Get source byte
6006 010071'00 336 04 0 00 000003 SKIPN T2,T1 ;Put byte in T2
6007 010072'00 254 00 0 00 010110' JRST QSOUT3 ;Finished on null
6008 010073'00 301 03 0 00 000060 CAIL T1,"0" ;Check numeric
6009 010074'00 303 03 0 00 000071 CAILE T1,"9"
6010 010075'00 624 04 0 00 000040 TRZA T2,40 ;Make upper case
6011 010076'00 254 00 0 00 010106' JRST QSOUT2 ;Numeric..store it
6012 010077'00 301 04 0 00 000101 CAIL T2,"A" ;Check alpha
6013 010100'00 303 04 0 00 000132 CAILE T2,"Z"
6014 010101'00 334 04 0 00 013507' SKIPA T2,[EXP "V"-100] ;Get quote character
6015 010102'00 254 00 0 00 010106' JRST QSOUT2 ;Alpha..store it
6016 010103'00 306 03 0 00 000055 CAIN T1,"-" ;Allow hyphen
6017 010104'00 254 00 0 00 010106' JRST QSOUT2 ;Store it
6018 010105'00 136 04 0 00 000001 IDPB T2,S1
6019 010106'00 136 03 0 00 000001 QSOUT2: IDPB T1,S1 ;Store the character
6020 010107'00 254 00 0 00 010070' JRST QSOUT1 ;Back for more
6021
6022 010110'00 200 04 0 00 000001 QSOUT3: MOVE T2,S1 ;Get dest pointer
6023 010111'00 136 03 0 00 000004 IDPB T1,T2 ;Store null terminator
6024 010112'00 324740 010042* $RETT ;Return
6025
6026 010113'00 402 00 0 00 000003 CPYSTR: SETZM T1 ;Terminate on null
6027 010114'00 104 00 0 00 000053 SOUT
6028 010115'00 324740 010112* $RETT
6029
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 122
DAPLIB MAC 14-Jan-82 09:58 LLOPEN Routine to OPEN logical link
6030 SUBTTL LLOPEN Routine to OPEN logical link
6031
6032 ;LLOPEN Opens NETWORK JFN for DCN: or SRV:
6033 ;Accepts CP/ Base of per link data
6034 ; AP/ Base of D$OPEN argument block
6035
6036 ;Returns TRUE LINK is open and attatched to interrupt system
6037 ; Although not necessarily connected
6038
6039 010116'00 332 00 0 00 000000# LLOPEN: $DEBUG <Attempting to Open Logical link>
6040 010117'00 260 17 0 00 013526'
6041 010120'00 331 00 0 00 000001' SKIPL PMRFLG ;[121]
6042 010121'00 254 00 0 00 010125' JRST LLOPN0 ;[121]
6043 010122'00 200 01 0 16 000000 MOVE S1,.DOFLG(AP) ;[121]
6044 010123'00 607 01 0 00 400000 TXNN S1,DO%SRV ;[121]A SERVER?
6045 010124'00 254 00 0 00 010131' JRST LLOPN1 ;[121]NO, LINK ALREADY OPEN
6046 010125'00 200 01 0 00 000000# LLOPN0: MOVE S1,LLJFN ;GET JFN OF LL TO OPEN
6047 010126'00 200 02 0 00 013532' MOVE S2,[FLD(^D8,OF%BSZ)+OF%RD+OF%WR]
6048 010127'00 104 00 0 00 000021 OPENF ;TRY TO OPEN LINK
6049 010130'00 320 16 0 00 010157' ERJMP LLOPN5 ;RELEASE JFN AND RETURN
6050 010131'00 200 01 0 00 000000# LLOPN1: MOVE S1,LLJFN ;GET JFN AGAIN
6051 010132'00 201 02 0 00 000027 MOVEI S2,.MORTN ;GET TASK NAME FOR THIS LL
6052 010133'00 332 03 0 16 000004 SKIPE T1,.DOTSK(AP) ;POINT TO TASK NAME
6053 010134'00 104 00 0 00 000077 MTOPR ;DO MTOPR
6054 010135'00 320 16 0 00 010153' ERJMP LLOPN4
6055 010136'00 201 02 0 00 000025 MOVEI S2,.MORLS ;[140]
6056 010137'00 104 00 0 00 000077 MTOPR ;[140]
6057 010140'00 320 16 0 00 010153' ERJMP LLOPN4 ;[140]
6058 010141'00 202 03 0 00 000000# MOVEM T1,LLSTAT ;[140]SAVE CURRENT NETWORK STATUS
6059 010142'00 201 02 0 00 000024 MOVEI S2,.MOACN ;ENABLE FOR CONNECT INTERRUPTS
6060 010143'00 200 03 0 16 000012 MOVE T1,.DOPSI(AP) ;GET PSI FLAGS
6061 010144'00 205 06 0 00 200000 MOVX T4,DO%PSI ;GET PSI FLAG
6062 010145'00 612 06 0 16 000000 TDNE T4,.DOFLG(AP) ;Want to be on PSI?
6063 010146'00 104 00 0 00 000077 MTOPR ;yes..do MTOPR
6064 010147'00 320 16 0 00 010153' ERJMP LLOPN4
6065 010150'00 205 13 0 00 000040 $STATE .LLCFG ;Say link is waiting on Config
6066 010151'00 200 02 0 16 000004 MOVE S2,.DOTSK(AP) ;Get task pointer
6067 010152'00 324740 010115* $RETT ;RETURN SUCCESS
6068
6069 ;HERE WHEN LINK CAN'T BE OPENED
6070 010153'00 200 01 0 00 000000# LLOPN4: MOVE S1,LLJFN ;GET THE JFN
6071 010154'00 661 01 0 00 004000 TXO S1,CZ%ABT ;ABORT IT
6072 010155'00 104 00 0 00 000022 CLOSF
6073 010156'00 320 16 0 00 010157' ERJMP .+1
6074 010157'00 403 13 0 00 000000# LLOPN5: SETZB S,LLJFN ;MARK NOT OPENED
6075 010160'00 260 17 0 00 013551' $FATAL (Can't open logical link - ,^E/[-2]/)
6076
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 123
DAPLIB MAC 14-Jan-82 09:58 LLOPEN Routine to OPEN logical link
6077
6078 SUBTTL LLWCON ROUTINE TO WAIT FOR LINK TO BE CONNECTED
6079
6080 ;RETURN TRUE S1/ Link status from MTOPR
6081
6082 010161'00 201 06 0 00 000036 LLWCON: MOVEI T4,^D30 ;Wait for 30 CCTIME intervals
6083 010162'00 260 17 0 00 010210' LLWC1: $CALL LLCHK ;CHECK LL STATUS
6084 010163'00 322 00 0 00 010201' JUMPF LLWC3 ;Find out why we aborted
6085 010164'00 603 01 0 00 400000 TXNE S1,MO%CON ;LINK CONNECTED?
6086 010165'00 324740 010152* $RETT ;Yes..give good return
6087 010166'00 603 01 0 00 004000 TXNE S1,MO%SYN ;LINK CLOSED OUT BY OTHER END?
6088 010167'00 254 00 0 00 010201' JRST LLWC3 ;Yes..Find out why
6089 010170'00 603 01 0 00 200000 TXNE S1,MO%SRV ;IS THIS A SERVER?
6090 010171'00 254 00 0 00 010175' JRST LLWC4 ;Yes..wait for interrupt
6091 010172'00 367 06 0 00 010176' SOJG T4,LLWC2 ;Tried enough?
6092 010173'00 260 17 0 00 010542' $CALL DIABT ;Cancel the link
6093 010174'00 260 17 0 00 013571' $FATAL (Remote node is not responding)
6094
6095 010175'00 634 01 0 00 000001 LLWC4: TDZA S1,S1 ;Sleep for ever
6096 010176'00 201 01 0 00 000002 LLWC2: MOVEI S1,CCTIME ;NO..GET WAIT TIME
6097 010177'00 260 17 0 00 000000* $CALL I%SLP ;AND SNOOZE
6098 010200'00 254 00 0 00 010162' JRST LLWC1 ;TRY AGAIN
6099
6100 ;HERE WHEN LINK IS ABORTED
6101 010201'00 332 00 0 00 000000# LLWC3: SKIPE LLJFN ;Still have a JFN?
6102 010202'00 260 17 0 00 010542' $CALL DIABT ;Yes..respond to abort
6103 010203'00 550 01 0 00 000000# HRRZ S1,LLSTAT ;Get last status
6104 010204'00 302 01 0 00 000042 CAIE S1,.DCX34 ;Was it bad password?
6105 010205'00 306 01 0 00 000044 CAIN S1,.DCX36 ;Or bad account?
6106 010206'00 260 17 0 00 013614' $FATAL (Remote node refused connection - ,^T/LLDISC/)
6107 010207'00 260 17 0 00 013643' $FATAL (Logical link was aborted during initial connection - ,^T/LLDISC/)
6108
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 124
DAPLIB MAC 14-Jan-82 09:58 LLCHK Routine to check logical link status
6109 SUBTTL LLCHK Routine to check logical link status
6110
6111 ;Accepts CP/ Base of per link data
6112
6113 ;Returns TRUE S1/ Link status - link is active
6114 ; FALSE S1/ Link status - link is aborted
6115
6116 010210'00 304 00 0 00 000000 LLCHK: $SAVE <T1>
6117 010214'00 402 00 0 00 000000# SETZM INTHAP ;[154]RESET INTERRUPT HAPPENED FLAG
6118 010215'00 200 01 0 00 000000# MOVE S1,LLJFN ;Get link JFN
6119 010216'00 201 02 0 00 000025 MOVEI S2,.MORLS ;READ LINK STATUS
6120 010217'00 200 03 0 00 000000# MOVE T1,LLSTAT ;Return last status on failure
6121 010220'00 104 00 0 00 000077 MTOPR
6122 ERJMP [TXO T1,MO%ABT ;Say Abort status
6123 010221'00 320 16 0 00 013647' JRST LLCHK1] ;Back in line
6124 010222'00 202 03 0 00 000000# MOVEM T1,LLSTAT ;Save latest status
6125 010223'00 104 00 0 00 000102 SIBE ;Is there something to read?
6126 010224'00 476 00 0 00 000000# SETOM MSGFLG ;Yes..remember that
6127 010225'00 200 01 0 00 000003 LLCHK1: MOVE S1,T1 ;Put MTOPR status in S1
6128 010226'00 603 01 0 00 010000 TXNE S1,MO%ABT ;Link aborted?
6129 010227'00 324740 007727* $RETF ;Return false
6130 010230'00 324740 010165* $RETT ;No..return true
6131
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 125
DAPLIB MAC 14-Jan-82 09:58 LLCLOS Routine to close or abort a logical link
6132 SUBTTL LLCLOS Routine to close or abort a logical link
6133
6134
6135 ;Accepts S1/ NSP disconnect code
6136 ; S2/ Pointer to optional data to be sent
6137
6138 010231'00 336 00 0 00 000000# LLCLOS: SKIPN LLJFN ;Is link open?
6139 010232'00 260 17 0 00 013666' $FATAL (Logical link is not open in LLCLOS)
6140 010233'00 124 01 0 00 000000# DMOVEM S1,CLSBLK ;Save our reason
6141 010234'00 403 03 0 00 000004 SETZB T1,T2 ;Clear pointer and length
6142 010235'00 322 02 0 00 010247' JUMPE S2,LLCLS2 ;Optional data?
6143 010236'00 643 02 0 00 777777 TLCE S2,-1 ;Yes..make a real pointer
6144 010237'00 647 02 0 00 777777 TLCN S2,-1
6145 010240'00 505 02 0 00 440700 HRLI S2,(POINT 7) ;Ready to count the bytes
6146 010241'00 200 03 0 00 000002 MOVE T1,S2 ;Save pointer for MTOPR
6147 010242'00 134 01 0 00 000002 LLCLS1: ILDB S1,S2 ;Get the bytes
6148 010243'00 322 01 0 00 010247' JUMPE S1,LLCLS2 ;Do the MTOPR
6149 010244'00 344 04 0 00 010242' AOJA T2,LLCLS1 ;Count until null
6150 010245'00 303 04 0 00 000020 CAILE T2,^D16 ;Enforce max of 16
6151 010246'00 201 04 0 00 000020 MOVEI T2,^D16
6152 010247'00 514 02 0 00 000000# LLCLS2: HRLZ S2,CLSBLK ;Put abort code in place
6153 ; SKIPN S2 ;[145]
6154 ; HRLZI S2,7 ;[145]ALWAYS USE NON ZERO ABORT CODE
6155 010250'00 541 02 0 00 000040 HRRI S2,.MOCLZ ;Get the close function
6156 010251'00 200 01 0 00 000000# MOVE S1,LLJFN ;Get the JFN
6157 010252'00 104 00 0 00 000077 MTOPR
6158 010253'00 320 16 0 00 010256' ERJMP LLCLS3 ;Abort if MTOPR fails
6159 010254'00 607 02 0 00 777777 TLNN S2,-1 ;[120]Did we abort link?
6160 010255'00 254 00 0 00 010264' JRST LLCLS4 ;[120]NO
6161 010256'00 200 01 0 00 000000# LLCLS3: MOVE S1,LLJFN ;[120]GET THE JFN
6162 010257'00 661 01 0 00 004000 TXO S1,CZ%ABT ;[120]Set bit for close
6163 010260'00 104 00 0 00 000022 CLOSF ;[120]
6164 010261'00 260 17 0 00 013713' $FATAL (Can't abort close logical link in LLCLOS - ,^E/[-2]/)
6165 010262'00 403 13 0 00 000000# SETZB S,LLJFN ;[120]
6166 010263'00 324740 010230* $RETT ;[120]
6167 010264'00 200 01 0 00 000000# LLCLS4: MOVE S1,LLJFN ;Pick up JFN
6168 010265'00 104 00 0 00 000022 CLOSF
6169 010266'00 254 00 0 00 010256' JRST LLCLS3 ;[120]
6170 010267'00 403 13 0 00 000000# SETZB S,LLJFN ;Clear JFN word
6171 010270'00 324740 010263* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 126
DAPLIB MAC 14-Jan-82 09:58 LLRCD Read Connect-initiate Disconnect initiate data
6172 SUBTTL LLRCD Read Connect-initiate Disconnect initiate data
6173
6174 SUBTTL LLRCD ROUTINE TO READ INFORMATION FROM CI/DI MESSAGES
6175 ;Accepts CP/ Base of per link data
6176
6177 ;Returns TRUE Data via pointers in LLOPNB
6178
6179 010271'00 200 01 0 00 000000# LLRCD: MOVE S1,LLJFN ;GET LINK JFN
6180 010272'00 205 06 0 00 777771 MOVSI T4,-CDISIZ ;GET NUMBER OF REQUESTS
6181 010273'00 554 02 0 06 010324' LLRCD1: HLRZ S2,CDITBL(T4) ;GET FUNCTION
6182 010274'00 550 03 0 06 010324' HRRZ T1,CDITBL(T4) ;GET OFFSET TO ENTRY
6183 010275'00 271 03 0 00 000000# ADDI T1,LLOPNB ;GET ACTUAL ADDRESS OF POINTER
6184 010276'00 336 03 0 03 000000 SKIPN T1,(T1) ;NULL POINTER?
6185 010277'00 254 00 0 00 010307' JRST LLRCD2 ;YES..ON TO NEXT FUNCTION
6186 010300'00 643 03 0 00 777777 TLCE T1,-1
6187 010301'00 647 03 0 00 777777 TLCN T1,-1 ;REAL BYTE POINTER?
6188 010302'00 505 03 0 00 440700 HRLI T1,(POINT 7,0) ;NO..MAKE IT ASCII
6189 010303'00 104 00 0 00 000077 MTOPR ;NO..DO IT
6190 010304'00 320 16 0 00 010305' ERJMP .+1 ;IGNORE ERRORS
6191 010305'00 400 02 0 00 000000 SETZ S2, ;GET A NULL
6192 010306'00 136 02 0 00 000003 IDPB S2,T1 ;TERMINATE WITH NULL
6193 010307'00 253 06 0 00 010273' LLRCD2: AOBJN T4,LLRCD1 ;BACK TO READ ALL ITEMS
6194 010310'00 202 04 0 00 000000# MOVEM T2,.DOUIC+LLOPNB ;SAVE UIC IF ANY
6195
6196 010311'00 201 02 0 00 000042 MOVEI S2,.MORSS ;READ SEGMENT SIZE
6197 010312'00 402 00 0 00 000003 SETZM T1
6198 010313'00 104 00 0 00 000077 MTOPR
6199 010314'00 320 16 0 00 010315' ERJMP .+1 ;IGNORE ERRORS
6200 010315'00 202 03 0 00 000000# MOVEM T1,.DOSSZ+LLOPNB ;SAVE SEGMENT SIZE
6201
6202 010316'00 201 02 0 00 000034 MOVEI S2,.MORCN ;READ CONNECTED OBJECT
6203 010317'00 400 03 0 00 000000 SETZ T1,
6204 010320'00 104 00 0 00 000077 MTOPR
6205 010321'00 320 16 0 00 010322' ERJMP .+1 ;IGNORE ERRORS
6206 010322'00 137 03 0 00 013717' STORE T1,.DOFLG+LLOPNB,DO%OBJ ;SAVE ACCESS OBJECT TYPE
6207 010323'00 324740 010270* $RETT ;ALL DONE, RETURN
6208
6209
6210 010324'00 000026 000001 CDITBL: .MORHN,,.DONOD ;READ REMOTE HOST NAME
6211 010325'00 000027 000004 .MORTN,,.DOTSK ;READ TASK NAME
6212 010326'00 000030 000005 .MORUS,,.DOUSR ;READ USER
6213 010327'00 000031 000006 .MORPW,,.DOPSW ;READ PASSWORD
6214 010330'00 000032 000007 .MORAC,,.DOACT ;READ ACCOUNT
6215 010331'00 000033 000010 .MORDA,,.DOOPD ;READ DATA
6216 ;*** .MORDA MUST BE LAST ***
6217 010332'00 000037 000003 .MOROD,,.DODSC ;READ OBJECT-DESCRIPTOR
6218 000007 CDISIZ==.-CDITBL ;SIZE
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 127
DAPLIB MAC 14-Jan-82 09:58 STOSTS Routine to store link status
6219 SUBTTL STOSTS Routine to store link status
6220
6221 ;Accepts S1/ Output designator
6222 ; S2/ Link status code
6223
6224 ;Returns TRUE Reason code is stored
6225 ; FALSE Invalid reason code
6226
6227 010333'00 550 02 0 00 000002 STOSTS: HRRZ S2,S2 ;PUT STATUS CODE IN S2
6228 010334'00 400 03 0 00 000000 SETZ T1, ;SET FOR SOUT AGAIN
6229 010335'00 303 02 0 00 000053 CAILE S2,DSCMAX ;KNOWN REASON?
6230 010336'00 324740 010227* $RETF ;NO..JUST RETURN
6231 010337'00 560 02 0 02 010572' HRRO S2,DSCTBL(S2) ;POINT TO DISCONNECT TEXT
6232 010340'00 104 00 0 00 000053 SOUT
6233 010341'00 324740 010323* $RETT
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 128
DAPLIB MAC 14-Jan-82 09:58 LLSEND Routine to send messages across Link
6234 SUBTTL LLSEND Routine to send messages across Link
6235
6236 ;Accepts S2/ Header address of message to be sent
6237
6238 ;Returns TRUE Message has been sent
6239 ; FALSE Part of the message remains to be sent
6240
6241 010342'00 260 17 0 00 006406* LLSEND: $SAVE <P1> ;Save an AC
6242 010343'00 200 07 0 00 000002 MOVE P1,S2 ;Remember address of message
6243 010344'00 260 17 0 00 010403' $CALL LLSDSP ;Display debugging info
6244 010345'00 200 01 0 00 000000# MOVE S1,LLJFN ;Get link JFN
6245 010346'00 200 02 0 07 000006 MOVE S2,.DPBPT(P1) ;Get the byte pointer
6246 010347'00 210 03 0 07 000005 MOVN T1,.DPCNT(P1) ;Get byte count
6247 010350'00 200 04 0 00 013720' MOVE T2,[SOUTR] ;Assume end of message
6248 010351'00 333 00 0 07 000002 SKIPLE .DPLEN(P1) ;More to come?
6249 010352'00 200 04 0 00 013721' MOVE T2,[SOUT] ;Yes..send partial message
6250 010353'00 476 00 0 00 000000# SETOM SNDFLG ;Say we are about to send
6251 010354'00 352 00 0 00 000000# AOSE INTFLG ;Any interrupts?
6252 010355'00 256 00 0 00 000004 XCT T2 ;No..send the message
6253 010356'00 320 16 0 00 010373' ERJMP LLSENE ;Die on failure
6254 010357'00 312 04 0 00 013720' CAME T2,[SOUTR] ;[134]
6255 010360'00 254 00 0 00 010363' JRST LLSE25 ;[134]
6256 010361'00 332 00 0 00 000000# SKIPE INTFLG ;[134]
6257 010362'00 350 00 0 00 000000# AOS MESOUT ;[134]
6258 010363'00 402 00 0 00 000000# LLSE25: SETZM SNDFLG ;[134]Not sending any more!
6259 010364'00 326 03 0 00 010366' JUMPN T1,LLSEN3 ;Were we interrupted?
6260 010365'00 324740 010341* $RETT ;No..return normally
6261
6262 010366'00 202 02 0 07 000006 LLSEN3: MOVEM S2,.DPBPT(P1) ;Save updated pointer
6263 010367'00 212 03 0 07 000005 MOVNM T1,.DPCNT(P1) ;Zero if not interrupted
6264 010370'00 331 00 0 07 000000 SKIPL .DPTYP(P1) ;Virgin message?
6265 010371'00 213 00 0 07 000000 MOVNS .DPTYP(P1) ;No..mark as interrupted
6266 010372'00 324740 010336* $RETF ;Return to our caller
6267
6268 010373'00 200 01 0 00 000000# LLSENE: MOVE S1,LLJFN ;[0113]
6269 010374'00 201 02 0 00 000025 MOVEI S2,.MORLS ;[0113]
6270 010375'00 104 00 0 00 000077 MTOPR ;[0113]
6271 010376'00 550 02 0 00 000003 HRRZ S2,T1 ;[0113]
6272 010377'00 560 03 0 02 010572' HRRO T1,DSCTBL(S2) ;[0113]
6273 010400'00 303 02 0 00 000053 CAILE S2,DSCMAX ;[113]ABORT REASON OUT OF RANGE?
6274 010401'00 561 03 0 00 013722' HRROI T1,[ASCIZ /Abort code out of range/] ;[113]
6275 $FATAL (,<Logical link transmission error - ^E/[-2]/^M^JLogical link abort reason(^D
6276 010402'00 260 17 0 00 013764' /S2/) - ^Q/T1/>)
6277
6278 010403'00 332 00 0 00 000000# LLSDSP: SKIPE MSGDSG ;Want send data displayed?
6279 010404'00 337 01 0 02 000000 SKIPG S1,.DPTYP(S2) ;Already displayed?
6280 010405'00 324740 010365* $RETT
6281 010406'00 550 01 0 01 003555' HRRZ S1,MSGTBL-1(S1) ;Make pointer to message name
6282 010407'00 560 01 0 01 000000 HRRO S1,0(S1)
6283 $DEBUG (Sending ,<^Q/S1/ message (Flg=^O/.DPFLG(S2)/ Cnt=^O/.DPCNT(S2)/ Rem=^O/.DPL
6284 010410'00 332 00 0 00 000000# EN(S2)/)>)
6285 010411'00 260 17 0 00 014024'
6286 010412'00 324740 010405* $RETT
6287
6288
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 129
DAPLIB MAC 14-Jan-82 09:58 LLRECV Routine to receive link messages
6289 SUBTTL LLRECV Routine to receive link messages
6290
6291 ;Returns TRUE S1/ Address of message header
6292
6293 ; FALSE No message is available
6294
6295
6296 010413'00 200 01 0 00 000000# LLRECV: MOVE S1,RCVLST ;Point to recieve list
6297 010414'00 260 17 0 00 004677* $CALL L%FIRST ;Point to first entry
6298 JUMPF [SETZM MSGFLG ;Assume nothing available
6299 $CALL LLCHK ;See if we are right
6300 TXNE S1,MO%EOM ;Full message available?
6301 JRST [$CALL LLRECM ;[154]YES, GO RECEIVE IT
6302 JRST LLRECV] ;[154]
6303 010415'00 322 00 0 00 014032' $RETF] ;No..return with nothing
6304 010416'00 200 04 0 00 000002 MOVE T2,S2 ;Save message address
6305 010417'00 476 00 0 00 000000# SETOM MSGFLG ;Remember we have a message
6306 010420'00 260 17 0 00 010210' $CALL LLCHK ;See if we have a full message
6307 010421'00 603 01 0 00 020000 TXNE S1,MO%EOM
6308 JRST [$CALL LLRECM ;[154]YES, GO RECEIVE IT
6309 010422'00 254 00 0 00 014030' JRST LLRECV] ;[154]
6310 010423'00 200 01 0 00 000004 MOVE S1,T2 ;No..return first entry in list
6311 010424'00 324740 010412* $RETT
6312
6313 010425'00 200 01 0 00 000000# LLRECM: MOVE S1,RCVLST ;Get recieve list index
6314 010426'00 200 02 0 00 000000# MOVE S2,OURSIZ ;Get size of a buffer
6315 010427'00 260 17 0 00 010476' $CALL NEWBUF ;Allocate new buffer
6316 010430'00 200 04 0 00 000001 MOVE T2,S1
6317 010431'00 200 01 0 00 000000# MOVE S1,LLJFN
6318 010432'00 200 02 0 04 000006 MOVE S2,.DPBPT(T2) ;Get pointer to buffer
6319 010433'00 210 03 0 04 000005 MOVN T1,.DPCNT(T2) ;Get max count
6320 010434'00 104 00 0 00 000531 SINR ;Read a logical message
6321 010435'00 320 16 0 00 010443' ERJMP LLRECE ;Bad news
6322 010436'00 350 00 0 00 000000# AOS MESIN ;[134]
6323 010437'00 273 03 0 04 000005 ADDB T1,.DPCNT(T2) ;Save actual count
6324 010440'00 202 03 0 04 000002 MOVEM T1,.DPLEN(T2) ;Save as length
6325 010441'00 260 17 0 00 010464' $CALL LLRDSP ;Display what we have
6326 010442'00 324740 010424* $RETT ;[154]
6327
6328 010443'00 260 17 0 00 000327' LLRECE: $CALL GETTER ;Get my last error
6329 010444'00 306 02 0 00 600220 CAIN S2,IOX4 ;End of file?
6330 010445'00 260 17 0 00 014053' $FATAL (EOF detected on logical link)
6331 010446'00 200 01 0 00 000000# MOVE S1,LLJFN ;[0113]
6332 010447'00 201 02 0 00 000025 MOVEI S2,.MORLS ;[0113]
6333 010450'00 104 00 0 00 000077 MTOPR ;[0113]
6334 010451'00 550 02 0 00 000003 HRRZ S2,T1 ;[0113]
6335 010452'00 560 03 0 03 010572' HRRO T1,DSCTBL(T1) ;[0113]
6336 010453'00 303 02 0 00 000053 CAILE S2,DSCMAX ;[113]
6337 010454'00 561 03 0 00 013722' HRROI T1,[ASCIZ /Abort code out of range/] ;[113]
6338 $FATAL (,<Logical link reception error - ^E/[-2]/^M^JLogical link abort reason(^D/S2
6339 010455'00 260 17 0 00 014105' /) - ^Q/T1/>)
6340
6341 010456'00 200 01 0 00 000000# LLRECA: MOVE S1,RCVLST ;[154]
6342 010457'00 260 17 0 00 010414* $CALL L%FIRST ;[154]
6343 JUMPF [$CALL LLRECM ;[154]
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 129-1
DAPLIB MAC 14-Jan-82 09:58 LLRECV Routine to receive link messages
6344 010460'00 322 00 0 00 014111' JRST LLRECA] ;[154]
6345 010461'00 476 00 0 00 000000# SETOM MSGFLG ;[154]
6346 010462'00 200 01 0 00 000002 MOVE S1,S2 ;[154]
6347 010463'00 324740 010442* $RETT ;[154]
6348
6349 010464'00 336 00 0 00 000000# LLRDSP: SKIPN MSGDSG ;Want send data displayed?
6350 010465'00 324740 010463* $RETT
6351 010466'00 200 02 0 04 000006 MOVE S2,.DPBPT(T2) ;Get the pointer
6352 010467'00 134 01 0 00 000002 ILDB S1,S2 ;Get the type field
6353 010470'00 134 02 0 00 000002 ILDB S2,S2 ;Get the flags
6354 010471'00 550 01 0 01 003555' HRRZ S1,MSGTBL-1(S1) ;Make pointer to message name
6355 010472'00 560 01 0 01 000000 HRRO S1,0(S1)
6356 010473'00 332 00 0 00 000000# $DEBUG (Received ,<^Q/S1/ message segment (Flg=^O/S2/ Cnt=^O/T1/)>)
6357 010474'00 260 17 0 00 014141'
6358 010475'00 324740 010465* $RETT
6359
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 130
DAPLIB MAC 14-Jan-82 09:58 NEWBUF Routine to allocate a new buffer
6360 SUBTTL NEWBUF Routine to allocate a new buffer
6361
6362 ;Accepts S1/ Send or recieve list index
6363 ; S2/ Required byte count of buffer
6364
6365 ;Returns TRUE S1/ Address of new message buffer header
6366
6367 010476'00 120 03 0 00 000001 NEWBUF: DMOVE T1,S1 ;Save list index and count
6368 010477'00 260 17 0 00 004672* $CALL L%LAST ;Position to end of list
6369 010500'00 120 01 0 00 000003 DMOVE S1,T1 ;Restore list index and count
6370 010501'00 622 02 0 00 000003 TRZE S2,3 ;Spare word needed?
6371 010502'00 271 02 0 00 000004 ADDI S2,4 ;Yes..account for it
6372 010503'00 242 02 0 00 777776 LSH S2,-2 ;Compute word count
6373 010504'00 271 02 0 00 000011 ADDI S2,.DPSIZ ;Add header size
6374 010505'00 260 17 0 00 000000* $CALL L%CENT ;Create an entry
6375 010506'00 200 01 0 00 000002 MOVE S1,S2 ;Return address in S1
6376 010507'00 201 02 0 01 000011 MOVEI S2,.DPSIZ(S1) ;Point to message area
6377 010510'00 505 02 0 00 441000 HRLI S2,(POINT 8)
6378 010511'00 202 02 0 01 000006 MOVEM S2,.DPBPT(S1) ;Save in header
6379 010512'00 202 04 0 01 000005 MOVEM T2,.DPCNT(S1) ;Save counts
6380 010513'00 202 04 0 01 000002 MOVEM T2,.DPLEN(S1) ;Save length
6381 010514'00 324740 010475* $RETT
6382
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 131
DAPLIB MAC 14-Jan-82 09:58 Connect event interrupt service
6383 SUBTTL Connect event interrupt service
6384
6385
6386 ;HERE ON CI RECEIVED
6387 010515'00 332 00 0 00 000000# CICON: $DEBUG (Connect interrupt received) ;[140]
6388 010516'00 260 17 0 00 014162'
6389 010517'00 200 01 0 00 000000# MOVE S1,LLSTAT ;[140]GET LINK STATUS
6390 010520'00 607 01 0 00 200000 TXNN S1,MO%SRV ;AM I A SERVER?
6391 010521'00 324740 010514* $RETT ;NO - DONE
6392 010522'00 260 17 0 00 010210' $CALL LLCHK ;Get the link status
6393 010523'00 260 17 0 00 010271' $CALL LLRCD ;READ CONNECT DATA
6394 010524'00 201 01 0 00 000042 MOVEI S1,.DCX34 ;Assume no access
6395 010525'00 400 02 0 00 000000 SETZ S2, ;No optional text
6396 010526'00 332 03 0 00 000000# SKIPE T1,.DOCID+LLOPNB ;GET ADDRESS OF CHECK ROUTINE
6397 010527'00 260 17 0 03 000000 $CALL 0(T1) ;CALL IT
6398 010530'00 322 00 0 00 010231' JUMPF LLCLOS ;abort link on failure
6399 010531'00 202 01 0 00 000000# MOVEM S1,USRNUM ;Save user number
6400 010532'00 202 02 0 00 000000# MOVEM S2,DIRNUM ;Save directory number
6401 010533'00 200 01 0 00 000000# MOVE S1,LLJFN ;GET JFN FOR LL
6402 010534'00 201 02 0 00 000041 MOVEI S2,.MOCC ;ACCEPT THE CONNECTION
6403 010535'00 402 00 0 00 000004 SETZM T2 ;NO RETURN DATA
6404 010536'00 104 00 0 00 000077 MTOPR
6405 010537'00 320 16 0 00 010540' ERJMP .+1
6406 010540'00 260 17 0 00 010210' $CALL LLCHK ;Get new link Status
6407 010541'00 263 17 0 00 000000 $RET ;Return True/false per LLCHK
6408
6409 ;Here to respond to DI and store reason for disconnect
6410
6411 010542'00 336 01 0 00 000000# DIABT: SKIPN S1,LLJFN ;Have a JFN?
6412 010543'00 254 00 0 00 010555' JRST DIAB1 ;No..just store status
6413 010544'00 201 02 0 00 000033 MOVX S2,.MORDA ;Yes..read optional data
6414 010545'00 561 03 0 00 000000# HRROI T1,LLDISC ;Save disconnect cause
6415 010546'00 104 00 0 00 000077 MTOPR
6416 010547'00 320 16 0 00 010555' ERJMP DIAB1 ;Oops..just store staus
6417 010550'00 322 04 0 00 010555' JUMPE T2,DIAB1 ;No data..just store status
6418 010551'00 400 02 0 00 000000 SETZ S2, ;Get a null
6419 010552'00 136 02 0 00 000003 IDPB S2,T1 ;Terminate with a null
6420 010553'00 301 04 0 00 000007 CAIL T2,7 ;At least 7 characters?
6421 010554'00 254 00 0 00 010560' JRST DIAB2 ;yes..Ignore status
6422
6423 010555'00 561 01 0 00 000000# DIAB1: HRROI S1,LLDISC ;Point to disconnect cause
6424 010556'00 200 02 0 00 000000# MOVE S2,LLSTAT ;Get last known status
6425 010557'00 260 17 0 00 010333' $CALL STOSTS ;Store the status String
6426 010560'00 201 01 0 00 000052 DIAB2: MOVEI S1,.DCX42 ;Response to DI request
6427 010561'00 400 02 0 00 000000 SETZ S2, ;No optional data
6428 010562'00 324 17 0 00 010231' PJRST LLCLOS ;Close the link
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 132
DAPLIB MAC 14-Jan-82 09:58 Interrupt message processing
6429 SUBTTL Interrupt message processing
6430
6431 010563'00 260 17 0 00 014204' PSIIM: $WARN (Unexpected interrupt message received) ;[140]
6432 010564'00 200 01 0 00 000000# MOVE S1,LLJFN ;Get links jfn
6433 010565'00 201 02 0 00 000035 MOVEI S2,.MORIM ;Read the message
6434 010566'00 201 03 0 00 377777 MOVEI T1,.NULIO ;Can it for now
6435 010567'00 104 00 0 00 000077 MTOPR
6436 010570'00 320 16 0 00 010372* ERJMP .RETF
6437 010571'00 324740 010521* $RETT
6438
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 133
DAPLIB MAC 14-Jan-82 09:58 Table of NSP disconnect reasons
6439 SUBTTL Table of NSP disconnect reasons
6440
6441 DEFINE DISCR <
6442 ER (0,No error)
6443 ER (1,Resource allocation failure)
6444 ER (2,Target node does not exist)
6445 ER (3,Node shutting down)
6446 ER (4,Target task does not exist)
6447 ER (5,Invalid name field)
6448 ER (6,Target task queue overflow)
6449 ER (7,Unspecified error condition)
6450 ER (8,Third party aborted the logical link)
6451 ER (9,<User abort (asynchronous disconnect)>)
6452 ER (24,Flow control failure)
6453 ER (32,Too many connections to node)
6454 ER (33,Too many connections to target task)
6455 ER (34,Access not permitted)
6456 ER (35,Logical link Services mismatch)
6457 ER (36,Invalid account)
6458 ER (37,Segment size too small)
6459 ER (38,<User aborted, timed out, or canceled link>)
6460 ER (39,No path to target node)
6461 ER (40,Flow control violation)
6462 ER (41,No current link to target node)
6463 ER (42,Confirmation of Disconnect Initiate)
6464 ER (43,Image data field too long)
6465 > ;END DISCR DEFINITION
6466
6467 DEFINE ER (VALUE,TXT) <
6468 .DCX'VALUE==^D'VALUE
6469 IFDEF %%CUR,<%%DIF==^D'VALUE-%%CUR-1>
6470 IFNDEF %%CUR,<
6471 %%CUR==0
6472 %%DIF==^D'VALUE>
6473 IFG %%DIF,<REPEAT %%DIF,<[ASCIZ\Unknown\]>>
6474 [ASCIZ\TXT\]
6475 %%CUR==^D'VALUE
6476 > ;END OF ER DEFINITION
6477
6478 010572'00 000000 014210' DSCTBL: DISCR ;GENERATE TABLE OF REASONS
6479 010573'00 000000 014212'
6480 010574'00 000000 014220'
6481 010575'00 000000 014226'
6482 010576'00 000000 014232'
6483 010577'00 000000 014240'
6484 010600'00 000000 014244'
6485 010601'00 000000 014252'
6486 010602'00 000000 014260'
6487 010603'00 000000 014270'
6488 010604'00 000000 013355'
6489 010605'00 000000 013355'
6490 010606'00 000000 013355'
6491 010607'00 000000 013355'
6492 010610'00 000000 013355'
6493 010611'00 000000 013355'
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 133-1
DAPLIB MAC 14-Jan-82 09:58 Table of NSP disconnect reasons
6494 010612'00 000000 013355'
6495 010613'00 000000 013355'
6496 010614'00 000000 013355'
6497 010615'00 000000 013355'
6498 010616'00 000000 013355'
6499 010617'00 000000 013355'
6500 010620'00 000000 013355'
6501 010621'00 000000 013355'
6502 010622'00 000000 014300'
6503 010623'00 000000 013355'
6504 010624'00 000000 013355'
6505 010625'00 000000 013355'
6506 010626'00 000000 013355'
6507 010627'00 000000 013355'
6508 010630'00 000000 013355'
6509 010631'00 000000 013355'
6510 010632'00 000000 014305'
6511 010633'00 000000 014313'
6512 010634'00 000000 014323'
6513 010635'00 000000 014330'
6514 010636'00 000000 014337'
6515 010637'00 000000 014343'
6516 010640'00 000000 014350'
6517 010641'00 000000 014361'
6518 010642'00 000000 014366'
6519 010643'00 000000 014373'
6520 010644'00 000000 014402'
6521 010645'00 000000 014412'
6522 000053 DSCMAX==.-DSCTBL-1
6523 PURGE %%CUR,%%DIF
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 134
DAPLIB MAC 14-Jan-82 09:58 PURE TABLES
6524 SUBTTL PURE TABLES
6525
6526 DEFINE ER (NAME,VALUE,TEXT) <
6527 ER$'NAME==VALUE
6528 > ;End of ER definition
6529
6530 MACCOD ;Equate the error codes
6531
6532 010646'00 000000 014425' MACTBL: [ITEXT <Operation in progress >]
6533 010647'00 000000 014434' [ITEXT <Operation successful >]
6534 010650'00 000000 014443' [ITEXT <Unsupported ^Q/P1/ message >]
6535 010651'00 000000 014455' [ITEXT <Reserved status message ^O/P2/ >]
6536 010652'00 000000 014466' [ITEXT <File open error >]
6537 010653'00 000000 014475' [ITEXT <Data transfer error >]
6538 010654'00 000000 014504' [ITEXT <Data transfer warning >]
6539 010655'00 000000 014514' [ITEXT <Access termination error >]
6540 010656'00 000000 014523' [ITEXT <^Q/P1/ message format error >]
6541 010657'00 000000 014531' [ITEXT <Invalid ^Q/P1/ message >]
6542 010660'00 000000 014545' [ITEXT <^Q/P1/ message received out of sequence >]
6543
6544
6545 ;Define macro to generate MICCODE error table
6546
6547 DEFINE ER (NAM,VALUE,TEXT) <
6548 [ASCIZ\TEXT\],,VALUE
6549 ER$'NAM==VALUE
6550 > ;End of ER definition
6551
6552
6553 010661'00 014551' 000001 MICTBL: MICCOD ;GENERATE MICCODE ERROR TEXT TABLE
6554 010662'00 014555' 000002
6555 010663'00 014562' 000003
6556 010664'00 014572' 000004
6557 010665'00 014575' 000005
6558 010666'00 014602' 000006
6559 010667'00 014610' 000007
6560 010670'00 014614' 000010
6561 010671'00 014621' 000011
6562 010672'00 014630' 000012
6563 010673'00 014635' 000013
6564 010674'00 014642' 000014
6565 010675'00 014647' 000015
6566 010676'00 014654' 000016
6567 010677'00 014660' 000017
6568 010700'00 014666' 000020
6569 010701'00 014676' 000021
6570 010702'00 014706' 000022
6571 010703'00 014716' 000023
6572 010704'00 014722' 000024
6573 010705'00 014731' 000025
6574 010706'00 014740' 000026
6575 010707'00 014746' 000027
6576 010710'00 014755' 000030
6577 010711'00 014762' 000031
6578 010712'00 014766' 000032
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 134-1
DAPLIB MAC 14-Jan-82 09:58 PURE TABLES
6579 010713'00 014774' 000033
6580 010714'00 015001' 000034
6581 010715'00 015010' 000035
6582 010716'00 015015' 000036
6583 010717'00 015022' 000037
6584 010720'00 015027' 000040
6585 010721'00 015033' 000041
6586 010722'00 015037' 000042
6587 010723'00 015044' 000043
6588 010724'00 015050' 000044
6589 010725'00 015060' 000045
6590 010726'00 015065' 000046
6591 010727'00 015074' 000047
6592 010730'00 015101' 000050
6593 010731'00 015110' 000051
6594 010732'00 015116' 000052
6595 010733'00 015122' 000053
6596 010734'00 015126' 000054
6597 010735'00 015131' 000055
6598 010736'00 015135' 000056
6599 010737'00 015141' 000057
6600 010740'00 015147' 000060
6601 010741'00 015155' 000061
6602 010742'00 015162' 000062
6603 010743'00 015165' 000063
6604 010744'00 015171' 000064
6605 010745'00 015176' 000065
6606 010746'00 015204' 000066
6607 010747'00 015212' 000067
6608 010750'00 015221' 000070
6609 010751'00 015226' 000071
6610 010752'00 015232' 000072
6611 010753'00 015245' 000073
6612 010754'00 015253' 000074
6613 010755'00 015257' 000075
6614 010756'00 015264' 000076
6615 010757'00 015270' 000077
6616 010760'00 015275' 000100
6617 010761'00 015301' 000101
6618 010762'00 015311' 000102
6619 010763'00 015316' 000103
6620 010764'00 015323' 000104
6621 010765'00 015332' 000105
6622 010766'00 015337' 000106
6623 010767'00 015343' 000107
6624 010770'00 015350' 000110
6625 010771'00 015357' 000111
6626 010772'00 015364' 000112
6627 010773'00 015371' 000113
6628 010774'00 015377' 000114
6629 010775'00 015404' 000115
6630 010776'00 015413' 000116
6631 010777'00 015420' 000117
6632 011000'00 015426' 000120
6633 011001'00 015434' 000121
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 134-2
DAPLIB MAC 14-Jan-82 09:58 PURE TABLES
6634 011002'00 015443' 000122
6635 011003'00 015447' 000123
6636 011004'00 015453' 000124
6637 011005'00 015457' 000125
6638 011006'00 015465' 000126
6639 011007'00 015471' 000127
6640 011010'00 015475' 000130
6641 011011'00 015503' 000131
6642 011012'00 015511' 000132
6643 011013'00 015515' 000133
6644 011014'00 015522' 000134
6645 011015'00 015525' 000135
6646 011016'00 015532' 000136
6647 011017'00 015537' 000137
6648 011020'00 015546' 000140
6649 011021'00 015552' 000141
6650 011022'00 015556' 000142
6651 011023'00 015563' 000143
6652 011024'00 015570' 000144
6653 011025'00 015577' 000145
6654 011026'00 015605' 000146
6655 011027'00 015611' 000147
6656 011030'00 015620' 000150
6657 011031'00 015626' 000151
6658 011032'00 015632' 000152
6659 011033'00 015636' 000153
6660 011034'00 015644' 000154
6661 011035'00 015651' 000155
6662 011036'00 015655' 000156
6663 011037'00 015662' 000157
6664 011040'00 015670' 000160
6665 011041'00 015675' 000161
6666 011042'00 015702' 000162
6667 011043'00 015707' 000163
6668 011044'00 015713' 000164
6669 011045'00 015720' 000165
6670 011046'00 015725' 000166
6671 011047'00 015730' 000167
6672 011050'00 015736' 000232
6673 011051'00 015741' 000233
6674 011052'00 015746' 000235
6675 011053'00 015752' 000242
6676 011054'00 015756' 000305
6677 011055'00 015764' 000306
6678 011056'00 015773' 000310
6679 000176 MIC$LN==.-MICTBL ;Remember number of entries in table
6680
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 135
DAPLIB MAC 14-Jan-82 09:58 TOPS 20 TO DAP ERROR CONVERSION TABLE
6681 SUBTTL TOPS 20 TO DAP ERROR CONVERSION TABLE
6682
6683 011057'00 S20DAP: ;TABLE MUST BE SEARCHED - IN ASCENDING SEQ BY 20
6684 011057'00 600045 000125 XWD CACTX1,ER$PRV
6685 011060'00 600057 000233 XWD GJFX3,ER$CJF
6686 011061'00 600060 000063 XWD GJFX4,ER$FNM
6687 011062'00 600061 000063 XWD GJFX5,ER$FNM
6688 011063'00 600062 000035 XWD GJFX6,ER$DEV
6689 011064'00 600063 000036 XWD GJFX7,ER$DIR
6690 011065'00 600065 000063 XWD GJFX9,ER$FNM
6691 011066'00 600066 000056 XWD GJFX10,ER$FID
6692 011067'00 600067 000056 XWD GJFX11,ER$FID
6693 011070'00 600070 000056 XWD GJFX12,ER$FID
6694 011071'00 600071 000056 XWD GJFX13,ER$FID
6695 011072'00 600072 000056 XWD GJFX14,ER$FID
6696 011073'00 600074 000035 XWD GJFX16,ER$DEV
6697 011074'00 600075 000040 XWD GJFX17,ER$DNF
6698 011075'00 600076 000062 XWD GJFX18,ER$FNF
6699 011076'00 600077 000062 XWD GJFX19,ER$FNF
6700 011077'00 600100 000062 XWD GJFX20,ER$FNF
6701 011100'00 600101 000062 XWD GJFX21,ER$FNF
6702 011101'00 600102 000037 XWD GJFX22,ER$DME
6703 011102'00 600103 000065 XWD GJFX23,ER$FUL
6704 011103'00 600104 000062 XWD GJFX24,ER$FNF
6705 011104'00 600107 000055 XWD GJFX27,ER$FEX
6706 011105'00 600110 000041 XWD GJFX28,ER$DNR
6707 011106'00 600111 000041 XWD GJFX29,ER$DNR
6708 011107'00 600114 000062 XWD GJFX32,ER$FNF
6709 011110'00 600115 000063 XWD GJFX33,ER$FNM
6710 011111'00 600116 000056 XWD GJFX34,ER$FID
6711 011112'00 600117 000125 XWD GJFX35,ER$PRV
6712 011113'00 600120 000154 XWD OPNX1,ER$SYS
6713 011114'00 600121 000062 XWD OPNX2,ER$FNF
6714 011115'00 600122 000125 XWD OPNX3,ER$PRV
6715 011116'00 600123 000125 XWD OPNX4,ER$PRV
6716 011117'00 600124 000125 XWD OPNX5,ER$PRV
6717 011120'00 600125 000125 XWD OPNX6,ER$PRV
6718 011121'00 600126 000041 XWD OPNX7,ER$DNR
6719 011122'00 600127 000041 XWD OPNX8,ER$DNR
6720 011123'00 600130 000003 XWD OPNX9,ER$ACT
6721 011124'00 600131 000065 XWD OPNX10,ER$FUL
6722 011125'00 600133 000125 XWD OPNX12,ER$PRV
6723 011126'00 600134 000072 XWD OPNX13,ER$IOP
6724 011127'00 600135 000072 XWD OPNX14,ER$IOP
6725 011130'00 600136 000125 XWD OPNX15,ER$PRV
6726 011131'00 600137 000122 XWD OPNX16,ER$PLG
6727 011132'00 600140 000037 XWD OPNX17,ER$DME
6728 011133'00 600141 000035 XWD OPNX18,ER$DEV
6729 011134'00 600150 000154 XWD DESX1,ER$SYS
6730 011135'00 600151 000035 XWD DESX2,ER$DEV
6731 011136'00 600152 000233 XWD DESX3,ER$CJF
6732 011137'00 600153 000154 XWD DESX4,ER$SYS
6733 011140'00 600154 000235 XWD DESX5,ER$COF
6734 011141'00 600155 000062 XWD DESX6,ER$FNF
6735 011142'00 600160 000154 XWD CLSX1,ER$SYS
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page 135-1
DAPLIB MAC 14-Jan-82 09:58 TOPS 20 TO DAP ERROR CONVERSION TABLE
6736 011143'00 600161 000154 XWD CLSX2,ER$SYS
6737 011144'00 600170 000125 XWD DELFX1,ER$PRV
6738 011145'00 600211 000232 XWD SFBSX2,ER$BSZ
6739 011146'00 600220 000047 XWD IOX4,ER$EOF
6740 011147'00 600221 000132 XWD IOX5,ER$RER
6741 011150'00 600222 000163 XWD IOX6,ER$WER
6742 011151'00 600275 000125 XWD STADX1,ER$PRV
6743 011152'00 600276 000124 XWD STADX2,ER$PRM
6744 011153'00 600337 000041 XWD DEVX3,ER$DNR
6745 011154'00 600450 000035 XWD RNAMX1,ER$DEV
6746 011155'00 600452 000125 XWD RNAMX3,ER$PRV
6747 011156'00 600453 000037 XWD RNAMX4,ER$DME
6748 011157'00 600753 000125 XWD RNAMX8,ER$PRV
6749 011160'00 600757 000056 XWD RNMX12,ER$FID
6750 011161'00 601107 000065 XWD PMAPX6,ER$FUL
6751 011162'00 601132 000065 XWD OPNX23,ER$FUL
6752 011163'00 601164 000062 XWD GJFX38,ER$FNF
6753 011164'00 601211 000037 XWD IOX7,ER$DME
6754 011165'00 601216 000072 XWD IOX9,ER$IOP
6755 011166'00 601224 000164 XWD OPNX25,ER$WLK
6756 011167'00 601277 000063 XWD GJFX41,ER$FNM
6757 011170'00 601300 000056 XWD GJFX42,ER$FID
6758 011171'00 601303 000055 XWD DELFX2,ER$FEX ;
6759 011172'00 601304 000037 XWD DELFX3,ER$DME
6760 011173'00 601336 000041 XWD MTOX17,ER$DNR
6761 011174'00 601340 000072 XWD DESX9,ER$IOP
6762 011175'00 601440 000065 XWD IOX11,ER$FUL
6763 011176'00 602327 000062 XWD OPNX31,ER$FNF ;File is offline
6764 000120 S20DLN=.-S20DAP ;[107]
6765
6766 LSTOF. ;Do literal expansion
6767 LSTON.
6768
6769
6770 END
NO ERRORS DETECTED
PROGRAM BREAK IS 016014
PSECT 1 BREAK IS 001521 FOR DATA
CPU TIME USED 03:21.939
165P CORE USED
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-1
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
ABTFI1 006615' BCTTBL 006166' CONREM 003404' DCNMSG 002144'
ABTFIL 006606' BIN 104000 000050 int CP 000014 spd DCNNA1 002222'
AC$ACK 000002 spd BLDHD1 005052' CPYSTR 010113' DCNNAM 002220'
AC$SKP 000005 spd BLDHDR 005034' CRCTAB 005313' DCNPFX 010043'
AC$TRM 000001 spd BLDMS1 004763' CT$KEY 000002 spd DCNPR1 002645'
ACCERR 001661' BLDMS2 004775' CT$RAC 000001 spd DCNPR2 002664'
ACCMSD 000064' BLDMS3 005001' CTLACK 002231' DCNPRN 002640'
ACCTBL 001015' BLDMS4 005002' CTLCON 001424' DCNR20 002301'
ACKMSD 000121' BLDMS5 005031' CTLGET 001426' DCNR30 002347'
ACLMSD 000277' BLDMS6 005032' CTLMSD 000102' DCNREC 002257'
ACPACK 001560' BLDMS7 005033' CTLPUT 001440' DCNREN 002677'
ACPCLS 001543' BLDMSG 004740' CTLTBL 001416' DCNRTN 002254'
ACPEOS 001566' BOUT 104000 000051 int CZ%ABT 004000 000000 sin DCNS00 002101'
ACPMSD 000124' C%BRCV 002015' ext D$CLO1 000536' DCNS01 002104'
ACPNAM 002215' C%SEND 002014' ext D$CLOS 000517' int DCNS02 002111'
ACPPUR 001516' CACTX1 600045 int D$FUNC 000565' int DCNS03 002120'
ACPSKP 001546' CAP1 435617 040242 sin D$INIT 000404' int DCNS04 002123'
ACPTBL 001511' CAP2 000024 sin D$INTR 000475' int DCNS05 002126'
ACPTRM 001520' CCTIME 000002 spd D$OPEN 000422' int DCNS10 002471'
AF$CRE 000002 spd CDISIZ 000007 spd D$OPN2 000436' DCNS11 002506'
AF$DIR 000006 spd CDITBL 010324' D$STAT 000554' int DCNS20 002533'
AF$EXE 000010 spd CF$CON 000002 spd DA$CDT 000001 spd DCNSIZ 000010 spd
AF$OPN 000001 spd CF$GET 000001 spd DA$RDT 000002 spd DCNSN1 002464'
AF$PRN 000102 spd CF$PUT 000004 spd DA%DEF 200000 000000 spd DCNSND 002443'
AF$TYP 000101 spd CF$REW 000006 spd DA%NOZ 400000 000000 spd DCNSTE 002246'
ALCMSD 000204' CF%NUD 400000 000000 sin DA%SIZ 000777 000000 spd DCNSTS 002240'
ALNMCY 007066' CFGMSD 000005' DA%STG 777777 spd DCNSUB 002700'
AO$CRC 000010 spd CHFDB 104000 000064 int DA%TYP 077000 000000 spd DCNT20 002407'
AO$GO 000020 spd CHKAC 104000 000521 int DA%VER 400000 000000 spd DCNTB1 002071'
AO$RSR 000004 spd CHKMOD 007222' DAPDC1 002063' DCNTBL 002053'
AO$RSS 000002 spd CHKWL1 003150' DAPDC2 002065' DCNTYP 002370'
AP 000016 spd CHKWL2 003157' DAPDCN 002017' DEBUG 000334'
ARGTBL 000317' CHKWLD 003144' DAPEDT 000154 sin DEBUGW 000135 spd
ASCBRK 001407 616000 spd CHNGFD 006632' DAPMIN 000000 spd DELF 104000 000026 int
AT$$LN 000041 spd CICON 010515' DAPVER 012030 000040 sin DELFIL 006600'
AT$ALQ 000100 spd CK%JFN 400000 000000 sin DAPWHO 000000 spd DELFX1 600170 int
AT$BLS 000020 spd CLOSF 104000 000022 int DATA 000000 ext DELFX2 601303 int
AT$BSZ 020000 spd CLRMSG 004057' DATMSD 000137' DELFX3 601304 int
AT$DAT 000001 spd CLSFI0 006444' DCNABT 002043' DELMSG 004710'
AT$DEV 040000 spd CLSFI1 006515' DCNACP 002234' DEPBP 000362'
AT$EBK 000001 000000 spd CLSFI2 006532' DCNATR 002252' DESX1 600150 int
AT$FFB 000002 000000 spd CLSFIL 006406' DCNCFG 002203' DESX2 600151 int
AT$FOP 010000 spd CLSFIN 006436' DCND70 002562' DESX3 600152 int
AT$MRS 000040 spd CLSIN1 006563' DCNDEL 002557' DESX4 600153 int
AT$RAT 000010 spd CLSIN2 006572' DCNDI0 002627' DESX5 600154 int
AT$RFM 000004 spd CLSINP 006553' DCNDI1 002602' DESX6 600155 int
ATLOO1 007451' CLSX1 600160 int DCNDI2 002635' DESX9 601340 int
ATLOO2 007455' CLSX2 600161 int DCNDIR 002573' DEVERR 007152'
ATLOOK 007437' CO$SKP 000002 spd DCNEXE 002554' DEVTBL 007155'
ATTACK 002226' CO%NRJ 400000 000000 sin DCNI00 002133' DEVX3 600337 int
ATTACP 002233' CONMSD 000115' DCNI05 002142' DF%ACC 777000 000000 spd
ATTMOD 007521' CONR1 003411' DCNMLS 002073' DF%DAT 776000 000000 spd
ATTMSD 000021' CONR2 003421' DCNMS1 002154' DF%EXP 200000 000000 sin
ATTNAM 002210' CONR3 003437' DCNMS2 002171' DF%LNK 000077 spd
ATTTBL 007460' CONR4 003443' DCNMS3 002175' DF%MRS 177777 spd
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-2
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
DF%NRJ 400000 000000 sin EOFCHK 006636' ER$FLK 000060 spd ER$ROP 000142 spd
DF%RAT 000177 400000 spd EPCAP 104000 000151 int ER$FMT 000010 spd ER$RPL 000143 spd
DF%RFM 001600 000000 spd ER$ABO 000001 spd ER$FND 000061 spd ER$RRV 000144 spd
DI$ATT 000001 spd ER$ACC 000002 spd ER$FNF 000062 spd ER$RSA 000145 spd
DI$DTI 000020 spd ER$ACT 000003 spd ER$FNM 000063 spd ER$RSV 000003 spd
DI$NAM 000400 spd ER$AID 000004 spd ER$FOP 000064 spd ER$RSZ 000146 spd
DI$PRO 000040 spd ER$ALN 000005 spd ER$FUL 000065 spd ER$RTB 000147 spd
DI%CNT 000077 spd ER$ALQ 000006 spd ER$IAN 000066 spd ER$SEQ 000150 spd
DIAB1 010555' ER$ANI 000007 spd ER$IFI 000067 spd ER$SHR 000151 spd
DIAB2 010560' ER$AOP 000010 spd ER$IMX 000070 spd ER$SIZ 000152 spd
DIABT 010542' ER$AST 000011 spd ER$INI 000071 spd ER$SNC 000012 spd
DISABL 001602' ER$ATR 000012 spd ER$INV 000011 spd ER$SPL 000306 spd
DL 000015 spd ER$ATW 000013 spd ER$IOP 000072 spd ER$SRF 000305 spd
DN.ACN 000007 spd ER$BKS 000014 spd ER$IRC 000073 spd ER$STK 000153 spd
DN.BSZ 000004 spd ER$BKZ 000015 spd ER$ISI 000074 spd ER$SYS 000154 spd
DN.ERR 000013 spd ER$BLN 000016 spd ER$KBF 000075 spd ER$TPE 000156 spd
DN.HST 000001 spd ER$BOF 000017 spd ER$KEY 000076 spd ER$TRE 000155 spd
DN.INF 000015 spd ER$BPA 000020 spd ER$KRF 000077 spd ER$TRM 000007 spd
DN.PWD 000006 spd ER$BPS 000021 spd ER$KSZ 000100 spd ER$TRN 000005 spd
DN.ROB 000002 spd ER$BSZ 000232 spd ER$LAN 000101 spd ER$TRW 000006 spd
DN.USR 000010 spd ER$BUG 000022 spd ER$LBL 000102 spd ER$TYP 000010 spd
DN.WRN 000014 spd ER$CCR 000023 spd ER$LBY 000103 spd ER$UBF 000157 spd
DO%LNK 000077 spd ER$CHG 000024 spd ER$LCH 000104 spd ER$USP 000002 spd
DO%OBJ 000277 000000 spd ER$CHK 000025 spd ER$LEX 000105 spd ER$USZ 000160 spd
DO%PSI 200000 000000 spd ER$CJF 000233 spd ER$LOC 000106 spd ER$VER 000161 spd
DO%SRV 400000 000000 spd ER$CLS 000026 spd ER$MAP 000107 spd ER$VOL 000162 spd
DO%WCN 100000 000000 spd ER$COD 000027 spd ER$MKD 000110 spd ER$WER 000163 spd
DOCR1 005303' ER$COF 000235 spd ER$MRN 000111 spd ER$WLK 000164 spd
DOCRC 005301' ER$CRC 000310 spd ER$MRS 000112 spd ER$WPL 000165 spd
DP$EXF 000200 spd ER$CRE 000030 spd ER$NAM 000113 spd ER$XAB 000166 spd
DPMXH 000010 spd ER$CUR 000031 spd ER$NEF 000114 spd ER%FLD 000077 spd
DPMXM 004544 spd ER$DAC 000032 spd ER$NID 000115 spd ER%MAC 170000 spd
DPMXMV 003144 spd ER$DAN 000033 spd ER$NPK 000116 spd ER%MIC 007777 spd
DSCMAX 000053 spd ER$DDI 000167 spd ER$NRM 000242 spd ER%TYP 007700 spd
DSCTBL 010572' ER$DEL 000034 spd ER$OK 000001 spd ERJMP 320700 000000 int
DT$ASC 000001 spd ER$DEV 000035 spd ER$OPN 000117 spd EXFTBL 004275'
DT$CMP 000010 spd ER$DIR 000036 spd ER$ORD 000120 spd EXP2 001225'
DT$EBC 000004 spd ER$DME 000037 spd ER$ORG 000121 spd EXP3 001232'
DT$EXE 000020 spd ER$DNF 000040 spd ER$PLG 000122 spd EXP4 001254'
DT$EXP 000040 spd ER$DNR 000041 spd ER$PND 000000 spd EXPUNG 001223'
DT$IMA 000002 spd ER$DPE 000042 spd ER$POS 000123 spd FALSE 000000 spd
DT$SEN 000200 spd ER$DTP 000043 spd ER$PRM 000124 spd FATAL 000377'
DTIMSD 000235' ER$DUP 000044 spd ER$PRV 000125 spd FB$ALL 010000 spd
DV%ASN 004000 000000 sin ER$ENT 000045 spd ER$RAB 000126 spd FB$AVL 200000 spd
DV%AV 010000 000000 sin ER$ENV 000046 spd ER$RAC 000127 spd FB$BLK 000010 spd
DV%DIR 100000 000000 sin ER$EOF 000047 spd ER$RAT 000130 spd FB$CR 000002 spd
DV%IN 200000 000000 sin ER$ESS 000050 spd ER$RBF 000131 spd FB$DEL 000020 000000 spd
DV%MDD 020000 000000 sin ER$EXP 000051 spd ER$RER 000132 spd FB$EBF 000020 spd
DV%MNT 001000 000000 sin ER$EXT 000052 spd ER$REX 000133 spd FB$FIX 000001 spd
DV%OUT 400000 000000 sin ER$FAB 000053 spd ER$RFA 000134 spd FB$FOD 000200 spd
DV%TYP 000777 000000 sin ER$FAC 000054 spd ER$RFM 000135 spd FB$FTN 000001 spd
DVCHR 104000 000117 int ER$FEX 000055 spd ER$RLK 000136 spd FB$GET 000002 spd
ENABLE 001571' ER$FID 000056 spd ER$RMV 000137 spd FB$IDV 020000 spd
ENTVEC 000002' ER$FIL 000004 spd ER$RNF 000140 spd FB$MCY 000200 spd
EOFCH1 006644' ER$FLG 000057 spd ER$RNL 000141 spd FB$MDI 000010 spd
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-3
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
FB$MNT 002000 spd GETDO1 004647' GJFX10 600066 int INPMCY 006746'
FB$NUL 000100 spd GETDOS 004627' GJFX11 600067 int IOX11 601440 int
FB$ODV 040000 spd GETDT1 004326' GJFX12 600070 int IOX4 600220 int
FB$PRN 000004 spd GETDTI 004311' GJFX13 600071 int IOX5 600221 int
FB$PUT 000001 spd GETER 104000 000012 int GJFX14 600072 int IOX6 600222 int
FB$RAD 000004 000000 spd GETEX1 004247' GJFX16 600074 int IOX7 601211 int
FB$REC 000001 spd GETEX2 004261' GJFX17 600075 int IOX9 601216 int
FB$SDI 000020 spd GETEX3 004266' GJFX18 600076 int IT%AAC 000200 000000 sin
FB$SEQ 000000 spd GETEXF 004244' GJFX19 600077 int IT%AIS 001000 000000 sin
FB$SHR 000400 spd GETFD1 007104' GJFX20 600100 int IT%NNM 200000 000000 sin
FB$SPL 000004 000000 spd GETFDB 007072' GJFX21 600101 int IT%NTM 000004 000000 sin
FB$SQD 000040 spd GETFDD 007077' GJFX22 600102 int IT%NTZ 000002 000000 sin
FB$STM 000004 spd GETFI1 004113' GJFX23 600103 int JEDGA1 001640'
FB$SUB 000010 000000 spd GETFIX 004070' GJFX24 600104 int JEDGAR 001613'
FB$SUP 000400 spd GETIM1 004542' GJFX27 600107 int JFNS 104000 000030 int
FB$TRM 000004 spd GETIM2 004551' GJFX28 600110 int JS%DEV 700000 000000 sin
FB$UDF 000000 spd GETIM3 004563' GJFX29 600111 int JS%DIR 070000 000000 sin
FB$VAR 000002 spd GETIM4 004572' GJFX3 600057 int JS%GEN 000070 000000 sin
FB$VFC 000003 spd GETIMG 004515' GJFX32 600114 int JS%NAM 007000 000000 sin
FB%BSZ 007700 000000 sin GETIN1 004213' GJFX33 600115 int JS%PAF 000001 sin
FB%FCF 000017 000000 sin GETINT 004145' GJFX34 600116 int JS%TYP 000700 000000 sin
FB%MOD 000017 000000 sin GETMNU 004244' GJFX35 600117 int JUMPF 322000 000000 spd
FB%PGC 777777 sin GETMS1 003606' GJFX38 601164 int JUMPT 326000 000000 spd
FFSPEC 111110 000001 spd GETMS2 003621' GJFX4 600060 int KDFMSD 000153'
FFUFP 104000 000211 int GETMS4 003653' GJFX41 601277 int L%CBFR 003760' ext
FFUFX3 600546 int GETMSG 003577' GJFX42 601300 int L%CENT 010505' ext
FILGE1 001461' GETPA1 004456' GJFX5 600061 int L%CLST 000465' ext
FILGE2 001473' GETPA2 004463' GJFX6 600062 int L%DENT 012712' ext
FILGET 001451' GETPA3 004477' GJFX7 600063 int L%DLST 000544' ext
FILMAX 000050 spd GETPA4 004506' GJFX9 600065 int L%FIRS 010457' ext
FNCTXT 001025' GETPA5 004513' GLXVRS 000100 001124 spd L%LAST 010477' ext
FP%APP 000004 sin GETPAG 004440' GN%DIR 000010 000000 sin L%PREV 004724' ext
FP%DIR 000002 sin GETPR1 004417' GN%EXT 000002 000000 sin LEV1PC 000506' ext
FP%EX 000010 sin GETPR2 004424' GN%NAM 000004 000000 sin LLCHK 010210'
FP%GRP 007700 spd GETPR3 004425' GN%STR 000020 000000 sin LLCHK1 010225'
FP%RD 000040 sin GETPR4 004434' GNJFN 104000 000017 int LLCLOS 010231'
FP%SLF 770000 spd GETPR5 004437' GODAP 000364' LLCLS1 010242'
FP%WLD 000077 spd GETPRN 004410' GOUSR 000375' LLCLS2 010247'
FP%WR 000020 sin GETPRO 004221' GTDAL 104000 000305 int LLCLS3 010256'
FTJSYS 777777 777777 sin GETTER 000327' GTFDB 104000 000063 int LLCLS4 010264'
FTUUOS 000000 sin GETVA1 004137' GTJFN 104000 000020 int LLGJF0 010011'
FWMASK 777777 777777 spd GETVA2 004143' HD$BCT 000010 spd LLGJF1 010014'
GETAS1 004355' GETVAR 004122' HD$LEN 000002 spd LLGJF2 010025'
GETAS2 004362' GJ%DEL 001000 000000 sin HD$LN2 000004 spd LLGJF3 010033'
GETAS3 004374' GJ%DEV 400000 000000 sin HD$SEG 000020 spd LLGJFN 007730'
GETASC 004340' GJ%DIR 100000 000000 sin HD$SID 000001 spd LLMXF 000050 spd
GETBC1 004607' GJ%EXT 020000 000000 sin I%SLP 010177' ext LLOPEN 010116'
GETBC2 004611' GJ%FLG 000020 000000 sin IDTIM 104000 000221 int LLOPN0 010125'
GETBC3 004616' GJ%FOU 400000 000000 sin ILLREC 004403' LLOPN1 010131'
GETBC4 004624' GJ%IFG 000100 000000 sin INPBY1 006662' LLOPN4 010153'
GETBCT 004573' GJ%NAM 040000 000000 sin INPBY2 006667' LLOPN5 010157'
GETBYT 004116' GJ%NEW 200000 000000 sin INPBYM 006651' LLRCD 010271'
GETDAT 004331' GJ%OLD 100000 000000 sin INPBYT 006647' LLRCD1 010273'
GETDE1 007141' GJ%SHT 000001 000000 sin INPMC1 006752' LLRCD2 010307'
GETDEV 007114' GJ%VER 010000 000000 sin INPMC2 006760' LLRDSP 010464'
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-4
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
LLRECA 010456' NODATC 002765' PM%WR 040000 000000 sin PUTIM9 006124'
LLRECE 010443' NODE 104000 000567 int PMAP 104000 000056 int PUTIMG 006051'
LLRECM 010425' NXTIN1 006274' PMAPX1 600240 int PUTIN1 005165'
LLRECV 010413' NXTINP 006270' PMAPX6 601107 int PUTINT 005152'
LLSDSP 010403' ODTIM 104000 000220 int PMRFLG 000001' int PUTMNU 005214'
LLSE25 010363' OF%BSZ 770000 000000 sin PMTAB 007236' PUTMSG 004713'
LLSEN3 010366' OF%RD 200000 sin POLINI 177777 spd PUTP10 006014'
LLSEND 010342' OF%WR 100000 sin POLY 164405 spd PUTP20 006017'
LLSENE 010373' OPENF 104000 000021 int PR$DAA 000020 spd PUTP30 006024'
LLWC1 010162' OPNFI0 006361' PR$DDA 000010 spd PUTP40 006026'
LLWC2 010176' OPNFI1 006372' PR$DEA 000004 spd PUTP50 006041'
LLWC3 010201' OPNFI2 006402' PR$DLA 000040 spd PUTP60 006044'
LLWC4 010175' OPNFIL 006325' PR$DRA 000001 spd PUTPAG 005770'
LLWCON 010161' OPNX1 600120 int PR$DWA 000002 spd PUTPRO 005177'
LSTIN. 000000 spd OPNX10 600131 int PR$GRP 000010 spd PUTVA1 005141'
M%NXPG 007010' ext OPNX12 600133 int PR$SLF 000004 spd PUTVA2 005145'
M%RELP 006613' ext OPNX13 600134 int PR$WLD 000020 spd PUTVAR 005130'
MACTBL 010646' OPNX14 600135 int PRIN10 001732' QSOUT 010060'
MAXLNK 000001 spd OPNX15 600136 int PRIN20 001765' QSOUT1 010070'
MCYTBL 006762' OPNX16 600137 int PRINT 001673' QSOUT2 010106'
MF.ACK 400000 000000 spd OPNX17 600140 int PROMSD 000247' QSOUT3 010110'
MIC$LN 000176 spd OPNX18 600141 int PSIIM 010563' QUEMS1 004732'
MICTBL 010661' OPNX2 600121 int PUTAS1 005722' QUEMSG 004716'
MO%ABT 010000 000000 sin OPNX23 601132 int PUTAS2 005725' RB$BKF 000005 spd
MO%CON 400000 000000 sin OPNX25 601224 int PUTAS3 005763' RB$SQF 000003 spd
MO%EOM 020000 000000 sin OPNX3 600122 int PUTAS5 005762' RB$VBN 000004 spd
MO%SRV 200000 000000 sin OPNX31 602327 int PUTASC 005713' RCDIR 104000 000553 int
MO%SYN 004000 000000 sin OPNX4 600123 int PUTBC1 006154' RELJFN 006624'
MOD$LN 000015 spd OPNX5 600124 int PUTBC2 006156' RESREM 003452'
MODTB1 007304' OPNX6 600125 int PUTBC3 006161' RHMASK 777777 spd
MODTB2 007321' OPNX7 600126 int PUTBC4 006164' RLJFN 104000 000023 int
MODTB3 007336' OPNX8 600127 int PUTBCT 006141' RLNJFN 006621'
MODTB4 007353' OPNX9 600130 int PUTBYT 005123' RNAMX1 600450 int
MODTB5 007370' OURKON 025256 spd PUTDAT 005256' RNAMX3 600452 int
MODTB6 007405' OUTBYM 006770' PUTDO1 006177' RNAMX4 600453 int
MODTB7 007422' OUTBYT 006766' PUTDO2 006223' RNAMX8 600753 int
MODTBL 007252' OUTMC1 007064' PUTDO3 006236' RNMX12 600757 int
MODTBO 007267' OUTMCD 007054' PUTDO4 006240' RPACS 104000 000057 int
MSG$LN 000021 spd OUTMCY 007050' PUTDOS 006176' RPCAP 104000 000150 int
MSGTBL 003556' P 000017 spd PUTDT1 005252' S 000013 spd
MSHSIZ 000003 spd P1 000007 spd PUTDTI 005234' S%ACP 000001 000000 spd
MTOPR 104000 000077 int P2 000010 spd PUTERR 005127' S%EOF 000002 000000 spd
MTOX17 601336 int P3 000011 spd PUTEX1 005222' S%GET 000004 000000 spd
NA$DFS 000020 spd P4 000012 spd PUTEXF 005214' S%INIT 000040 000000 spd
NA$DIR 000004 spd PA%PEX 010000 000000 sin PUTFI1 005117' S%JERR 000200 000000 spd
NA$FNM 000002 spd PAGIN 006702' PUTFIX 005110' S%LERR 000100 000000 spd
NA$FSP 000001 spd PAGINN 006717' PUTI10 006135' S%PUT 000010 000000 spd
NA$RFS 000040 spd PAGOUT 007026' PUTIM1 006063' S%RETN 000020 000000 spd
NA$VOL 000010 spd PAGSIZ 001000 spd PUTIM2 006071' S%STAT 777777 spd
NAMMSD 000265' PC%USR 010000 000000 spd PUTIM3 006073' S1 000001 spd
ND$OST 000003 spd PICMOD 007233' PUTIM4 006106' S2 000002 spd
ND%EXM 400000 000000 sin PJRST 324740 000000 PUTIM5 006113' S20DAP 011057'
NEWBUF 010476' PM%EX 020000 000000 sin PUTIM6 006115' S20DLN 000120
NEWHDR 003757' PM%PLD 010000 000000 sin PUTIM7 006116' SAB.LN 000001 spd
NEWPAG 007004' PM%RD 100000 000000 sin PUTIM8 006123' SAB.MS 000002 spd
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-5
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
SAB.PD 000000 spd SRVCFG 000756' SY$SUB 010000 000000 spd ZZ 002000 000000 spd
SAB.SI 000003 spd SRVCFI 000752' SY$UBK 000002 000000 spd $CALL 260740 000000 spd
SAB.SZ 000005 spd SRVCRE 001133' SY$VBN 000200 spd $CHKBL 000017 777772 spd
SACTF 104000 000062 int SRVCT1 001404' SY$WLD 000004 spd $RET 263740 000000 spd
SC%OPR 200000 sin SRVCTL 001365' T%TEXT 014204' ext $RETF 324740 000000* spd
SC%WHL 400000 sin SRVDE1 001202' T1 000003 spd $RETIF 322000 000000* spd
SETATT 007166' SRVDEL 001166' T2 000004 spd $RETIF 322000 000000*
SETINP 006241' SRVDI1 001336' T3 000005 spd $RETIT 326000 000000* spd
SETMO1 007575' SRVDI2 001355' T4 000006 spd $RETIT 326000 000000*
SETMO2 007577' SRVDIR 001314' TERCV0 007710' $RETT 324740 000000* spd
SETMOD 007562' SRVEX1 001272' TERCV1 007711' $TMPTX 000016 000002 spd
SETOUT 006302' SRVEXE 001257' TERCV2 007725' $TXTBP 000016 000001 spd
SFBSX2 600211 int SRVI00 000665' TERCVF 007716' %%.GLX 000010 spd
SFUST 104000 000551 int SRVI01 000673' TERCVT 007707' %%.MOD 444160 545142 spd
SI.FLG 400000 000000 spd SRVI05 000711' TF 000000 spd %%YY 000000000000# pol
SIBE 104000 000102 int SRVMLS 000635' TSTPRN 004404' %BAPND 000001 spd
SINR 104000 000531 int SRVMS1 000725' TXT.AD 000400 000000 spd ..0001 011313' spd
SKIPF 332000 000000 spd SRVMS2 000742' TXT.FC 000377 spd ..0002 000405' spd
SKIPT 336000 000000 spd SRVMS3 000746' TXT.FN 077000 000000 spd ..0003 011343' spd
SNDACA 003307' SRVMSG 000713' TXT.JU 000140 000000 spd ..0004 011363' spd
SNDACC 003124' SRVNX3 001116' TXT.WD 000003 770000 spd ..0005 000427' spd
SNDACK 003255' SRVNXT 001054' TYPER 000340' ..0006 011414' spd
SNDACP 003274' SRVOPN 001035' TYPST1 007640' ..0007 000446' spd
SNDAT1 003501' SRVPFX 010054' TYPST2 007653' ..0010 000502' spd
SNDAT2 003520' SRVS00 000643' TYPST3 007657' ..0011 000527' spd
SNDATT 003461' SRVS01 000645' TYPST4 007663' ..0012 000562' spd
SNDCFG 003074' SRVS02 000651' TYPST5 007671' ..0013 011466' spd
SNDCON 003247' SRVS03 000655' TYPST6 007673' ..0014 000605' spd
SNDCRC 003302' SRVS04 000660' TYPST7 007675' ..0015 011522' spd
SNDCT1 003244' SRVS05 000663' TYPST8 007677' ..0016 011544' spd
SNDCTC 003160' SRVSIZ 000003 spd TYPSTS 007614' ..0017 011571' spd
SNDCTL 003215' SRVSUB 001131' UNMAP 006535' ..0020 001521' spd
SNDCTR 003172' STADX1 600275 int USRMSD 000306' ..0021 012054' spd
SNDCTS 003204' STADX2 600276 int VALAT1 003012' ..0022 012073' spd
SNDDSP 003356' STOSTS 010333' VALAT3 003022' ..0023 012122' spd
SNDDTI 003540' STRARG 001771' VALATT 002757' ..0024 012146' spd
SNDEOF 003260' STSMSD 000144' VALCFG 002701' ..0025 012172' spd
SNDNAM 003553' SUBMIT 001674' VALCRC 003065' ..0026 012217' spd
SNDPR1 003534' SUMMSD 000223' VALDTI 003026' ..0027 012244' spd
SNDPRO 003523' SWLOO1 007214' VALHD1 003706' ..0030 012262' spd
SNDQSR 002002' SWLOO3 007220' VALHD2 003721' ..0031 012301' spd
SNDQU1 004676' SWLOOK 007205' VALHD3 003733' ..0032 002444' spd
SNDQU2 004707' SY$BCT 400000 000000 spd VALHD5 003753' ..0033 012340' spd
SNDQUE 004667' SY$BLK 000001 000000 spd VALHDR 003665' ..0034 012365' spd
SNDSTS 003265' SY$CRC 000010 000000 spd VALMS1 004006' ..0035 012410' spd
SNDWL1 003330' SY$DEL 020000 000000 spd VALMS2 004013' ..0036 012434' spd
SNDWL2 003342' SY$DIR 000200 000000 spd VALMS3 004023' ..0037 012474' spd
SNDWLD 003314' SY$DTI 000400 000000 spd VALMS4 004032' ..0040 012506' spd
SOUT 104000 000053 int SY$EXE 040000 spd VALMS5 004034' ..0041 012520' spd
SOUTR 104000 000532 int SY$LN2 000004 000000 spd VALMS6 004051' ..0042 012552' spd
SP.QSR 000002 spd SY$NAM 000020 spd VALMS7 004056' ..0043 012641' spd
SRVAC1 001006' SY$PRO 001000 000000 spd VALMSG 003766' ..0044 003315' spd
SRVAC2 001013' SY$SEQ 000002 spd VALNAM 003050' ..0045 003362' spd
SRVACC 000762' SY$SPL 004000 000000 spd VALPRO 003037' ..0046 003600' spd
SRVACP 001503' SY$SQA 000040 spd VDAP20 000200 000154 spd ..0047 012667' spd
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-6
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
..0050 012711' spd ..TXEG 000000 spd .DCX6 000006 spd .DVMIN 000006 spd
..0051 003642' spd ..TXF 000000 spd .DCX7 000007 spd .DVMTA 000002 sin
..0052 003670' spd ..TXFC 000000 spd .DCX8 000010 spd .DVNUL 000015 sin
..0053 003767' spd ..TXJU 000000 spd .DCX9 000011 spd .DVPLT 000017 sin
..0054 012767' spd ..TXP 000000 spd .DFFLG 000000 spd .DVSFT 000002 spd
..0055 004064' spd ..TXPT 000001 spd .DFLFA 000002 spd .DVTTY 000012 sin
..0056 004134' spd ..TXWD 000000 spd .DFLFS 000003 spd .DVUSF 000000 spd
..0057 004441' spd .A13 000013 spd .DFRFA 000004 spd .DVUSR 000000 spd
..0060 004503' spd .A14 000014 spd .DFRFO 000005 spd .ERBAS 600000 sin
..0061 004516' spd .A15 000015 spd .DFRFS 000006 spd .ERMAX 002474 sin
..0062 004630' spd .A16 000016 spd .DFRTN 000001 spd .FBAUT 000006 sin
..0063 004670' spd .ACB 000001 spd .DFSIZ 000012 spd .FBBYV 000011 sin
..0064 013060' spd .ACM 000000 spd .DIACP 000004 spd .FBCRE 000005 sin
..0065 004741' spd .ARDAT 000007 spd .DICDN 000001 spd .FBCRV 000013 sin
..0066 013101' spd .ARDTI 000005 spd .DIFLG 000000 spd .FBCTL 000001 sin
..0067 005030' spd .AREXF 000003 spd .DIINA 000002 spd .FBLEN 000037 sin
..0070 013131' spd .ARFIX 000000 spd .DIMSG 000001 spd .FBPRT 000004 sin
..0071 005257' spd .ARINT 000002 spd .DISIZ 000002 spd .FBREF 000015 sin
..0072 005272' spd .ARMNU 000004 spd .DMACC 000003 spd .FBSIZ 000012 sin
..0073 005771' spd .ARPRO 000006 spd .DMACK 000006 spd .FBUSW 000024 sin
..0074 006052' spd .ARVAR 000001 spd .DMACL 000021 spd .FBWRT 000014 sin
..0075 006177' spd .CHCRT 000015 spd .DMACP 000007 spd .FHSLF 400000 sin
..0076 013211' spd .CHESC 000033 spd .DMALC 000013 spd .FP 000016 spd
..0077 006407' spd .CHLFD 000012 spd .DMATT 000002 spd .FPFFO 000002 spd
..0100 006542' spd .CKAAC 000000 sin .DMCFG 000001 spd .FST20 000007 spd
..0101 006723' spd .CKACD 000002 sin .DMCON 000005 spd .GJDEV 000002 sin
..0102 007010' spd .CKACF 000011 sin .DMCTL 000004 spd .GJDIR 000003 sin
..0103 007032' spd .CKACN 000010 sin .DMDAT 000010 spd .GJEXT 000005 sin
..0104 007625' spd .CKADL 000004 sin .DMDTI 000015 spd .GJGEN 000000 sin
..0105 013437' spd .CKAEC 000003 sin .DMKDF 000012 spd .GJNAM 000004 sin
..0106 013463' spd .CKALD 000001 sin .DMNAM 000017 spd .GJSRC 000001 sin
..0107 010065' spd .CKARD 000000 sin .DMPRO 000016 spd .JBVER 000000'
..0110 013531' spd .CKAUD 000004 sin .DMSTS 000011 spd .LLACC 000001 spd
..0111 013554' spd .CRC 160417 .DMSUM 000014 spd .LLACP 000005 spd
..0112 013574' spd .DCCOD 000000 spd .DMUSR 000200 spd .LLATT 000002 spd
..0113 013617' spd .DCPTR 000001 spd .DNCON 010006' ext .LLCFG 000000 spd
..0114 013646' spd .DCX0 000000 spd .DOACT 000007 spd .LLCTL 000003 spd
..0115 010214' spd .DCX1 000001 spd .DOCID 000013 spd .LLDAT 000004 spd
..0116 013671' spd .DCX2 000002 spd .DODSC 000003 spd .MD1 000001 spd
..0117 013716' spd .DCX24 000030 spd .DOFLG 000000 spd .MD10 000012 spd
..0120 010343' spd .DCX3 000003 spd .DONOD 000001 spd .MD11 000013 spd
..0121 013767' spd .DCX32 000040 spd .DOOBJ 000002 spd .MD12 000014 spd
..0122 014027' spd .DCX33 000041 spd .DOOPD 000010 spd .MD2 000002 spd
..0123 014056' spd .DCX34 000042 sin .DOPSI 000012 spd .MD3 000003 spd
..0124 014110' spd .DCX35 000043 spd .DOPSW 000006 spd .MD4 000004 spd
..0125 014144' spd .DCX36 000044 sin .DOSIZ 000015 spd .MD5 000005 spd
..0126 014165' spd .DCX37 000045 spd .DOSSZ 000014 spd .MD6 000006 spd
..0127 014207' spd .DCX38 000046 sin .DOTSK 000004 spd .MD7 000007 spd
..CSC 000004 spd .DCX39 000047 spd .DOUIC 000011 spd .MD8 000010 spd
..CSN 000003 spd .DCX4 000004 spd .DOUSR 000005 spd .MD9 000011 spd
..IFT 000000 spd .DCX40 000050 spd .DVCDP 000021 sin .MOACN 000024 sin
..PST 000000 spd .DCX41 000051 spd .DVCDR 000010 sin .MOCC 000041 sin
..TXB 000136 spd .DCX42 000052 sin .DVDSK 000000 sin .MOCLZ 000040 sin
..TXC 000040 spd .DCX43 000053 spd .DVLPT 000007 sin .MORAC 000032 sin
..TXEF 000000 spd .DCX5 000005 spd .DVMAJ 000005 spd .MORCN 000034 sin
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-7
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE
.MORDA 000033 sin
.MORHN 000026 sin
.MORIM 000035 sin
.MORLS 000025 sin
.MOROD 000037 sin
.MORPW 000031 sin
.MORSS 000042 sin
.MORTN 000027 sin
.MORUS 000030 sin
.MSCOD 000002 spd
.MSFLG 000001 spd
.NDVFY 000015 sin
.NULIO 377777 sin
.NVR 000000 spd
.OSRST 000002 spd
.OSTP1 000011 spd
.OSTP2 000010 spd
.OSVAX 000007 spd
.OTBAT 000004 spd
.OTLPT 000003 spd
.POPJ 013137' ext
.PRIOU 000101 sin
.QCACT 000023 spd
.QCBLT 000031 spd
.QCCDI 000033 spd
.QCFIL 000010 spd
.QCNAM 000026 spd
.QCOID 000027 spd
.QCPTP 000013 spd
.QCQUE 000024 spd
.QOCQE 000037 spd
.RETF 014036' ext
.RETT 013263' ext
.SAVE1 010342' ext
.SAVE2 006176' ext
.SAVE3 006051' ext
.SAVE4 003766' ext
.SFAUT 000000 sin
.SFLWR 000001 sin
.STKST 001613' ext
.SV15 004667' ext
.TQCH0 000024 spd
.TQCHD 000002 000003 spd
.TQCHE 000002 000015 spd
.TQCHI 000001 000016 spd
.TQCHJ 000020 spd
.TQCHM 000017 spd
.TQCHO 000002 000002 spd
.TQCHQ 000002 000030 spd
.TQCHT 000002 000001 spd
.TRSET 000340' ext
.X 000001
.ZCHNK 013274' ext
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-8
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE FOR PSECT DATA
ACC$FC 000007 spd ATTMNU 000202' DTI$FC 000005 spd MCYDAT 001214'
ACC$LN 000102 spd ATTMRN 000215' DTI$LN 000005 spd MCYIDX 001213'
ACC$ST 000245' spd ATTMRS 000210' DTI$ST 000460' spd MESIN 000027' int
ACCDSP 000335' ATTORG 000204' DTICDT 000461' MESOUT 000030' int
ACCFAC 000333' ATTRAT 000206' DTIEDT 000463' MSGARC 001317'
ACCFIL 000247' ATTRFM 000205' DTIMNU 000460' MSGARF 001316'
ACCFNC 000245' ATTRUN 000217' DTIRDT 000462' MSGARH 001320'
ACCOPT 000246' ATTSAV 001045' DTIRVN 000464' MSGCNT 001312'
ACCPSW 000336' ATTSBN 000243' EOFCNT 001117' MSGDSG 000002'
ACCSHR 000334' ATTSDC 000234' FILCNT 000025' MSGFLG 000055'
ACK$FC 000000 spd BUFFUL 000005' FILCRC 001152' MSGHDR 001313'
ACK$LN 000000 spd CAPIBL 000047' FILFOP 001153' MSGJNK 001274'
ACK$ST 000361' spd CFG$FC 000011 spd FNCEND 001521' MSGPTR 001311'
ACL$FC 000002 spd CFG$LN 000012 spd FNCSIZ 001317 spd MSGTXT 001321'
ACL$LN 000022 spd CFG$ST 000170' spd INTFLG 000057' NAM$FC 000007 spd
ACL$ST 000745' spd CFGCAP 000200' INTHAP 000031' NAM$LN 000236 spd
ACLACL 000746' CFGECO 000174' JFNBLK 001123' NAM$ST 000507' spd
ACLBYT 000745' CFGFST 000172' KDF$FC 000024 spd NAMDFS 000673'
ACP$FC 000003 spd CFGOST 000171' KDF$LN 000037 spd NAMDIR 000621'
ACP$LN 000003 spd CFGSFT 000176' KDF$ST 000376' spd NAMFNM 000574'
ACP$ST 000361' spd CFGSIZ 000170' KDFDAN 000420' NAMFSP 000510'
ACPCRC 000363' CFGUSR 000175' KDFDBS 000430' NAMRFS 000720'
ACPFLG 001151' CFGUSS 000177' KDFDFL 000400' NAMTYP 000507'
ACPFNC 000361' CFGVER 000173' KDFDTP 000421' NAMVOL 000646'
ACPFOP 000362' CLSBLK 000100' KDFDVB 000426' NLLPGS 000000000000# pol
ALC$FC 000012 spd CON$FC 000001 spd KDFFLG 000377' OPNFLG 001146'
ALC$LN 000016 spd CON$LN 000001 spd KDFHAL 000424' OURCAP 000163'
ALC$ST 000435' spd CON$ST 000360' spd KDFIAN 000416' OURDSP 000165'
ALCAID 000450' CONBLK 000007' KDFIBS 000431' OURMRS 000166'
ALCALN 000437' CONFNC 000360' KDFIFL 000401' OURSIZ 000167'
ALCALQ 000446' CRCFLG 001150' KDFKNM 000404' OURVER 000162'
ALCAOP 000440' CTL$FC 000010 spd KDFLAN 000417' PAG1 001122'
ALCBKZ 000451' CTL$LN 000011 spd KDFLVL 000432' PAGBP 001113'
ALCDEQ 000452' CTL$ST 000347' spd KDFMNU 000376' PAGFLG 001147' int
ALCLOC 000441' CTLDSP 000357' KDFMRL 000434' PAGMEM 001115'
ALCMNU 000435' CTLFNC 000347' KDFNSG 000402' PAGNUM 001114' int
ALCRFI 000443' CTLHSH 000355' KDFNUL 000415' PFBSIZ 001116'
ALCVOL 000436' CTLKEY 000352' KDFREF 000403' PRO$FC 000006 spd
ATT$FC 000026 spd CTLKRF 000353' KDFRVB 000422' PRO$LN 000022 spd
ATT$LN 000043 spd CTLMNU 000350' KDFTSK 000433' PRO$ST 000465' spd
ATT$ST 000202' spd CTLRAC 000351' LINFLG 001121' PROGRP 000505'
ATTALQ 000211' CTLROP 000354' LINNUM 001120' PROMNU 000465'
ATTBKS 000213' DAPBEG 000162' LLDISC 000060' PROOWN 000466'
ATTBLS 000207' DAPFLG 000001' LLJFN 000052' PROSLF 000504'
ATTBSZ 000232' DAPFRM 000000' LLNAME 000102' PROSYS 000503'
ATTDAT 000203' DAPSIZ 000020 spd LLOPNB 000032' PROWLD 000506'
ATTDEQ 000230' DAT$FC 000002 spd LLSTAT 000053' int RACSAV 001110'
ATTDEV 000233' DAT$LN 000003 spd LN 000033 spd RCVLST 000157'
ATTEBK 000240' DAT$ST 000364' spd LNKBEG 000004' REMOST 000161'
ATTFDB 001215' DATDAT 000366' LNKPGS 000003' SAVPNT 000004'
ATTFFB 000242' DATEND 001521' int LNKSIZ 000176 spd SNDFLG 000056'
ATTFOP 000231' DATRCN 000364' LNKSTS 000054' SNDLST 000160'
ATTFSZ 000214' DELFLG 000006' LOCDEV 001145' SNDSAB 001304'
ATTHBK 000236' DIRNUM 000050' LOCFDB 001154' SRCMOD 001111'
ATTLRL 000235' DSTMOD 001112' LOCJFN 001143' int STS$FC 000004 spd
DAPLIB Dap routines for TOPS20 DECNET MACRO %53B(1215) 10:26 6-May-82 Page S-9
DAPLIB MAC 14-Jan-82 09:58 SYMBOL TABLE FOR PSECT DATA
STS$LN 000007 spd
STS$ST 000367' spd
STSCOD 000367'
STSRCN 000372'
STSRFA 000370'
STSSTV 000374'
STSTXT 001254'
SUM$FC 000005 spd
SUM$LN 000005 spd
SUM$ST 000453' spd
SUMMNU 000453'
SUMNOA 000455'
SUMNOK 000454'
SUMNOR 000456'
SUMPVN 000457'
USR$FC 000004 spd
USR$LN 000056 spd
USR$ST 000767' spd
USRACC 001001'
USRIDN 000770'
USRMNU 000767'
USRNUM 000051'
USROPT 001012'
WLDJFN 001144'
WLDSAV 000026'
..LOC 001521' spd
.DPBCT 000004 spd
.DPBPT 000006 spd
.DPCNT 000005 spd
.DPFLG 000001 spd
.DPHDR 000007 spd
.DPLEN 000002 spd
.DPSID 000003 spd
.DPSIZ 000011 spd
.DPTYP 000000 spd
ABTFI1 5101 5106#
ABTFIL 1272 1392 1946 5099#
AC$ACK 3084
AC$SKP 1936
AC$TRM 1935 1938 3068
ACC$FC 732# 732 918
ACC$LN 732# 732 918
ACC$ST 732# 918
ACCDSP 732# 918 1621 1684 1710 1779 1823 2427 2512 2616 2660 2678 2731
ACCERR 2042 2063#
ACCFAC 732# 918 2425 2510 2614 2729
ACCFIL 732# 918 1482 2184 2937 2948
ACCFNC 732# 918 1468 1492 2190 2508 2727 2929 3225 4826
ACCMSD 918# 2939 3324
ACCOPT 732# 918 1476 2188 2936
ACCPSW 732# 918
ACCSHR 732# 918
ACCTBL 1493 1495#
ACK$FC 732# 918
ACK$LN 732# 918
ACK$ST 732# 918
ACKMSD 918# 3037 3327
ACL$FC 732# 732 918
ACL$LN 732# 732 918
ACL$ST 732# 918
ACLACL 732# 918
ACLBYT 732# 918
ACLMSD 918# 3337
ACP$FC 732# 732 918
ACP$LN 732# 732 918
ACP$ST 732# 918
ACPACK 1971 1973 1981#
ACPCLS 1958 1960 1967#
ACPCRC 732# 918 2887 2891 3078
ACPEOS 1943 1988#
ACPFLG 781# 1242 2330
ACPFNC 732# 918 1934 3069 3085
ACPFOP 732# 918 1951 2716
ACPMSD 918# 3071 3083 3328
ACPNAM 2276 2355#
ACPPUR 1942 1946#
ACPSKP 1944 1947 1970#
ACPTBL 1938 1940#
ACPTRM 1940 1948#
AF$CRE 1321 3226
AF$DIR 2804 2928 4827
AF$EXE 1470 2192
AF$OPN 1469 1472 1493 2191 2194 2507 2726
AF$PRN 2218
AF$TYP 2217 2220
ALC$FC 732# 732 918
ALC$LN 732# 732 918
ALC$ST 732# 918
ALCAID 732# 918
ALCALN 732# 918
ALCALQ 732# 918
ALCAOP 732# 918
ALCBKZ 732# 918
ALCDEQ 732# 918
ALCLOC 732# 918
ALCMNU 732# 918
ALCMSD 918# 3332
ALCRFI 732# 918
ALCVOL 732# 918
ALNMCY 4010 4676 5319#
AO$CRC 1477 2934
AO$GO 1479
AO$RSR 1479
AO$RSS 1479
AP 564# 1189 1191 1203 1205 1206 1218 1304 1305 1312 1316 1320 1481 1484
1731 2185 2187 2189 2404 2405 2419 2441 2492 2494 2569 2599 2629 2803
3000 3001 4831 4873 5902 5914 5921 5928 5934 5939 5956 6043 6052 6060
6062 6066
ARGTBL 970# 3557 4254
ASCBRK 3878 4546# 4572
AT$$LN 5684 5728#
AT$ALQ 2818 3232 3249
AT$BLS 2829 2830 3232 3249
AT$BSZ 1557 1606 1682 1701 1804 2585 3219
AT$DAT 1553 1606 1682 1701 1804 5416
AT$DEV 1682 1701
AT$EBK 2829 2830 3232 3249
AT$FFB 2829 2830 3232 3249
AT$FOP 2608 2722
AT$MRS 5416 5426
AT$RAT 1606 1682 5416
AT$RFM 1555 1606 1682 1701 1804 5416
ATLOO1 5685# 5687
ATLOO2 5686 5690#
ATLOOK 1576 1663 2436 2519 5675#
ATT$FC 732# 732 918
ATT$LN 732# 732 750 918 1563 1976
ATT$ST 732# 918
ATTACK 2256 2369#
ATTACP 2257 2379#
ATTALQ 732# 918 2820 2827 3238
ATTBKS 732# 918
ATTBLS 732# 918 2825 2834 3244
ATTBSZ 732# 918 1558 1589 1605 1674 1679 1706 1813 2460 2584 2813 3222 3995
4661
ATTDAT 732# 918 1554 1698 1801 2802 5422 5675
ATTDEQ 732# 918
ATTDEV 732# 918 3009 5382
ATTEBK 732# 918 2832 3247
ATTFDB 793# 2056 2370 2403 2811 2816 2824 2828 2836 2848 2851 2859 2861 2863
3963 3964 3966 4983 4987 4994 4997 5005 5009 5015 5019 5023 5027 5035
5042
ATTFFB 732# 918 2835 3248
ATTFOP 732# 918 1660 2607 2721 2837
ATTFSZ 732# 918 3859 4012 4667
ATTHBK 732# 918
ATTLRL 732# 918
ATTMNU 732# 734 737 814 918 1310 1396 1552 1561 1607 1683 1702 1805 1975
1976 2586 2609 2683 2723 2817 3220 3224 3233 3250 5417 5429
ATTMOD 2440 5690 5691 5730#
ATTMRN 732# 918
ATTMRS 732# 918 1591 1594 1619 4552 4693 5419
ATTMSD 918# 1592 1695 1763 1798 2410 2499 2718 3251 3323
ATTNAM 2255 2350#
ATTORG 732# 918
ATTRAT 732# 918 3870 3891 4549 5428 5679
ATTRFM 732# 918 1556 1700 1803 3856 4004 4660 4708 5424 5677
ATTRUN 732# 918
ATTSAV 750# 1562 1563 1974
ATTSBN 732# 918
ATTSDC 732# 918
ATTTBL 5685 5695# 5728
BCTTBL 4058 4076 4729 4743 4747#
BLDHD1 4279 4282#
BLDHDR 4175 4267#
BLDMS1 4221# 4229 4232 4237
BLDMS2 4223 4234#
BLDMS3 4233 4238#
BLDMS4 4239# 4242 4260
BLDMS5 4246 4259#
BLDMS6 4256 4258 4260#
BLDMS7 4214 4261#
BLDMSG 4170 4202#
BUFFUL 633# 4556 4584 4586 4901
C%BRCV 2172
C%SEND 2171
CACTX1 6684
CAP1 593# 2787 2917
CAP2 594# 2788 2917
CAPIBL 642# 1996 2002 2006 2012
CCTIME 577 577# 6096
CDISIZ 6180 6218#
CDITBL 6181 6182 6210# 6218
CF$CON 2963
CF$GET 1842 1865 2978
CF$PUT 2992
CF$REW 1843
CF%NUD 4992 4996 5003 5007 5013 5017 5021 5025 5033
CFG$FC 732# 732 918
CFG$LN 732# 732 918
CFG$ST 732# 918
CFGCAP 732# 918 2786 2918
CFGECO 732# 918 2775 2910
CFGFST 732# 918 2771 2906
CFGMSD 918# 2919 3322
CFGOST 732# 918 2763 2904
CFGSFT 732# 918 2779 2914
CFGSIZ 732# 918 2756 2757 2758 2759 2902
CFGUSR 732# 918 2777 2912
CFGUSS 732# 918 2781 2916
CFGVER 732# 918 2177 2773 2908 3132
CHKBLK 2023
CHKMOD 1325 2454 5456#
CHKWL1 2949# 2955
CHKWL2 2953 2956#
CHKWLD 2930 2945#
CHNGFD 4995 4998 5006 5010 5016 5020 5024 5028 5036 5128#
CICON 1236 6387#
CK%JFN 2033
CLRMSG 1593 1696 1764 1799 2411 2500 2719 2962 2977 2991 3029 3058 3527 3590#
CLSBLK 652# 6140 6152
CLSFI0 4973 4988#
CLSFI1 5012 5037#
CLSFI2 5040 5045 5049 5050#
CLSFIL 1968 2488 2649 4958#
CLSFIN 4977 4979 4982#
CLSIN1 5067 5069 5074#
CLSIN2 5075 5081#
CLSINP 4969 5066#
CLSX1 6735
CLSX2 6736
CO$SKP 3030
CO%NRJ 4988 5083 5107
CON$FC 732# 732 918
CON$LN 732# 732 918
CON$ST 732# 918
CONBLK 635# 5922 5924 5926 5932 5937 5942 5944 5945 5946 5951
CONFNC 732# 918 3031
CONMSD 918# 3028 3326
CONR1 3170# 3177 3201
CONR2 3178# 3182
CONR3 3187 3192#
CONR4 3175 3196# 3202
CONREM 2938 3123 3150 3165#
CP 562# 1189
CPYSTR 1483 2186 6026#
CRCFLG 780# 1478 2428 2617 2888 2933 2935 3075 3843 4484
CRCTAB 4506 4539#
CT$KEY 3017
CT$RAC 1847 2965 2980 2994
CTL$FC 732# 732 918
CTL$LN 732# 732 918
CTL$ST 732# 918
CTLACK 2263 2372#
CTLCON 1869 1875#
CTLDSP 732# 918 1863
CTLFNC 732# 918 1841 2964 2979 2993
CTLGET 1868 1878#
CTLHSH 732# 918 1861
CTLKEY 732# 918 1885 3016
CTLKRF 732# 918 1857
CTLMNU 732# 918 1845 2966 2981 2995 3018
CTLMSD 918# 2961 2976 2990 3023 3325
CTLPUT 1871 1889#
CTLRAC 732# 918 1849 1856 1879 1891 2968 2983 2997 3020
CTLROP 732# 918 1859
CTLTBL 1865 1868#
CZ%ABT 5107 6071 6162
D$CLO1 1150 1263#
D$CLOS 1255#
D$FUNC 1297#
D$INIT 1159#
D$INTR 1228#
D$OPEN 1189#
D$OPN2 1197#
D$STAT 1288#
DA$CDT 2847 3279 3281
DA$RDT 2850 3279 3284
DA%DEF 874# 918 3546 4234 4243
DA%NOZ 869# 918 3526
DA%SIZ 876# 918 3542 4248
DA%STG 877# 918 3543 4249
DA%TYP 875# 918 3545 4251
DA%VER 873# 918 3538 4222 4240
DAPBEG 673# 734 1383 2285
DAPDC1 2193 2217#
DAPDC2 2212 2219#
DAPDCN 1327 2176#
DAPEDT 40# 43 46
DAPFLG 608# 1164 1167
DAPFRM 607# 1132 1143 1151 1160 1190 1229 1297
DAPMIN 39# 46
DAPSIZ 734# 1382 2284
DAPVER 38# 46 596# 2783 2784
DAPWHO 41# 46
DAT$FC 732# 732 918
DAT$LN 732# 732 918
DAT$ST 732# 918
DATDAT 732# 918 1884 1896 2526 3022 3845 4476 5796
DATEND 822#
DATMSD 918# 1909 3329
DATRCN 732# 918 1886 1902 1914 1928 3933 4604
DCNABT 2195 2198# 2221
DCNACP 2245 2275 2380#
DCNATR 2354 2379 2402#
DCNCFG 2239 2341#
DCND70 2662# 2669
DCNDEL 2211 2659#
DCNDI0 2693 2695 2697 2699 2701#
DCNDI1 2680# 2705 2708
DCNDI2 2687 2707#
DCNDIR 2213 2673#
DCNEXE 2215 2656#
DCNI00 2229 2284#
DCNI05 2234 2296#
DCNMLS 2229# 2309 2332
DCNMS1 2308 2310 2314#
DCNMS2 2315 2317 2321 2328#
DCNMS3 2329 2332#
DCNMSG 2178 2304# 2306 2312 2325 2336 2433 2468 2481 2485 2517 2529 2533 2537
2620 2639 2643 2646 2665 2686 2736 2739
DCNNA1 2353 2361#
DCNNAM 2246 2359#
DCNPFX 5903 5982# 5991
DCNPR1 2675 2718#
DCNPR2 2733# 2742
DCNPRN 2225 2712#
DCNR20 2430# 2496
DCNR30 2473 2480#
DCNREC 2208 2410#
DCNREN 2210 2746#
DCNRTN 2363 2371 2382 2404# 2459 2568
DCNS00 2229 2239#
DCNS01 2230 2245#
DCNS02 2231 2253#
DCNS03 2232 2263#
DCNS04 2233 2269#
DCNS05 2234 2275#
DCNS10 2597# 2632
DCNS11 2605 2610#
DCNS20 2621 2635#
DCNSIZ 5903 5982 5991#
DCNSN1 2588 2592#
DCNSND 2209 2564#
DCNSTE 2391 2395#
DCNSTS 2240 2248 2258 2264 2270 2277 2388#
DCNSUB 2214 2747#
DCNT20 2514# 2540
DCNTB1 2220 2224#
DCNTBL 2194 2208#
DCNTYP 2224 2499#
DEBUG 1068#
DEBUGW 1995 2005
DELFIL 1712 5052 5090#
DELFLG 634# 1965 1981 1983
DELFX1 2071 6737
DELFX2 6758
DELFX3 6759
DELMSG 4136 4143# 4174
DEPBP 1097#
DESX1 6729
DESX2 6730
DESX3 5115 6731
DESX4 6732
DESX5 6733
DESX6 6734
DESX9 6761
DEVERR 4848 4886 5357 5360 5377 5386#
DEVTBL 5375 5391#
DEVX3 6744
DF%ACC 1320 2189 2803
DF%DAT 5421 5438 5441 5444 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529
5530 5531 5532 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564
5565 5566 5676 5682 5683 5695 5696 5697 5698 5699 5700 5701 5702 5703
5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717
5718 5719 5720 5721 5722 5723 5724 5725 5726 5727
DF%EXP 1748
DF%LNK 1300
DF%MRS 2420 2421 2442 2443 2502 2600 2601 5418
DF%NRJ 5077 5091
DF%RAT 5427 5438 5443 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530
5531 5532 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565
5566 5681 5682 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705
5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719
5720 5721 5722 5723 5724 5725 5726 5727 5799
DF%RFM 5423 5438 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531
5532 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566
5678 5682 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706
5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720
5721 5722 5723 5724 5725 5726 5727
DI$ATT 1622 1685 2511 2615 2790 3137 3139
DI$DTI 2794 3141
DI$NAM 2511 2611 2615 2659 2677 2796 3145
DI$PRO 2792 3143
DI%CNT 1167
DIAB1 6412 6416 6417 6423#
DIAB2 6421 6426#
DIABT 6092 6102 6411#
DIRNUM 643# 2028 2097 6400
DISABL 1890 2005#
DL 563# 1304 2355 3358 3370 3378 3396 3406 3407 3408 3409 3410 3411 3412
3428 3434 3436 3439 3444 3460 3463 3469 3473 3482 3483 3484 3497 3500
3560 3569 3573 3638 3641 3686 3821 3841 3842 3875 3944 3950 3967 3973
3996 3998 4003 4056 4059 4077 4089 4121 4122 4127 4132 4156 4173 4180
4183 4184 4185 4188 4210 4212 4267 4268 4269 4270 4273 4275 4284 4294
4295 4296 4297 4300 4308 4321 4335 4337 4354 4360 4378 4381 4431 4453
4474 4475 4480 4483 4553 4580 4582 4583 4594 4688 4713 4718 4727 4730
4744 4779
DN.ACN 5937
DN.BSZ 5926
DN.ERR 5946
DN.HST 5922
DN.INF 5945
DN.PWD 5932
DN.ROB 5924
DN.USR 5942
DN.WRN 5944
DO%LNK 1196
DO%OBJ 6206
DO%PSI 6061
DO%SRV 5904 6044
DO%WCN 1219
DOCR1 4502# 4507
DOCRC 3844 4485 4500#
DP$EXF 3780 3787 4442 4444
DPMXH 581 581# 2761 4186 4208
DPMXM 579 579# 1385 2287 2752 2898
DPMXMV 580 580# 2755 2901
DSCMAX 6229 6273 6336 6522#
DSCTBL 6231 6272 6335 6478# 6522
DSTMOD 759# 1324 1588 1603 1604 1618 1668 1978 2452 2453 2495 2522 2595 5457
5774
DT$ASC 2806 5441 5528 5529 5530 5562 5563 5564 5565 5566 5695 5696 5697 5703
5704 5705 5706 5707 5708 5715 5716 5718 5719 5722 5725 5726
DT$CMP 2808
DT$EBC 2808
DT$EXE 5683
DT$EXP 5683
DT$IMA 918 1697 1800 2806 5441 5444 5521 5522 5523 5524 5554 5555 5556 5557
5558 5559 5560 5561 5698 5699 5700 5701 5702 5709 5710 5711 5712 5713
5714 5717 5720 5721 5723 5724 5727
DT$SEN 5683
DTI$FC 732# 732 918
DTI$LN 732# 732 918
DTI$ST 732# 918
DTICDT 732# 918 2846 3282
DTIEDT 732# 918
DTIMNU 732# 918 2684 2844 3286
DTIMSD 918# 3287 3334
DTIRDT 732# 918 2849 3285
DTIRVN 732# 918
DV%ASN 5370
DV%AV 5359
DV%DIR 5366
DV%IN 4847 5364
DV%MDD 5368
DV%MNT 5372
DV%OUT 4885 5362
DV%TYP 2471 3012 4910 4960 5374
ENABLE 1446 1467 1933 1995# 5905
ENTVEC 834#
EOFCH1 5138 5143#
EOFCHK 4591 4706 4716 4777 4811 5137#
EOFCNT 768# 4952 5161
ER$ABO 6554#
ER$ACC 2696 6555#
ER$ACT 6556# 6720
ER$AID 6557#
ER$ALN 6558#
ER$ALQ 6559#
ER$ANI 6560#
ER$AOP 6561#
ER$AST 6562#
ER$ATR 2698 6563#
ER$ATW 6564#
ER$BKS 6565#
ER$BKZ 6566#
ER$BLN 6567#
ER$BOF 6568#
ER$BPA 6569#
ER$BPS 6570#
ER$BSZ 1774 6673# 6738
ER$BUG 6571#
ER$CCR 6572#
ER$CHG 6573#
ER$CHK 6574#
ER$CJF 6674# 6685 6731
ER$CLS 6575#
ER$COD 6576#
ER$COF 6675# 6733
ER$CRC 2892 6679#
ER$CRE 6577#
ER$CUR 6578#
ER$DAC 6579#
ER$DAN 6580#
ER$DDI 6672#
ER$DEL 6581#
ER$DEV 5386 6582# 6688 6696 6728 6730 6745
ER$DIR 6583# 6689
ER$DME 6584# 6702 6727 6747 6753 6759
ER$DNF 6585# 6697
ER$DNR 6586# 6706 6707 6718 6719 6744 6760
ER$DPE 6587#
ER$DTP 6588#
ER$DUP 6589#
ER$ENT 6590#
ER$ENV 6591#
ER$EOF 2390 3044 5140 6592# 6739
ER$ESS 6593#
ER$EXP 6594#
ER$EXT 6595#
ER$FAB 6596#
ER$FAC 6597#
ER$FEX 6598# 6705 6758
ER$FID 6599# 6691 6692 6693 6694 6695 6710 6749 6757
ER$FIL 2039 2059 2692 2694 2696 2698 5386 5884 6530#
ER$FLG 6600#
ER$FLK 2692 6601#
ER$FMT 3433 3438 3443 3448 3453 3459 3528 4001 5827 5836 6530#
ER$FND 6602#
ER$FNF 6603# 6698 6699 6700 6701 6704 6708 6713 6734 6752 6763
ER$FNM 6604# 6686 6687 6690 6709 6756
ER$FOP 6605#
ER$FUL 2059 6606# 6703 6721 6750 6751 6762
ER$IAN 6607#
ER$IFI 6608#
ER$IMX 6609#
ER$INI 6610#
ER$INV 1941 2764 2772 2807 2815 2871 3462 3465 5789 6530#
ER$IOP 6611# 6723 6724 6754 6761
ER$IRC 3888 4711 4813 6612#
ER$ISI 6613#
ER$KBF 6614#
ER$KEY 6615#
ER$KRF 6616#
ER$KSZ 6617#
ER$LAN 6618#
ER$LBL 6619#
ER$LBY 6620#
ER$LCH 6621#
ER$LEX 6622#
ER$LOC 6623#
ER$MAP 6624#
ER$MKD 6625#
ER$MRN 6626#
ER$MRS 6627#
ER$NAM 6628#
ER$NEF 6629#
ER$NID 6630#
ER$NPK 6631#
ER$NRM 6676#
ER$OK 6530#
ER$OPN 1774 6632#
ER$ORD 6633#
ER$ORG 6634#
ER$PLG 6635# 6726
ER$PND 6530#
ER$POS 6636#
ER$PRM 6637# 6743
ER$PRV 2039 2694 6638# 6684 6711 6714 6715 6716 6717 6722 6725 6737 6742 6746
6748
ER$RAB 6639#
ER$RAC 6640#
ER$RAT 6641#
ER$RBF 6642#
ER$RER 6643# 6740
ER$REX 6644#
ER$RFA 6645#
ER$RFM 6646#
ER$RLK 6647#
ER$RMV 6648#
ER$RNF 6649#
ER$RNL 6650#
ER$ROP 6651#
ER$RPL 6652#
ER$RRV 6653#
ER$RSA 6654#
ER$RSV 6530#
ER$RSZ 6655#
ER$RTB 4798 6656#
ER$SEQ 6657#
ER$SHR 6658#
ER$SIZ 6659#
ER$SNC 3377 5828 5837 5848 6530#
ER$SPL 6678#
ER$SRF 6677#
ER$STK 6660#
ER$SYS 6661# 6712 6729 6732 6735 6736
ER$TPE 6663#
ER$TRE 6662#
ER$TRM 2892 5889 6530#
ER$TRN 2390 3044 3888 4711 4798 4813 5140 5887 6530#
ER$TRW 6530#
ER$TYP 3368
ER$UBF 6664#
ER$USP 1471 1480 1497 1499 1596 1664 1666 1678 1844 1852 1854 1858 1860 1862
1864 1870 1872 1873 1937 2627 2809 2873 3368 3467 3575 5688 5825 5834
6530#
ER$USZ 6665#
ER$VER 6666#
ER$VOL 6667#
ER$WER 6668# 6741
ER$WLK 6669# 6755
ER$WPL 6670#
ER$XAB 6671#
ER%FLD 1471 1480 1497 1499 1596 1664 1666 1678 1844 1852 1854 1858 1860 1862
1864 1870 1872 1873 1937 1941 2626 2764 2772 2807 2809 2815 2871 2873
3368 3433 3438 3443 3448 3453 3459 3462 3465 3467 3528 4001 5688 5789
ER%MAC 1471 1480 1497 1499 1596 1664 1666 1678 1774 1844 1852 1854 1858 1860
1862 1864 1870 1872 1873 1937 1941 2039 2059 2390 2627 2692 2694 2696
2698 2764 2772 2807 2809 2815 2871 2873 2892 3044 3368 3377 3433 3438
3443 3448 3453 3459 3462 3465 3467 3528 3576 3888 4001 4711 4798 4813
5140 5386 5688 5789 5814 5890
ER%MIC 1774 2039 2059 2390 2692 2694 2696 2698 2892 3044 3377 3379 3888 4711
4798 4813 5140 5386 5815 5829
ER%TYP 1471 1480 1497 1499 1596 1664 1666 1678 1844 1852 1854 1858 1860 1862
1864 1870 1872 1873 1937 1941 2627 2764 2772 2807 2809 2815 2871 2873
3368 3371 3433 3438 3443 3448 3453 3459 3462 3465 3467 3530 3580 4001
5688 5789
EXFTBL 3777 3786 3798#
EXP2 1730#
EXP3 1735# 1752
EXP4 1733 1742 1753#
EXPUNG 1721 1728# 1982
FALSE 3832
FATAL 1136 1148# 1162 1169 1193 1258 1299 1314 1318 1326 2205 2219 2438 2455
2463 2520 2524 2583 2630 2633 2658 2714 2746 2747 2956 4345 5953 5973
6075 6093 6106 6107 6139 6164 6276 6330 6339
FB$ALL 5371
FB$AVL 5361
FB$BLK 5680
FB$CR 3871 4550 4577 5563 5564 5704 5707 5711 5712 5714 5716 5724 5725
FB$DEL 1959
FB$EBF 5680 5697 5705 5708
FB$FIX 918 4005 4664 5522 5526 5529 5556 5560 5563 5700 5703 5704 5705 5709
5711 5721 5722
FB$FOD 5395
FB$FTN 3872 3892 5566 5717 5718 5719 5720 5721 5722
FB$GET 2424 2509 2728
FB$IDV 5365
FB$MCY 5443 5524 5525 5526 5527 5558 5559 5560 5561 5699 5700 5701 5702 5799
FB$MDI 3010 5369 5391
FB$MNT 5373
FB$NUL 5398
FB$ODV 5363
FB$PRN 3892 5565 5713 5715
FB$PUT 2613
FB$RAD 5391
FB$REC 5392 5393 5394 5397
FB$SDI 5367
FB$SEQ 918
FB$SHR 5391
FB$SPL 1955 1957 2715 2720 5392 5393 5394
FB$SQD 5392 5393 5394 5395 5396 5397
FB$STM 5559 5562 5695 5697 5702 5723 5724 5725
FB$SUB 1659 1953 1957
FB$SUP 2606
FB$TRM 5396
FB$UDF 1699 1802 4006 4662 5425 5554 5555 5558 5696 5698 5699
FB$VAR 4008 4666 4709 5523 5527 5530 5557 5561 5564 5701 5706 5707 5708 5710
5712 5719 5720
FB$VFC 3857 4710 5565 5566 5713 5714 5715 5716 5717 5718 5726 5727
FB%BSZ 1581 1590 1676 1705 1770 1812 2461 2574 2816 3240 5008 5018 5342 5344
5776 5791
FB%FCF 5014
FB%MOD 5018
FB%PGC 2056 2824 3236
FFSPEC 573# 5327 5977
FFUFX3 1921
FILCNT 636# 1694 1714 1717 1760 1781 1784 1794 1825 1828
FILCRC 782# 1475 1575 2431 2515 2636 2663 2681 2734 2890 3077 4501 4508
FILFOP 783# 1952 2838
FILGE1 1903 1909#
FILGE2 1915 1919#
FILGET 1433 1901# 2322
FILMAX 583 583# 1693 1716 1759 1783 1793 1827
FNCEND 812# 814
FNCSIZ 814# 1309 1395
FNCTXT 1472 1504#
FP%APP 3745 4413
FP%DIR 3747 4415
FP%EX 3743 4411
FP%GRP 569# 2861
FP%RD 3739 4407
FP%SLF 568# 2859
FP%WLD 570# 2863
FP%WR 3741 4409
FWMASK 4993 5004 5022 5026 5034
GETAS1 3858 3860 3864# 3868
GETAS2 3865 3870#
GETAS3 3880# 3893
GETASC 3851# 5594 5595 5596 5597 5598
GETBC1 4057 4064#
GETBC2 4066# 4070
GETBC3 4065 4071#
GETBC4 4063 4071 4077#
GETBCT 3946 3969 4018 4037 4050#
GETBYT 3432 3442 3447 3452 3458 3611 3615 3619 3623 3638# 3655 3663 3682 3689
3692 3695 3698 3701 3706 3709 3712 3715 3773 3861 3864 3897 3901 3904
4051 4066 4072 4098
GETDAT 971 3841#
GETDE1 5376# 5380
GETDEV 4845 4883 5355#
GETDO1 4098# 4103
GETDOS 4082# 5591
GETDT1 3828 3834#
GETDTI 971 3821#
GETEX1 3773# 3782 3788
GETEX2 3779 3784#
GETEX3 3781 3790#
GETEXF 971 3437 3736 3770#
GETFD1 5337 5338#
GETFDB 4856 4887 5325#
GETFDD 4644 5330#
GETFI1 3614 3618 3622 3626#
GETFIX 971 3607#
GETIM1 4017# 4023
GETIM2 4011 4013 4025#
GETIM3 4007 4029 4035# 4041
GETIM4 4035 4043#
GETIMG 3994# 5587 5588 5589 5590 5592 5593
GETIN1 3684 3691 3694 3697 3700 3705 3708 3711 3714 3717#
GETINT 971 3679#
GETMNU 971 3769#
GETMS1 3364# 3367
GETMS2 3366 3376# 3385
GETMS4 3397 3406#
GETMSG 1440 2333 3354#
GETPA1 3945# 3949
GETPA2 3947 3950#
GETPA3 3934 3963#
GETPA4 3968# 3972
GETPA5 3970 3973#
GETPAG 1883 1895 3021 3931#
GETPR1 3904# 3908
GETPR2 3905 3909#
GETPR3 3899 3910#
GETPR4 3917# 3919
GETPR5 3911 3920#
GETPRN 3853 3897#
GETPRO 971 3735#
GETTER 1031# 5876 6328
GETVA1 3663# 3666 3827
GETVA2 3662 3667#
GETVAR 971 3654#
GJ%DEL 1728 1739 1753
GJ%DEV 4841 5082 5111
GJ%DIR 4841 5082 5111
GJ%EXT 4841 5082 5111
GJ%FLG 4829
GJ%FOU 4871
GJ%IFG 4829
GJ%NAM 4841 5082 5111
GJ%NEW 5970
GJ%OLD 4825
GJ%SHT 1739 5970
GJ%VER 4841 5082 5111
GJFX10 6691
GJFX11 6692
GJFX12 6693
GJFX13 6694
GJFX14 6695
GJFX16 6696
GJFX17 6697
GJFX18 6698
GJFX19 6699
GJFX20 6700
GJFX21 6701
GJFX22 6702
GJFX23 6703
GJFX24 6704
GJFX27 6705
GJFX28 6706
GJFX29 6707
GJFX3 6685
GJFX32 6708
GJFX33 6709
GJFX34 6710
GJFX35 6711
GJFX38 6752
GJFX4 4838 4880 6686
GJFX41 6756
GJFX42 6757
GJFX5 6687
GJFX6 6688
GJFX7 6689
GJFX9 6690
GN%DIR 1809 1818 1820 1832 3105 4843
GN%EXT 4843
GN%NAM 4843
GN%STR 1809 1818 1820 1832 3095 4843
GODAP 1132# 1198 1229 1256 1289 1304
GOUSR 1142 1145#
HD$BCT 3456 4274 4292 4309
HD$LEN 3445 3468 4187 4278 4281 4283 4288 4303
HD$LN2 3450 3468 4281 4283 4290 4306
HD$SEG 3466
HD$SID 3440 4276 4286 4301
I%SLP 6097
ILLREC 3862 3888# 3898 3902 3951 4053 4067 4073 4099
INPBY1 5167 5170#
INPBY2 5172 5175#
INPBYM 5154# 5229
INPBYT 4559 4669 4677 4682 4696 4776 4785 4788 4792 4799 4804 5152#
INPMC1 5225 5228#
INPMC2 5227 5234#
INPMCY 5153 5224#
INTFLG 650# 1234 6251 6256
INTHAP 640# 1230 1429 2318 6117
IOX11 6762
IOX4 5163 6329 6739
IOX5 6740
IOX6 6741
IOX7 6753
IOX9 6754
IT%AAC 3830
IT%AIS 3830
IT%NNM 3830
IT%NTM 3830
IT%NTZ 3830
JEDGA1 2038 2045#
JEDGAR 1572 1672 1708 1776 1815 1962 2023#
JFNBLK 772# 1399 1401 1403 1729 1730 1754 1762 1796 1797 2183 4823 4870
JS%DEV 572 3099
JS%DIR 572 3109
JS%GEN 572 3117
JS%NAM 572 3117
JS%PAF 573 3099 3109 3117
JS%TYP 572 3117
KDF$FC 732# 732 918
KDF$LN 732# 732 918
KDF$ST 732# 918
KDFDAN 732# 918
KDFDBS 732# 918
KDFDFL 732# 918
KDFDTP 732# 918
KDFDVB 732# 918
KDFFLG 732# 918
KDFHAL 732# 918
KDFIAN 732# 918
KDFIBS 732# 918
KDFIFL 732# 918
KDFKNM 732# 918
KDFLAN 732# 918
KDFLVL 732# 918
KDFMNU 732# 918
KDFMRL 732# 918
KDFMSD 918# 3331
KDFNSG 732# 918
KDFNUL 732# 918
KDFREF 732# 918
KDFRVB 732# 918
KDFTSK 732# 918
L%CBFR 3496
L%CENT 6374
L%CLST 1210 1214
L%DENT 3362 3373 3381 3390 3399 4144
L%DLST 1266 1269
L%FIRS 3401 4130 6297 6342
L%LAST 4124 6368
L%PREV 4177
LEV1PC 44 44# 1233
LINFLG 770# 4551 4561 4563 4902
LINNUM 769# 4908 5180 5183
LLCHK 1290 1430 2319 6083 6116# 6299 6306 6392 6406
LLCHK1 6123 6127#
LLCLOS 1264 6138# 6398 6428
LLCLS1 6147# 6149
LLCLS2 6142 6148 6152#
LLCLS3 6158 6161# 6169
LLCLS4 6160 6167#
LLDISC 651# 6414 6423
LLGJF0 5907 5911 5920 5955#
LLGJF1 5958# 5968
LLGJF2 5961 5967#
LLGJF3 5954 5974#
LLGJFN 1216 5902#
LLJFN 645# 1257 1263 5974 5976 6046 6050 6070 6074 6101 6118 6138 6156 6161
6165 6167 6170 6179 6244 6268 6317 6331 6401 6411 6432
LLMXF 582 582#
LLNAME 653# 2113 2114 2121 5957 5971 5975
LLOPEN 1217 6039#
LLOPN0 6042 6046#
LLOPN1 6045 6050#
LLOPN4 6054 6057 6064 6070#
LLOPN5 6049 6074#
LLOPNB 641# 1202 1204 1205 1400 2132 2134 2139 5038 5043 5047 6183 6194 6200
6206 6396
LLRCD 6179# 6393
LLRCD1 6181# 6193
LLRCD2 6185 6193#
LLRDSP 6325 6349#
LLRECA 3357 6341# 6344
LLRECE 6321 6328#
LLRECM 6301 6308 6313# 6343
LLRECV 1414 2305 6296# 6302 6309
LLSDSP 6243 6278#
LLSE25 6255 6258#
LLSEN3 6259 6262#
LLSEND 4134 6241#
LLSENE 6253 6268#
LLSTAT 646 646# 1275 6058 6103 6120 6124 6389 6424
LLWC1 6083# 6098
LLWC2 6091 6096#
LLWC3 6084 6088 6101#
LLWC4 6090 6095#
LLWCON 1220 1306 6082#
LN 732# 732
LNKBEG 630# 737 1200
LNKPGS 610#
LNKSIZ 737# 1199
LNKSTS 647# 1141 1145
LOCDEV 775# 2471 3012 4910 4960 5358 5383
LOCFDB 784# 1581 1590 1676 1705 1770 1812 2461 2574 3236 3239 3240 3261 3280
3283 4646 5332 5335 5342 5344 5776 5791
LOCJFN 773 773# 1271 1273 1391 1393 1906 1919 2026 2049 2115 2506 3098 3108
3116 3955 4615 4840 4851 4882 4890 4897 4917 4989 5037 5076 5081 5090
5106 5110 5113 5118 5128 5155 5205 5228 5254 5291 5326 5330 5355
LSTIN. 29 1090 1092 1136 1160 1162 1169 1190 1190# 1193 1197 1198 1198# 1228
1229 1229# 1255 1256 1256# 1288 1289 1289# 1299 1303 1304 1304# 1314 1318
1326 1474 1949 2205 2219 2438 2439 2449 2455 2463 2520 2524 2565 2583
2630 2633 2658 2704 2714 2746 2747 2768 2956 3094 3136 3355 3360 3360#
3388 3388# 3396 3396# 3431 3522 3524 3591 3591# 3660 3660# 3932 3964 3964#
3995 4083 4122 4171 4171# 4203 4205 4258 4258# 4345 4474 4480 4480# 4539
4603 4660 4776 4936 4959 5055 5055# 5203 5203# 5271 5271# 5287 5287# 5813
5813# 5822 5865 5973 5980 6002 6002# 6040 6075 6093 6106 6107 6117 6117#
6139 6164 6242 6276 6285 6330 6339 6357 6388 6431 6532 6533 6534 6535
6536 6537 6538 6539 6540 6541 6542 6766 6767 6767#
M%NXPG 3938 4609 5188 5271
M%RELP 3960 4641 5072 5104
MACTBL 5861 6532#
MAXLNK 578 578# 586 587 610 1135 1168
MCYDAT 789# 5231 5238 5239 5240 5241 5307 5312
MCYIDX 788# 4009 4675 4970 5152 5224 5233 5250 5302 5303 5314 5320 5321 5798
5800
MCYTBL 5234 5238# 5315
MESIN 638 638# 5908 6322
MESOUT 639 639# 5909 6257
MF.ACK 2165
MIC$LN 5824 6679#
MICTBL 5830 5843 6553# 6679
MO%ABT 6122 6128
MO%CON 6085
MO%EOM 6300 6307
MO%SRV 1307 6089 6390
MO%SYN 6087
MOD$LN 5439 5534#
MODTB1 5420 5554# 5797
MODTB2 1597 2594 5570#
MODTB3 2525 5586# 5795
MODTB4 5602# 5788
MODTB5 5618# 5790
MODTB6 5634# 5792
MODTB7 1665 5650#
MODTBL 5445 5520# 5534
MODTBO 5462 5538#
MSG$LN 3339# 3356 5846
MSGARC 808# 2084 2100 2106 2122 2136
MSGARF 807# 2082 2086 2087 2089 2091 2092
MSGARH 809#
MSGCNT 802#
MSGDSG 609# 1068 1166 3523 4204 5979 6039 6278 6284 6349 6356 6387
MSGFLG 648# 1425 1431 2314 2320 3403 6126 6298 6305 6345
MSGHDR 806# 2079 2080 2081 2141 2142 2143
MSGJNK 798# 3824 3829 4456 4459
MSGPTR 801#
MSGTBL 3322# 3339 3364 3386 5850 5856 6281 6354
MSGTXT 810# 1736 1740 5927 5931 5933 5936 5938 5941
MSHSIZ 806
MTOX17 6760
NA$DFS 2872
NA$DIR 2878 3112
NA$FNM 2880 3120
NA$FSP 2352 2874 3147
NA$RFS 2872
NA$VOL 2876 3102
NAM$FC 732# 732 918
NAM$LN 732# 732 918
NAM$ST 732# 918
NAMDFS 732# 918
NAMDIR 732# 918 2879 3107
NAMFNM 732# 918 2881 3115 3122
NAMFSP 732# 918 2109 2875 3149 4860 4891 5325
NAMMSD 918# 3296 3336
NAMRFS 732# 918
NAMTYP 732# 918 2870 3103 3113 3121 3148
NAMVOL 732# 918 2877 3097
ND$OST 1207# 1208
ND%EXM 5917
NEWBUF 4209 6315 6367#
NEWHDR 3472 3495#
NEWPAG 5260 5270#
NLLPGS 817#
NODATC 2805 2808#
NXTIN1 4849 4856#
NXTINP 1613 1719 1786 1830 1972 4851#
OF%BSZ 5794 6047
OF%RD 4857 4962 5773 6047
OF%WR 4888 4915 4968 6047
OPNFI0 4925# 4938
OPNFI1 4931 4939#
OPNFI2 4950 4952#
OPNFIL 1608 1680 2464 2587 4897#
OPNFLG 776# 4858 4889 4898 4914 4925 4961 4984 5190 5273 5772 5794
OPNX1 6712
OPNX10 6721
OPNX12 6722
OPNX13 6723
OPNX14 6724
OPNX15 6725
OPNX16 6726
OPNX17 6727
OPNX18 6728
OPNX2 6713
OPNX23 6751
OPNX25 6755
OPNX3 2063 6714
OPNX31 1611 2589 6763
OPNX4 2064 2072 6715
OPNX5 6716
OPNX6 6717
OPNX7 6718
OPNX8 6719
OPNX9 6720
OURCAP 681# 2656 2673 2712 2789 2931 2945 3006 4272 4824
OURDSP 682# 2426 2610 2676 2730 2797 3138
OURKON 575 575#
OURMRS 683# 2762 4694 4797
OURSIZ 684# 1386 2288 2760 4207 6314
OURVER 680# 2785 2926 4217
OUTBYM 5252# 5308
OUTBYT 2475 2478 3866 3881 3884 3906 3917 4021 4026 4033 4039 4084 4087 4092
4096 4101 4106 4110 5250#
OUTMC1 5305 5315#
OUTMCD 4971 5306#
OUTMCY 5251 5302#
P 29 1132 1142 1143 1151 1160 1190 1198 1229 1256 1289 1297 1304 1591
1594 1743 1747 2023 2025 2027 2029 2031 2032 2034 2041 2045 2111 2112
2118 2119 2440 2445 3360 3388 3396 3591 3660 3735 3751 3823 3834 3964
4015 4019 4024 4171 4258 4480 4919 4920 4939 4943 4953 4954 5055 5203
5271 5287 5306 5309 5311 5813 6002 6117
P1 1159 1171 1189 1198 1256 1289 1304 1948 1951 1952 1953 1955 1957 1959
2564 2593 2594 2596 2631 3093 3094 3095 3105 3135 3136 3137 3138 3139
3141 3143 3145 3354 3355 3360 3376 3385 3388 3392 3393 3395 3413 3414
3430 3431 3439 3440 3445 3450 3456 3466 3468 3521 3522 3525 3529 3534
3535 3537 3540 3541 3548 3549 3568 3590 3659 3931 3932 3941 3942 3943
3948 3949 3965 3966 3971 3972 3994 3995 4002 4014 4015 4016 4019 4023
4024 4025 4031 4035 4082 4083 4089 4090 4103 4108 4112 4121 4171 4202
4203 4211 4213 4216 4219 4239 4241 4242 4244 4257 4260 4473 4474 4479
4482 4602 4603 4604 4606 4607 4608 4614 4619 4620 4622 4629 4632 4639
4645 4646 4647 4650 4659 4660 4667 4673 4679 4685 4686 4691 4693 4694
4695 4700 4712 4775 4776 4791 4795 4796 4797 4803 4958 4959 5050 5054
5074 5202 5270 5286 5812 5813 5820 5838 5842 5858 6001 6116 6241 6242
6245 6246 6248 6262 6263 6264 6265
P2 1159 1189 1198 1256 1289 1304 1948 2564 3093 3135 3354 3356 3360 3364
3367 3386 3388 3395 3430 3431 3449 3455 3469 3473 3474 3477 3478 3521
3522 3536 3555 3564 3566 3590 3659 3931 3932 3939 3952 3959 3994 3995
3999 4017 4028 4030 4036 4082 4091 4095 4100 4104 4121 4171 4202 4220
4236 4238 4245 4247 4253 4257 4259 4473 4475 4479 4602 4603 4621 4623
4624 4628 4659 4660 4661 4671 4680 4684 4690 4698 4775 4784 4790 4794
4801 4806 4807 4958 5054 5202 5270 5286 5812 5814 5825 5827 5828 5834
5836 5837 5848 5861 6001 6116 6241
P3 1159 1189 1198 1229 1256 1289 1304 1948 2564 3093 3135 3354 3360 3388
3395 3430 3521 3522 3528 3530 3567 3576 3579 3590 3659 3931 3933 3935
3936 3937 3954 3994 4082 4121 4171 4202 4257 4473 4479 4602 4613 4634
4659 4695 4712 4775 4958 5054 5202 5270 5286 5812 5815 5847 6001 6116
6241
P4 1159 1189 1198 1229 1256 1289 1304 1948 2564 3093 3135 3354 3360 3388
3395 3430 3521 3545 3557 3558 3565 3590 3659 3931 3994 4082 4121 4171
4202 4257 4473 4479 4602 4659 4775 4958 5054 5202 5270 5286 5812 5816
5817 5818 6001 6116 6241
PA%PEX 5208
PAG1 771# 4906 4976 4978 5171 5200 5264 5283
PAGBP 764# 4903 4974 5068 5073 5100 5105 5166 5170 5175 5177 5199 5211 5213
5259 5261 5263 5278 5287 5297 5299
PAGFLG 777 777# 1882 1894 1901 1912 3015 4913 4963 4972 5011 5066 5137 5154
5252
PAGIN 5168 5188#
PAGINN 5173 5202#
PAGMEM 766# 4610 4638 4907 5055 5057 5217
PAGNUM 765 765# 3932 3937 4603 4608 4904 5203 5204 5292 5293
PAGOUT 4980 5266 5286#
PAGSIZ 3942 4620 4639
PC%USR 1231
PFBSIZ 767# 4905 4982 5162 5176 5262
PICMOD 1600 2598 5468#
PM%EX 3956 5294
PM%PLD 4616 5219
PM%RD 3956 4616 5219 5294
PM%WR 3956 5294
PMAPX1 5209
PMAPX6 6750
PMRFLG 831# 1194 1195 5910 5919 6041
PMTAB 5469 5472#
POLINI 1474 1574 2430 2514 2635 2662 2680 2733 4516#
POLY 4514#
PR$DAA 3744 4414
PR$DDA 4410
PR$DEA 3742 4412
PR$DLA 3746 4416
PR$DRA 3738 4408
PR$DWA 3740 4410
PR$GRP 3268
PR$SLF 3268
PR$WLD 3268
PRIN10 2094 2107#
PRIN20 2135 2141#
PRINT 1956 2076#
PRO$FC 732# 732 918
PRO$LN 732# 732 918
PRO$ST 732# 918
PROGRP 732# 918 2860 3265
PROMNU 732# 918 2685 2855 3259 3269
PROMSD 918# 3270 3335
PROOWN 732# 918
PROSLF 732# 918 2858 3267
PROSYS 732# 918
PROWLD 732# 918 2862 3263
PSIIM 1238 6431#
PUTAS1 4555# 4569 4573
PUTAS2 4559# 4562 4564
PUTAS3 4560 4591#
PUTAS5 4557 4576 4578 4585 4589#
PUTASC 4548# 4588 5594 5595 5596
PUTBC1 4728 4736#
PUTBC2 4738# 4740
PUTBC3 4737 4741#
PUTBC4 4733 4741 4744#
PUTBCT 4627 4631 4649 4672 4699 4725#
PUTBYT 4325 4335# 4359 4363 4380 4388 4443 4467 4565 4726 4738 4742 4802
PUTDAT 971 4473#
PUTDO1 4776# 4781
PUTDO2 4799# 4803
PUTDO3 4786 4789 4793 4800 4805 4811#
PUTDO4 4783 4787 4808 4813#
PUTDOS 4775# 5591
PUTDT1 4466# 4468
PUTDTI 971 4452#
PUTERR 4320 4322 4336 4345# 4355 4368 4379 4395 4432 4454
PUTEX1 4437# 4445
PUTEXF 971 4431#
PUTFI1 4325# 4327
PUTFIX 971 4318#
PUTI10 4670 4678 4683 4716#
PUTIM1 4669# 4673
PUTIM2 4668 4675#
PUTIM3 4674 4677#
PUTIM4 4663 4688#
PUTIM5 4665 4693#
PUTIM6 4681 4687 4692 4695#
PUTIM7 4696# 4700
PUTIM8 4686 4701#
PUTIM9 4697 4706#
PUTIMG 4659# 5587 5588 5589 5590 5592 5593
PUTIN1 4387# 4392
PUTINT 971 4376#
PUTMNU 971 4430#
PUTMSG 2920 2940 2969 3024 3032 3038 3061 3072 3086 4155#
PUTP10 4622# 4632
PUTP20 4625# 4628
PUTP30 4624 4630#
PUTP40 4623 4632#
PUTP50 4605 4644#
PUTP60 4647# 4650
PUTPAG 1883 1895 3021 4602#
PUTPRO 971 4405#
PUTVA1 4361# 4364
PUTVA2 4362 4365#
PUTVAR 971 4352#
QSOUT 5930 5935 5940 5966 6001#
QSOUT1 6005# 6020
QSOUT2 6011 6015 6017 6019#
QSOUT3 6007 6022#
QUEMS1 4178 4182 4184#
QUEMSG 1910 2724 3252 3271 3288 3297 4155 4170#
RACSAV 754# 1846 1855
RB$BKF 1851 1880 1892 3019
RB$SQF 1850 2967 2982 2996
RB$VBN 1853
RCVLST 656# 1212 1265 1267 3361 3372 3380 3389 3398 3400 3471 6296 6313 6341
RELJFN 1274 1394 4853 5051 5113#
REMOST 672# 1209 1577 2414 2571 2603 2753 2765 2766 2770 2899 3003 3166 3228
4227 4934 5338 5468 5948
RESREM 2941 3125 3152 3204#
RLNJFN 5095 5110#
RNAMX1 6745
RNAMX3 6746
RNAMX4 6747
RNAMX8 6748
RNMX12 6749
S 542# 1141 1145 1198 1229 1256 1289 1304 1408 1416 1418 1420 1427 1435
1439 1445 1453 1625 1688 1723 1789 1836 1878 1889 1923 1985 1989 2176
2181 2199 2202 2307 2309 2316 2324 2328 2332 2335 2343 2344 2356 2372
2380 2392 2397 2432 2467 2480 2484 2490 2516 2528 2532 2536 2539 2619
2638 2642 2645 2664 2668 2682 2688 2707 2735 2738 2741 2839 3047 3577
5142 5143 5164 5885 5888 5891 6065 6074 6165 6170
S%ACP 551# 2380 2490 2539 2668 2707 2741
S%EOF 550# 1408 1435 1923 2324 2392 5142 5143 5164 5885 5888
S%GET 549# 1408 1427 1878 5885
S%INIT 546# 1418 1445 1453 1625 1688 1723 1789 1836 1878 1889 1985 1989 2176
2181 2307 2343 2432 2467 2480 2484 2516 2528 2532 2536 2619 2638 2642
2645 2664 2682 2735 2738 2839 3047 6065
S%JERR 544# 3577 5891
S%LERR 545# 2199 2202 2397 2688
S%PUT 548# 1408 1889 2316 2642 5885
S%RETN 547# 1416 1723 1789 1836 1985 2335 2344 2356 2372 2380 2392
S%STAT 553#
S1 1031 1069 1097 1133 1134 1135 1148 1161 1163 1164 1165 1166 1167 1168
1170 1171 1192 1196 1199 1202 1203 1204 1206 1208 1209 1211 1212 1213
1215 1218 1219 1231 1233 1259 1260 1265 1268 1298 1300 1301 1302 1307
1309 1312 1315 1316 1322 1323 1382 1385 1386 1395 1398 1399 1400 1401
1402 1403 1420 1421 1422 1439 1468 1469 1470 1471 1472 1474 1475 1476
1477 1479 1480 1481 1484 1486 1489 1492 1493 1497 1499 1552 1553 1555
1557 1561 1562 1563 1571 1574 1575 1578 1585 1587 1589 1590 1592 1596
1597 1601 1606 1607 1618 1621 1622 1659 1660 1664 1665 1666 1667 1671
1674 1675 1676 1678 1682 1683 1684 1685 1693 1694 1695 1697 1698 1699
1700 1701 1702 1705 1706 1707 1710 1716 1717 1728 1729 1730 1734 1735
1736 1739 1743 1744 1747 1748 1751 1753 1754 1759 1760 1761 1762 1763
1765 1770 1771 1772 1774 1775 1779 1783 1784 1793 1794 1795 1796 1797
1798 1800 1801 1802 1803 1804 1805 1808 1809 1811 1812 1813 1814 1817
1818 1819 1820 1821 1823 1827 1828 1831 1832 1833 1844 1845 1847 1852
1854 1858 1860 1862 1864 1870 1872 1873 1879 1880 1883 1884 1885 1886
1891 1892 1895 1896 1902 1904 1905 1906 1909 1914 1916 1917 1918 1919
1921 1925 1926 1927 1928 1937 1941 1961 1964 1967 1974 1975 1976 1998
2008 2025 2026 2027 2028 2029 2030 2031 2033 2037 2039 2045 2046 2048
2052 2055 2057 2059 2078 2079 2083 2084 2085 2086 2088 2089 2090 2091
2092 2096 2098 2099 2102 2104 2105 2108 2111 2114 2119 2124 2125 2127
2128 2131 2138 2141 2142 2146 2147 2150 2151 2167 2169 2182 2183 2184
2187 2188 2189 2190 2191 2192 2194 2217 2218 2220 2284 2287 2288 2309
2310 2311 2332 2352 2361 2362 2369 2381 2388 2390 2402 2410 2412 2413
2417 2426 2427 2430 2431 2437 2440 2448 2451 2458 2460 2461 2474 2477
2487 2499 2501 2505 2506 2507 2508 2509 2510 2511 2512 2514 2515 2521
2525 2526 2567 2575 2579 2580 2585 2586 2592 2594 2595 2596 2597 2603
2604 2606 2607 2608 2609 2610 2611 2615 2616 2625 2631 2632 2635 2636
2648 2656 2657 2659 2660 2662 2663 2673 2674 2676 2677 2678 2680 2681
2690 2692 2694 2696 2698 2712 2713 2715 2716 2718 2726 2727 2728 2729
2730 2731 2733 2734 2752 2755 2757 2758 2759 2760 2761 2762 2763 2764
2766 2770 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2786
2787 2789 2791 2793 2802 2806 2807 2808 2809 2810 2813 2814 2815 2816
2820 2821 2823 2824 2825 2826 2827 2828 2832 2833 2834 2835 2836 2837
2838 2846 2848 2849 2851 2858 2859 2860 2861 2862 2863 2870 2871 2872
2873 2874 2876 2878 2880 2890 2891 2892 2898 2901 2902 2903 2904 2905
2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919
2926 2928 2929 2931 2932 2934 2936 2937 2939 2945 2948 2949 2961 2976
2990 3003 3004 3006 3007 3009 3010 3012 3013 3017 3018 3019 3020 3021
3022 3023 3028 3037 3044 3056 3057 3071 3077 3078 3083 3097 3102 3103
3107 3112 3113 3115 3122 3136 3147 3148 3149 3170 3178 3183 3184 3188
3190 3192 3194 3196 3206 3208 3219 3220 3224 3232 3233 3240 3242 3249
3250 3251 3261 3263 3264 3265 3266 3267 3270 3280 3282 3283 3285 3287
3296 3355 3358 3360 3361 3365 3368 3371 3372 3377 3379 3380 3384 3386
3388 3389 3392 3394 3395 3398 3400 3413 3428 3433 3434 3435 3438 3443
3444 3448 3449 3453 3454 3455 3459 3460 3461 3462 3463 3464 3465 3467
3471 3482 3483 3484 3497 3498 3499 3522 3529 3530 3542 3561 3566 3575
3576 3579 3580 3590 3591 3592 3607 3608 3610 3613 3617 3621 3625 3627
3639 3641 3654 3657 3659 3661 3665 3680 3684 3685 3686 3688 3690 3693
3696 3699 3702 3703 3704 3707 3710 3713 3716 3717 3718 3738 3740 3742
3744 3746 3750 3752 3772 3777 3780 3785 3786 3787 3795 3821 3826 3829
3833 3835 3841 3845 3846 3851 3852 3854 3856 3857 3870 3871 3872 3875
3877 3880 3883 3888 3891 3892 3903 3909 3910 3912 3914 3915 3916 3939
3940 3941 3948 3952 3953 3959 3971 3996 3997 3998 3999 4001 4002 4004
4005 4006 4008 4012 4014 4016 4025 4031 4032 4068 4075 4078 4083 4086
4090 4091 4094 4095 4100 4104 4105 4109 4123 4129 4143 4171 4176 4179
4180 4181 4183 4184 4186 4203 4206 4210 4211 4212 4221 4222 4234 4248
4257 4267 4274 4276 4278 4281 4283 4284 4286 4288 4290 4292 4299 4301
4303 4306 4309 4318 4319 4321 4323 4324 4326 4337 4352 4358 4361 4362
4365 4376 4387 4431 4434 4437 4438 4442 4444 4452 4453 4456 4462 4463
4464 4466 4476 4477 4479 4482 4502 4554 4558 4564 4567 4568 4571 4574
4579 4580 4581 4582 4583 4610 4612 4614 4615 4622 4625 4629 4633 4639
4640 4647 4660 4662 4664 4666 4679 4684 4685 4688 4689 4690 4691 4708
4709 4710 4711 4731 4735 4739 4781 4782 4784 4787 4790 4791 4794 4795
4798 4801 4806 4813 4823 4830 4840 4841 4842 4843 4844 4851 4855 4857
4858 4859 4870 4872 4882 4888 4889 4890 4897 4910 4911 4914 4915 4917
4959 4960 4967 4974 4975 4976 4988 4989 4992 4996 5003 5007 5013 5017
5021 5025 5033 5037 5041 5046 5054 5058 5068 5069 5070 5071 5076 5077
5081 5082 5083 5090 5091 5100 5101 5102 5103 5106 5107 5110 5111 5113
5115 5128 5140 5155 5158 5161 5162 5170 5171 5175 5182 5189 5193 5194
5195 5196 5198 5203 5205 5228 5231 5234 5253 5254 5257 5261 5263 5264
5270 5272 5276 5280 5281 5282 5283 5287 5288 5289 5290 5297 5298 5299
5306 5307 5309 5311 5315 5325 5330 5334 5342 5343 5355 5361 5363 5365
5367 5369 5371 5373 5381 5382 5386 5420 5421 5423 5427 5438 5440 5441
5443 5444 5445 5450 5456 5462 5468 5469 5675 5676 5677 5678 5679 5680
5681 5684 5685 5687 5688 5690 5691 5772 5773 5776 5780 5784 5786 5787
5789 5790 5791 5793 5794 5801 5812 5814 5815 5820 5829 5831 5838 5842
5847 5849 5851 5859 5868 5878 5879 5882 5883 5890 5912 5918 5919 5921
5922 5923 5924 5925 5926 5927 5931 5932 5933 5936 5937 5938 5941 5942
5943 5944 5945 5946 5948 5949 5951 5957 5970 5974 5975 6018 6019 6022
6043 6044 6046 6050 6070 6071 6085 6087 6089 6095 6096 6103 6104 6105
6118 6127 6128 6140 6147 6148 6156 6161 6162 6167 6179 6244 6268 6279
6281 6282 6296 6300 6307 6310 6313 6316 6317 6331 6341 6346 6352 6354
6355 6367 6369 6375 6376 6378 6379 6380 6389 6390 6394 6399 6401 6411
6423 6426 6432
S2 1034 1068 1069 1082 1083 1085 1092 1149 1163 1165 1191 1196 1200 1235
1237 1241 1259 1261 1262 1289 1300 1305 1310 1319 1322 1324 1383 1396
1471 1472 1480 1482 1486 1487 1488 1497 1499 1588 1596 1605 1611 1619
1664 1666 1668 1678 1679 1731 1735 1740 1766 1774 1844 1846 1849 1850
1851 1852 1853 1854 1855 1856 1858 1860 1862 1864 1870 1872 1873 1937
1941 2009 2034 2040 2041 2042 2049 2055 2056 2057 2060 2095 2096 2097
2098 2101 2102 2103 2104 2107 2108 2109 2115 2120 2121 2123 2124 2126
2127 2130 2131 2132 2137 2138 2139 2143 2166 2168 2170 2185 2285 2370
2389 2403 2414 2415 2419 2420 2421 2424 2425 2441 2442 2443 2445 2453
2471 2472 2502 2522 2523 2584 2589 2599 2600 2601 2613 2614 2691 2720
2721 2722 2723 2753 2754 2764 2772 2788 2795 2803 2804 2807 2809 2811
2815 2822 2871 2873 2875 2877 2879 2881 2892 2899 2900 2946 2949 2950
2951 2952 2954 2963 2964 2965 2966 2967 2968 2978 2979 2980 2981 2982
2983 2992 2993 2994 2995 2996 2997 3030 3031 3045 3068 3069 3084 3085
3098 3108 3116 3120 3121 3132 3133 3166 3167 3168 3170 3171 3173 3174
3176 3178 3179 3181 3184 3185 3186 3189 3190 3193 3194 3196 3197 3199
3200 3207 3208 3222 3223 3225 3226 3228 3229 3230 3236 3237 3238 3241
3242 3243 3244 3245 3279 3281 3284 3286 3360 3364 3365 3369 3370 3371
3376 3377 3378 3379 3383 3384 3388 3393 3395 3414 3433 3436 3438 3443
3448 3453 3459 3462 3465 3467 3474 3475 3476 3477 3478 3479 3480 3481
3495 3498 3499 3500 3543 3550 3580 3590 3591 3626 3659 3660 3665 3667
3679 3721 3735 3737 3739 3741 3743 3745 3747 3748 3749 3750 3751 3752
3792 3794 3823 3824 3825 3830 3833 3834 3835 3842 3876 3877 3878 3888
3945 3954 3955 3968 4000 4001 4017 4030 4032 4036 4050 4062 4063 4064
4065 4070 4076 4077 4126 4127 4132 4171 4179 4181 4185 4187 4207 4208
4249 4253 4257 4268 4269 4270 4271 4285 4287 4289 4291 4293 4294 4295
4296 4298 4299 4302 4304 4307 4310 4324 4356 4357 4382 4385 4386 4392
4393 4394 4406 4417 4433 4435 4436 4439 4440 4455 4479 4483 4500 4507
4561 4570 4571 4572 4611 4612 4613 4626 4630 4634 4648 4671 4698 4711
4725 4732 4733 4736 4737 4740 4743 4744 4798 4813 4825 4829 4830 4831
4834 4835 4836 4838 4847 4860 4871 4872 4873 4876 4877 4878 4880 4885
4891 4898 4909 4913 4918 4940 4961 4962 4968 4993 5004 5008 5014 5018
5022 5026 5034 5038 5042 5043 5047 5054 5055 5059 5078 5092 5158 5159
5163 5177 5178 5179 5180 5181 5183 5185 5190 5191 5192 5193 5197 5198
5199 5200 5208 5209 5211 5212 5213 5214 5215 5216 5217 5218 5224 5226
5232 5233 5234 5253 5257 5273 5274 5275 5276 5277 5278 5279 5281 5291
5292 5302 5303 5304 5313 5314 5315 5326 5331 5335 5338 5339 5341 5344
5358 5359 5362 5364 5366 5368 5370 5372 5374 5378 5379 5383 5387 5418
5439 5445 5447 5450 5457 5459 5461 5676 5678 5681 5682 5683 5685 5688
5690 5777 5787 5788 5789 5792 5793 5812 5816 5821 5824 5830 5833 5843
5846 5850 5853 5856 5857 5860 5864 5879 5913 5928 5934 5939 5947 5950
5962 5965 5971 5976 6002 6003 6004 6005 6047 6051 6055 6059 6066 6119
6142 6143 6144 6145 6146 6147 6152 6155 6159 6181 6191 6192 6196 6202
6227 6229 6231 6242 6245 6262 6269 6271 6272 6273 6279 6304 6314 6318
6329 6332 6334 6336 6346 6351 6352 6353 6370 6371 6372 6373 6375 6376
6377 6378 6395 6400 6402 6413 6418 6419 6424 6427 6433
S20DAP 5877 6683# 6764
S20DLN 5877 6764#
SAB.LN 2167
SAB.MS 2168
SAB.PD 2164
SAB.SI 2163
SAB.SZ 800 2169
SAVPNT 632# 3165 3183 3188 3192 3204 3206 3209
SC%OPR 2000 2010
SC%WHL 2000 2010
SETATT 1620 1767 2422 2444 2503 2602 5416#
SETINP 1550 1703 1768 1806 2565 4823#
SETMO1 5785 5788#
SETMO2 5775 5790#
SETMOD 1595 1677 2462 2582 5772#
SETOUT 1669 2456 4870#
SFBSX2 6738
SI.FLG 2162
SNDACA 1722 1788 1835 1984 1988 3083#
SNDACC 2429 2513 2618 2661 2679 2732 2926#
SNDACK 1624 1687 1875 3037#
SNDACP 2296 3068#
SNDAT1 3227 3231 3236#
SNDAT2 3221 3234 3251#
SNDATT 2423 2504 3134 3140 3219#
SNDCFG 1461 2289 2898#
SNDCON 2704 3028#
SNDCRC 3070 3075#
SNDCT1 3002 3005 3008 3011 3014 3023#
SNDCTC 2466 2527 2637 2961#
SNDCTL 2984 2998 3000#
SNDCTR 2470 2531 2976#
SNDCTS 2641 2990#
SNDDSP 1623 1686 1711 1780 1824 2612 3132#
SNDDTI 3142 3279#
SNDEOF 1436 3044#
SNDFLG 649# 1232 6250 6258
SNDLST 657# 1215 1268 1270 4123 4129 4143 4176 4206
SNDNAM 3104 3114 3124 3151 3296#
SNDPR1 3262 3269#
SNDPRO 3144 3259#
SNDQSR 2144 2161#
SNDQU1 4129# 4137
SNDQU2 4125 4131 4133 4139#
SNDQUE 1413 1715 1782 1826 2304 4121#
SNDSAB 800# 2163 2164 2167 2168 2170
SNDSTS 1444 3046 3056#
SNDWL1 3096 3105#
SNDWL2 3106 3115#
SNDWLD 1617 1822 3093#
SP.QSR 2161
SRCMOD 758# 1315 1319 1323 1587 1667 1977 2412 2416 2437 2447 2448 2451 2493
2521 2570 2580 2592 3851 5456 5778 5782
SRVAC1 1486# 1490
SRVAC2 1487 1492#
SRVACC 1347 1356 1467#
SRVACP 1363 1370 1375 1933#
SRVCFG 1346 1451 1459#
SRVCFI 1340 1451#
SRVCRE 1496 1663#
SRVCT1 1848 1856#
SRVCTL 1362 1841#
SRVDE1 1705# 1720
SRVDEL 1498 1693#
SRVDI1 1812# 1834
SRVDI2 1816 1830#
SRVDIR 1500 1793#
SRVEX1 1770# 1787
SRVEXE 1502 1759#
SRVI00 1330 1382#
SRVI01 1331 1391#
SRVI05 1335 1408#
SRVMLS 1330# 1420 1439
SRVMS1 1419 1421 1425#
SRVMS2 1426 1428 1432 1439#
SRVMS3 1434 1441 1444#
SRVMSG 1308 1413# 1415 1423 1437 1442 1447
SRVNX3 1609 1616#
SRVNXT 1560 1564 1571# 1615 1979
SRVOPN 1495 1550#
SRVPFX 5906 5993# 5997
SRVS00 1330 1340#
SRVS01 1331 1346#
SRVS02 1332 1354#
SRVS03 1333 1362#
SRVS04 1334 1369#
SRVS05 1335 1375#
SRVSIZ 5906 5993 5997#
SRVSUB 1501 1659#
STADX1 6742
STADX2 6743
STOSTS 6227# 6425
STRARG 2110 2133 2140 2146#
STS$FC 732# 732 918
STS$LN 732# 732 918
STS$ST 732# 918
STSCOD 732# 918 2388 2690 3059
STSMSD 918# 3057 3330
STSRCN 732# 918
STSRFA 732# 918
STSSTV 732# 918 2389 2691 3060
STSTXT 797# 2198 2204 2395 2701
SUBMIT 1778 1954 2077#
SUM$FC 732# 732 918
SUM$LN 732# 732 918
SUM$ST 732# 918
SUMMNU 732# 918
SUMMSD 918# 3333
SUMNOA 732# 918
SUMNOK 732# 918
SUMNOR 732# 918
SUMPVN 732# 918
SWLOO1 5442 5445# 5447
SWLOO3 5440 5446 5450#
SWLOOK 1313 1317 5438#
SY$BCT 593
SY$BLK 593 4282
SY$CRC 593 2932
SY$DEL 593
SY$DIR 593 2674
SY$DTI 593 2793
SY$EXE 593 2657
SY$LN2 593 4280
SY$NAM 594 2795
SY$PRO 593 2791
SY$SEQ 593
SY$SPL 593 2713
SY$SQA 593
SY$SUB 593
SY$UBK 593
SY$VBN 593 3007
SY$WLD 594 2946 4828
T%TEXT 1089 1091 1136 1162 1169 1193 1299 1314 1318 1326 1473 2205 2219 2438
2439 2449 2455 2463 2520 2524 2583 2630 2633 2658 2703 2714 2746 2747
2768 2956 3524 4205 4345 4936 5973 5980 6040 6075 6093 6106 6107 6139
6164 6276 6285 6330 6339 6357 6388 6431
T1 1088 1090 1093 1198 1256 1289 1304 1320 1321 1485 1489 1577 1579 1582
1597 1598 1599 1601 1604 1737 1841 1842 1843 1865 1934 1935 1936 1938
1996 2000 2002 2006 2010 2052 2076 2077 2087 2093 2112 2116 2118 2148
2151 2152 2153 2161 2162 2163 2165 2166 2198 2201 2203 2395 2571 2572
2576 2625 2626 2627 2701 2774 2776 2778 2780 2782 2783 2784 2785 2817
2818 2829 2830 2844 2847 2850 2855 3056 3059 3099 3109 3117 3259 3268
3269 3406 3407 3408 3409 3410 3411 3412 3475 3476 3525 3526 3531 3532
3533 3534 3535 3537 3538 3542 3543 3545 3546 3549 3550 3557 3562 3569
3570 3571 3610 3614 3618 3622 3654 3657 3661 3666 3667 3681 3690 3693
3696 3699 3702 3717 3770 3792 3795 3798 3799 3800 3801 3802 3803 3826
3859 3863 3910 3913 3919 3956 4056 4058 4061 4062 4071 4074 4076 4213
4214 4215 4216 4219 4221 4224 4225 4229 4232 4235 4237 4239 4240 4243
4248 4249 4251 4252 4254 4255 4297 4298 4300 4302 4305 4307 4308 4310
4323 4327 4357 4361 4365 4384 4385 4389 4390 4405 4408 4410 4412 4414
4416 4417 4433 4438 4441 4457 4459 4460 4462 4466 4501 4503 4505 4506
4508 4548 4566 4587 4616 4635 4727 4729 4732 4734 4735 4741 4743 4824
4828 4919 4921 4925 4926 4927 4932 4941 4943 4944 4945 4947 4949 4951
4952 4954 4982 4983 4984 4985 4986 4987 4994 4997 5005 5009 5015 5019
5023 5027 5035 5060 5202 5219 5286 5294 5327 5332 5375 5376 5380 5418
5419 5421 5422 5423 5424 5425 5427 5428 5460 5461 5462 5774 5778 5779
5781 5782 5788 5790 5792 5795 5797 5801 5813 5822 5830 5831 5844 5850
5851 5854 5857 5858 5859 5861 5865 5868 5877 5878 5881 5883 5884 5887
5889 5890 5913 5914 5929 5958 5960 5963 5977 6001 6005 6006 6008 6009
6016 6019 6023 6026 6052 6058 6060 6116 6120 6122 6124 6127 6141 6146
6182 6183 6184 6186 6187 6188 6192 6197 6200 6203 6206 6228 6246 6259
6263 6271 6272 6274 6319 6323 6324 6334 6335 6337 6367 6369 6396 6397
6414 6419 6434
T2 1082 1085 1086 1087 1198 1256 1304 1581 1583 1584 1734 1744 1746 1751
1752 2146 2152 2153 2204 2574 2577 2578 2790 2792 2794 2796 2797 3060
3239 3245 3246 3247 3613 3617 3621 3625 3626 3627 3681 3704 3707 3710
3713 3716 3770 3794 3804 3805 3806 3807 3808 3809 4058 4059 4060 4217
4218 4231 4271 4277 4304 4305 4358 4364 4366 4367 4382 4387 4391 4406
4407 4409 4411 4413 4415 4461 4468 4502 4503 4504 4506 4549 4550 4577
4729 4730 4731 4826 4827 4920 4921 4923 4924 4928 4930 4932 4933 4934
4935 4937 4939 4941 4945 4946 4948 4951 4953 5376 5378 5379 5381 5416
5417 5426 5429 5795 5796 5797 5799 5862 5866 5902 5904 5915 5917 5929
5959 5960 5965 6001 6006 6010 6012 6013 6014 6018 6022 6023 6141 6149
6150 6151 6194 6247 6249 6252 6254 6304 6310 6316 6318 6319 6323 6324
6351 6379 6380 6403 6417 6420
T3 1198 1256 1304 3248 3688 3691 3694 3697 3700 3705 3708 3711 3714 3719
3720 3771 3775 3777 3778 3782 3784 3786 3787 3788 3790 4055 4061 4068
4069 4074 4075 4225 4226 4227 4228 4231 4272 4280 4282 4360 4366 4381
4393 4552 4553 4555 5955 5956 5959 5967
T4 1159 1189 1198 1229 1256 1289 1304 1948 2564 3093 3135 3354 3360 3388
3395 3430 3521 3590 3659 3679 3680 3718 3719 3721 3772 3790 3793 3903
3909 3931 3994 4054 4055 4060 4078 4082 4121 4171 4202 4257 4352 4353
4354 4367 4376 4377 4378 4383 4394 4473 4479 4558 4575 4593 4602 4659
4775 4958 5054 5202 5270 5286 5812 5903 5906 5955 5962 5968 6001 6061
6062 6082 6091 6116 6180 6181 6182 6193 6241
TERCV0 4839 4881 5165 5210 5877#
TERCV1 5878# 5881
TERCV2 5886 5890#
TERCVF 5880 5883#
TERCVT 1908 1922 2051 2054 3101 3111 3119 3958 4618 4637 4833 4875 4900 4981
4991 5062 5080 5085 5094 5109 5116 5139 5157 5207 5221 5256 5296 5329
5876#
TF 1144 1198 1229 1256 1289 1304 2036 2037 3360 3388 3395 3832 4171 4257
4479 5319 5320
TMPTXT 1080
TSTPRN 2483 2535 3891#
TXTBP 1080
TYPER 1080# 5863 5867
TYPST1 5826 5830# 5833
TYPST2 5832 5842#
TYPST3 5835 5839 5846#
TYPST4 5850# 5853
TYPST5 5852 5856#
TYPST6 5855 5858#
TYPST7 5840 5860#
TYPST8 5823 5845 5862#
TYPSTS 2200 2396 2702 5812#
UNMAP 4965 5054# 5099
USR$FC 732# 732 918
USR$LN 732# 732 918
USR$ST 732# 918
USRACC 732# 918
USRIDN 732# 918
USRMNU 732# 918
USRMSD 918# 3338
USRNUM 644# 2030 2090 6399
USROPT 732# 918
VALAT1 2819 2829#
VALAT3 2831 2837#
VALATT 1348 2247 2802#
VALCFG 1459 2341 2752#
VALCRC 1949 2887#
VALDTI 1354 2253 2844#
VALHD1 3441 3445#
VALHD2 3446 3451 3456#
VALHD3 3457 3466#
VALHD5 3470 3482#
VALHDR 3359 3428#
VALMS1 3537# 3541 3568
VALMS2 3539 3542#
VALMS3 3547 3555#
VALMS4 3559 3562#
VALMS5 3556 3564#
VALMS6 3563 3577#
VALMS7 3532 3572 3574 3583#
VALMSG 3387 3521#
VALNAM 2350 2359 2870#
VALPRO 1355 2254 2855#
VDAP20 46# 828 836
WLDJFN 774# 1559 1610 1616 1808 1819 1831 1970 3094 4844 4855 4859 5119
WLDSAV 637# 1811 1817 1821 1833
ZZ 968# 971 971# 5539# 5539 5540# 5540 5541# 5541 5542# 5542 5543# 5543 5544#
5544 5545# 5545 5546# 5546 5547# 5547 5548# 5548 5549# 5549 5550# 5550 5606#
5606 5607# 5607 5608# 5608 5609# 5609 5610# 5610 5611# 5611 5612# 5612 5613#
5613 5614# 5614
$CHKBL 2023#
$RETF 29 1152 1471 1480 1497 1499 1596 1664 1666 1678 1774 1844 1852 1854
1858 1860 1862 1864 1870 1872 1873 1937 1941 2043 2061 2398 2628 2764
2772 2807 2809 2815 2871 2873 2892 3374 3382 3433 3438 3443 3448 3453
3459 3462 3465 3467 3578 3581 3609 3640 3658 3687 3776 3791 3822 3888
4001 4711 4798 4813 4854 5141 5145 5388 5448 5463 5688 5789 5892 6129
6230 6266 6303
$RETIF 29 1022#
$RETIT 29 1025#
$RETT 29 1035 1071 1095 1098 1179 1221 1243 1276 1369 1387 1404 1409 1454
1462 1626 1689 1724 1755 1790 1837 1876 1881 1887 1893 1897 1913 1924
1929 1986 1990 2047 2058 2154 2196 2222 2269 2278 2290 2297 2326 2331
2337 2345 2357 2364 2373 2383 2393 2491 2541 2591 2651 2670 2709 2743
2798 2840 2845 2852 2856 2864 2882 2889 2893 2921 2942 2947 2970 2985
3025 3033 3039 3048 3076 3079 3087 3126 3146 3153 3169 3172 3180 3191
3195 3198 3205 3210 3404 3415 3429 3485 3501 3583 3595 3628 3642 3668
3796 3874 3879 3886 3894 3920 3961 3974 4043 4079 4113 4139 4145 4189
4261 4311 4328 4338 4369 4396 4446 4469 4481 4486 4509 4589 4595 4642
4651 4701 4714 4719 4745 4780 4809 4861 4892 4912 4916 4955 5056 5063
5086 5112 5120 5131 5144 5160 5184 5186 5222 5235 5258 5265 5268 5284
5300 5316 5322 5340 5345 5384 5430 5451 5458 5464 5470 5692 5802 5869
5981 6024 6028 6067 6086 6130 6166 6171 6207 6233 6260 6280 6286 6311
6326 6347 6350 6358 6381 6391 6437
$TMPTX 1080#
$TXTBP 1080#
%%CUR 6478 6478# 6479# 6479 6480# 6480 6481# 6481 6482# 6482 6483# 6483 6484# 6484
6485# 6485 6486# 6486 6487# 6487 6488# 6488 6503# 6503 6511# 6511 6512# 6512
6513# 6513 6514# 6514 6515# 6515 6516# 6516 6517# 6517 6518# 6518 6519# 6519
6520# 6520 6521# 6521 6522# 6523
%%DIF 6478# 6478 6479# 6479 6480# 6480 6481# 6481 6482# 6482 6483# 6483 6484# 6484
6485# 6485 6486# 6486 6487# 6487 6488# 6488 6503# 6503 6511# 6511 6512# 6512
6513# 6513 6514# 6514 6515# 6515 6516# 6516 6517# 6517 6518# 6518 6519# 6519
6520# 6520 6521# 6521 6523
%%YY 918# 918
%BAPND 2103
%DA%SI 3542 3543 4248 4249
%DA%ST 3543 3544 4249 4250
%DA%TY 3545 3546 4251 4252
%DF%AC 1320 1321 2189 2190 2803 2804
%DF%DA 5421 5422 5676 5677
%DF%LN 1300 1301
%DF%MR 5418 5419
%DF%RA 5427 5428 5681 5682
%DF%RF 5423 5424 5678 5679
%DI%CN 1167 1168
%DO%LN 1196 1197
%DO%OB 6206 6207
%DV%TY 2471 2472 3012 3013 4910 4911 4960 4961
%ER%MA 3576 3577 5814 5815 5890 5891
%ER%MI 3379 5815 5816
%ER%TY 3371 3372 3530 3531 3580 3581
%FB%BS 1581 1590 1591 1676 1677 1705 1706 1770 1771 1812 1813 2461 2462 2574
2816 2817 3240 3241 5342 5343 5344 5345 5776 5777 5791 5792
%FB%PG 2056 2057 2824 2825 3236 3237
%FP%GR 2861 2862
%FP%SL 2859 2860
%FP%WL 2863 2864
%OF%BS 5794 5795
..0001 1136# 1136 1137
..0002 1160#
..0003 1162# 1162 1163
..0004 1169# 1169 1170
..0005 1190 1190#
..0006 1193# 1193 1194
..0007 1198 1198#
..0010 1229 1229#
..0011 1256 1256#
..0012 1289 1289#
..0013 1299# 1299 1300
..0014 1304 1304#
..0015 1314# 1314
..0016 1318# 1318
..0017 1326# 1326
..0020 1949#
..0021 2205# 2205 2206
..0022 2219# 2219 2220
..0023 2438# 2438
..0024 2439# 2439
..0025 2449# 2449
..0026 2455# 2455
..0027 2463# 2463
..0030 2520# 2520
..0031 2524# 2524 2525
..0032 2565#
..0033 2583# 2583
..0034 2630# 2630 2631
..0035 2633# 2633 2634
..0036 2658# 2658 2659
..0037 2714# 2714 2715
..0040 2746# 2746 2747
..0041 2747# 2747 2748
..0042 2768# 2768 2769
..0043 2956# 2956 2957
..0044 3094#
..0045 3136#
..0046 3355#
..0047 3360 3360# 3363
..0050 3388 3388# 3391
..0051 3396 3396#
..0052 3431#
..0053 3522#
..0054 3524# 3524 3525
..0055 3591 3591#
..0056 3660 3660#
..0057 3932#
..0060 3964 3964#
..0061 3995#
..0062 4083#
..0063 4122#
..0064 4171 4171# 4172
..0065 4203#
..0066 4205# 4205 4206
..0067 4258 4258#
..0070 4345# 4345 4346
..0071 4474#
..0072 4480 4480#
..0073 4603#
..0074 4660#
..0075 4776#
..0076 4936# 4936
..0077 4959#
..0100 5055 5055#
..0101 5203 5203#
..0102 5271 5271#
..0103 5287 5287#
..0104 5813 5813#
..0105 5973# 5973 5974
..0106 5980# 5980 5981
..0107 6002 6002#
..0110 6040# 6040 6041
..0111 6075# 6075 6076
..0112 6093# 6093 6094
..0113 6106# 6106 6107
..0114 6107# 6107 6108
..0115 6117 6117#
..0116 6139# 6139 6140
..0117 6164# 6164 6165
..0120 6242#
..0121 6276# 6276 6277
..0122 6285# 6285 6286
..0123 6330# 6330 6331
..0124 6339# 6339 6340
..0125 6357# 6357 6358
..0126 6388# 6388 6389
..0127 6431# 6431 6432
..CSC 1167# 1167 1168 1168# 1196# 1196 1197 1197# 1300# 1300 1301 1301# 1320# 1320
1321 1321# 1581# 1581 1590# 1590 1591 1591# 1676# 1676 1677 1677# 1705# 1705
1706 1706# 1770# 1770 1771 1771# 1812# 1812 1813 1813# 2056# 2056 2057 2057#
2189# 2189 2190 2190# 2461# 2461 2462 2462# 2471# 2471 2472 2472# 2574# 2574
2803# 2803 2804 2804# 2816# 2816 2817 2817# 2824# 2824 2825 2825# 2859# 2859
2860 2860# 2861# 2861 2862 2862# 2863# 2863 2864 2864# 3012# 3012 3013 3013#
3236# 3236 3237 3237# 3240# 3240 3241 3241# 3371# 3371 3372 3372# 3379# 3379
3530# 3530 3531 3531# 3542# 3542 3543 3543# 3544 3544# 3545# 3545 3546 3546#
3576# 3576 3577 3577# 3580# 3580 3581 3581# 4248# 4248 4249 4249# 4250 4250#
4251# 4251 4252 4252# 4910# 4910 4911 4911# 4960# 4960 4961 4961# 5342# 5342
5343 5343# 5344# 5344 5345 5345# 5418# 5418 5419 5419# 5421# 5421 5422 5422#
5423# 5423 5424 5424# 5427# 5427 5428 5428# 5676# 5676 5677 5677# 5678# 5678
5679 5679# 5681# 5681 5682 5682# 5776# 5776 5777 5777# 5791# 5791 5792 5792#
5794# 5794 5795 5795# 5814# 5814 5815 5815# 5816 5816# 5890# 5890 5891 5891#
6206# 6206 6207 6207#
..CSN 1167# 1167 1196# 1196 1300# 1300 1320# 1320 1581# 1581 1590# 1590 1676# 1676
1705# 1705 1770# 1770 1812# 1812 2056# 2056 2189# 2189 2461# 2461 2471# 2471
2574# 2574 2803# 2803 2816# 2816 2824# 2824 2859# 2859 2861# 2861 2863# 2863
3012# 3012 3236# 3236 3240# 3240 3371# 3371 3379# 3379 3530# 3530 3542# 3542
3543# 3543 3545# 3545 3576# 3576 3580# 3580 4248# 4248 4249# 4249 4251# 4251
4910# 4910 4960# 4960 5342# 5342 5344# 5344 5418# 5418 5421# 5421 5423# 5423
5427# 5427 5676# 5676 5678# 5678 5681# 5681 5776# 5776 5791# 5791 5794# 5794
5814# 5814 5815# 5815 5890# 5890 6206# 6206
..CX1 2390# 2390 2391 2627# 2627 2628 2692# 2692 2693 2694# 2694 2695 2696# 2696
2697 2698# 2698 2699 2783# 2783 2784 3226# 3226 3227 3229# 3229 3230 3230#
3231 3857# 3857 3858 5140# 5140 5141
..CX2 2390# 2391 2627# 2628 2692# 2693 2694# 2695 2696# 2697 2698# 2699 2783# 2783
2784 3226# 3227 3229# 3230 3230# 3231 3857# 3858 5140# 5141
..LOC 607# 608# 609# 610# 630# 632# 633# 634# 635# 636# 637# 638# 639# 640#
641# 642# 643# 644# 645# 646# 647# 648# 649# 650# 651# 652# 653# 656#
657# 672# 673# 680# 681# 682# 683# 684# 732 732# 750# 754# 758# 759#
764# 765# 766# 767# 768# 769# 770# 771# 772# 773# 774# 775# 776# 777#
780# 781# 782# 783# 784# 788# 789# 793# 797# 798# 800# 801# 802# 806#
807# 808# 809# 810# 812# 817
..MX1 1149# 1150 1231# 1231 1232 1398# 1399 1445# 1445 1446 1453# 1453 1454 1471#
1471 1474# 1474 1475 1480# 1480 1497# 1497 1499# 1499 1574# 1574 1575 1596#
1596 1606# 1606 1607 1622# 1622 1623 1625# 1625 1626 1659# 1659 1660 1664#
1664 1666# 1666 1678# 1678 1682# 1682 1683 1685# 1685 1686 1688# 1688 1689
1697# 1697 1698 1699# 1699 1700 1701# 1701 1702 1707# 1707 1708 1723# 1723
1724 1728# 1728 1729 1739# 1739 1740 1753# 1753 1754 1774# 1774 1775# 1775
1776 1789# 1789 1790 1800# 1800 1801 1802# 1802 1803 1804# 1804 1805 1814#
1814 1815 1836# 1836 1837 1844# 1844 1852# 1852 1854# 1854 1858# 1858 1860#
1860 1862# 1862 1864# 1864 1870# 1870 1872# 1872 1873# 1873 1878# 1878 1879
1889# 1889 1890 1937# 1937 1941# 1941 1985# 1985 1986 1989# 1989 1990 2033#
2033 2034 2039# 2039 2040 2059# 2059 2060 2116# 2116 2117 2161# 2161 2162
2165# 2165 2166 2176# 2176 2177 2181# 2181 2182 2201# 2202 2203# 2204 2343#
2343 2344 2369# 2369 2370 2381# 2381 2382 2424# 2424 2425 2430# 2430 2431
2432# 2432 2433 2467# 2467 2468 2474# 2474 2475 2477# 2477 2478 2480# 2480
2481 2484# 2484 2485 2502# 2502 2503 2507# 2507 2508 2509# 2509 2510 2511#
2511 2512 2514# 2514 2515 2516# 2516 2517 2528# 2528 2529 2532# 2532 2533
2536# 2536 2537 2585# 2585 2586 2606# 2606 2607 2608# 2608 2609 2613# 2613
2614 2615# 2615 2616 2619# 2619 2620 2635# 2635 2636 2638# 2638 2639 2642#
2642 2643 2645# 2645 2646 2659# 2659 2660 2662# 2662 2663 2664# 2664 2665
2680# 2680 2681 2682# 2682 2683 2715# 2715 2716 2720# 2720 2721 2722# 2722
2723 2726# 2726 2727 2728# 2728 2729 2733# 2733 2734 2735# 2735 2736 2738#
2738 2739 2752# 2752 2753 2764# 2764 2772# 2772 2784# 2784 2785 2790# 2790
2791 2807# 2807 2809# 2809 2815# 2815 2839# 2839 2840 2871# 2871 2873# 2873
2892# 2892 2928# 2928 2929 2934# 2934 2935 2963# 2963 2964 2965# 2965 2966
2967# 2967 2968 2978# 2978 2979 2980# 2980 2981 2982# 2982 2983 2992# 2992
2993 2994# 2994 2995 2996# 2996 2997 3017# 3017 3018 3019# 3019 3020 3030#
3030 3031 3044# 3044 3045 3047# 3047 3048 3068# 3068 3069 3084# 3084 3085
3099# 3099 3100 3102# 3102 3103 3109# 3109 3110 3112# 3112 3113 3117# 3117
3118 3120# 3120 3121 3137# 3137 3138 3147# 3147 3148 3219# 3219 3220 3232#
3232 3233 3249# 3249 3250 3279# 3279 3280 3368# 3368 3369 3377# 3377 3433#
3433 3438# 3438 3443# 3443 3448# 3448 3453# 3453 3459# 3459 3462# 3462 3465#
3465 3467# 3467 3528# 3528 3529 3575# 3575 3576 3737# 3737 3738 3830# 3830
3831 3832# 3832 3833 3888# 3888 3956# 3956 3957 4001# 4001 4616# 4616 4617
4711# 4711 4798# 4798 4813# 4813 4825# 4825 4826 4857# 4857 4858 4871# 4871
4872 4888# 4888 4889 4988# 4988 4989 4992# 4992 4993 4993# 4994 4996# 4996
4997 5003# 5003 5004 5004# 5005 5007# 5007 5008 5008# 5009 5013# 5013 5014
5014# 5015 5017# 5017 5018 5018# 5019 5021# 5021 5022 5022# 5023 5025# 5025
5026 5026# 5027 5033# 5033 5034 5034# 5035 5219# 5219 5220 5294# 5294 5295
5327# 5327 5328 5361# 5361 5362 5386# 5386 5387 5416# 5416 5417 5460# 5460
5461 5688# 5688 5777# 5777 5778 5789# 5789 5884# 5884 5885 5887# 5887 5888
5889# 5889 5890 5958# 5958 5959 5970# 5970 5971 5977# 5977 5978 6061# 6061
6062 6065# 6065 6066 6413# 6413 6414
..MX2 1231# 1231 1232 1445# 1445 1446 1453# 1453 1454 1471# 1471 1474# 1475 1480#
1480 1497# 1497 1499# 1499 1574# 1575 1596# 1596 1606# 1607 1622# 1623 1625#
1625 1626 1659# 1659 1660 1664# 1664 1666# 1666 1678# 1678 1682# 1683 1685#
1686 1688# 1688 1689 1697# 1698 1699# 1700 1701# 1702 1707# 1708 1723# 1723
1724 1728# 1728 1729 1739# 1739 1740 1753# 1753 1754 1774# 1774 1775# 1776
1789# 1789 1790 1800# 1801 1802# 1803 1804# 1805 1814# 1815 1836# 1836 1837
1844# 1844 1852# 1852 1854# 1854 1858# 1858 1860# 1860 1862# 1862 1864# 1864
1870# 1870 1872# 1872 1873# 1873 1878# 1878 1879 1889# 1889 1890 1937# 1937
1941# 1941 1985# 1985 1986 1989# 1989 1990 2033# 2033 2034 2039# 2040 2059#
2060 2116# 2116 2117 2161# 2162 2165# 2165 2166 2176# 2176 2177 2181# 2181
2182 2343# 2343 2344 2369# 2370 2381# 2382 2424# 2425 2430# 2431 2432# 2432
2433 2467# 2467 2468 2474# 2475 2477# 2478 2480# 2480 2481 2484# 2484 2485
2502# 2503 2507# 2508 2509# 2510 2511# 2512 2514# 2515 2516# 2516 2517 2528#
2528 2529 2532# 2532 2533 2536# 2536 2537 2585# 2586 2606# 2607 2608# 2609
2613# 2614 2615# 2616 2619# 2619 2620 2635# 2636 2638# 2638 2639 2642# 2642
2643 2645# 2645 2646 2659# 2660 2662# 2663 2664# 2664 2665 2680# 2681 2682#
2682 2683 2715# 2715 2716 2720# 2720 2721 2722# 2723 2726# 2727 2728# 2729
2733# 2734 2735# 2735 2736 2738# 2738 2739 2752# 2753 2764# 2764 2772# 2772
2784# 2784 2785 2790# 2791 2807# 2807 2809# 2809 2815# 2815 2839# 2839 2840
2871# 2871 2873# 2873 2892# 2892 2928# 2929 2934# 2935 2963# 2964 2965# 2966
2967# 2968 2978# 2979 2980# 2981 2982# 2983 2992# 2993 2994# 2995 2996# 2997
3017# 3018 3019# 3020 3030# 3031 3044# 3045 3047# 3047 3048 3068# 3069 3084#
3085 3099# 3099 3100 3102# 3103 3109# 3109 3110 3112# 3113 3117# 3117 3118
3120# 3121 3137# 3138 3147# 3148 3219# 3220 3232# 3232 3233 3249# 3249 3250
3279# 3280 3368# 3369 3377# 3377 3433# 3433 3438# 3438 3443# 3443 3448# 3448
3453# 3453 3459# 3459 3462# 3462 3465# 3465 3467# 3467 3528# 3529 3575# 3576
3737# 3738 3830# 3830 3831 3832# 3833 3888# 3888 3956# 3956 3957 4001# 4001
4616# 4616 4617 4711# 4711 4798# 4798 4813# 4813 4825# 4825 4826 4857# 4858
4871# 4871 4872 4888# 4889 4988# 4988 4989 4992# 4992 4993 4993# 4994 4996#
4996 4997 5003# 5003 5004 5004# 5005 5007# 5007 5008 5008# 5009 5013# 5013
5014 5014# 5015 5017# 5017 5018 5018# 5019 5021# 5021 5022 5022# 5023 5025#
5025 5026 5026# 5027 5033# 5033 5034 5034# 5035 5219# 5219 5220 5294# 5294
5295 5327# 5327 5328 5361# 5362 5386# 5387 5416# 5417 5460# 5460 5461 5688#
5688 5777# 5777 5778 5789# 5789 5884# 5885 5887# 5888 5889# 5890 5958# 5958
5959 5970# 5970 5971 5977# 5977 5978 6061# 6061 6062 6065# 6065 6066 6413#
6414
..NV 1080# 1080 1081 1082
..PST 1167# 1167 1196# 1196 1300# 1300 1320# 1320 1581# 1581 1590# 1590 1676# 1676
1705# 1705 1770# 1770 1812# 1812 2056# 2056 2189# 2189 2461# 2461 2471# 2471
2574# 2574 2803# 2803 2816# 2816 2824# 2824 2859# 2859 2861# 2861 2863# 2863
3012# 3012 3236# 3236 3240# 3240 3371# 3371 3379# 3379 3530# 3530 3542# 3542
3543# 3543 3545# 3545 3576# 3576 3580# 3580 4248# 4248 4249# 4249 4251# 4251
4910# 4910 4960# 4960 5342# 5342 5344# 5344 5418# 5418 5421# 5421 5423# 5423
5427# 5427 5676# 5676 5678# 5678 5681# 5681 5776# 5776 5791# 5791 5794# 5794
5814# 5814 5815# 5815 5890# 5890 6206# 6206
..STKN 2023# 2023 2024 2025
..STKQ 2023# 2023 2025
..STKR 2023# 2025
..TRR 1080# 1082
..TSA1 1159# 1159 1189# 1189 1198# 1198 1229# 1229 1256# 1256 1289# 1289 1304# 1304
1948# 1948 2564# 2564 3093# 3093 3135# 3135 3354# 3354 3360# 3360 3388# 3388
3395# 3395 3430# 3430 3521# 3521 3590# 3590 3659# 3659 3931# 3931 3963# 3963
3994# 3994 4082# 4082 4121# 4121 4171# 4171 4202# 4202 4257# 4257 4473# 4473
4479# 4479 4602# 4602 4659# 4659 4775# 4775 4958# 4958 5054# 5054 5202# 5202
5270# 5270 5286# 5286 5812# 5812 6001# 6001 6116# 6116 6241# 6241
..TX1 1219# 1219 1220 1307# 1307 1308 1408# 1408 1409 1416# 1416 1417 1418# 1418
1419 1427# 1427 1428 1435# 1435 1436 1477# 1477 1478 1479# 1479 1480 1553#
1553 1554 1555# 1555 1556 1557# 1557 1558 1847# 1847 1848 1923# 1923 1953#
1953 1954 1955# 1955 1956 1957# 1957 1958 1959# 1959 1960 2000# 2000 2001
2010# 2010 2011 2162# 2162 2163 2199# 2199 2200 2202# 2202 2203 2307# 2307
2308 2316# 2316 2317 2324# 2324 2325 2335# 2335 2336 2344# 2344 2345 2352#
2352 2353 2356# 2356 2357 2372# 2372 2373 2380# 2380 2381 2392# 2392 2393
2397# 2397 2398 2420# 2420 2421 2421# 2422 2442# 2442 2443# 2443 2490# 2490
2491 2539# 2539 2540 2600# 2600 2601 2601# 2602 2611# 2611 2612 2626# 2626
2627 2657# 2657 2658 2668# 2668 2669 2674# 2674 2675 2677# 2677 2678 2688#
2688 2689 2707# 2707 2708 2713# 2713 2714 2741# 2741 2742 2791# 2791 2792
2792# 2793 2793# 2794 2794# 2795 2795# 2796 2796# 2797 2806# 2806 2807 2808#
2808 2809 2818# 2818 2819 2829# 2829 2830 2830# 2831 2847# 2847 2848 2850#
2850 2851 2872# 2872 2873 2874# 2874 2875 2876# 2876 2877 2878# 2878 2879
2880# 2880 2881 2932# 2932 2933 2946# 2946 2947 3007# 3007 3008 3010# 3010
3011 3095# 3095 3096 3105# 3105 3106 3139# 3139 3140 3141# 3141 3142 3143#
3143 3144 3145# 3145 3146 3268# 3268 3269 3281# 3281 3282 3284# 3284 3285
3440# 3440 3441 3445# 3445 3446 3450# 3450 3451 3456# 3456 3457 3466# 3466
3467 3468# 3468 3469 3526# 3526 3527 3538# 3538 3539 3546# 3546 3547 3555#
3555 3556 3577# 3577 3578 3738# 3738 3739 3739# 3740 3740# 3741 3741# 3742
3742# 3743 3743# 3744 3744# 3745 3745# 3746 3746# 3747 3747# 3748 3749# 3749
3750 3780# 3780 3781 3787# 3787 3788 3871# 3871 3872 3872# 3873 3878# 3878
3879 3892# 3892 3893 3912# 3912 3913 3915# 3915 3916 3916# 3917 4105# 4105
4106 4187# 4187 4188 4222# 4222 4223 4226# 4226 4227 4228# 4228 4234# 4234
4235 4240# 4240 4241 4243# 4243 4244 4245# 4245 4246 4274# 4274 4275 4276#
4276 4277 4278# 4278 4280# 4280 4281 4281# 4282 4282# 4283 4283# 4284 4286#
4286 4287 4288# 4288 4289 4290# 4290 4291 4292# 4292 4293 4301# 4301 4302
4303# 4303 4304 4306# 4306 4307 4309# 4309 4310 4407# 4407 4408 4408# 4409
4409# 4410 4410# 4411 4411# 4412 4412# 4413 4413# 4414 4414# 4415 4415# 4416
4416# 4417 4442# 4442 4443 4444# 4444 4445 4550# 4550 4551 4572# 4572 4573
4577# 4577 4578 4807# 4807 4808 4828# 4828 4829 4829# 4830 4841# 4841 4842
4843# 4843 4844 4847# 4847 4848 4885# 4885 4886 4915# 4915 4916 4962# 4962
4963 4968# 4968 4969 5077# 5077 5078 5082# 5082 5083 5083# 5084 5091# 5091
5092 5107# 5107 5108 5111# 5111 5112 5142# 5142 5143 5143# 5144 5164# 5164
5208# 5208 5209 5359# 5359 5360 5362# 5362 5363 5363# 5364 5364# 5365 5365#
5366 5366# 5367 5367# 5368 5368# 5369 5369# 5370 5370# 5371 5371# 5372 5372#
5373 5373# 5374 5374# 5375 5426# 5426 5427 5438# 5438 5439 5441# 5441 5442
5443# 5443 5444 5444# 5445 5680# 5680 5681 5682# 5682 5683 5683# 5684 5773#
5773 5774 5799# 5799 5800 5829# 5829 5830 5885# 5885 5886 5888# 5888 5889
5891# 5891 5892 5904# 5904 5905 5917# 5917 5918 6044# 6044 6045 6071# 6071
6072 6085# 6085 6086 6087# 6087 6088 6089# 6089 6090 6122# 6122 6128# 6128
6129 6162# 6162 6163 6300# 6300 6307# 6307 6308 6390# 6390 6391
..TX2 1219# 1219 1220 1307# 1307 1308 1408# 1408 1409 1416# 1416 1417 1418# 1418
1419 1427# 1427 1428 1435# 1435 1436 1477# 1478 1479# 1480 1553# 1554 1555#
1556 1557# 1558 1847# 1848 1923# 1923 1953# 1953 1954 1955# 1955 1956 1957#
1957 1958 1959# 1959 1960 2000# 2001 2010# 2011 2162# 2162 2163 2199# 2199
2200 2202# 2202 2203 2307# 2307 2308 2316# 2316 2317 2324# 2324 2325 2335#
2335 2336 2344# 2344 2345 2352# 2353 2356# 2356 2357 2372# 2372 2373 2380#
2380 2381 2392# 2392 2393 2397# 2397 2398 2420# 2421 2421# 2422 2442# 2442
2443# 2443 2490# 2490 2491 2539# 2539 2540 2600# 2601 2601# 2602 2611# 2612
2626# 2627 2657# 2658 2668# 2668 2669 2674# 2674 2675 2677# 2678 2688# 2688
2689 2707# 2707 2708 2713# 2713 2714 2741# 2741 2742 2791# 2791 2792 2792#
2793 2793# 2794 2794# 2795 2795# 2796 2796# 2797 2806# 2807 2808# 2809 2818#
2819 2829# 2829 2830 2830# 2831 2847# 2848 2850# 2851 2872# 2873 2874# 2875
2876# 2877 2878# 2879 2880# 2881 2932# 2932 2933 2946# 2947 3007# 3008 3010#
3011 3095# 3095 3096 3105# 3105 3106 3139# 3140 3141# 3142 3143# 3144 3145#
3146 3268# 3269 3281# 3282 3284# 3285 3440# 3441 3445# 3446 3450# 3451 3456#
3457 3466# 3467 3468# 3469 3526# 3526 3527 3538# 3538 3539 3546# 3546 3547
3555# 3556 3577# 3577 3578 3738# 3739 3739# 3740 3740# 3741 3741# 3742 3742#
3743 3743# 3744 3744# 3745 3745# 3746 3746# 3747 3747# 3748 3749# 3750 3780#
3781 3787# 3787 3788 3871# 3872 3872# 3873 3878# 3878 3879 3892# 3893 3912#
3913 3915# 3916 3916# 3917 4105# 4105 4106 4187# 4188 4222# 4222 4223 4226#
4227 4228# 4228 4234# 4234 4235 4240# 4240 4241 4243# 4243 4244 4245# 4246
4274# 4275 4276# 4277 4278# 4278 4280# 4280 4281 4281# 4282 4282# 4283 4283#
4284 4286# 4287 4288# 4289 4290# 4291 4292# 4293 4301# 4302 4303# 4304 4306#
4307 4309# 4310 4407# 4408 4408# 4409 4409# 4410 4410# 4411 4411# 4412 4412#
4413 4413# 4414 4414# 4415 4415# 4416 4416# 4417 4442# 4443 4444# 4445 4550#
4551 4572# 4572 4573 4577# 4578 4807# 4808 4828# 4829 4829# 4830 4841# 4841
4842 4843# 4843 4844 4847# 4847 4848 4885# 4885 4886 4915# 4916 4962# 4963
4968# 4969 5077# 5077 5078 5082# 5082 5083 5083# 5084 5091# 5091 5092 5107#
5107 5108 5111# 5111 5112 5142# 5142 5143 5143# 5144 5164# 5164 5208# 5208
5209 5359# 5359 5360 5362# 5362 5363 5363# 5364 5364# 5365 5365# 5366 5366#
5367 5367# 5368 5368# 5369 5369# 5370 5370# 5371 5371# 5372 5372# 5373 5373#
5374 5374# 5375 5426# 5427 5438# 5439 5441# 5441 5442 5443# 5443 5444 5444#
5445 5680# 5681 5682# 5683 5683# 5684 5773# 5774 5799# 5799 5800 5829# 5829
5830 5885# 5885 5886 5888# 5888 5889 5891# 5891 5892 5904# 5904 5905 5917#
5917 5918 6044# 6044 6045 6071# 6071 6072 6085# 6085 6086 6087# 6087 6088
6089# 6089 6090 6122# 6122 6128# 6128 6129 6162# 6162 6163 6300# 6300 6307#
6307 6308 6390# 6390 6391
.A13 1160 1189 1198 1256 1289 1304 1949 2565 3094 3136 3355 3360 3388 3395
3431 3522 3590 3659 3932 3995 4083 4121 4171 4203 4257 4474 4479 4603
4660 4776 4959 5054 5202 5270 5286 5812 6001 6116 6242
.A14 1160 1189 1198 1256 1289 1304 1949 2565 3094 3136 3355 3360 3388 3395
3431 3522 3590 3659 3932 3995 4083 4121 4171 4203 4257 4474 4479 4603
4660 4776 4959 5054 5202 5270 5286 5812 6001 6116 6242
.A15 1160 1189 1198 1256 1289 1304 1949 2565 3094 3136 3355 3360 3388 3395
3431 3522 3590 3659 3932 3995 4083 4121 4171 4203 4257 4474 4479 4603
4660 4776 4959 5054 5202 5270 5286 5812 6001 6116 6242
.A16 1159 1160 1189 1198 1229 1256 1289 1304 1948 1949 2564 2565 3093 3094
3135 3136 3354 3355 3360 3388 3395 3430 3431 3521 3522 3590 3659 3931
3932 3994 3995 4082 4083 4121 4122 4171 4202 4203 4257 4473 4474 4479
4602 4603 4659 4660 4775 4776 4958 4959 5054 5202 5270 5286 5812 6001
6116 6241 6242
.ACB 1159# 1159 1189# 1189 1190# 1190 1198# 1198 1229# 1229 1256# 1256 1289# 1289
1304# 1304 1948# 1948 2564# 2564 3093# 3093 3135# 3135 3354# 3354 3360# 3360
3388# 3388 3395# 3395 3396# 3396 3430# 3430 3521# 3521 3590# 3590 3591# 3591
3659# 3659 3660# 3660 3931# 3931 3963# 3963 3994# 3994 4082# 4082 4121# 4121
4171# 4171 4202# 4202 4257# 4257 4258# 4258 4473# 4473 4479# 4479 4480# 4480
4602# 4602 4659# 4659 4775# 4775 4958# 4958 5054# 5054 5055# 5055 5202# 5202
5203# 5203 5270# 5270 5271# 5271 5286# 5286 5287# 5287 5812# 5812 5813# 5813
6001# 6001 6002# 6002 6116# 6116 6117# 6117 6241# 6241
.ACM 1159# 1159 1160 1189# 1189 1190 1198# 1198 1229# 1229 1256# 1256 1289# 1289
1304# 1304 1948# 1948 1949 2564# 2564 2565 3093# 3093 3094 3135# 3135 3136
3354# 3354 3355 3360# 3360 3388# 3388 3395# 3395 3396 3430# 3430 3431 3521#
3521 3522 3590# 3590 3591 3659# 3659 3660 3931# 3931 3932 3963# 3964 3994#
3994 3995 4082# 4082 4083 4121# 4121 4122 4171# 4171 4202# 4202 4203 4257#
4257 4258 4473# 4473 4474 4479# 4479 4480 4602# 4602 4603 4659# 4659 4660
4775# 4775 4776 4958# 4958 4959 5054# 5054 5055 5202# 5202 5203 5270# 5270
5271 5286# 5286 5287 5812# 5812 5813 6001# 6001 6002 6116# 6116 6117 6241#
6241 6242
.ARDAT 918 971# 3558
.ARDTI 918 971#
.AREXF 918 971#
.ARFIX 918 971#
.ARINT 918 971#
.ARMNU 918 971# 3565 4252
.ARPRO 918 971#
.ARVAR 918 971#
.CHCRT 2474 3880 4575
.CHESC 4568
.CHLFD 2477 3883 3914 4567 4574
.CKAAC 2025 2041 2045
.CKACD 2029
.CKACF 1671 2046
.CKACN 1707 1961
.CKADL 1814
.CKAEC 2032
.CKALD 2031
.CKARD 1571 1775
.CKAUD 2027
.DCCOD 1259
.DCPTR 1262
.DCX0 6478#
.DCX1 6479#
.DCX2 6480#
.DCX24 6488#
.DCX3 6481#
.DCX32 6503#
.DCX33 6511#
.DCX34 6104 6394 6512#
.DCX35 6513#
.DCX36 6105 6514#
.DCX37 6515#
.DCX38 1148 6516#
.DCX39 6517#
.DCX4 6482#
.DCX40 6518#
.DCX41 6519#
.DCX42 6426 6520#
.DCX43 6521#
.DCX5 6483#
.DCX6 6484#
.DCX7 6485#
.DCX8 6486#
.DCX9 6487#
.DFFLG 1300 1320 2189 2803
.DFLFA 1312 2494 2569 3000
.DFLFS 1481 1484 1731 4831 4873
.DFRFA 1316 2419 2441 2492 2599 2629 3001
.DFRFO 2187
.DFRFS 2185
.DFRTN 2404 2405
.DFSIZ 1298
.DIACP 1241
.DICDN 1235
.DIFLG 1163
.DIINA 1237
.DIMSG 1165
.DISIZ 1161
.DMACC 918 1347 1356 1471 1480 1497 1499 3324
.DMACK 918 2256 2263 2369 3327
.DMACL 918 3337
.DMACP 918 1363 1370 1375 1937 1941 2245 2257 2275 2381 3328
.DMALC 918 3332
.DMATT 918 1348 1596 1664 1666 1678 2247 2402 2627 2807 2809 2815 3323 5688
5789
.DMCFG 918 1340 1346 2239 2764 2772 3322 3570
.DMCON 918 3326
.DMCTL 918 1362 1844 1852 1854 1858 1860 1862 1864 1870 1872 1873 3325
.DMDAT 918 1369 2269 2278 3329 3464 3571 4001
.DMDTI 918 1354 2253 3334
.DMKDF 918 3331
.DMNAM 918 2246 2255 2276 2362 2458 2567 2871 2873 3336
.DMPRO 918 1355 2254 3335
.DMSTS 918 2240 2248 2258 2264 2270 2277 3330
.DMSUM 918 3333
.DMUSR 918 3338
.DNCON 5952
.DOACT 2139 5038 5934 6214
.DOCID 6396
.DODSC 6217
.DOFLG 1196 1218 5902 6043 6062 6206
.DONOD 1206 5914 5921 5982 6210
.DOOBJ 5993
.DOOPD 6215
.DOPSI 6060
.DOPSW 5928 6213
.DOSIZ 641 1192 1204
.DOSSZ 6200
.DOTSK 6052 6066 6211
.DOUIC 6194
.DOUSR 1400 2132 2134 5043 5047 5939 6212
.DPBCT 665# 3460 3481 3944 3967 3998 4003 4056 4077 4273 4308 4727 4744
.DPBPT 667# 3411 3412 3477 3478 3641 3841 3875 4059 4295 4296 4337 4360 4381
4474 4582 4583 4730 6245 6262 6318 6351 6378
.DPCNT 666# 3409 3469 3473 3474 3475 3482 3560 3573 3638 3686 3821 3842 3950
3973 3996 4089 4180 4268 4294 4321 4335 4354 4378 4431 4453 4475 4483
4553 4580 4688 6246 6263 6319 6323 6379
.DPFLG 662# 3436 3439 3480 4185 4267 4284
.DPHDR 668#
.DPLEN 663# 3408 3410 3476 3483 4126 4156 4179 4181 4183 4184 4188 4269 4270
6248 6324 6380
.DPSID 664# 3444 4275 4300
.DPSIZ 669# 3495 3499 6373 6376
.DPTYP 661# 2355 3370 3378 3396 3406 3407 3428 3434 3463 3479 3484 3569 4173
4212 4297 4480 4594 4713 4718 4779 6264 6265 6279
.DVCDP 5393
.DVCDR 5397
.DVDSK 3013 4911 4967 5391
.DVLPT 5392
.DVMAJ 596 2907
.DVMIN 596 2909
.DVMTA 5395
.DVNUL 5398
.DVPLT 5394
.DVSFT 596 2913
.DVTTY 2472 5396
.DVUSF 2915
.DVUSR 596 2911
.ERBAS 5817 5818
.ERMAX 5818
.FBAUT 3963 3964 5042
.FBBYV 1581 1590 1676 1705 1770 1812 2056 2461 2574 2816 2824 3236 3240 4918
4987 5007 5009 5017 5019 5342 5344 5776 5791
.FBCRE 5021 5023
.FBCRV 2848 3280 4992 4994
.FBCTL 5013 5015
.FBLEN 784 793 2810 3965 4645 5331 5334
.FBPRT 2859 2861 2863 3261
.FBREF 5025 5027
.FBSIZ 2828 2836 3239 4940 4983 5003 5005
.FBUSW 5033 5035
.FBWRT 2851 3283 4996 4997
.FHSLF 1031 1998 2008 3953 4611 5059 5218 5290
.FP 1080 1086 1087 1092 1097
.FPFFO 2126
.FST20 2905
.GJDEV 1399
.GJDIR 1401
.GJEXT 1762 1797
.GJGEN 4830 4872
.GJNAM 1796
.GJSRC 1403 2183
.JBVER 828#
.LLACC 555# 1445 1453 1723 1789 1836 1985 2181 2343 2432 2516 2619 2664 2682
2735
.LLACP 559# 2484 2536 2645 2738 3047
.LLATT 556# 2839
.LLCFG 554# 2176 6065
.LLCTL 557# 1625 1688 1989 2467 2528 2638
.LLDAT 558# 1878 1889 2328 2480 2532 2642
.MD1 1578 2575 5504# 5539 5540 5542 5544 5571 5574 5733 5779
.MD10 5475 5476 5477 5478 5479 5483 5513# 5546 5548 5578 5579 5580 5741 5742
5743 5747 5749 5751 5754 5755 5756 5757 5761 5762
.MD11 3852 5514# 5581 5748 5750
.MD12 3854 5515# 5582 5752 5753
.MD2 5505# 5540 5544 5572 5576 5744
.MD3 5506# 5541 5543 5545 5573 5575 5577 5745
.MD4 5507# 5542 5544 5734
.MD5 5508# 5541 5543 5545 5737
.MD6 5509# 5540 5544 5735
.MD7 5510# 5541 5543 5545 5736
.MD8 1585 1765 2413 2501 2523 2579 5472 5473 5474 5480 5481 5482 5511# 5546
5547 5548 5549 5550 5578 5579 5580 5730 5731 5732 5738 5739 5740 5741
5742 5743 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757
5758 5759 5760 5761 5762 5781
.MD9 5512# 5547 5738 5739 5740 5746
.MOACN 6059
.MOCC 6402
.MOCLZ 6155
.MORAC 6214
.MORCN 6202
.MORDA 6215 6413
.MORHN 6210
.MORIM 6433
.MORLS 6055 6119 6269 6332
.MOROD 6217
.MORPW 6213
.MORSS 6196
.MORTN 6051 6211
.MORUS 6212
.MSCOD 2081
.MSFLG 2080 2166
.NDVFY 5912
.NULIO 1402 2182 6434
.NVR 1159# 1159 1160 1189# 1189 1190 1190# 1198# 1198 1229# 1229 1256# 1256 1289#
1289 1304# 1304 1948# 1948 1949 2564# 2564 2565 3093# 3093 3094 3135# 3135
3136 3354# 3354 3355 3360# 3360 3388# 3388 3395# 3395 3396 3396# 3430# 3430
3431 3521# 3522 3590# 3590 3591 3591# 3659# 3659 3660 3660# 3931# 3932 3963#
3963 3964 3964# 3994# 3994 3995 4082# 4082 4083 4121# 4121 4122 4171# 4171
4202# 4202 4203 4257# 4257 4258 4258# 4473# 4473 4474 4479# 4479 4480 4480#
4602# 4603 4659# 4660 4775# 4775 4776 4958# 4958 4959 5054# 5054 5055 5055#
5202# 5202 5203 5203# 5270# 5270 5271 5271# 5286# 5286 5287 5287# 5812# 5812
5813 5813# 6001# 6001 6002 6002# 6116# 6116 6117 6117# 6241# 6241 6242
.OSRST 2604
.OSTP1 1582 2576 3168 3230
.OSTP2 1579 2415 2572 2903 3004 3167 3229 4935 5339 5949
.OSVAX 918 2754 2900
.OTBAT 2077 2093
.OTLPT 2076
.POPJ 29 1022 1025
.PRIOU 2505 5943
.PSECT 1149 1150 1159 1189 1198 1219 1220 1229 1231 1232 1256 1289 1304 1307
1308 1398 1399 1408 1409 1416 1417 1418 1419 1427 1428 1435 1436 1445
1446 1453 1454 1471 1474 1475 1477 1478 1479 1480 1497 1499 1553 1554
1555 1556 1557 1558 1574 1575 1596 1606 1607 1622 1623 1625 1626 1659
1660 1664 1666 1678 1682 1683 1685 1686 1688 1689 1697 1698 1699 1700
1701 1702 1707 1708 1723 1724 1728 1729 1739 1740 1753 1754 1774 1775
1776 1789 1790 1800 1801 1802 1803 1804 1805 1814 1815 1836 1837 1844
1847 1848 1852 1854 1858 1860 1862 1864 1870 1872 1873 1878 1879 1889
1890 1923 1937 1941 1948 1953 1954 1955 1956 1957 1958 1959 1960 1985
1986 1989 1990 2000 2001 2010 2011 2033 2034 2039 2040 2059 2060 2116
2117 2161 2162 2163 2165 2166 2176 2177 2181 2182 2199 2200 2201 2202
2203 2204 2307 2308 2316 2317 2324 2325 2335 2336 2343 2344 2345 2352
2353 2356 2357 2369 2370 2372 2373 2380 2381 2382 2390 2391 2392 2393
2397 2398 2420 2421 2422 2424 2425 2430 2431 2432 2433 2442 2443 2467
2468 2474 2475 2477 2478 2480 2481 2484 2485 2490 2491 2502 2503 2507
2508 2509 2510 2511 2512 2514 2515 2516 2517 2528 2529 2532 2533 2536
2537 2539 2540 2564 2585 2586 2600 2601 2602 2606 2607 2608 2609 2611
2612 2613 2614 2615 2616 2619 2620 2626 2627 2628 2635 2636 2638 2639
2642 2643 2645 2646 2657 2658 2659 2660 2662 2663 2664 2665 2668 2669
2674 2675 2677 2678 2680 2681 2682 2683 2688 2689 2692 2693 2694 2695
2696 2697 2698 2699 2707 2708 2713 2714 2715 2716 2720 2721 2722 2723
2726 2727 2728 2729 2733 2734 2735 2736 2738 2739 2741 2742 2752 2753
2764 2772 2783 2784 2785 2790 2791 2792 2793 2794 2795 2796 2797 2806
2807 2808 2809 2815 2818 2819 2829 2830 2831 2839 2840 2847 2848 2850
2851 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2892 2928
2929 2932 2933 2934 2935 2946 2947 2963 2964 2965 2966 2967 2968 2978
2979 2980 2981 2982 2983 2992 2993 2994 2995 2996 2997 3007 3008 3010
3011 3017 3018 3019 3020 3030 3031 3044 3045 3047 3048 3068 3069 3084
3085 3093 3095 3096 3099 3100 3102 3103 3105 3106 3109 3110 3112 3113
3117 3118 3120 3121 3135 3137 3138 3139 3140 3141 3142 3143 3144 3145
3146 3147 3148 3219 3220 3226 3227 3229 3230 3231 3232 3233 3249 3250
3268 3269 3279 3280 3281 3282 3284 3285 3354 3360 3368 3369 3377 3388
3395 3430 3433 3438 3440 3441 3443 3445 3446 3448 3450 3451 3453 3456
3457 3459 3462 3465 3466 3467 3468 3469 3521 3526 3527 3528 3529 3538
3539 3546 3547 3555 3556 3575 3576 3577 3578 3590 3659 3737 3738 3739
3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3780 3781 3787
3788 3830 3831 3832 3833 3857 3858 3871 3872 3873 3878 3879 3888 3892
3893 3912 3913 3915 3916 3917 3931 3956 3957 3963 3994 4001 4082 4105
4106 4121 4171 4187 4188 4202 4222 4223 4226 4227 4228 4234 4235 4240
4241 4243 4244 4245 4246 4257 4274 4275 4276 4277 4278 4280 4281 4282
4283 4284 4286 4287 4288 4289 4290 4291 4292 4293 4301 4302 4303 4304
4306 4307 4309 4310 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416
4417 4442 4443 4444 4445 4473 4479 4550 4551 4572 4573 4577 4578 4602
4616 4617 4659 4711 4775 4798 4807 4808 4813 4825 4826 4828 4829 4830
4841 4842 4843 4844 4847 4848 4857 4858 4871 4872 4885 4886 4888 4889
4915 4916 4958 4962 4963 4968 4969 4988 4989 4992 4993 4994 4996 4997
5003 5004 5005 5007 5008 5009 5013 5014 5015 5017 5018 5019 5021 5022
5023 5025 5026 5027 5033 5034 5035 5054 5077 5078 5082 5083 5084 5091
5092 5107 5108 5111 5112 5140 5141 5142 5143 5144 5164 5202 5208 5209
5219 5220 5270 5286 5294 5295 5327 5328 5359 5360 5361 5362 5363 5364
5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5386 5387 5416
5417 5426 5427 5438 5439 5441 5442 5443 5444 5445 5460 5461 5680 5681
5682 5683 5684 5688 5773 5774 5777 5778 5789 5799 5800 5812 5829 5830
5884 5885 5886 5887 5888 5889 5890 5891 5892 5904 5905 5917 5918 5958
5959 5970 5971 5977 5978 6001 6044 6045 6061 6062 6065 6066 6071 6072
6085 6086 6087 6088 6089 6090 6116 6122 6128 6129 6162 6163 6241 6300
6307 6308 6390 6391 6413 6414
.QCACT 2137
.QCBLT 2101
.QCCDI 2095
.QCFIL 2107
.QCNAM 2130
.QCOID 2088
.QCPTP 2123
.QCQUE 2085
.QOCQE 2078
.RETF 29 2667 5130 6436
.RETT 29 2950 4500 5597 5598
.SAVE1 1159 1948 2564 3093 3135 4958 6241
.SAVE2 3354 3430 3994 4082 4202 4473 4775
.SAVE3 3931 4602 4659
.SAVE4 3521
.SFAUT 5041
.SFLWR 5046
.STKST 2023
.SV15 4121
.TRSET 1080
.ZCHNK 1201 1311 1384 1397 2286 2812 3594 5336
ACCMSG 732 918 3324
ACKMSG 732 918 3327
ACLMSG 732 918 3337
ACPMSG 732 918 3328
ALCMSG 732 918 3332
ANDX 4105 5374 5438 5682 5829
ATTMSG 732 918 3323
BIN 5156
BLDCRC 4519# 4539
BOUT 1070 1084 5255
CAXE 2390 2627 3226 3229 3857 5140
CAXLE 2783
CAXN 2692 2694 2696 2698 3230
CFGMSG 732 918 3322
CHFDB 5129
CHKAC 2035
CHKBLK 2023# 2023 2025 2027 2029 2031 2032 2034 2041 2045
CLOSF 4990 5084 5108 6072 6163 6168
CONMSG 732 918 3326
CRC 4528#
CTLMSG 732 918 3325
DATMSG 732 918 3329
DELF 1749 5079 5093
DISCR 6441# 6478
DOMSG 732 918 3322
DTIMSG 732 918 3334
DVCHR 5356
EPCAP 2001 2011
ER 6467# 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6503 6511
6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6526# 6530 6547# 6553
6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567
6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581
6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595
6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609
6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623
6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637
6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651
6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665
6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678
ERJMP 1033 1908 1921 2051 2054 3101 3111 3119 3958 4618 4637 4833 4853 4875
4900 4991 5040 5045 5049 5062 5080 5085 5094 5109 5115 5130 5157 5207
5221 5256 5296 5329 5334 5357 6049 6054 6057 6064 6073 6122 6158 6190
6199 6205 6253 6321 6405 6416 6436
FFUFP 1920
FLD 572 918 1471 1480 1497 1499 1596 1664 1666 1678 1774 1844 1852 1854
1858 1860 1862 1864 1870 1872 1873 1937 1941 2039 2059 2390 2421 2443
2502 2601 2627 2692 2694 2696 2698 2764 2772 2807 2809 2815 2871 2873
2892 3044 3099 3109 3117 3368 3377 3433 3438 3443 3448 3453 3459 3462
3465 3467 3528 3888 4001 4711 4798 4813 5140 5386 5441 5443 5444 5520
5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5554 5555
5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5683 5688 5695
5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709
5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723
5724 5725 5726 5727 5789 5799 6047
GETER 1032
GLOB 29 43 44
GNJFN 1745 4852
GTDAL 2053
GTFDB 4922 4942 5333
GTJFN 1732 1741 4832 4874 5972
IDTIM 3831
IORX 2421 2443 2601
ITEXT 5822 5865 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542
JFNS 1738 2117 3100 3110 3118 5328 5978
JUMPF 29 1022 1314 1318 1326 1414 1434 1441 1577 1596 1664 1678 1816 1973
2195 2221 2305 2437 2455 2463 2520 2583 2667 3360 3388 3433 3438 3443
3448 3453 3459 3563 3828 3862 3865 3898 3902 3905 3947 3970 4019 4067
4073 4099 4125 4131 4171 4178 4560 4670 4678 4683 4697 4777 4786 4789
4793 4800 4805 4981 5169 5174 5230 5267 5309 6084 6298 6343 6398
JUMPT 29 1025 1609 1720 1787 1834 2038 2588 2621 2687 4256
KDFMSG 732 918 3331
LOAD 1167 1196 1300 1320 1492 1581 1705 1770 1812 2056 2189 2471 2574 2803
3012 3225 3236 3239 3240 3542 3543 3545 3580 4248 4249 4251 4910 4960
5342 5418 5421 5423 5427 5776 5791 5814 5815
LSTOF. 29 1090 1092 1136 1162 1169 1190 1193 1197 1198 1228 1229 1255 1256
1288 1289 1299 1303 1304 1314 1318 1326 1474 2205 2219 2438 2439 2449
2455 2463 2520 2524 2583 2630 2633 2658 2704 2714 2746 2747 2768 2956
3360 3388 3396 3524 3591 3660 3964 4171 4205 4258 4345 4480 4539 4936
5055 5203 5271 5287 5813 5822 5865 5973 5980 6002 6040 6075 6093 6106
6107 6117 6139 6164 6276 6285 6330 6339 6357 6388 6431 6532 6533 6534
6535 6536 6537 6538 6539 6540 6541 6542 6766
LSTON. 1160 1190 1198 1229 1256 1289 1304 1949 2565 3094 3136 3355 3360 3388
3396 3431 3522 3591 3660 3932 3964 3995 4083 4122 4171 4203 4258 4474
4480 4603 4660 4776 4959 5055 5203 5271 5287 5813 6002 6117 6242 6767
MACCOD 6530
MICCOD 6553
MOVX 1149 1231 1398 1445 1453 1471 1474 1480 1497 1499 1574 1596 1606 1622
1625 1659 1664 1666 1678 1682 1685 1688 1697 1699 1701 1707 1723 1728
1739 1753 1774 1775 1789 1800 1802 1804 1814 1836 1844 1852 1854 1858
1860 1862 1864 1870 1872 1873 1878 1889 1937 1941 1985 1989 2033 2039
2059 2116 2161 2165 2176 2181 2201 2203 2343 2369 2381 2424 2430 2432
2467 2474 2477 2480 2484 2502 2507 2509 2511 2514 2516 2528 2532 2536
2585 2606 2608 2613 2615 2619 2635 2638 2642 2645 2659 2662 2664 2680
2682 2715 2720 2722 2726 2728 2733 2735 2738 2752 2764 2772 2784 2790
2807 2809 2815 2839 2871 2873 2892 2928 2934 2963 2965 2967 2978 2980
2982 2992 2994 2996 3017 3019 3030 3044 3047 3068 3084 3099 3102 3109
3112 3117 3120 3137 3147 3219 3232 3249 3279 3368 3377 3433 3438 3443
3448 3453 3459 3462 3465 3467 3528 3575 3737 3830 3832 3888 3956 4001
4616 4711 4798 4813 4825 4857 4871 4888 4988 4992 4993 4996 5003 5004
5007 5008 5013 5014 5017 5018 5021 5022 5025 5026 5033 5034 5219 5294
5327 5361 5386 5416 5460 5688 5777 5789 5884 5887 5889 5958 5970 5977
6061 6065 6413
MSGARG 971
MTOPR 6053 6056 6063 6121 6157 6189 6198 6204 6270 6333 6404 6415 6435
MULINK 586# 613 1108 1137 1172 3544 3593 4250
NAMMSG 732 918 3336
ND 575 577 578 579 580 581 582 583
NODE 5916
ODTIM 4458
OPENF 4899 6048
PJRST 29 1136 1162 1169 1193 1236 1238 1299 1308 1314 1318 1326 1327 1564
1865 1868 1869 1871 1922 1940 1942 1943 1944 1947 1979 2144 2205 2219
2438 2455 2463 2520 2524 2583 2630 2633 2658 2714 2746 2747 2956 2984
2998 3002 3853 4174 4345 4726 4848 4886 4969 5051 5052 5095 5116 5360
5597 5598 5973 6075 6093 6106 6107 6139 6164 6276 6330 6339 6428
PMAP 3957 4617 4636 5061 5220 5295
POINTR 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2189 2461 2471 2574
2803 2816 2859 2861 2863 3012 3240 3371 3379 3530 3542 3545 3576 3580
4248 4251 4910 4960 5342 5344 5418 5421 5423 5427 5676 5678 5681 5776
5791 5794 5814 5815 5890 6206
POS 572 918 1167 1196 1300 1320 1471 1480 1497 1499 1581 1590 1596 1664
1666 1676 1678 1705 1770 1774 1812 1844 1852 1854 1858 1860 1862 1864
1870 1872 1873 1937 1941 2039 2059 2189 2390 2421 2443 2461 2471 2502
2574 2601 2627 2692 2694 2696 2698 2764 2772 2803 2807 2809 2815 2816
2859 2861 2863 2871 2873 2892 3012 3044 3099 3109 3117 3240 3368 3371
3377 3379 3433 3438 3443 3448 3453 3459 3462 3465 3467 3528 3530 3542
3545 3576 3580 3888 4001 4248 4251 4711 4798 4813 4910 4960 5140 5342
5344 5386 5418 5421 5423 5427 5441 5443 5444 5520 5521 5522 5523 5524
5525 5526 5527 5528 5529 5530 5531 5532 5554 5555 5556 5557 5558 5559
5560 5561 5562 5563 5564 5565 5566 5676 5678 5681 5683 5688 5695 5696
5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710
5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724
5725 5726 5727 5776 5789 5791 5794 5799 5814 5815 5890 6047 6206
PROLOG 28
PROMSG 732 918 3335
RCDIR 2050
RLJFN 5114
RPACS 1907 5206
RPCAP 1999
SACTF 5039
SFUST 5044 5048
SIBE 6125
SINR 6320
SKIPF 1431 2320 3843 4484
SKIPT 2888 3075 3402 4478
SOUT 1094 2149 5964 6027 6232 6249
SOUTR 6247 6254
STKVAR 2023
STORE 1590 1676 2190 2461 2584 2816 2824 2828 2836 2859 2861 2863 3371 3379
3530 3576 5344 5676 5678 5681 5794 5890 6206
STSMSG 732 918 3330
SUMMSG 732 918 3333
TMPTXT 1080# 1080 1086 1092
TRVAR 1080
TXC 2829
TXCE 2830
TXNE 1219 1307 1435 1477 1479 1953 1955 1957 2202 2352 2490 2791 2793 2795
2808 2847 2850 2872 2874 2876 2878 2880 2946 3139 3141 3143 3466 3468
3577 3738 3740 3742 3744 3746 3787 3872 3878 3892 3912 4226 4228 4234
4240 4243 4280 4286 4288 4290 4292 4301 4303 4306 4309 4444 4550 4807
4828 4915 4962 5111 5143 5362 5364 5366 5368 5370 5372 5441 5799 5888
5904 5917 6085 6087 6089 6128 6300 6307
TXNN 1427 1553 1555 1557 1847 1959 2199 2316 2324 2420 2442 2539 2600 2657
2668 2674 2688 2707 2713 2741 2806 2818 2932 3007 3010 3095 3105 3145
3440 3445 3450 3456 3526 3538 3546 3555 3780 3871 4187 4222 4245 4282
4407 4409 4411 4413 4415 4572 4577 4841 4847 4885 4968 5208 5359 5443
5773 5885 6044 6390
TXO 1923 2162 2344 2356 2372 2380 2392 2397 2421 2443 2601 2792 2794 2796
3268 4274 4276 4278 4281 4408 4410 4412 4414 4416 4442 4829 4843 5077
5083 5091 5107 5142 5164 5363 5365 5367 5369 5371 5373 5444 5891 6071
6122 6162
TXON 2000
TXT 1028# 1136 1149 1162 1169 1193 1299 1314 1318 1326 1398 2201 2203 2205
2219 2438 2439 2449 2455 2463 2520 2524 2583 2630 2633 2658 2714 2746
2747 2768 2956 3524 4205 4345 4936 5973 5980 5983 5984 5985 5986 5987
5988 5989 5990 5994 5995 5996 6040 6075 6093 6106 6107 6139 6164 6276
6285 6330 6339 6357 6388 6431
TXTBP 1080# 1080 1087 1097
TXZ 1408 2010 2611 2626 2677 3281 3284 3739 3741 3743 3745 3747 3749 3916
4105 4283 5374 5426 5438 5680 5682 5683 5829
TXZE 1416 5082
TXZN 1418 2307 2335 3915
USRMSG 732 918 3338
VRSN. 46
VV 732# 732 888# 918 3317# 3324 3325 3329 3332 3333 3334 3335 3336 3338
3339
WID 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2189 2461 2471 2574
2803 2816 2859 2861 2863 3012 3240 3371 3379 3530 3542 3545 3576 3580
4248 4251 4910 4960 5342 5344 5418 5421 5423 5427 5676 5678 5681 5776
5791 5794 5814 5815 5890 6206
XB 5494# 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5606
5607 5608 5609 5610 5611 5612 5613 5614
XM 5501# 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582
XP 592 594 596
XX 704# 732 895# 918 960# 971 3313# 3322 3323 3324 3325 3326 3327 3328
3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 5489# 5520 5521 5522
5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5554 5555 5556 5557
5558 5559 5560 5561 5562 5563 5564 5565 5566 5695 5696 5697 5698 5699
5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713
5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727
YY 732# 732 918# 918 3318# 3323 3324 3325 3326 3327 3329 3330 3331 3332
3333 3334 3335 3336 3337 3338 3339
$CALL 1080 1089 1091 1136 1150 1159 1162 1169 1193 1201 1210 1214 1216 1217
1220 1264 1266 1269 1272 1274 1290 1299 1306 1311 1313 1314 1317 1318
1325 1326 1384 1392 1394 1397 1413 1414 1422 1430 1433 1436 1440 1444
1446 1451 1459 1461 1467 1473 1483 1550 1572 1576 1593 1595 1600 1608
1613 1617 1620 1623 1624 1663 1669 1672 1677 1680 1686 1687 1696 1703
1708 1711 1712 1715 1719 1721 1722 1764 1767 1768 1776 1778 1780 1782
1786 1788 1799 1806 1815 1822 1824 1826 1830 1835 1875 1890 1910 1933
1946 1948 1949 1954 1956 1962 1968 1972 1982 1984 1988 2023 2110 2133
2140 2171 2172 2178 2186 2194 2200 2205 2219 2220 2286 2289 2296 2304
2305 2311 2319 2322 2333 2341 2350 2354 2359 2363 2371 2379 2382 2396
2405 2411 2422 2423 2429 2433 2436 2438 2439 2444 2449 2454 2455 2456
2459 2462 2463 2464 2466 2468 2470 2475 2478 2481 2483 2485 2488 2500
2503 2504 2513 2517 2519 2520 2524 2527 2529 2531 2533 2535 2537 2564
2565 2568 2582 2583 2587 2598 2602 2612 2618 2620 2630 2633 2637 2639
2641 2643 2646 2649 2658 2661 2665 2679 2686 2702 2703 2704 2714 2719
2724 2732 2736 2739 2746 2747 2768 2812 2920 2930 2938 2940 2941 2956
2962 2969 2977 2991 3024 3029 3032 3038 3046 3058 3061 3070 3072 3086
3093 3104 3114 3123 3124 3125 3135 3140 3142 3144 3150 3151 3152 3252
3271 3288 3297 3354 3357 3359 3362 3373 3381 3387 3390 3394 3399 3401
3430 3432 3437 3442 3447 3452 3458 3472 3496 3521 3524 3527 3562 3594
3611 3615 3619 3623 3655 3663 3682 3689 3692 3695 3698 3701 3706 3709
3712 3715 3736 3773 3827 3844 3846 3861 3864 3866 3881 3884 3897 3899
3901 3904 3906 3917 3931 3938 3946 3960 3969 3994 4010 4018 4021 4026
4033 4037 4039 4051 4066 4072 4082 4084 4087 4092 4096 4098 4101 4106
4110 4121 4124 4130 4134 4136 4144 4155 4170 4175 4177 4202 4205 4209
4255 4320 4322 4325 4336 4345 4355 4359 4363 4368 4379 4380 4388 4395
4432 4443 4454 4467 4473 4477 4485 4559 4565 4591 4602 4609 4627 4631
4641 4644 4649 4659 4669 4672 4676 4677 4682 4696 4699 4706 4716 4738
4742 4775 4776 4777 4785 4788 4792 4799 4802 4804 4811 4845 4853 4856
4883 4887 4936 4958 4965 4971 4980 4995 4998 5006 5010 5016 5020 5024
5028 5036 5072 5099 5104 5139 5168 5173 5188 5229 5260 5266 5271 5308
5336 5863 5867 5876 5905 5930 5935 5940 5952 5966 5973 5980 6040 6075
6083 6092 6093 6097 6102 6106 6107 6139 6164 6241 6243 6276 6285 6297
6299 6301 6306 6308 6315 6325 6328 6330 6339 6342 6343 6357 6368 6374
6388 6392 6393 6397 6406 6425 6431
$DATA 603# 607 608 609 610 630 632 633 634 635 636 637 638 639
640 641 642 643 644 645 646 647 648 649 650 651 652 653
656 657 672 673 680 681 682 683 684 732 750 754 758 759
764 765 766 767 768 769 770 771 772 773 774 775 776 777
780 781 782 783 784 788 789 793 797 798 800 801 802 806
807 808 809 810 812
$DEBUG 1040# 3523 4204 5979 6039 6283 6356 6387
$FATAL 1049# 1136 1162 1169 1193 1299 1314 1318 1326 2205 2219 2438 2455 2463
2520 2524 2583 2630 2633 2658 2714 2746 2747 2956 4345 5973 6075 6093
6106 6107 6139 6164 6275 6330 6338
$GDATA 638 639 646 765 773 777
$GODAP 1101# 1197 1228 1255 1288 1303
$MCERR 1013# 2892
$MFERR 984# 3433 3438 3443 3448 3453 3459 4001
$MIERR 994# 1941 2764 2772 2807 2815 2871 3462 3465 5789
$MOERR 1008# 1774
$MSERR 989#
$MTERR 1004# 3888 4711 4798 4813
$MUERR 999# 1471 1480 1497 1499 1596 1664 1666 1678 1844 1852 1854 1858 1860
1862 1864 1870 1872 1873 1937 2809 2873 3467 5688
$RET 29# 29 1146 1291 1417 1997 2003 2007 2013 2173 2406 2439 2449 2689
2700 2768 3062 3073 3253 3272 3289 3298 3363 3391 3524 3722 3753 3836
3847 4020 4157 4205 4936 5169 5174 5230 5267 5310 5980 6040 6285 6357
6388 6407 6431
$RETF 29#
$RETIF 29# 1022 1452 1460 1551 1573 1612 1614 1670 1673 1681 1704 1709 1713
1769 1777 1807 1911 1950 1963 1969 2179 2323 2334 2342 2351 2360 2434
2457 2465 2469 2476 2479 2482 2486 2489 2518 2530 2534 2538 2566 2590
2640 2644 2647 2650 2666 2725 2737 2740 3612 3616 3620 3624 3656 3664
3683 3774 3867 3882 3885 3900 3907 3918 4022 4027 4034 4038 4040 4085
4088 4093 4097 4102 4107 4111 4135 4592 4707 4717 4778 4812 4846 4884
4966
$RETIT 29# 1025 4052
$RETT 29#
$SAVE 1159 1189 1198 1229 1256 1289 1304 1948 2564 3093 3135 3354 3360 3388
3395 3430 3521 3590 3659 3931 3963 3994 4082 4121 4171 4202 4257 4473
4479 4602 4659 4775 4958 5054 5202 5270 5286 5812 6001 6116 6241
$STATE 1019# 1445 1453 1625 1688 1723 1789 1836 1878 1889 1985 1989 2176 2181
2343 2432 2467 2480 2484 2516 2528 2532 2536 2619 2638 2642 2645 2664
2682 2735 2738 2839 3047 6065
$STATU 978# 1471 1480 1497 1499 1596 1664 1666 1678 1774 1844 1852 1854 1858
1860 1862 1864 1870 1872 1873 1937 1941 2039 2059 2764 2772 2807 2809
2815 2871 2873 2892 3044 3368 3377 3433 3438 3443 3448 3453 3459 3462
3465 3467 3888 4001 4711 4798 4813 5386 5688 5789
$TEXT 1089 1091 1136 1162 1169 1193 1299 1314 1318 1326 1473 2205 2219 2438
2439 2449 2455 2463 2520 2524 2583 2630 2633 2658 2703 2714 2746 2747
2768 2956 3524 4205 4345 4936 5973 5980 6040 6075 6093 6106 6107 6139
6164 6276 6285 6330 6339 6357 6388 6431
$WARN 1057# 2439 2449 2768 4936 6431
%%VV 889# 918
..CAS1 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2056 2189 2461 2471
2574 2803 2816 2824 2859 2861 2863 3012 3236 3240 3371 3379 3530 3542
3543 3545 3576 3580 4248 4249 4251 4910 4960 5342 5344 5418 5421 5423
5427 5676 5678 5681 5776 5791 5794 5814 5815 5890 6206
..CX 2390 2627 2692 2694 2696 2698 2783 3226 3229 3230 3857 5140
..DPB 1590 1676 2461 2816 2824 2859 2861 2863 3371 3379 3530 3576 5344 5676
5678 5681 5794 5890 6206
..LDB 1167 1196 1300 1320 1581 1705 1770 1812 2056 2189 2471 2574 2803 3012
3236 3240 3542 3543 3545 3580 4248 4249 4251 4910 4960 5342 5418 5421
5423 5427 5776 5791 5814 5815
..POP 1190 1198 1229 1256 1289 1304 3360 3388 3396 3591 3660 3964 4171 4258
4480 5055 5203 5271 5287 5813 6002 6117
..PUSH 1190 1198 1229 1256 1289 1304 3360 3388 3396 3591 3660 3964 4171 4258
4480 5055 5203 5271 5287 5813 6002 6117
..STR0 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2056 2189 2461 2471
2574 2803 2816 2824 2859 2861 2863 3012 3236 3240 3371 3379 3530 3542
3543 3545 3576 3580 4248 4249 4251 4910 4960 5342 5344 5418 5421 5423
5427 5676 5678 5681 5776 5791 5794 5814 5815 5890 6206
..TSAC 1159 1189 1198 1229 1256 1289 1304 1948 2564 3093 3135 3354 3360 3388
3395 3430 3521 3590 3659 3931 3963 3994 4082 4121 4171 4202 4257 4473
4479 4602 4659 4775 4958 5054 5202 5270 5286 5812 6001 6116 6241
..TSIZ 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2056 2189 2461 2471
2574 2803 2816 2824 2859 2861 2863 3012 3236 3240 3371 3379 3530 3542
3543 3545 3576 3580 4248 4249 4251 4910 4960 5342 5344 5418 5421 5423
5427 5676 5678 5681 5776 5791 5794 5814 5815 5890 6206
..TX 1219 1307 1408 1416 1418 1427 1435 1477 1479 1553 1555 1557 1847 1923
1953 1955 1957 1959 2000 2010 2162 2199 2202 2307 2316 2324 2335 2344
2352 2356 2372 2380 2392 2397 2420 2421 2442 2443 2490 2539 2600 2601
2611 2626 2657 2668 2674 2677 2688 2707 2713 2741 2791 2792 2793 2794
2795 2796 2806 2808 2818 2829 2830 2847 2850 2872 2874 2876 2878 2880
2932 2946 3007 3010 3095 3105 3139 3141 3143 3145 3268 3281 3284 3440
3445 3450 3456 3466 3468 3526 3538 3546 3555 3577 3738 3739 3740 3741
3742 3743 3744 3745 3746 3747 3749 3780 3787 3871 3872 3878 3892 3912
3915 3916 4105 4187 4222 4226 4228 4234 4240 4243 4245 4274 4276 4278
4280 4281 4282 4283 4286 4288 4290 4292 4301 4303 4306 4309 4407 4408
4409 4410 4411 4412 4413 4414 4415 4416 4442 4444 4550 4572 4577 4807
4828 4829 4841 4843 4847 4885 4915 4962 4968 5077 5082 5083 5091 5107
5111 5142 5143 5164 5208 5359 5362 5363 5364 5365 5366 5367 5368 5369
5370 5371 5372 5373 5374 5426 5438 5441 5443 5444 5680 5682 5683 5773
5799 5829 5885 5888 5891 5904 5917 6044 6071 6085 6087 6089 6122 6128
6162 6300 6307 6390
..TX3 4105 5829
.CASE 1167 1196 1300 1320 1581 1590 1676 1705 1770 1812 2056 2189 2461 2471
2574 2803 2816 2824 2859 2861 2863 3012 3236 3240 3371 3379 3530 3542
3543 3545 3576 3580 4248 4249 4251 4910 4960 5342 5344 5418 5421 5423
5427 5676 5678 5681 5776 5791 5794 5814 5815 5890 6206
.NV1 1190# 1190 1198# 1198 1229# 1229 1256# 1256 1289# 1289 1304# 1304 3360# 3360
3388# 3388 3396# 3396 3591# 3591 3660# 3660 3964# 3964 4171# 4171 4258# 4258
4480# 4480 5055# 5055 5203# 5203 5271# 5271 5287# 5287 5813# 5813 6002# 6002
6117# 6117
.NV2 1190# 1190 1198# 1198 1229# 1229 1256# 1256 1289# 1289 1304# 1304 3360# 3360
3388# 3388 3396# 3396 3591# 3591 3660# 3660 4171# 4171 4258# 4258 4480# 4480
5055# 5055 5813# 5813 6002# 6002
.NV3 1198# 1198 1256# 1256 1289# 1289 1304# 1304 3360# 3360 3388# 3388 3396# 3396
4171# 4171 4258# 4258 4480# 4480 5813# 5813
.NV4 1198# 1198 1256# 1256 1304# 1304 5813# 5813
.NV5 1198# 1198 1256# 1256 1304# 1304 5813# 5813
.NV6 1304# 1304 5813# 5813
.NV7 1304# 1304
.STKV1 2023
.STKV2 2023
.STKV3 2023
.TRV1 1080
.TRV2 1080
.TRV3 1080