UNIVER SWIDEF SWIL universal definitions (internal usage only) SUBTTL Robert D. Houk/RDH SEARCH JOBDAT, MACTEN, UUOSYM ;STANDARD DEFINITIONS SALL ;PRETTY LISTINGS .DIRECT FLBLST ;PRETTIER LISTINGS COMMENT \ COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1987,1988. ALL RIGHTS RESERVED. THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. \ SUBTTL Table of contents ; TABLE OF CONTENTS FOR SWIL ; ; ; SECTION PAGE ; 1. Table of contents......................................... 3 ; 2. Version and Revision History.............................. 3 ; 3. Feature test definitions.................................. 4 ; 4. Register definitions...................................... 5 ; 5. Instruction definitions (OPDEFs, et al)................... 6 ; 6. General definitions - Assembly parameters................. 7 ; 7. Macro definitions - COPYRIGHT nonsense.................... 8 ; 8. Macro definitions - CRC table generation macro(s)......... 9 ; 9. Macro definitions - SCAN errors........................... 10 ; 10. Macro definitions - STOPCD and WARNCD..................... 11 ; 11. Robert D. Houk/RDH........................................ 13 ; 12. SCAN/WILD interface flags................................. 14 ; 13. File Specification Block definitions...................... 15 ; 14. File Spec Block definitions, addenda...................... 21 ; 15. Macro definitions - DM, KEYS, KEYSG....................... 22 ; 16. Macro definitions - SWTCHS and friends.................... 23 ; 17. Meta-Character definitions................................ 26 ; 18. DAP protocol definition................................... 27 ; 19. DAP message field definitions............................. 29 ; 20. DAP field manipulation macros............................. 44 ; 21. Macros to build ASCIZ tables descr. DAP Flag and Value fields 59 ; 22. Block storage macro definitions........................... 61 ; 23. I/O Channel Data Block definitions........................ 62 ; 24. I/O CDB - Global data..................................... 63 ; 25. I/O CDB - File control.................................... 64 ; 26. I/O CDB - File specification blocks, WILD blocks.......... 66 ; 27. I/O CDB - File Information ; 27.1 Name strings...................................... 68 ; 27.2 File attributes and parameters.................... 69 ; 28. I/O CDB - I/O control..................................... 72 ; 29. I/O CDB - TOPS-10 interface............................... 74 ; 30. I/O CDB - TOPS-20 interface............................... 75 ; 31. I/O CDB - Network control................................. 76 ; 32. I/O CDB - Network I/O..................................... 77 ; 33. I/O CDB - DAP control..................................... 78 ; 34. I/O CDB - Errata.......................................... 80 ; 35. I/O function-call definitions............................. 81 ; 36. WILD input control block.................................. 82 ; 37. Status and error/exception codes.......................... 84 ; 38. Status codes - General purpose............................ 85 ; 39. Status codes - File access ; 39.1 general (FILOP.).................................. 86 ; 39.2 DAP level......................................... 88 ; 39.3 network level (TSK./NSP.)......................... 89 ; 39.4 miscellaneous..................................... 91 ; 40. Status codes - I/O transmission ; 40.1 file level........................................ 92 ; 40.2 DAP/data level.................................... 93 ; 40.3 network level (TSK./NSP.)......................... 94 ; 41. Status codes - Data format and syntax..................... 96 ; 42. Status codes - Environmental ("Acts of God") Errors....... 97 ; 43. Status codes - Memory management.......................... 98 ; 44. Status codes - QUEUE and GALAXY related................... 99 ; 45. Status codes - Miscellaneous.............................. 100 ; 46. Status codes - Internal flow control...................... 101 ; 47. Status codes - STOPCDs.................................... 102 ; 48. Scheduler codes........................................... 103 SUBTTL Version and Revision History MAJVER==13 ;MAJOR VERSION LEVEL MINVER==1 ;MINOR (MAINTENANCE RELEASE) LEVEL CSTVER==0 ;CUSTOMER VERSION (WHO LAST . . .) EDTVER==1061 ;EDIT LEVEL %%SWIL==: IF2,< PURGE CSTVER,MAJVER,MINVER,EDTVER> ;Initial creation as the Scan Wild I/O Library package for shipping with ;NFT-10 with the 7.02 monitor. ; ;The version number starts at 12, thus "preserving" the pre-SWIL version ;numbers as applied to SCAN, WILD, etc. (Don't ask what happened to ver- ;sion 10 and 11!) ; ;The edit numbers start at 1000, thus "preserving" the pre-SWIL edit ;numbers as applied to SCAN, WILD, etc. ;1000 RDH 01-Jan-84 ; Incorporate into SWIL %12(1000), sync edit level at 1000. ; Modules: SWIL, SWIFIL, SWIWLD, SWILIO, SWINET, SWISCN, SWIHLP, ; SWIQUE, SWIERM, SWITOU, SWIMEM, SWIMSC ;1001 RDH 31-Mar-84 ; Problems with RT-11 systems. ; Modules: SWIFIL ;1002 RDH 31-Mar-84 ; RSX/VAX/RT/etc file lengths not calculated correctly. ; Modules: SWIFIL ;1003 RDH 20-Jun-84 ; .ASUID/USERID doesn't accept quoted strings for passwords. ; Modules: SWISCN ;1004 RDH 16-Jul-84 ; Only request 3-part name messages from remote FAL if control of ; the name messages is supported. Seen with VAX/VMS field test of ; version 4 (first VAX implementation of DAP version 7). ; Modules: SWIFIL ;1005 RDH 12-Oct-84 SPR 10-34696 ; Implement support for VAX/VMS "Stream-CR" and "Stream-LF" ASCII ; files. ; Modules: SWILIO ;1006 RDH ; First pass at running in extended addressing (for DTECO %26). ;1007 RDH 28-Nov-84 SPR 10-35004 ; FX.APP (/APPEND switch) is defined in the .FXCTL word, but was ; being referenced as if it were in the .FXMOD word, zapping the ; FX.PRT (/OKPROT switch) flag. ; Modules: SWISCN, SWIFIL ;1010 RDH 29-Nov-84 ; File attributes passed in the .IO??? words (e.g., .IOPRT) ; were lost on a file create. For example, FAL would lose the ; remote-specified file protection. ; Modules: SWIFIL ;1011 DRB 24-Jan-85 ; Make .POPJ and .POPJ1 separately loadable (i.e. in their own PRGENDed ; module) in order to avoid LNKMDS when .POPJ/.POPJ1 has already been ; loaded elsewhere. ; Modules: SWIMSC ;1012 DRB 25-Jan-85 ; Add scheduler calls to the ANF-10 non-blocking I/O. Don't block ; on NSP. enter passive if non-blocking or scheduler desired. ; Modules: SWINET ;1013 DRB 25-Jan-85 ; IO.ENM is getting cleared on the first pass through XDBUF3 to do ; DECnet output. If the scheduler is called (due to non-blocking ; I/O), we don't set end of message on subsequent attempts. Rearrange ; the code so that IO.ENM isn't cleared until the output is complete. ; Modules: SWINET ;1014 DRB 25-jan-84 ; Change user/account validation to accept password strings longer ; than six characters. This is done by chaging the argument to ; be a password string pointer, rather than a single SIXBIT word. ; The block containing the string is assumed to be 7 words long ; (big enough to fit 39 characters), and trailing zero filled. ; Modules: SWIQUE ;1015 DRB 29-Jan-85 ; SWILIO improperly tests for a passive connection at ORNIX5. It ; assumes that .IOCCF has been loaded to M0, which it hasn't. ; Modules: SWILIO ;1016 DRB 16-Apr-85 ; ACTDAE's error prefix for bad password changed from "ACTIPW" to ; "ACTBPW". Reflect the change in the QUEUE. interface. ; Modules: SWIQUE ;1017 RDH 8-Aug-85 ; A wildcarded directory spec of the form [,,X*] would match files ; from the spec [,,*]. A wildcarded directory spec of the form ; [,,*,X*] would match files from the spec [,] (but not [,,*]). ; Modules: SWIWLD ;1020 RDH 12-Aug-85 ; "Managed Memory" is lost when using ANF network I/O. ; Modules: SWINET ;1021 RDH 14-Aug-85 ; ASSIGNed pathological name with logical name doesn't expand ; correctly (e.g., .PATH X:=[1,2],[3,4], .ASSIGN X Y, .DIRECT Y:) ; Modules: SWIWLD ;1022 LEO 09-Sep-85 ; Do Copyrights. ; Modules: ALL ;1023 DRB 21-Nov-85 ; ACTDAE's interface changed a little. Change SWIQUE to use 8 bit ; ASCIZ password strings instead of SIXBIT, change some error codes ; returned from ACTDAE. ; Modules: SWIQUE ;1024 DRB 21-Nov-85 ; Change the DAP error suffix for device not found to "NSD", so that it ; won't conflict with "directory not found". ; Modules: SWIL ;1025 DRB 22-Nov-85 ; Close all of WILD's directory channels on an IOABO call. ; Modules: SWIFIL, SWIWLD ;1026 RDH 25-Dec-85 ; Create new SWIFIL routine .IOZAP to "blow away" all I/O/etc. ; associated with a CDB and return the CDB to initial state. Move ; [1025]'s .LKABO from .IOABO to .IOZAP. ; Modules: SWIFIL, SWIWLD ;1027 RDH 25-Dec-85 ; Enhance WILD's typeout of .UFD-like file specs (e.g., [1,2].UFD) ; on (e.g.,) NSF errors. ; Modules: SWIWLD ;1030 RDH 25-Dec-85 ; Don't type "No such nodes" error on non-network operations (e.g., ; search list empty). ; Modules: SWIWLD ;1031 RDH 26-Dec-85 ; Constructs like "ABC'OR'DEF" lost last character of "ABC" ; Modules: SWISCN ;1032 RDH 26-Dec-85 ; MCO 12262 Broke DIRECT/WILD and DECtapes. Be much more conservative ; OPENing DECtapes (and hope DIRECT cooperates too). ; Modules: SWIWLD ;1033 RDH 27-Dec-85 ; "+" (Concatenation) construction types out wrong in .TOFSB, should ; be treated like "," construction. Note: "+" is not the same as the ; "'OR'" operator. ; Modules: SWITOU ;1034 RDH 28-Dec-85 ; /OPTION:"A B" put SCAN into a loop in .TI???. ; Modules: SWISCN ;1035 RDH 28-Dec-85 ; "Directory is empty" message types out last str/dir searched, which ; can be misleading - type back user spec instead. ; Modules: SWIWLD ;1036 RDH 31-Dec-85 ; Spurious "WLDTMC" errors - if explicit non-wild output field is ; specified and NO matching input field, don't cause a secondary ; wildcarding error, just accept the specified output field. ; Modules: SWIWLD ;1037 RDH 3-Jan-86 ; Bad date/time values (e.g., /AFTER:1-JAN-60) not detected and ; reported properly. ; Modules: SWISCN ;1040 RDH 3-Jan-86 SPR 10-35423 ; FAL not given an aborting ACCOMP message (i.e., an incoming DAP ; message that occurs before FAL is through reading and sending ; an input file). Edit 1040 supersedes edit 1015. ; Modules: SWILIO ;1041 RDH 4-Jan-86 SPR 10-35424 ; No support for network Line Sequence Numbers. ; Modules: SWIFIL, SWILIO ;1042 RDH 23-Jan-86 ; Add /IOMODE:A8CII to select 8-bit-ASCII I/O mode. ; Modules: SWISCN, SWIFIL, SWILIO ;1043 BSC 24-Apr-86 ; Add two Macros to SWIL.MAC to support type-out of DAP messages from ; SWINET and add code to SWINET to do the trace of DAP messages. ; ; FVMSG builds a table of ASCIZ messages which describe Flag and ; Value fields. These are the messages defined in the DAP Macro. ; ; FVIDX builds a table, parallel to the DAPXCT table, which provides ; an index into the messages table built by FVMSG. ; ; Many flag field messages have been added to the DAP macro to make ; the text descriptions available for tracing. Also the flag bits in ; the DAP macro must be monotonically increasing for the .TFLAG routine ; in SWINET to correctly match a flag with the description, hence the ; (originally missing) reserved flags have been added with the text ; description 'Reserved'. ; ; To trace DAP messages received set FT$RCV==1 and ; to trace DAP messages transmitted set FT$XMT==1 in SWIL.MAC (this file). ; Then re-compile SWIL and SWINET and re-build SWIL.REL. This new SWIL.REL ; can then be linked with either NFT or FAL depending on which is to be ; traced. The trace feature should not be included in production versions ; because, even with tracing disabled, the program is larger and slower. ; It is permissible to have both FT$RCV==1 and FT$XMT==1 together, but ; see documentation of the TRCRCV routine in SWINET regarding a minor ; deficiency in the format of trace output when simultaneously tracing ; messages received and transmitted. ; ; Deposit 0 in .JBOPC (loc 130) to disable tracing (this is the default). ; Deposit 1 in .JBOPC to trace to TTY: (best to set terminal width 132). ; Deposit 2 in .JBOPC to trace to DSK:DAPTRC.LST. This file does not get ; closed automatically. When finished tracing ^C and close via the .CLOSE ; operating system command. ; Modules: SWIL, SWINET ;1044 BSC 16-Jun-86 ; When a VAX file with the record attribute of FORTRAN carriage control ; is transferred to the DEC-10 the user receives the message ; ? UNKNOWN ISF FLAGS IN IRAS90 when the file includes records beginning ; with "0" or "-" which require conversion to multiple line-feeds. ; AC T1 was incorrectly used as both a count of line-feeds and a byte ; pointer. Fix is to use T2 as the count and T1 as the byte pointer. ; Modules: SWILIO ;1045 BSC 18-Jun-86 ; When a file is transferred to another system which runs out of disk ; quota the transfer hangs in EW. The problem arose because the ; DECsystem-10 never sent a CONTINUE(ABORT) interrupt message so the ; remote never sent the ACCOMP(RESPONSE) for which the DECsystem-10 was ; waiting in EW state. The code to send CONTINUE interrupt messages was ; never included in SWIL. This has now been added. ; Modules: SWIL, SWIFIL, SWINET ;1046 RCB 2-Dec-86 ; Update handling of RESCAN for commands to accomodate MCO 13170. ; Modules: SWISCN ;1047 TL 4-Dec-86 ; When a VAX sends an ASCII file of the form text text2, and ; the file has an implied envelope, the is not turned into ; a . This because IS.ICL is being cleared when we see the , ; assuming that the is at the end of the record. This ain't ; necessarily so, as in VAX MACRO listings. Instead, set the new flag ; IS.ICE (CC envelop exists) at the start of record, and, when a non- ; control character is encountered, re-set IS.ICL if IS.ICE is set in ; .IOISF. ; Modules: SWIL, SWILIO ;1050 BAH 21-Jan-87 ; Edit 1043 added a macro TRC that conflicts with the instruction. ; Change the macro to $TRACE. ; Modules: SWIL, SWINET ;1051 KDO 20-Mar-87 ; Add ULTRIX support. ; Modules: SWIL, SWIFIL, SWILIO ;1052 KDO 20-Jul-87 ; Routine E.UFE does GETSTS and SETSTS on channel WC even though ; I/O is being done with an extended channel. ; Modules: SWIWLD ;1053 JJF 22-Nov-1988 SPR:10-36232 ; Make a semi-reasonable assumption about two-digit years that are ; less than 1964. Assume that they mean 20xx instead of 19xx. ; Fixes bug where NFT copies of VAX files with expiration dates ; .GT. 1999 didn't work. ; Module: SWISCN ;1054 JJF 30-Nov-88 SPR:10-35586 ; Attempt to handle remote directory filespecs a bit better. If the ; spec being parsed is coming from a DAP name message, instead of ; doing the usual PPN/alphanumeric directory test, assume that it is ; a numeric directory. This solves NFT's problem where it blew up ; trying to deal with directories like [000000] or <7-EMACS>. ; Invent a new entry point for .FILSP, called .FILSC, which will ; always treat directories as names. Change .DPRNN so that it will ; call the alternate entry point. ; Modules: SWIFIL, SWISCN ;1055 KDO 3-Apr-89 SPR:10-36249 ; Need to differentiate between quoted and unquoted file names. ; Modules: SWIL,SWISCN ;1056 KDO 3-Apr-89 SPR:10-36250 ; Handle funny ULTRIX file specifications: ; 1. Very long file specifications ; 2. Multiple extensions ; 3. Illegal characters ; Modules: SWIL, SWIFIL ;1057 JJF 10-Apr-89 SPR:10-36155 ; Implement support for 'append-mode' files. ; Invent a new .IOCCF flag, named IO.APP, to indicate that the ; remote wants to append to the file, and/or the file has been ; placed into append mode. Add code to the output initialization ; routines to do a FILOP. append function if the flag is lit. ; Modules: SWIL, SWILIO ;1060 KDO 7-Jul-89 SPR:10-36264 ; Eliminate the duplicate file specifications from DDIRECT. ; Module: SWIFIL ;1061 KDO 8-Jul-89 SPR:10-36265,10-36266 ; Use the DAP DIRECTORY-LIST function for the NFT DIRECT command. ; Modules: SWIL, SWIFIL SUBTTL Feature test definitions ;"SCAN" Feature tests ND DEBUG$,1 ;1=INCLUDE DEBUGGING FEATURES ND ECHO$C,0 ;1=ECHO COMMAND STRING AS CHARACTER PROCESSED ND ECHO$P,0 ;1=ECHO COMMAND STRING AS PHRASE PROCESSED ND ECHO$W,0 ;1=ECHO COMMAND STRING AS WORD PROCESSED ND FT$ALT,0 ;1=CONVERT 175,176 TO 033 ND FT$SFD,-1 ;SUB-FILE DIRECTORIES ND FT$TNX,0 ;TENEX ND FT$RCV,0 ;[1043] 1=TRACE DAP MESSAGES RECEIVED ND FT$XMT,0 ;[1043] 1=TRACE DAP MESSAGES TRANSMITTED IFN FT$RCV!FT$XMT, ;NEED COMMON CODE IF EITHER RCV OR XMT TRACE ND FT$TRC,0 ;[1043] OTHERWISE LEAVE OUT ALL TRACE CODE DEFINE RCV, ;SHORT FEATURE TEST SWITCHES FOR NEATER LISTING DEFINE NORCV, DEFINE XMT, DEFINE NOXMT, DEFINE $TRACE, DEFINE NOTRC, SUBTTL Register definitions M0=0 ;ULTRA-SCRATCH AC, PASS RETURN CODES T1=1 ;GENERAL SCRATCH/TEMP AC T2=2 ; ANOTHER T3=3 ; AND ANOTHER T4=4 ; AND ANOTHER P1=5 ;PRESERVED REGISTER P2=6 ; ANOTHER P3=7 ; AND ANOTHER P4=10 ; AND ANOTHER IO=11 ;I/O CDB ADDRESS ; ID=12 ;DAP BLOCK ADDRESS (FROM I/O CDB) ;15 - 16 RESERVED FOR AP/PF/CF/AD NAUSEUM USAGE (BLISS/FORTRAN/PASCAL/ETC.) P=17 ;PROGRAM STACK POINTER ;SPECIAL AC USAGE (UGLY, BUT THAT IS SCAN'S CONVENTION) NM==P3 ;NAME/VALUE REGISTER FOR INPUT ROUTINES CH==P4 ;CHARACTER REGISTER FOR INPUT ROUTINES ;NOW SAVE SOME TREES .XCREF M0, T1, T2, T3, T4, P1, P2, P3, P4, IO, P .XCREF CH, NM SUBTTL Instruction definitions (OPDEFs, et al) ;THE "EXTENDED" ADDRESSING INSTRUCTIONS THAT HAVEN'T MADE MACRO YET OPDEF XMOVEI [SETMI] OPDEF XHLLI [HLLI] ;GENERATE INSTRUCTION-FORMAT-INDIRECT-WORD OPDEF IFIW [1B0] .NODDT IFIW ;PRESERVE SETZ SUBTTL General definitions - Assembly parameters ;SCAN-level parameters ND LN$ABF,200 ;LENGTH OF INDIRECT BUFFER ND M$INDP,^D10 ;MAX. INDIRECT DEPTH (-1=INF., 0=NONE) VRBADX==10 ;/MESSAGE:ADDRESS (*KROCK*) ;Network-level parameters ND $NTNBL,^D04 ;NAME BLOCK LENGTH (WORDS) ND $NTSBL,^D12 ;STRING BLOCK LENGTH (WORDS) ND $NTODL,^D08 ;OPTIONAL DATA BLOCK LENGTH (WORDS) ND $NABFS,^D432 ;DEFAULT ANF TSK CHANNEL BUFFER SIZE (BYTES) ; (PRE-7.02 DN8X DEFAULT MSGMAX WAS ^D450) ND $NAIBF,4 ;NUMBER OF ANF TSK CHANNEL INPUT BUFFERS ; (TRANSLATED TO DATA REQUEST COUNT BY MONITOR) ND $NAIBX,100 ;"EXTRA" ALLOCATION FOR ANF INPUT BUFFERS (WORDS) ; ALLOWS FOR POSSIBLE "SEGMENT SIZE SKEW" WITH NFT'S ; RUNNING UNDER (E.G.,) 7.01 WITH DIFFERENT SEGMENT SIZE ; (TECHNICALLY ILLEGAL, BUT HAPPENS NONETHELESS, ; AND THIS ENABLES IT TO WORK) - AVOIDS IO.BKT ERRORS ;*** RESET TO 0 AFTER FIRST RELEASE ;Assorted values ND $ASCMX,^D8 ;MAXIMUM ASCII SIZE (/PASSWORD, ETC.) SUBTTL Macro definitions - COPYRIGHT nonsense ;The COPYRIGHT macro as used by the SWIL package is defined to ***NOT*** ;assemble the copyright statement into actual code, but it will appear in ;the .REL files. ; ;As with the UUOSYM version of the macro of the same name, the format for ;the copyright statement is: ; ;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986,1988. ALL RIGHTS RESERVED. ; ;Where the year(s) is(are) specified as needed. Note that the trailing dot ;(or period) character is absolutely mandatory!!! It is the only period ;allowed in the copyright statement, and no text is allowed to follow the ;period! DEFINE COPYRIGHT,<.TEXT .;Copyright > SUBTTL Macro definitions - CRC table generation macro(s) DEFINE BLDCRC(POLY),< .XCREF ;;CLEANER LISTINGS ..ZZ==-1 ;;INITIALIZE FOR "BYTE" LOOP REPEAT ^D256,<.CRC (POLY,\<..ZZ==..ZZ+1>)> ;;GENERATE CRC TABLE IF2, ;;PITCH GARBAGE SYMBOLS .CREF ;;BACK TO NORMAL CODE > ;END BLDCRC MACRO ;HELPER TO BLDCRC MACRO DEFINE .CRC(POLY,BYTE),< ..CRC=BYTE REPEAT ^D08,< ...CRC=..CRC&1 ..CRC=..CRC_-1 IFN ...CRC,<..CRC=..CRC^!POLY>> EXP ..CRC > ;END .CRC MACRO SUBTTL Macro definitions - SCAN errors Repeat 0,< ;M.FAIL SENDS FOO AS A FATAL ERROR DEFINE M.FAIL (A),< EXT .FMSG PJSP T1,.FMSG XLIST ASCIZ \A\ LIST > ;M.FAIN SENDS FOO AS A FATAL ERROR WITH N IN SIXBIT DEFINE M.FAIN (A),< EXT .FMSGN PJSP T1,.FMSGN XLIST ASCIZ \A\ LIST > ;M.FAID SENDS FOO AS A FATAL ERROR WITH N IN DECIMAL DEFINE M.FAID (A) < EXT .FMSGD PJSP T1,.FMSGD XLIST ASCIZ \A\ LIST > ;M.FAIO SENDS FOO AS A FATAL ERROR WITH N IN OCTAL DEFINE M.FAIO (A),< EXT .FMSGO PJSP T1,.FMSGO XLIST ASCIZ \A\ LIST > ;M.MAIF SENDS FOO AS A FATAL ERROR WITH N=ADDR OF FILE DESCRIPTOR DEFINE M.FAIF(A)< EXT .FMSGF PJSP T1,.FMSGF XLIST ASCIZ \A\ LIST > > ;end repeat 0 SUBTTL Macro definitions - STOPCD and WARNCD ;TEMP MACRO(S) DEFINE STOPCD(TXT,RTN,ADR,DIE),< IF2, > IFB ,< IFB ,< HALT .SPOPJ> IFNB ,< POP P,.JBBLT HALT DIE> > IFNB ,< PUSHJ P,[OUTSTR [ASCIZ\? TXT \] IFB ,< JRST .SPOPJ> IFNB ,< POP P,.JBBLT JRST DIE>] > > ;END STOPCD MACRO DEFINITION DEFINE WARNCD(TXT,RTN,ADR,DIE),< PUSHJ P,[SKIPLE S.MOAN## ;;WANT WARNINGS? OUTSTR [ASCIZ\% TXT \] IFB , ;;RETURN TO INLINE CODE IFNB ,< POP P,.JBBLT ;;ADJUST STACK (REMEMBER DISPATCH) JRST DIE]> ;;CONTINUE ELSEWHERE > ;END WARNCD MACRO DEFINITION PRGEND ;END OF INTERNAL DEFINITIONS MODULE UNIVER SWIL SWIL universal definitions SUBTTL Robert D. Houk/RDH SEARCH SWIDEF ;INTERNAL-TO-SWIL DEFINITIONS SEARCH JOBDAT, MACTEN, UUOSYM ;STANDARD DEFINITIONS SALL ;PRETTY LISTINGS .DIRECT FLBLST ;PRETTIER LISTINGS COMMENT \ SWIL -- Definitions module for users of the SWIL package. COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1987,1988. ALL RIGHTS RESERVED. THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. \ %%SWIL==:%%SWIL ;MAKE VERSION AVAILABLE TO ALL SUBTTL SCAN/WILD interface flags ;FLAGS FOR .ISCAN CALL FS.ICK==1B0 ;KROCK-MODE COMMAND SCANNING FS.IFI==1B16 ;INDIRECT FILE ILLEGAL IN COMMAND [106] FS.ICL==1B17 ;IGNORE SPECIAL COMMAND-LINE HANDLING ;FLAGS FOR .TSCAN CALL FS.MOT==1B18 ;MULTIPLE OUTPUT SPECS POSSIBLE FS.MIO==1B19 ;MIXED INPUT AND OUTPUT SPECS ;FLAGS FOR .LKWLD CALL FW.ADO==1B0 ;ANY DEVICE OK (ELSE JUST DISK) FW.DBS==1B1 ;DO DIRECTORY BEFORE SUBDIRECTORY FW.IFX==1B4 ;IMMEDIATE FILE EXIT FW.FBD==1B5 ;RETURN DIRECTORY AS FILE BEFORE EXPANDING AS DIRECTORY FW.FAD==1B6 ;RETURN DIRECTORY AS FILE AFTER EXPANDING AS DIRECTORY ;FLAGS FOR .TDIRB CALL TS.DRW==0 ;SINGLE WORD TS.DRP==1 ;PATH POINTER TS.DRB==2 ;BIWORD (IE, SCAN SPEC FORMAT) ;VALUES FROM .VERBO JWW.CN==1B33 ;/VERBOS:CONTINUATION JWW.FL==1B34 ;/VERBOS:FIRST JWW.PR==1B35 ;/VERBOS:PREFIX SUBTTL File Specification Block definitions ;FILE SPEC BLOCK VERSION ; ;THIS MUST APPEAR IN THE VARIOUS PROTOCOL BLOCKS WITH WHICH THE USER ;COMMUNICATES WITH "SCAN". THE FIRST WORD OF EACH PROTOCOL BLOCK IS THE ;VERSION WORD, OF THE FORMAT: ; ; ,, ; ;WHERE IS THE MAJOR PROTOCOL FORMAT USED, AND MINOR IS THE MINOR ;VARIATION WITHIN THE MAJOR FORMAT. IS NOT AVAILABLE AS A SYMBOL, ;IT *** MUST *** BE HARDCODED INTO THE CALLING PROGRAM IN ORDER TO ENSURE ;THAT THE CALLER REALLY KNOWS WHAT VERSION IS BEING USED, AND HASN'T JUST ;RECOMPILED IN ORDER TO PULL THE SYMBOL OUT OF THIS FILE WITHOUT UPDATING ;THE CALLING PROGRAM. IS AVAILABLE AS SYMBOL "%%FXVE" SINCE ANY ;"MINOR" CHANGES CAN BE "FIXED" BY MERELY RECOMPILING THE PROGRAM. ;"MAJOR" CHANGES WOULD INCLUDE SUCH THINGS AS DELETING .FX--- WORDS OR ;CHANGING THE MEANING OF THE CONTENTS OF THE WORDS (ASCII RATHER THAN ;SIXBIT, ETC.); "MINOR" CHANGES WOULD INCLUDE SUCH THINGS AS SIMPLY ADDING ;NEW FIELDS OR RE-ARRANGING CURRENT FIELDS (BUT CHANGING THE ORDER OF THE ;NAME/MASK WORD PAIRS INTO MASK/NAME WORD PAIRS WOULD BE A "MAJOR" CHANGE). ; 12 ;MAJOR PROTOCOL VERSION ;*** MACRO BUG: .FXLND MUST NOT BE FORWARD-REFERENCED IN PRGENDED UNIVER FILE .FXLND==<.PTMAX-.PTPPN-1> ;LENGTH OF DIRECTORY (UFD+SFD'S) ;*** END OF BUG %%FXVE==<.FXLND_^D12>+106 ;MINOR PROTOCOL VERSION ;WORDS IN FILE SPEC AREA .FXLND==<.PTMAX-.PTPPN-1> ;LENGTH OF DIRECTORY (UFD+SFD'S) .FSLXX==^D55 ;LENGTH (WORDS) OF STRING BLOCKS PHASE 0 .FXBZM:! ;START OF INITIALLY SETZM'ED REGION .FXCTL:!BLOCK 1 ;CONTROL FLAGS .FXCTM:!BLOCK 1 ;CONTROL MASK .FXMOD:!BLOCK 1 ;MODIFIER WORD .FXMOM:!BLOCK 1 ;MODIFIER MASK .FXUSW:!BLOCK 2 ;USER-RESERVED FLAGS WORD & MASK .FXFLD:!BLOCK 1 ;FIELD MASK (WHICH FIELDS PRESENT) .FXNOD:!BLOCK 1 ;NODE NAME (NON-ZERO IF NODE SPECIFIED) .FXNOM:!BLOCK 1 ;NODE NAME MASK .FXDEV:!BLOCK 1 ;DEVICE (NON-ZERO IF ANY PART OF SPEC) .FXDEM:!BLOCK 1 ;DEVICE MASK .FXDIR:!BLOCK 1 ;DIRECTORY WORD (NON-ZERO IF DIRECTORY SPECIFIED) .FXDIM:!BLOCK 1 ;DIRECTORY MASK BLOCK 2*<.FXLND-1> ;REST OF DIRECTORY (SFDS; 0 AT END OF PATH) .FXNAM:!BLOCK 1 ;NAME (NON-ZERO IF NAME PRESENT) .FXNMM:!BLOCK 1 ;NAME MASK .FXEXT:!BLOCK 1 ;EXTENSION,,EXTENSION MASK (NON-ZERO DOT PRESENT) .FXGEN:!BLOCK 1 ;FILE GENERATION ;THE KROCK STRING-BLOCK STUFF .FSNOD:!BLOCK 1 ;ADDRESS OF NODE NAME STRING .FSDEV:!BLOCK 1 ;ADDRESS OF DEVICE NAME STRING .FSDIR:!BLOCK 1 ;ADDRESS OF DIRECTORY NAME STRING .FSNAM:!BLOCK 1 ;ADDRESS OF FILE NAME STRING .FSEXT:!BLOCK 1 ;ADDRESS OF FILE TYPE NAME STRING .FSGEN:!BLOCK 1 ;ADDRESS OF FILE GENERATION STRING .FSXXX:!BLOCK .FSLXX ;THE ACTUAL STRING STORAGE AREA .FXEZM:! ;END (+1) OF INITIALLY SETZM'ED REGION ;MORE WORDS IN THE FILE SPEC AREA .FXBOM:! ;START OF INITIALLY SETOM'ED REGION .FXBOA:! ;START OF ONE'ED SWITCH ATTRIBUTES .FXBSZ:!BLOCK 1 ;/BYTESIZE .FXFSZ:!BLOCK 1 ;/FRAMESIZE .FXRSZ:!BLOCK 1 ;/RECORDSIZE .FXBLS:!BLOCK 1 ;/BLOCKSIZE .FXBFN:!BLOCK 1 ;/BUFFERS .FXEST:!BLOCK 1 ;/ESTIMATE (SEE ALSO /CONTIGUOUS) .FXVER:!BLOCK 1 ;/VERSION .FXEOA:! ;END (+1) OF ONE'ED SWITCH ATTRIBUTES .FXBOC:! ;START OF ONE'ED SWITCH CONSTRAINTS .FXBFR:!BLOCK 1 ;/BEFORE .FXSNC:!BLOCK 1 ;/SINCE .FXABF:!BLOCK 1 ;/ABEFORE .FXASN:!BLOCK 1 ;/ASINCE .FXPBF:!BLOCK 1 ;/PBEFORE .FXPSN:!BLOCK 1 ;/PSINCE .FXFLI:!BLOCK 1 ;FILE MIN SIZE (WORDS) .FXFLM:!BLOCK 1 ;FILE MAX SIZE (WORDS) .FXEOC:! ;END (+1) OF ONE'ED SWITCH CONSTRAINTS .FXEOM:! ;END (+1) OF INITIALLY SETOM'ED REGION .FXLEN:! ;LENGTH (+1) OF ONE FILE SPECIFICATION BLOCK DEPHASE ;KEEP MACRO FROM ILL MEM REFING LINK! ;SUB-FIELDS IN .FXCTL CONTROL FIELD FX.RFM==17B3 ;/RECFORMAT:(NONE, FIXED, VARIABLE, VFC, 36PACK) FX.MCY==1B4 ;/MACY11 FX.MEY==1B5 ;/MECY11 (PRETTIER-PACKING MACY11) FX.ALC==1B6 ;/ALLOCATE (/ESTIMATE IS STILL SIZE) FX.CTG==1B7 ;/CONTIGUOUS (/ESTIMATE IS STILL SIZE) FX.APP==1B12 ;/APPEND FX.DEL==1B13 ;/DELETE (ON CLOSE) FX.PRI==1B14 ;/PRINT (ON CLOSE) FX.SUB==1B15 ;/SUBMIT (ON CLOSE) FX.QRY==7B20 ;/QUERY:(NEVER, TELL, ASK) FX.QRA==1B18 ;/QUERY:ASK FX.QRT==1B19 ;/QUERY:TELL FX.QRN==1B20 ;/QUERY:NEVER FX.QNY==1B21 ;/QUERY:ASK DEFAULT TO "NO" ([Y/N] VS [N/Y]) FX.SCE==7B24 ;/SCERROR:(NEVER, INSUFFICIENT, DIFFERENT) FX.SCW==7B27 ;/SCWILD:(ANY, FIELD, DFIELD, SAME, DSAME) FX.SCD==1B27 ;/SCWILD:(DFIELD ! DSAME) FX.DAM==17B31 ;/DATAMODE:(ASCII, IMAGE) (VALUE PARALLELS /IOMODE VALUES) FX.IOM==17B35 ;/IOMODE:(ASCII, BYTE, PIM, ETC...) ;FLAGS IN .FXFLD FIELDS-PRESENT MASK (ALSO USED BY .TOFSB) FX.UND==1B0 ;USER-SPECIFIED NODE NAME FX.UDV==1B1 ;USER-SPECIFIED DEVICE NAME FX.UDR==1B2 ;USER-SPECIFIED DIRECTORY NAME FX.UNM==1B3 ;USER-SPECIFIED FILE NAME FX.UEX==1B4 ;USER-SPECIFIED EXTENSION FX.UGN==1B5 ;USER-SPECIFIED GENERATION NUMBER FX.UFS==1B6 ;USER-SPECIFIED FILE-SPECIFIC SWITCH(ES) FX.UGS==1B7 ;USER-SPECIFIED GLOBAL SWITCH(ES) FX.UXX==FX.UND!FX.UDV!FX.UDR!FX.UNM!FX.UEX!FX.UGN!FX.UFS ;FILE SPEC TYPED FX.UQN==1B8 ;USER-SPECIFIED QUOTED FILE NAME FX.SND==1B9 ;"STICKY DEFAULT" NODE NAME FX.SDV==1B10 ;"STICKY DEFAULT" DEVICE NAME FX.SDR==1B11 ;"STICKY DEFAULT" DIRECTORY NAME FX.SNM==1B12 ;"STICKY DEFAULT" FILE NAME FX.SEX==1B13 ;"STICKY DEFAULT" EXTENSION FX.SGN==1B14 ;"STICKY DEFAULT" GENERATION NUMBER FX.SFS==1B15 ;"STICKY DEFAULT" FILE-SPECIFIC SWITCH(ES) FX.SGS==1B16 ;"STICKY DEFAULT" GLOBAL SWITCH(ES) FX.WND==1B18 ;WILDCARD(S) PRESENT IN NODE NAME FX.WDV==1B19 ;WILDCARD(S) PRESENT IN DEVICE NAME FX.WDR==1B20 ;WILDCARD(S) PRESENT IN DIRECTORY NAME FX.WNM==1B21 ;WILDCARD(S) PRESENT IN FILE NAME FX.WEX==1B22 ;WILDCARD(S) PRESENT IN EXTENSION FX.WGN==1B23 ;WILDCARD(S) PRESENT IN GENERATION FX.WXX==FX.WND!FX.WDV!FX.WDR!FX.WNM!FX.WEX!FX.WGN ;"WILDCARDS" TYPED ;NOTE THAT THE WILDCARD-PRESENT FLAGS MUST BE ON IF ANY WILDCARDS ARE ;PRESENT IN THE CORRESPONDING FIELD; HOWEVER THE WILDCARD-PRESENT FLAGS ;DO NOT GUARANTEE THAT TRUE WILDCARDS ARE PRESENT - THEY MERELY INDICATE ;THAT IT MUST BE ASSUMED THAT WILDCARDS ARE PRESENT . . . FX.DPJ==1B27 ;PROJECT FIELD WAS DEFAULTED ("[,PN]") FX.DPG==1B28 ;PROGRAMMER FIELD WAS DEFAULTED ("[P,]") FX.DPN==1B29 ;PATH FIELD WAS DEFAULTED ("[]") FX.DPT==1B30 ;PATH FIELD WAS DEFAULTED ("[-]") FX.DNP==1B31 ;NAME FIELD DEFAULTED FROM PPN ("[P,PN].UFD") FX.DNJ==1B32 ;FX.DNP'ED PROJECT FIELD DEFAULTED ("[,PN].UFD"]) FX.DNG==1B33 ;FX.DNP'ED PROGRAMMER FIELD DEFAULTED ("[P,].UFD") FX.DNT==1B35 ;FX.DNP'ED PPN FIELD DEFAULTED ("[-].UFD" - WELL, IT'S POSSIBLE) ;BYTES IN SCAN MOD WORD FX.NDV==1B0 ;(OBSOLETE) NULL DEVICE FX.NUL==1B1 ;(OBSOLETE) NULL EXTENSION FX.DIR==1B2 ;(OBSOLETE) DIRECTORY SPECIFIED (MOD=0 IF [-]) FX.PHY==1B3 ;/PHYSICAL ; 1B4 ;FREE FX.TRM==37B9 ;CODE FOR SPEC'S TERMINATION (PARALLEL .CHGWD) .FXTRZ==00 ;, (FILE EXPRESSION SEPARATOR) .FXTRA==01 ;'AND' .FXTRO==02 ;'OR' .FXTRN==03 ;'NOT' .FXTRC==04 ;+ (CONCATENATE) .FXTRB==06 ;'BEGIN' .FXTRE==07 ;'END' .FXTIA==11 ;'IFAND' .FXTIN==13 ;'IFNOT' .FXTIS==20 ;'IFSAME' .FXTID==21 ;'IFDIFFERENT' .FXTIO==22 ;'IFOLDER' .FXTIY==23 ;'IFNEWER' .FXTIL==24 ;'IFSMALLER' .FXTIB==25 ;'IFBIGGER' FX.STR==1B10 ;/STRS (DO WILD STRUCTURE STUFF) FX.NOM==1B11 ;/OKNONE FX.PRT==1B12 ;/OKPROT FX.SUP==1B13 ;/ERSUPERSEDE FX.UID==1B14 ;/OKUID FX.ADO==1B15 ;/ANYDEVICEOK (0 = /DSKONLY) FX.SCN==1B18 ;/SCAN (SFD TREE) FX.LIB==1B19 ;/LIB (DO/DON'T SEARCH LIB:) FX.SYS==1B20 ;/SYS (DO/DON'T SEARCH SYS:) FX.NEW==1B21 ;/NEW (DO/DON'T SEARCH NEW: ON SYS:) FX.DEN==7B23 ;/DENSITY [105] FX.PAR==1B24 ;/PARITY FX.PRO==777B35 ;/PROTECTION ;NOT DEFAULTED IN .OSDFS (FROM SWITCH.INI) FXNOTD==FX.NDV!FX.NUL!FX.DIR!FX.TRM ;ILLEGAL ON INPUT FILE FXNOTI==FX.SUP ;ILLEGAL ON OUTPUT FILE FXNOTO==FX.STR!FX.SCN!FX.LIB!FX.SYS!FX.NEW SUBTTL File Spec Block definitions, addenda ;This shouldn't be here, but for the moment (geologically speaking) it is ;left here as a quick expedient way of getting everything (read "NFT") to ;work. ; -RDH DEFINE SCNWRD(WRD,SIZ), ,-1>> IFNB ,>->>> .XCREF ..Z==.FXLEN .XCREF ..Z .CREF ;NOW DEFINE OUR OWN PRIVATE CUSTOM FILE-SPECIFIC BLOCKS .FX$B==..Z ;START OF "FILE ANSWERS" ;THE "ZERO'ED" BLOCKS FIRST, STRINGS AND THE LIKE .FX$BZ==..Z ;START OF ZERO'ED FILE ANSWERS SCNWRD .FXPNM,2 ;/DIAL (TELEPHONE NUMBER) SCNWRD .FXPSW,$ASCMX ;/PASSWORD SCNWRD .FXUID,$ASCMX ;/USERID SCNWRD .FXUAC,$ASCMX ;/UACCOUNT (TO MATCH /USERID) SCNWRD .FXUPW,$ASCMX ;/UPASSWORD (TO MATCH /USERID) ;THE "ONE'D" BLOCKS LAST, NORMAL "WORD" VALUES .FX$BO==..Z ;START OF ONE'D FILE ANSWERS SCNWRD $FXUO0 ;ONE'ED #0 SCNWRD $FXUO1 ;ONE'ED #1 SCNWRD $FXUO2 ;ONE'ED #2 SCNWRD $FXUO3 ;ONE'ED #3 SCNWRD $FXUO4 ;ONE'ED #4 SCNWRD $FXUO5 ;ONE'ED #5 SCNWRD $FXUO6 ;ONE'ED #6 SCNWRD $FXUO7 ;ONE'ED #7 SCNWRD $FXUO8 ;ONE'ED #8 SCNWRD $FXUO9 ;ONE'ED #9 .FX$E==..Z ;END OF "FILE ANSWERS" .FXMAX==:..Z ;SIZE OF FILE SPEC "SCAN" BLOCK SUBTTL Macro definitions - DM, KEYS, KEYSG ; DM ABBREVIATION,MAX,ADEFAULT,PDEFAULT ; DEFINES SYMBOLS MX.ABBREVIATION,AD.ABBREVIATION, AND PD.ABBREVIATION ; TO BE THE MAXIMUM ALLOWED VALUE, THE DEFAULT IF THE KEYWORD ; IS ABSENT, AND THE DEFAULT IF THE KEYWORD IS PRESENT RESPECTIVELY ; UNLESS THE CORRESPONDING SYMBOL IS ALREADY DEFINED. DEFINE DM(ABBR,MAX,ADEF,PDEF),< ND MX.'ABBR,MAX ND AD.'ABBR,ADEF ND PD.'ABBR,PDEF> ; KEYS (NAME,LIST) WILL DEFINE A LIST OF KEYS BY NAME NAME ; NAME CAN BE UP TO 4 CHARS. (DEFINES NAME.T AND NAME.L) ; LIST IS SIXBIT NAMES SEPARATED BY COMMAS. ; DEFINES NAME CONCATENATED WITH START OF ITEM IN LIST ; AS INDEX IN LIST UNLESS THE ITEM BEGINS WITH "*" ; KEYSG (NAME,LIST) WILL DEFINE A LIST OF KEYS BY NAME NAME ; NAME CAN BE UP TO 4 CHARS. (DEFINES NAME.T AND NAME.L) ; LIST IS SIXBIT NAMES SEPARATED BY COMMAS. ; DEFINES GLOBAL NAME CONCATENATED WITH START OF ITEM IN LIST ; AS INDEX IN LIST UNLESS THE ITEM BEGINS WITH "*" DEFINE KEYS(NAME,LST),< NAME'.L==0 NAME'.T: IRP (LST)<*>,<..TEMP==1> STOPI> IFE ..TEMP, > PURGE ..TEMP > DEFINE KEYSG(NAME,LST),< NAME'.L==0 NAME'.T: IRP (LST)<*>,<..TEMP==1> STOPI> IFE ..TEMP, > PURGE ..TEMP > SUBTTL Macro definitions - SWTCHS and friends ;SWITCH SCANNING MACROS AND TABLES ;SWTCHS IS THE MACRO LISTING ALL KNOWN SWITCHES ;IT INCLUDES THE NAME AND STORAGE LOCATION ;FOR VALUE TYPES, IT ALSO HAS THE MAX AND DEFAULT AND PROCESSOR ;FOR KEY-VALUE TYPES, IT POINTS TO THE KEYS AND HAS THE DEFAULT IF ANY ;FOR STAND-ALONE TYPES, IT HAS THE VALUE. ;WHEN THE SWITCH SCANNING TABLES ARE TO BE BUILT, INVOKE ;THE MACRO DOSCAN WITH 5-CHAR ARGUMENT TO USE AS SYMBOL PREFIX ;IT WILL DEFINE XXXXXN,L,P,M,D ; SL NAME,STORAGE,TABLE-NAME,DEFAULT,FLAGS ; DEFINES A LIST OF KEY-VALUES (SEE KEYS MACRO) ; DEFAULT IS THE ORDINAL OR 0 IF NO DEFAULT ; IF LH(STORAGE)=7777B11, STORAGE = ROUTINE TO PROCESS ; ; SP NAME,STORAGE,PROCESSOR,ABBREVIATION,FLAGS ; DEFINES A VALUE PARAMETER WHOSE DEFAULTS ; ARE DEFINED AT THE BEGINNING OF THE PROGRAM ; BY "DM" USING THE SAME ABBREVIATION ; PROCESSOR IS THE JUMP ADDRESS IN SWITCH PROCESSING ; IT WILL BE CALLED WITH P1=SWITCH OFFSET IN TABLE ; AND P2=POINTER TO 4-WORD BLOCK OF INTERNAL OR EXTERNAL STUFF ; IF MAX=0 AND FS.LRG, THEN ANY VALUE CAN BE STORED ; ELSE, 0.LE.VALUE.LE.MAX ; ; 0.LE.MAX,DEFAULT.LT.2**17 UNLESS FS.LRG ; ; IF MAX=0 AND NOT FS.LRG, THEN PROCESSOR IS AN IMMEDIATE ACTION ; WHICH WILL ALWAYS BE CALLED ; ELSE, PROCESSOR WILL BE CALLED ONLY IF ":" ; ; SS NAME,STORAGE,VALUE,FLAGS ; DEFINES A STAND-ALONE PARAMETER ; ; IN ALL CASES, STORAGE IS A BYTE POINTER. ; IF A FULL WORD, ONLY THE ADDRESS IS NEEDED ; IF A MULTIPLE WORD, THE BYTE SIZE IS 65-#WORDS (UP TO 28) ; IF A FILE SPECIFICATION, THE LENGTH IS HELD IN MX.ABBREVIATION ; IF POINTER IS 7777??,,?????? THEN RH(POINTER) IS DISPATCH ; ADDRESS OF PROCESSOR WHICH TAKES KEYWORD SWITCH VALUES ; ; SN NAME,STORAGE,FLAGS ; DEFINES A STAND-ALONE PARAMETER WHICH TAKES VALUE ; 1 IF /NAME, AND VALUE 0 IF /NONAME DEFINE SL($NAME,$RESULT,$TABLE,$DEFAULT,$FLAGS),< X $NAME,$TABLE'.T-1,<$RESULT>,$DEFAULT,-$TABLE'.L,$FLAGS > DEFINE SP($NAME,$RESULT,$PROCESSOR,$ABBR,$FLAGS),< X $NAME,$PROCESSOR,<$RESULT>,PD.'$ABBR,MX.'$ABBR,$FLAGS > DEFINE SS($NAME,$RESULT,$VALUE,$FLAGS),< X $NAME,0,<$RESULT>,$VALUE,0,$FLAGS > DEFINE SN($NAME,$RESULT,$FLAGS),< X $NAME,0,<$RESULT>,0,0,FS.NOS!$FLAGS > ;FLAGS WHICH CAN BE DEFINED IN SWITCH TABLE FS.NFS==1B0 ;THIS SWITCH IS NEVER PART OF A FILE SPECIFICATION ; THIS SHOULD BE SET ON GLOBAL SWITCHES ; ** VERY IMPORTANT TO GET RIGHT ** FS.LRG==1B1 ;THE MAX AND DEFAULT VALUES ARE 0 OR .GT. 2**17 FS.NUE==1B2 ;NO USER EXIT ON THIS SWITCH FS.VRQ==1B3 ;VALUE REQUIRED FS.OBV==1B4 ;OR BIT VALUES TO RIGHT HALF FS.NOS==1B5 ;SWITCH TAKES "NO" PREFIX (INTERNAL FOR SN MACRO ONLY) FS.NCM==1B6 ;SWITCH DOES NOT CONSTITUTE A COMMAND [102] ; (FOR /RUN, /OPTION, /EXIT) FS.SKP==1B7 ;SUCCESSFUL SWITCH PROCESSOR WILL SKIP RETURN ;DON'T USE FS.R??, WHICH ARE DEFINED IN C.MAC ;MACRO TO BUILD THE TABLES FROM THE SWTCHS MACRO DEFINE DOSCAN(PFX),< XALL ;;TABLE OF SIXBIT SWITCH NAMES DEFINE X($NAME,$PROC,$POINT,$DEFLT,$MAX,$FLAGS),< EXP SIXBIT /$NAME/ > PFX'N: SWTCHS PFX'L==.-PFX'N ;;TABLE OF BYTE POINTERS TO STORE RESULT IF2,< DEFINE X($NAME,$PROC,$POINT,$DEFLT,$MAX,$FLAGS),< ..TEMP==0 IRP $POINT,< IFE ..TEMP-1,< $POINT ;$NAME > IFE ..TEMP-2,< POINT 36,$POINT,35 ;$NAME > IFIDN <$POINT><*P>,<..TEMP==1> ;;PARTIAL WORD IFIDN <$POINT><*F>,<..TEMP==2> ;;FULL WORD > IFB <$POINT>,< Z ;$NAME ..TEMP==1> IFE ..TEMP,< IFN <$POINT>_-^D24,< ;;THIS EVEN ALLOWS "POINT 1,2,FOO##" ..TEMP==1 $POINT ;$NAME > IFE ..TEMP,< POINT 36,$POINT,35 ;$NAME > >>> PFX'P: SWTCHS ;;TABLE OF IF LT 0, IOWD KEY TABLE ;; OR IF GE 0, XWD MAX,PROCESSOR MX.==0 DEFINE X($NAME,$PROC,$POINT,$DEFLT,$MAX,$FLAGS),< IF2,< IFE <$FLAGS>&FS.LRG,-377777,> > ..TEMP==1 IFN <$FLAGS>&FS.LRG,,<..TEMP==0>> IFN ..TEMP,< XWD $MAX,$PROC ;$NAME > IFE ..TEMP,< XWD [$MAX],$PROC ;$NAME > > PFX'M: SWTCHS ;;FLAGS,,DEFAULT VALUE PD.==0 DEFINE X($NAME,$PROC,$POINT,$DEFLT,$MAX,$FLAGS),< IF2,< IFL <$DEFLT>,+1,> IFE <$FLAGS>&FS.LRG,-777777,> > IFB <$FLAGS>,<..TEMR==0> IFNB <$FLAGS>,<..TEMR==($FLAGS)> ..TEMP==1 IFN <$FLAGS>&FS.LRG,,<..TEMP==0>> IFN ..TEMP,< XWD ..TEMR,$DEFLT ;$NAME > IFE ..TEMP,< XWD ..TEMR,[$DEFLT] ;$NAME > > PFX'D: SWTCHS PURGE ..TEMP,..TEMR SALL > SUBTTL Meta-Character definitions ;FUNNY CHARACTERS (NOT IN MACTEN) .CHDLE==20 ;DATA LINK ESCAPE .CHDC1==21 ;DEVICE CONTROL (1) .CHDC2==22 ;DEVICE CONTROL (2) .CHDC3==23 ;DEVICE CONTROL (3) .CHDC4==24 ;DEVICE CONTROL (4) ;SPECIAL CHARACTERS FOR SCAN .CHALX==0 ;ALTMODE .CHEOL==-1 ;END OF LINE .CHEOF==-2 ;END OF FILE ;GUIDE WORDS (TURNED INTO PSEUDO CHARACTERS) ;MUST PARALLEL .FXT?? DEFINTIONS .CHGWD==4000 ;BASE OFFSET .CHAND==4001 ;'AND' .CHOR==04002 ;'OR' .CHNOT==4003 ;'NOT' .CHBEG==4006 ;'BEGIN' .CHEND==4007 ;'END' .CHIFA==4011 ;'IFAND' .CHIFN==4013 ;'IFNOT' .CHISA==4020 ;'IFSAME' .CHIDF==4021 ;'IFDIFFERENT' .CHIOL==4022 ;'IFOLDER' .CHINE==4023 ;'IFNEWER' .CHISM==4024 ;'IFSMALLER' .CHIBG==4025 ;'IFBIGGER' SUBTTL DAP protocol definition COMMENT \ The DAP (Data Access Protocol) messages are defined via the following macros. XM Defines a DAP message type XD Defines a field within a DAP message Field types are: A 1 ASCII characters B 2 Binary (integer) C 3 Binary, 5 DAP bytes compressed into 1 -10 word F 4 Flags I 5 Image (8-bit bytes) M 6 Menu T 7 Time (1 word internally) Field type modifiers are: V Variable field length X Extensible field XF Defines a flag within a DAP field XV Defines a value within a DAP field DAP message types are of the form $DHnam where "nam" is the name of the DAP message type (e.g., $DHCFG is a DAP configuration message). DAP fields are known by three letter names, from which the following symbols come about: $DAnam Global index into the DAP execution table $DBnam Length of field in DAP bytes $DLnam Length of the field in PDP-10 words $DTnam Type of field (ASCII, flags, etc.) DAP flags are known by three letter names, from which the following symbols are derived: DB$flg DAP flag bit number DF$flg Internal (PDP-10) bit number D1$flg First-word bit mask a la DF$flg D2$flg Second-word bit mask DAP field values are known by three letter names of the form $DVnam. The DAP "execution" table is built from the DAP definition which follows. The execution table has an entry for each DAP message type. Following each DAP message type entry is a series of entries, one for each field within the DAP message type. There are two major macros used which generate the usable DAP information: the DAP macro; and the DODAP macro. The DAP macro defines the actual DAP protocol, symbols, and so on, but is not of itself any use to the program. It is the DAP macro that is visable to the user (and which hopefully looks nice and is understandable). The DODAP macro actually generates useful symbols, tables, and so forth. The DODAP macro takes a single argument which controls how DODAP will expand the DAP macro into program-usable symbols/tables/whatever. The arguments are: DEF Define all of the program symbols associated with the DAP protocol as well as the DAP storage offsets within the DAP block within the I/O CDB. No binary code is generated. XCT Generates the DAP "execution" table - the program table which defines the DAP protocol message-field by message-field. IDX Generates the index table for the execution table - the program table which is used for finding the start of a particular message template within the execution table. XTX Generates the text table which parallels the execution table and which is used for DAP protocol errors. STS Generates the status code table for all DAP I/O-related status codes and associated text meaning. CLN Clean up the listing by .XCREFfing junk symbols (so they do not clutter up the CREF listing) and PURGEing those symbols no longer needed. \ SUBTTL DAP message field definitions ;Following is a complete (5.3) DAP specification. The following definition ;is used to later build the DAP "execution" table used in both the recep- ;tion and transmission of DAP messages to remote systems. Although there ;is no message type 0 within DAP itself, that position is effectively oc- ;cupied by the template for the generic DAP message header. ; ;Entries marked "(**)" are "local" facilities not available in other ;strict implementations of DAP. DEFINE DAP,< ;(xxx) DAP MESSAGE HEADER XM DAP,0, XD MHF,5FX,, XF SID,0, XF HLN,1, XF HL2,2, XF BCT,3, XF XX1,4, XF SHX,5, XF MOR,6, XD SID,1B,, XD HLN,1B,, XD HL2,1B,, XD BCT,1B,, XD SHX,4IV,, ;(001) CONFIGURATION XM CFG,1, XD MSZ,2B,, XD OST,1B,, XV ORT,1, XV ORE,2, XV ORS,3, XV ORM,4, XV ORD,5, XV OIA,6, XV OVX,7, XV OT2,8, XV OT1,9, XV OR8,10, XV OS8,11, XV ORP,12, XV OCP,13, XV OPS,14,

XV OEL,15, XV OCM,16, XV OMS,17, XV OX3,18, XV OX1,19, $DVOMX==$DVOX1 ;Maximum known operating system type XD FST,1B,, XV F11,1, XV F20,2, XV F32,3, XV FF1,4, XV FRT,5, XV FNS,6, XV FT2,7, XV FT1,8, XV FO8,9, XV F3S,10, XV FCM,11, XV FMS,12, XV FX3,13, XV FX1,14, $DVFMX==$DVFX1 ;Maximum known file system type XD DVR,1B,, XD DVE,1B,, XD DVU,1B,, XD DVS,1B,, XD DVT,1B,, XD CNF,10FX,, XF FPA,0, XF SFO,1, XF RFO,2, XF DFO,3, XF FXC,4, XF SFT,5, XF RAR,6, XF RAB,7, XF RAK,8, XF RAH,9, XF RAA,10, XF MFO,11, XF SWA,12, XF APN,13, XF CMF,14, XF CCP,15, XF MDS,16, XF DFC,17, XF BLR,18, XF BLU,19, XF C25,20, XF FCK,21, XF KEA,22, XF AEA,23, XF SEA,24,

XF DIR,25, XF TEA,26, XF PEA,27, XF LEA,28, XF SPO,29, XF CMS,30, XF FDE,31, XF DFS,32, XF SRA,33, XF FTR,34, XF BTC,35, XF WST,36, XF REN,37, XF WLD,38, XF CGN,39, XF NAM,40, XF DSG,41, XF CFA,42, XF CFD,43, XF CFP,44, XF CFN,45, XF MAR,46, XF N3D,47,<3-part NAME messages via DISPLAY field> XF CRA,48, XF CRD,49, XF CRP,50, XF BLC,51, XF OVO,52, ;(002) ATTRIBUTES XM ATR,2,
XD M02,6MX,, XD DTY,2FX,, XF ASC,0,<7-bit ASCII characters> XF IMG,1, XF EBC,2, XF CPR,3, XF EXE,4, XF PRV,5, XF XX2,6, XF ZOD,7, XD ORG,1B,, XV OSQ,0, XV ORL,16, XV OID,32, XV OHS,48, XD RFM,1B,, XV FNR,0, XV FFX,1, XV FVR,2, XV FVF,3, XV FST,4,<[ASCII] Stream format> XV FSL,5,<[ASCII] Stream-LF format> XV FSC,6,<[ASCII] Stream-CR format> XD RAT,3FX,, XF FCC,0, XF ILC,1, envelope> XF PRN,2, XF NSB,3, XF EFC,4, XF CCC,5, XF LSA,6, XF MCY,7, XD BLS,2B,, XD MRS,2B,,<[Maximum] record size (bytes)> XD ALQ,5CV,, XDE BKS,1B,, XD FSZ,1B,, XDE MRN,5CV,, XD RTS,40AV,, XD DEQ,2B,, XD FOP,6FX,, XF RWO,0, XF RWC,1, XF XX3,2, XF EOT,3, XF DLC,4, XF DRF,5, XF FLK,6, XF CTG,7, XF SUP,8, XF NEF,9, XF TMP,10, XF TMD,11, XF XX4,12, XF DMO,13, XF WCK,14, XF RCK,15, XF CIF,16, XF OLF,17, XF SQO,18, XF MXV,19, XF SPC,20, XF SCF,21, XF DLT,22, XF CBT,23, XF WLF,24, XF DFW,25, XF TEF,26, XF OFP,27, XD BSZ,1B,, XD DEV,6FX,, XF REC,0, XF CCL,1, XF TRM,2, XF MDI,3, XF SDI,4, XF SQD,5, XF NUL,6, XF FOD,7, XF DSH,8, XF SPL,9, XF MNT,10, XF DMT,11, XF ALL,12, XF IDV,13, XF ODV,14, XF SWL,15, XF AVL,16, XF ELG,17, XF MBX,18, XF RTM,19, XF RAD,20, XF DRC,21, XF DWC,22, XF FRN,23, XF NDV,24, XF GDV,25, XD SDC,6FX,, $TRACE < XF RCO,0, XF CRG,1, XF TTY,2, XF DRS,3, XF SDO,4, XF SQB,5, XF DNL,6, XF FOR,7, XF SHD,8, XF SPD,9, XF CMN,10, XF MKD,11, XF ALD,12, XF CDI,13, XF CDO,14, XF WLK,15, XF AVU,16, XF ELE,17, XF MAI,18, XF RLT,19, XF RAC,20, XF RCE,21, XF WCE,22, XF FGN,23, XF NET,24, XF GEN,25, > ;;END $TRACE XD LRL,2B,, XD HBK,5CV,, XD EBK,5CV,, XD FFB,2B,, XD SBN,5CV,, ;(003) ACCESS XM ACS,3, XD AFC,1B,, XV ARD,1, XV AWR,2, XV ARN,3, XV ADL,4, XV ADR,6, XV ASB,7, XV AEC,8, XD AOP,5FX,, XF OKE,0, XF MAC,1, XF ACK,3, XF GNG,4, XD FIL,255AV,, XD FAC,3FX,, XF PUT,0, XF GET,1, XF DEL,2, XF UPD,3, XF TRN,4, XF BIO,5, XF BRO,6, XF APP,7, XD SHR,3FX,, XF PUT,0, XF GET,1, XF DEL,2, XF UPD,3, XF MSA,4, XF UPI,5, XF NIL,6, XD ADS,4FX,, XF DMA,0,
XF DKD,1, XF DAA,2, XF DSA,3, XF DDT,4, XF DFP,5, XF XX5,6, XF DAC,7, XF DNM,8, XF DN3,9,<3-part name messages (vol, dir, fil)> XD PSW,40AV,, ;(004) CONTROL XM CTL,4, XD CFC,1B,, XV CGT,1, XV CON,2, XV CUP,3, XV CPT,4, XV CDL,5, XV CRW,6, XV CTN,7, XV CMD,8, XV CRR,9, XV CFR,10, XV CXB,11, XV CFL,12, XV CNV,13, XV CFI,14, XV CXE,15, XV CDS,16, XV CFS,17, XV CBS,18, XV CCP,19, XV CRG,20, XV CPG,21, XD M04,4MX,, XD RAC,1B,, XV CSR,0, XV CKY,1, XV CRF,2, XV CSF,3, XV CBM,4, XV CBF,5, XDE KEY,255IV,, XDE KRF,1B,, XD ROP,6FX,, XF EOF,0, XF FDL,1, XF UIF,2, XF CSH,3, XF LOA,4, XF ULK,5, XF TPT,6, XF RHD,7, XF WBH,8, XF KGE,9, XF KGT,10, XF NLR,11, XF RLR,12, XF BLI,13, XF CKL,14, XF NXR,15, XF WLR,16, XF RRL,17, XF LRR,18, XDE HSH,5IV,, XD CDS,4FX,, XD BLK,1B,, ;(005) CONTINUE XM CNT,5, XDS M05,4MX,, XD C2F,1B,, XV CTA,1, XV CSK,2, XV CAB,3, XV CRS,4, XV CTR,5, ;(006) ACKNOWLEDGE XM ACK,6, ;(007) ACCESS COMPLETE XM ACM,7, XDS M07,4MX,, XD A2F,1B,, XV ACL,1, XV ARS,2, XV AKL,3, XV AES,4, XV ASK,5, XV ACB,6, XV ACE,7, XV ATR,8, XD AFO,6FX,, $TRACE < XF RDO,0, XF RDC,1, XF XX6,2, XF SKE,3, XF NPC,4, XF DFL,5, XF LOK,6, XF CTA,7, XF SEX,8, XF NSK,9, XF TPF,10, XF TPD,11, XF XX7,12, XF RDM,13, XF EWC,14, XF ERC,15, XF CRN,16, XF OLK,17, XF SQA,18, XF MVN,19, XF SFL,20, XF SBF,21, XF DEC,22, XF CTO,23, XF WTL,24, XF DWR,25, XF TEN,26, XF POF,27, > ;;END $TRACE XD CKS,2B,, ;(008) DATA XM DAT,8, XD RCN,8BV,, ;(009) STATUS XM STS,9, XDS M09,4MX,, XD STC,2B,, XD SRA,8BV,, XD SRN,8BV,, XD STV,8BV,, XD STX,255AV,, ;(010) KEY DEFINITION ATTRIBUTES EXTENSION XM KYX,10, XD M10,6MX,, XDE KOP,3FX,, XF DUP,0, XF CHG,1, XF NKC,2, XDE DFL,2B,, XDE IFL,2B,, XDE NSG,1B,, XDE POS,2B,, XDE SIZ,1B,, XDE REF,1B,, XDE KNM,40AV,, XDE NUL,1B,, XDE IAN,1B,, XDE LAN,1B,, XDE DAN,1B,, XDE DTP,1B,, XDE RVB,8BV,, XDE HAL,5BV,, XDE DVB,8BV,, XDE DBS,1B,, XDE IBS,1B,, XDE LVL,1B,, XDE TKS,1B,, XDE MRL,2B,, ;(011) ALLOCATION ATTRIBUTES EXTENSION XM ALC,11, XD M11,6MX,, XD VOL,2B,, XD ALN,4FX,, XF ANY,0, XF CYL,1, XF ALB,2, XF AVB,3, XF ARF,4, XD ALP,4FX,, XF HRD,0, XF ACT,1, XF ACB,2, XF ONC,3, XD LOC,8BV,, XDE RFI,16BV,, XD AAL,5CV,, XD AID,1B,, XDE BKZ,1B,, XD AEQ,2B,, ;(012) SUMMARY ATTRIBUTES EXTENSION XM SUM,12, XD M12,6MX,, XDE NOK,1B,, XDE NOA,1B,, XDE NOR,1B,, XDE PVN,2B,, ;(013) DATE AND TIME ATTRIBUTES EXTENSION XM TIM,13, XD M13,6MX,, XD CDT,18T,, XD UDT,18T,, XD EDT,18T,, XD RVN,2B,, XD BDT,18T,, XD PDT,18T,, XD ADT,18T,, ;(014) PROTECTION ATTRIBUTES EXTENSION XM PRT,14, XD M14,6MX,, XD PNM,40AV,, XD PSY,3FX,, XF PRD,0, XF PWR,1, XF PEX,2, XF PDE,3, XF PAP,4, XF PDI,5, XF PUP,6, XF PCP,7, XF PXT,8, XD POW,3FX,, $TRACE < XF RD1,0, XF WR1,1, XF EX1,2, XF DE1,3, XF AP1,4, XF DI1,5, XF UP1,6, XF CP1,7, XF XT1,8, > ;;END $TRACE XD PGR,3FX,, $TRACE < XF RD2,0, XF WR2,1, XF EX2,2, XF DE2,3, XF AP2,4, XF DI2,5, XF UP2,6, XF CP2,7, XF XT2,8, > ;;END $TRACE XD PWL,3FX,, $TRACE < XF RD3,0, XF WR3,1, XF EX3,2, XF DE3,3, XF AP3,4, XF DI3,5, XF UP3,6, XF CP3,7, XF XT3,8, > ;;END $TRACE ;(015) NAME XM NAM,15, XD NTY,3FX,, XF NFS,0, XF NFN,1, XF NDN,2, XF NVN,3, XF NDF,4, XF FRF,5, XD NMS,255AV,, ;(016) ACCESS CONTROL LIST ATTRIBUTES EXTENSION XM ACL,16, XDE ACT,1B,, XDE ACE,80AV,, ;(128) USER IDENTIFICATION XM USR,128, XD M77,6MX,, XD UID,40AV,, XD UAC,40AV,, XD UOP,132AV,, ;The DAP I/O status codes XS ABO,1, XS ACC,2, XS ACT,3,<"FILE" activity precludes operation> XS AID,4, XS ALN,5, XS ALQ,6, XS ANI,7, XS AOP,10, XS AST,11, XS ATR,12, XS ATW,13, XS BKS,14, XS BKZ,15, XS BLN,16,<"BLN" length error> XS BOF,17, XS BPA,20, XS BPS,21, XS BUG,22, XS CCR,23, XS CHG,24,<$UPDATE changed key without XB$CHG> XS CHK,25, XS CLS,26, XS COD,27, XS CRE,30, XS CUR,31, XS DAC,32, XS DAN,33, XS DEL,34, XS DEV,35, XS DIR,36, XS DME,37, XS DNF,40, XS DNR,41, XS DPE,42, XS DTP,43,<"DTP" field invalid> XS DUP,44, XS ENT,45, XS ENV,46, XS EOF,47, XS ESS,50, XS EXP,51, XS EXT,52, XS FAB,53, XS FAC,54, XS FEX,55, XS FID,56, XS FLG,57, XS FLK,60, XS FND,61,<"FIND" Function failed> XS FNF,62, XS FNM,63, XS FOP,64, XS FUL,65, XS IAN,66, XS IFI,67, XS IMX,70, XS INI,71, XS IOP,72, XS IRC,73, XS ISI,74, XS KBF,75, XS KEY,76, XS KRF,77, XS KSZ,100, XS LAN,101, XS LBL,102, XS LBY,103, XS LCH,104, XS LEX,105, XS LOC,106,<"LOC" Field invalid> XS MAP,107, XS MKD,110, XS MRN,111, XS MRS,112, XS NAM,113,<"NAM" block address invalid> XS NEF,114, XS NID,115, XS NPK,116, XS OPN,117, XS ORD,120, XS ORG,121, XS PLG,122, XS POS,123,<"POS" field invalid> XS PRM,124, XS PRV,125, XS RAB,126, XS RAC,127, XS RAT,130, XS RBF,131, XS RER,132, XS REX,133, XS RFA,134, XS RFM,135, XS RLK,136, XS RMV,137, XS RNF,140, XS RNL,141, XS ROP,142, XS RPL,143, XS RRV,144, XS RSA,145, XS RSZ,146, XS RTB,147, XS SEQ,150, XS SHR,151, XS SIZ,152, XS STK,153, XS SYS,154, XS TRE,155, XS TPE,156, XS UBF,157, XS USZ,160, XS VER,161, XS VOL,162, XS WER,163, XS WLK,164, XS WPL,165, XS XAB,166, XS DDI,167, XS CAA,170, XS CCF,171, XS CDA,172, XS CHN,173, XS TTO,174, XS TTY,175, XS DNA,176, XS DVI,177, XS ESA,200, XS FNA,201, XS FSZ,202, XS IAL,203, XS KFF,204, XS LNE,205, XS NOD,206, XS AOK,207, XS DUP,210, XS IDX,211, XS RLK,212, XS RRV,213, XS CNO,214, XS PBF,215, XS PND,216, XS QUO,217, XS RHB,220, XS RLF,221, XS RSS,222, XS RST,223, XS SQO,224, XS SUC,225, XS CFS,226, XS SYN,227, XS TMO,230, XS BLK,231, XS BSZ,232, XS CDR,233, XS CGJ,234, XS COF,235, XS JFN,236, XS PEF,237, XS TRU,240, XS UDF,241, XS XCL,242, XS DIF,243, XS HNS,244, XS HDE,245, XS WBE,246, XS ONP,247,