Google
 

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