diff --git a/build/misc.tcl b/build/misc.tcl index 487e1266..5d9a391a 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -677,6 +677,19 @@ respond "Command" "d" respond "*" ":pdump sys2; ts macro\r" respond "*" ":kill\r" +# MACSYM and MONSYM universal files. +respond "*" ":cwd decsys\r" +respond "*" ":macro\r" +respond "*" "macsym.unv=macsym.mac\r" +expect "CORE USED" +respond "*" "\003" +respond "*" ":kill\r" +respond "*" ":macro\r" +respond "*" "monsym.unv=monsym.mac\r" +expect "CORE USED" +respond "*" "\003" +respond "*" ":kill\r" + # CROSS, assembler respond "*" ":macro\r" respond "*" "cross=cross\r" @@ -1543,6 +1556,24 @@ expect ":KILL" respond "*" ":ucnvrt ucode; u1\r" expect ":KILL" +# KLDDT +respond "*" ":cwd kldcp\r" +respond "*" ":macro\r" +respond "*" "klddt=klddt\r" +expect "CORE USED" +respond "*" "\003" +respond "*" ":kill\r" +respond "*" ":dec sys:link\r" +respond "*" "klddt/go\r" +respond "EXIT" ":start 45\r" +respond "Command:" "d" +respond "*" "\033y" +respond " " "kldcp; klddt bin\r" +respond "*" ":kill\r" +respond "*" ":mcnvrt kldcp; klddt bin\r" +expect ":KILL" +move_to_klfe "kldcp; klddt a10" + # KS10 microcode. # It doesn't seem to work very well when purified. respond "*" ":kshack;micro kshack;mcr 262=kshack;its,ks10,simple,flt,extend,inout,itspag,pagef\r" diff --git a/doc/kldcp/klddt.hlp b/doc/kldcp/klddt.hlp new file mode 100644 index 00000000..3f43c5df Binary files /dev/null and b/doc/kldcp/klddt.hlp differ diff --git a/doc/programs.md b/doc/programs.md index ef5adba4..906253ff 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -165,6 +165,7 @@ - KERMIT, file transfer. - KLDCP, KL10 diagnostics console program. - KLDCPU, KL10 diagnostics console utility. +- KLDDT, KL10 standalone debugger. - KLFEDR, KL10 frontend directory tool. - KLRUG, KL10 frontend debugger. - KN10, KS10 frontend software. diff --git a/src/decsys/macsym.mac b/src/decsys/macsym.mac new file mode 100644 index 00000000..cfde7246 --- /dev/null +++ b/src/decsys/macsym.mac @@ -0,0 +1,3408 @@ +; UPD ID= 59, RIP:<7.UTILITIES>MACSYM.MAC.5, 24-Mar-88 06:52:33 by LOMARTIRE +;More of TCO 7.1236 - Fix copyright year in MACREL +; UPD ID= 58, RIP:<7.UTILITIES>MACSYM.MAC.4, 8-Mar-88 10:56:58 by GSCOTT +;More of TCO 7.1236 - Fix copyright macro. +; UPD ID= 54, RIP:<7.UTILITIES>MACSYM.MAC.3, 19-Feb-88 18:14:29 by GSCOTT +;TCO 7.1236 - Update copyright notice. +; UPD ID= 35, RIP:<7.UTILITIES>MACSYM.MAC.2, 29-Dec-87 11:15:02 by RASPUZZI +;TCO 7.1168 - Add .CHSEM so we have semi colon mnemonic +; UPD ID= 124, SNARK:<6.1.UTILITIES>MACSYM.MAC.54, 6-May-85 20:23:19 by GROSSMAN +;TCO 6.1.1367 - Fix G1BPT to get section number into the correct place if +;using a symbolic section number. +; UPD ID= 609, SNARK:<6.UTILITIES>MACSYM.MAC.53, 16-Oct-84 09:12:47 by LOMARTIRE +;TCO 6.2243 - Fix SAVEAC so that numeric arguments produce the correct results +; UPD ID= 597, SNARK:<6.UTILITIES>MACSYM.MAC.52, 17-Sep-84 16:11:52 by PURRETTA +;Update copyright notice. +; UPD ID= 574, SNARK:<6.UTILITIES>MACSYM.MAC.51, 7-Aug-84 16:10:48 by PAETZOLD +;More of TCO 6.2132 - Add an N.B. in the structure macros about initialization +; UPD ID= 565, SNARK:<6.UTILITIES>MACSYM.MAC.50, 18-Jul-84 10:23:09 by PAETZOLD +;TCO 6.2132 - fix up ENDSTR to reuse FTSHOW words. +; UPD ID= 513, SNARK:<6.UTILITIES>MACSYM.MAC.49, 28-Mar-84 21:58:59 by MOSER +;TCO 6.1991 - REPLACE POINTR WITH ITS EXPANSION +; UPD ID= 502, SNARK:<6.UTILITIES>MACSYM.MAC.48, 15-Mar-84 09:28:06 by PAETZOLD +;Revoke edit 485. +; UPD ID= 501, SNARK:<6.UTILITIES>MACSYM.MAC.47, 11-Mar-84 16:16:36 by GROSSMAN +; CAXxx and ADDx & friends +; UPD ID= 486, SNARK:<6.UTILITIES>MACSYM.MAC.46, 20-Feb-84 22:36:22 by GROSSMAN +; Add TCO # to previous... +; UPD ID= 485, SNARK:<6.UTILITIES>MACSYM.MAC.45, 20-Feb-84 22:25:35 by GROSSMAN +; TCO 6.1974 - Purge generated labels produced by IFSKP., DO. and friends. +; UPD ID= 356, SNARK:<6.UTILITIES>MACSYM.MAC.44, 5-Oct-83 14:20:00 by MURPHY +;Remove obsolete PTLOC, PTLOCI, etc. +; UPD ID= 345, SNARK:<6.UTILITIES>MACSYM.MAC.43, 18-Aug-83 00:38:50 by GROSSMAN +; Make OWGP. work under radix ^D10. +; UPD ID= 339, SNARK:<6.UTILITIES>MACSYM.MAC.42, 8-Aug-83 08:28:19 by GROSSMAN +; More of TCO 6.1755 - Subtract P offsets from ^D36. +; UPD ID= 328, SNARK:<6.UTILITIES>MACSYM.MAC.41, 1-Aug-83 08:14:48 by GROSSMAN +;TCO 6.1755 - Re-do OWGBP generation. +; UPD ID= 326, SNARK:<6.UTILITIES>MACSYM.MAC.40, 27-Jul-83 14:33:00 by GROSSMAN +;Fix generation of 18 bit one-word globals (in .GTBCD macro) +; UPD ID= 318, SNARK:<6.UTILITIES>MACSYM.MAC.39, 11-Jul-83 08:56:07 by GRANT +;Change names of 8-bit BP macros added in UPD 306 +; UPD ID= 317, SNARK:<6.UTILITIES>MACSYM.MAC.38, 8-Jul-83 15:17:29 by WEETON +;TCO 6.1715 - Add VI%DEC +; UPD ID= 306, SNARK:<6.UTILITIES>MACSYM.MAC.37, 30-Jun-83 11:15:34 by GRANT +;More TCO 6.1641 - Add macros to generate 8-bit byte pointers +; UPD ID= 300, SNARK:<6.UTILITIES>MACSYM.MAC.36, 23-Jun-83 15:20:26 by PURRETTA +;Assemble copyright under REL conditional +; UPD ID= 299, SNARK:<6.UTILITIES>MACSYM.MAC.35, 23-Jun-83 13:18:09 by MURPHY +;More - check on pass 2 only. +; UPD ID= 298, SNARK:<6.UTILITIES>MACSYM.MAC.34, 22-Jun-83 17:26:57 by PURRETTA +;TCO 6.1701 - Define copyright macros COPYRT and .CPYRT +; UPD ID= 295, SNARK:<6.UTILITIES>MACSYM.MAC.33, 15-Jun-83 11:54:51 by MURPHY +;TCO 6.1686 - Check for absolute size args in STKVAR, etc. +; UPD ID= 289, SNARK:<6.UTILITIES>MACSYM.MAC.32, 24-May-83 09:23:08 by MCINTEE +;TYPO IN PREVIOUS EDIT - NAME SHOULD BE EMSKST NOT MSKSTR !!! +; UPD ID= 288, SNARK:<6.UTILITIES>MACSYM.MAC.31, 23-May-83 10:32:53 by MURPHY +;TCO 6.1661 - EDEFST, EMSKST, etc. +; UPD ID= 279, SNARK:<6.UTILITIES>MACSYM.MAC.30, 6-May-83 14:09:24 by HALL +;TCO 6.1641 - Add new byte pointers for 7-bit ASCII strings +; UPD ID= 278, SNARK:<6.UTILITIES>MACSYM.MAC.29, 5-May-83 16:16:46 by MURPHY +;TCO 6.1647 - Anglebrackets around Y in various calls internal to LOAD, etc. +; UPD ID= 246, SNARK:<6.UTILITIES>MACSYM.MAC.28, 4-Apr-83 12:42:30 by MURPHY +;TCO 6.1514 - New flavors of ERJMP, ERCAL. New macros IFJE. IFJN. to +; allow specification of ERJMP type. +; UPD ID= 242, SNARK:<6.UTILITIES>MACSYM.MAC.27, 25-Mar-83 16:40:06 by MURPHY +;TCO 6.1576 - Add tco number for OWGP., etc. +; UPD ID= 240, SNARK:<6.UTILITIES>MACSYM.MAC.26, 24-Mar-83 16:29:03 by MURPHY +;OWG. - Macro to construct one-word global byte pointers. +;EP., EXIND. - Macros to create extended format indirect words. +; UPD ID= 228, SNARK:<6.UTILITIES>MACSYM.MAC.25, 16-Mar-83 13:59:31 by MURPHY +;TCO 6.1551 - Fix DO., save ENDLP. definition over nesting. +; UPD ID= 223, SNARK:<6.UTILITIES>MACSYM.MAC.24, 12-Mar-83 17:33:10 by MILLER +;More TCO 6.1540 +; UPD ID= 222, SNARK:<6.UTILITIES>MACSYM.MAC.23, 11-Mar-83 13:08:44 by MILLER +;TCO 6.1540. Fix .ENTER for global stack +; UPD ID= 215, SNARK:<6.UTILITIES>MACSYM.MAC.22, 28-Feb-83 07:54:49 by MCINTEE +;TCO 6.1528 - In ENDSTR, purge all intermediate macro names +; UPD ID= 197, SNARK:<6.UTILITIES>MACSYM.MAC.21, 26-Jan-83 09:31:38 by HUIZENGA +;TCO 6.1477 - INCR/DECR warning about field overflows +; UPD ID= 193, SNARK:<6.UTILITIES>MACSYM.MAC.20, 18-Jan-83 23:30:33 by MURPHY +;More 6.1468 - Now make other variables work again. +; UPD ID= 192, SNARK:<6.UTILITIES>MACSYM.MAC.20, 17-Jan-83 16:48:28 by MURPHY +;TCO 6.1468 - Make STKVAR variables work in BLCAL. +; UPD ID= 149, SNARK:<6.UTILITIES>MACSYM.MAC.19, 1-Oct-82 08:45:37 by NEUSTAEDTER +;TCO 6.1293 - fancy up SAVEAC and LOADE +; UPD ID= 122, SNARK:<6.UTILITIES>MACSYM.MAC.18, 24-Aug-82 14:46:17 by MCINTEE +;More TCO 6.1139 - BEGSTR needs LFTBT. macro +; UPD ID= 100, SNARK:<6.UTILITIES>MACSYM.MAC.17, 15-Jul-82 18:27:56 by WALLACE +;TCO 6.1188 - Make computation of MACVER use new version number symbols +; UPD ID= 91, SNARK:<6.UTILITIES>MACSYM.MAC.16, 25-Jun-82 11:45:20 by PAETZOLD +;TCO 6.1177 - Make symbol names from from edit better more unique +; UPD ID= 90, SNARK:<6.UTILITIES>MACSYM.MAC.15, 23-Jun-82 10:13:00 by PAETZOLD +;TCO 6.1175 - Add version information to MACSYM +; UPD ID= 84, SNARK:<6.UTILITIES>MACSYM.MAC.14, 9-Jun-82 18:15:13 by MURPHY +;TCO 6.1163 - MAKRM. +; UPD ID= 83, SNARK:<6.UTILITIES>MACSYM.MAC.13, 9-Jun-82 15:25:40 by WALLACE +;TCO 6.1161 - Modify AC save and stack variable facilities to work +; with extended addressing. Also perform general clean up for listing +; sake. +; UPD ID= 62, SNARK:<6.UTILITIES>MACSYM.MAC.12, 26-May-82 10:36:26 by MCINTEE +;MASK. - must be on one line +; UPD ID= 58, SNARK:<6.UTILITIES>MACSYM.MAC.11, 25-May-82 16:25:13 by MCINTEE +;Add MASK. - used in BEGSTR +; UPD ID= 41, SNARK:<6.UTILITIES>MACSYM.MAC.10, 18-May-82 07:30:03 by GRANT +;TCO 6.1139 - BEGSTR, ENDSTR, LOADE +; UPD ID= 37, SNARK:<6.UTILITIES>MACSYM.MAC.9, 3-May-82 17:52:41 by MURPHY +;TCO 6.1124 - BLOCK., ENDBK. +; UPD ID= 32, SNARK:<6.UTILITIES>MACSYM.MAC.8, 5-Mar-82 10:58:39 by MCINTEE +;Add warning to STKVAR about blanks +; UPD ID= 31, SNARK:<6.UTILITIES>MACSYM.MAC.7, 22-Feb-82 17:38:19 by MURPHY +;IFJER., IFNJE. - new names for IFNES., IFESK. +;TCO 6.1061 - FORS. +; UPD ID= 26, SNARK:<6.UTILITIES>MACSYM.MAC.6, 27-Jan-82 15:57:01 by MCINTEE +;Add warning to DEFSTR about length of names !!! +; UPD ID= 20, SNARK:<6.UTILITIES>MACSYM.MAC.5, 15-Jan-82 10:43:41 by WALLACE +;TCO 5.1669 - Add Error JSERR (EJSERR) and Error JSHLT (EJSHLT) macros +;TCO 5.1666 - Add If Error Skip (IFESK.) and If No Error Skip (IFNES.) macros +; UPD ID= 13, SNARK:<6.UTILITIES>MACSYM.MAC.4, 17-Nov-81 11:57:56 by MURPHY +;Allow ANxxx. between ELSE. and ENDIF. +;ENDDO. equivalent to OD. for consistency. +; UPD ID= 12, SNARK:<6.UTILITIES>MACSYM.MAC.3, 12-Nov-81 13:42:14 by MURPHY +;FORN., FORX. +;Put file in U60: +; UPD ID= 34, SNARK:<5.UTILITIES>MACSYM.MAC.39, 18-Sep-81 13:35:40 by LEACHE +;Add comments +; UPD ID= 32, SNARK:<5.UTILITIES>MACSYM.MAC.38, 17-Sep-81 15:45:20 by MURPHY +;Fix STDAC. +; UPD ID= 28, SNARK:<5.UTILITIES>MACSYM.MAC.37, 8-Sep-81 17:38:36 by MURPHY +;Two PURGEs for ENDxx to get rid of both macro and symbol definition. +; UPD ID= 15, SNARK:<5.UTILITIES>MACSYM.MAC.36, 30-Jul-81 09:01:25 by LEACHE +;Remove unneeded ^O's from previous +; UPD ID= 13, SNARK:<5.UTILITIES>MACSYM.MAC.35, 29-Jul-81 09:22:17 by LEACHE +;Add macros MPRNTX,EPRNTX,LFIWM,GFIWM,L1BPT,L2BPT,G1BPT,G2BPT +; UPD ID= 2278, SNARK:<5.UTILITIES>MACSYM.MAC.34, 30-Jun-81 16:41:32 by MURPHY +;FIX IFXE. +; UPD ID= 2251, SNARK:<6.UTILITIES>MACSYM.MAC.14, 24-Jun-81 16:54:23 by MURPHY +;STDAC., DO. +; UPD ID= 2183, SNARK:<6.UTILITIES>MACSYM.MAC.13, 11-Jun-81 14:40:23 by MURPHY +;RENAME TQNx TO TMNx; TQNx WILL GENERATE EXACTLY ONE INSTRUCTION OR COMPLAIN +; UPD ID= 2158, SNARK:<6.UTILITIES>MACSYM.MAC.12, 9-Jun-81 15:13:39 by MURPHY +;IFXE., IFXN., IFQE., IFQN., ANDXE., ANDXN., ANDQE., ANDQN +;RESTRUCTURE IFE., IFN. ETC., ADD ELSE. CASE, ADD ANDE., ANDN., ETC. +; UPD ID= 2150, SNARK:<6.UTILITIES>MACSYM.MAC.11, 8-Jun-81 16:47:27 by MURPHY +;ANSKP., ANNSK., IFE., IFN., ETC. +; UPD ID= 2120, SNARK:<6.UTILITIES>MACSYM.MAC.9, 3-Jun-81 16:13:37 by MURPHY +;MORE ORNSK. +; UPD ID= 2052, SNARK:<6.UTILITIES>MACSYM.MAC.8, 20-May-81 17:47:33 by MURPHY +;Suppress one more generated tag in IFSKP. +; UPD ID= 2017, SNARK:<6.UTILITIES>MACSYM.MAC.7, 18-May-81 15:57:40 by MURPHY +;Alternate form of IFSKP., IFNSK. +; UPD ID= 1781, SNARK:<6.UTILITIES>MACSYM.MAC.6, 2-Apr-81 10:42:18 by HUIZENGA +;TCO 5.1275 - Explicitly define absolute value of .JBVER as octal. 20-15376. +; UPD ID= 1766, SNARK:<6.UTILITIES>MACSYM.MAC.4, 25-Mar-81 14:55:47 by MURPHY +;Suppress generated tags in IFSKP. etc. +;Provide optional variables in BLSUB. +; UPD ID= 1688, SNARK:<5.UTILITIES>MACSYM.MAC.26, 12-Mar-81 11:49:35 by GRANT +;Update Copyright +; UPD ID= 1629, SNARK:<5.UTILITIES>MACSYM.MAC.25, 2-Mar-81 14:47:00 by MURPHY +;FIX TO BLCAL. +;USE .SAC NOT CX +; UPD ID= 1592, SNARK:<5.UTILITIES>MACSYM.MAC.23, 26-Feb-81 17:52:17 by MURPHY +;MV., MVI. +; UPD ID= 1559, SNARK:<5.UTILITIES>MACSYM.MAC.22, 13-Feb-81 16:42:35 by MURPHY +;.IF, ORNSK. +; UPD ID= 1544, SNARK:<5.UTILITIES>MACSYM.MAC.21, 9-Feb-81 13:54:29 by MURPHY +;IFNSK., IFSKP. +; UPD ID= 1523, SNARK:<5.UTILITIES>MACSYM.MAC.20, 6-Feb-81 11:16:07 by MURPHY +;NAMES CHANGED TO BLCAL., BLSUB. +; UPD ID= 1513, SNARK:<5.UTILITIES>MACSYM.MAC.19, 3-Feb-81 17:40:52 by MURPHY +;ADD .IFATM, FIX BLCALL +; UPD ID= 1466, SNARK:<5.UTILITIES>MACSYM.MAC.18, 21-Jan-81 16:19:40 by MURPHY +;DITTO +; UPD ID= 1465, SNARK:<5.UTILITIES>MACSYM.MAC.17, 21-Jan-81 15:09:03 by MURPHY +;BLSUBR, BLCALL +; UPD ID= 1179, SNARK:<5.UTILITIES>MACSYM.MAC.16, 20-Oct-80 17:21:25 by MURPHY +;REVISE PREV EDIT IN DEFSTR +; UPD ID= 1165, SNARK:<5.UTILITIES>MACSYM.MAC.15, 15-Oct-80 12:08:44 by MURPHY +;EXTERN .SASET +; UPD ID= 1135, SNARK:<5.UTILITIES>MACSYM.MAC.14, 6-Oct-80 16:13:17 by MURPHY +;MAKE DEFSTR DEFINE A SYMBOL TO HOLD LOCATION INFO FOR DDT +; UPD ID= 1074, SNARK:<5.UTILITIES>MACSYM.MAC.13, 30-Sep-80 17:38:12 by MURPHY +;DITTO +; UPD ID= 1069, SNARK:<5.UTILITIES>MACSYM.MAC.12, 30-Sep-80 14:23:54 by MURPHY +;STKVAR, ACVAR +; SNARK:<5.UTILITIES>MACSYM.MAC.11, 5-Aug-80 09:07:15 by ELFSTROM +; change "circonflex" to "circumflex" +; UPD ID= 611, SNARK:<4.1.UTILITIES>MACSYM.MAC.10, 6-Jun-80 14:36:44 by MURPHY +; UPD ID= 602, SNARK:<4.1.UTILITIES>MACSYM.MAC.9, 4-Jun-80 22:44:54 by MURPHY +;ALLOW MEMORY LOC FOR TQNN AND TQNE +; UPD ID= 470, SNARK:<4.1.UTILITIES>MACSYM.MAC.8, 23-Apr-80 17:28:36 by MURPHY +; UPD ID= 469, SNARK:<4.1.UTILITIES>MACSYM.MAC.7, 23-Apr-80 16:41:36 by MURPHY +;ADD .XCMSY - MACRO TO SUPPRESS JUNK SYMBOLS USER HEREIN +;<4.1.UTILITIES>MACSYM.MAC.6, 14-Apr-80 16:29:47, EDIT BY OSMAN +;Change FLDDB. and FLDBK. to allow \ in help message +;<4.1.UTILITIES>MACSYM.MAC.5, 12-Nov-79 08:42:58, EDIT BY OSMAN +;more 4.2570 - Purge ..V1 and ..V22 after using them +;<4.1.UTILITIES>MACSYM.MAC.4, 12-Nov-79 08:34:38, EDIT BY OSMAN +;MORE 4.2570 - Change V22 to ..V22 +;<4.1.UTILITIES>MACSYM.MAC.3, 9-Nov-79 13:55:33, EDIT BY OSMAN +;tco 4.2570 - Change V1 to ..V1 +;<4.1.UTILITIES>MACSYM.MAC.2, 31-Oct-79 10:37:13, EDIT BY OSMAN +;tco 4.1.1003 - Add .CHSPC +;<4.UTILITIES>MACSYM.MAC.27, 19-Oct-79 13:39:11, EDIT BY ZIMA +;TCO 4.2536 - Make JSMSG0 external to prevent "undefined" errors +; from MACRO when attempting to use PERSTR macro. +;<4.UTILITIES>MACSYM.MAC.19, 2-Oct-79 15:05:45, EDIT BY OSMAN +;tco 4.2506 - allow BRKCH. "," +;<4.UTILITIES>MACSYM.MAC.18, 21-Sep-79 15:37:58, EDIT BY ENGEL +;UNDO MAKING RETSKP AN OPDEF +;<4.UTILITIES>MACSYM.MAC.17, 11-Sep-79 07:17:32, EDIT BY R.ACE +;TCO 4.2453 - PREFIX "symbol IS NOT DEFINED" WITH A QUESTION MARK +;<4.UTILITIES>MACSYM.MAC.16, 19-Aug-79 20:35:06, EDIT BY GILBERT +;MAKE RETSKP, JSHLT, ETC. OPDEFS FOR DDT TYPEOUT. +;<4.UTILITIES>MACSYM.MAC.15, 22-Jun-79 07:16:13, EDIT BY R.ACE +;TCO 4.2307 - CHANGE FLDDB. TO USE 0,,LST INSTEAD OF Z LST +;<4.UTILITIES>MACSYM.MAC.14, 10-Mar-79 14:01:35, EDIT BY KONEN +;UPDATE COPYRIGHT FOR RELEASE 4 +;<4.UTILITIES>MACSYM.MAC.13, 8-Feb-79 16:46:30, EDIT BY KIRSCHEN +;ADD ENTRY DECLARATION FOR .STKST FOR LIBRARY SEARCHING +;<4.UTILITIES>MACSYM.MAC.12, 6-Feb-79 10:59:13, EDIT BY GILBERT +;REPLACE XMOVEI -- MACRO DOESN'T KNOW ABOUT IT +;<4.UTILITIES>MACSYM.MAC.11, 5-Feb-79 00:51:10, EDIT BY GILBERT +;Remove extended addressing OPDEFs now in MACRO, change XBLT MACRO +; to XBLT. to avoid conflict with MACRO's definition of 020000,,0. +;<4.UTILITIES>MACSYM.MAC.10, 22-Jan-79 16:29:04, EDIT BY DNEFF +;Make POINTR macro take addresses with indexing again. +;<4.UTILITIES>MACSYM.MAC.9, 22-Jan-79 13:31:23, EDIT BY DBELL +;MAKE POINTR, FLD, .RTJST, MASKB, AND MOD. IMMUNE TO STRANGE ARGUMENTS +;<4.UTILITIES>MACSYM.MAC.8, 25-Oct-78 12:22:59, EDIT BY GILBERT +;Suppress CALLRET to DDT typeout. +;<4.UTILITIES>MACSYM.MAC.7, 12-Sep-78 15:52:12, EDIT BY OSMAN +;FIX FLDBK. +;<4.UTILITIES>MACSYM.MAC.4, 6-Sep-78 16:51:29, EDIT BY OSMAN +;ADD FLDDB. AND FLDBK. +;<4.UTILITIES>MACSYM.MAC.3, 6-Sep-78 16:28:36, EDIT BY OSMAN +;CHANGE BREAK SET MACROS TO HAVE DOTS IN THEM. ADD BRMSK. +;<4.UTILITIES>MACSYM.MAC.2, 3-Sep-78 12:35:16, EDIT BY OSMAN +;ADD MACROS FOR DEFINING 128-BIT CHARACTER BREAK MASKS + +; COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976, 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 THAT IS NOT SUPPLIED BY DIGITAL. + + SUBTTL COPYRIGHT MACROS + +DEFINE COPYRT (YEAR),< + ASCIZ / +COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 'YEAR'. +ALL RIGHTS RESERVED. +/> ;[7.1236] + +DEFINE .CPYRT (.YEAR),< ;;Don't assemble into .EXE + XLIST + LOC 0 + COPYRT .YEAR + .IFN .,ABSOLUTE, + IFGE .-^O22, + RELOC + LIST + SALL +> + +IFNDEF .MCVWH,<.MCVWH==0> ;WHO LAST CHANGED MACSYM +IFNDEF .MCVMA,<.MCVMA==7> ;MAJOR VERSION NUMBER +IFNDEF .MCVMI,<.MCVMI==0> ;MINOR VERSION NUMBER +IFNDEF .MCVED,<.MCVED==^D1021> ;EDIT NUMBER (INCREMENTED ON EACH EDIT) +MACVER==<<.MCVWH>B2!<.MCVMA>B11!<.MCVMI>B17!<.MCVED>B35> + +IFNDEF REL, ;UNIVERSAL UNLESS OTHERWISE DECLARED + IFE REL,< + UNIVERSAL MACSYM COMMON MACROS AND SYMBOLS + .DIRECTIVE .NOBIN + > + IFN REL,< + TITLE MACREL SUPPORT CODE FOR MACSYM + SEARCH MONSYM + COPYRT <1988> ;[7.1236] + SALL + > + +;THE STANDARD VERSION WORD CONSTRUCTION +; VERS - PROGRAM VERSION NUMBER +; VUPDAT - PROGRAM UPDATE NUMBER (1=A, 2=B ...) +; VEDIT - PROGRAM EDIT NUMBER +; VCUST - CUSTOMER EDIT CODE (0=DEC DEVELOPMENT, 1=DEC SWS, 2-7 CUST) + +DEFINE PGVER. (VERS,VUPDAT,VEDIT,VCUST)< + ..PGV0==. ;;SAVE CURRECT LOCATION AND MODE + .JBVER=:^O137 ;;WHERE TO PUT VERSION + LOC .JBVER ;;PUT VERSION IN STANDARD PLACE + BYTE (3)VCUST(9)VERS(6)VUPDAT(18)VEDIT + .ORG ..PGV0 ;;RESTORE LOCATION AND MODE +> + +;MASKS FOR THE ABOVE + +VI%WHO==:7B2 ;Customer edit code +VI%MAJ==:777B11 ;Major version number +VI%MIN==:77B17 ;Minor version/update +VI%EDN==:377777B35 ;Edit number +VI%DEC==:1B18 ;Decimal +;ADDED VI%XXX + SUBTTL COMMON DEFS + +;DEFINE STANDARD AC'S + +DEFINE STDAC. < +F=:0 +T1=:1 +T2=:2 +T3=:3 +T4=:4 +Q1=:5 +Q2=:6 +Q3=:7 +P1=:10 +P2=:11 +P3=:12 +P4=:13 +P5=:14 +P6=:15 +CX=:16 +P=:17 +> + SUBTTL MISC CONSTANTS + +;MISC CONSTANTS + +.INFIN==:377777,,777777 ;PLUS INFINITY +.MINFI==:1B0 ;MINUS INFINITY +.LHALF==:777777B17 ;LEFT HALF +.RHALF==:777777 ;RIGHT HALF +.FWORD==:-1 ;FULL WORD + SUBTTL SYMBOLS FOR THE CONTROL CHARACTERS + +.CHNUL==:000 ;NULL +.CHCNA==:001 +.CHCNB==:002 +.CHCNC==:003 +.CHCND==:004 +.CHCNE==:005 +.CHCNF==:006 +.CHBEL==:007 ;BELL +.CHBSP==:010 ;BACKSPACE +.CHTAB==:011 ;TAB +.CHLFD==:012 ;LINE-FEED +.CHVTB==:013 ;VERTICAL TAB +.CHFFD==:014 ;FORM FEED +.CHCRT==:015 ;CARRIAGE RETURN +.CHCNN==:016 +.CHCNO==:017 +.CHCNP==:020 +.CHCNQ==:021 +.CHCNR==:022 +.CHCNS==:023 +.CHCNT==:024 +.CHCNU==:025 +.CHCNV==:026 +.CHCNW==:027 +.CHCNX==:030 +.CHCNY==:031 +.CHCNZ==:032 +.CHESC==:033 ;ESCAPE +.CHCBS==:034 ;CONTROL BACK SLASH +.CHCRB==:035 ;CONTROL RIGHT BRACKET +.CHCCF==:036 ;CONTROL CIRCUMFLEX +.CHCUN==:037 ;CONTROL UNDERLINE +.CHSPC==:040 ;SPACE +.CHSEM==:073 ;[7.1168] Semi-colon + +.CHALT==:175 ;OLD ALTMODE +.CHAL2==:176 ;ALTERNATE OLD ALTMODE +.CHDEL==:177 ;DELETE + SUBTTL HARDWARE BITS OF INTEREST TO USERS + +;PC FLAGS + +PC%OVF==:1B0 ;OVERFLOW +PC%CY0==:1B1 ;CARRY 0 +PC%CY1==:1B2 ;CARRY 1 +PC%FOV==:1B3 ;FLOATING OVERFLOW +PC%BIS==:1B4 ;BYTE INCREMENT SUPPRESSION +PC%USR==:1B5 ;USER MODE +PC%UIO==:1B6 ;USER IOT MODE +PC%LIP==:1B7 ;LAST INSTRUCTION PUBLIC +PC%AFI==:1B8 ;ADDRESS FAILURE INHIBIT +PC%ATN==:3B10 ;APR TRAP NUMBER +PC%FUF==:1B11 ;FLOATING UNDERFLOW +PC%NDV==:1B12 ;NO DIVIDE + SUBTTL +;THE FOLLOWING MACRO MAY BE USED TO SUPPRESS CREF ENTRIES FOR +;ALL THE JUNK SYMBOLS USED INTERNALLY WITHIN MACROS IN MACSYM + +DEFINE .XCMSY < + .XCREF + .XCRF1 <..ACT,..CSC,..CSN,..IFT,..JX1,..MSK,..MX1,..MX2> + .XCRF1 <..NAC,..NRGS,..NS,..NV,..PST,..STKN,..STKQ,..STKR> + .XCRF1 <..TRR,..TSA1,..TX1,..TX2,.FP,.FPAC,.NAC,.SAC,.SAV1> + .XCRF1 <.SAV2,.SAV3,POINTR,POS,WID,..CAS1,..CNS,..CNS2> + .XCRF1 <..DPB,..GNCS,..ICNS,..JE,..LDB,..STR0,..STR1,..STR2> + .XCRF1 <..STR4,..TQO,..TQZ,..TSAC,..TSIZ,..TX,..TY,.ACV1,.ACV2> + .XCRF1 <.ACV3,.CASE,.DECR0,.IF0,.INCR0,.OPST1,.OPST2,.STKV1> + .XCRF1 <.STKV2,.STKV3,.TRV1,.TRV2,.TRV3> + .CREF + > + + +DEFINE .XCRF1 (SYMS)< + IRP SYMS,< + IFDEF SYMS,< .XCREF SYMS>>> + SUBTTL MACROS FOR FIELD MASKS + +;STANDARD MACROS + +;Macro to show binary value in assembly listing. Must be +;used as last thing in macro definition with no CR before +;closing bracket. + +DEFINE SHOW. (SYM)< + ....Z=SYM> + +;MACROS TO HANDLE FIELD MASKS + +;COMPUTE LENGTH OF MASK, I.E. LENGTH OF LEFTMOST STRING OF ONES +;REMEMBER THAT ^L DOES 'JFFO', I.E. HAS VALUE OF FIRST ONE BIT IN WORD + +;COMPUTE WIDTH OF MASK, I.E. LENGTH OF LEFTMOST STRING OF ONES + +DEFINE WID(MASK)<<^L<-<_<^L>>-1>>> + +;COMPUTE POSITION OF MASK, I.E. BIT POSITION OF RIGHTMOST ONE IN MASK + +DEFINE POS(MASK)<<^L<&<->>>> + +;CONSTRUCT BYTE POINTER TO MASK + +DEFINE POINTR(LOC,MASK)<),LOC,POS()>> + +;PUT RIGHT-JUSTIFIED VALUE INTO FIELD SPECIFIED BY MASK + +DEFINE FLD(VAL,MSK)<<<B)>>&>> + +;MAKE VALUE BE RIGHT JUSTIFIED IN WORD. + +DEFINE .RTJST(VAL,MSK)<<<&>B<^D70-POS()>>> + +;CONSTRUCT MASK FROM BIT AA TO BIT BB. I.E. MASKB 0,8 = 777B8 + +DEFINE MASKB(AA,BB)<<1B<-1>-1B>> + +;MODULO - GIVES REMAINDER OF DEND DIVIDED BY DSOR + +DEFINE MOD.(DEND,DSOR)<<-</>*>> + SUBTTL +;REPEAT WITH SUBSTITUTION OF NUMERIC INDEX + +DEFINE FORN. (LOW,HIGH,ARGS,STRING,%MN1)< + DEFINE %MN1(ARGS) +..FORN==LOW +REPEAT HIGH-LOW+1,< + .FORN1 (%MN1) + ..FORN=..FORN+1>> + +DEFINE .FORN1 (MACN)< + MACN (\..FORN)> + +;REPEAT WITH GENERAL STRING SUBSTITUTION + +DEFINE FORX. (ARGS,SYMS,STRING,%MN1)< + DEFINE %MN1 (SYMS) + IRP ARGS,< + .FORX1 %MN1,ARGS>> + + DEFINE .FORX1 (MACN,ARGS)< + MACN ARGS> + +;DO WITH NUMERIC STRING SUBSTITUTION + +DEFINE FORS. (NUM,ARG,STRING)< + DEFINE %MN1 (ARG) + ..FORN==NUM ;;EVALUATE EXPRESSION + .FORN1 (%MN1)> ;;TRANSLATE AND EXPAND + + SUBTTL MAKRM. - Make remote macros. + +;Macro to define a set of remote macros. You say MAKRM. (XX,YY). +;This defines macros called XX and YY and one other. +;Then, you say XX one +;or more times to save 'stuff'. Finally, you say YY, and that +;expands as all of the 'stuff' that you previously saved. + +DEFINE MAKRM. (XX,YY,%INT)< + DEFINE XX (STUFF)< + %INT (,)> + + DEFINE %INT (NEW,OLD)< + DEFINE XX (STUFF)< + %INT (,)>> + + DEFINE YY < + DEFINE %INT (NEW,OLD) + XX ()> +> + SUBTTL MOVX + +;MOVX - LOAD AC WITH CONSTANT + +DEFINE MOVX (AC,MSK)< + ..MX1==MSK ;;EVAL EXPRESSION IF ANY + .IFN ..MX1,ABSOLUTE,< + MOVE AC,[MSK]> + .IF ..MX1,ABSOLUTE,< + ..MX2==0 ;;FLAG SAYS HAVEN'T DONE IT YET + IFE <..MX1>B53,< + ..MX2==1 + MOVEI AC,..MX1> ;;LH 0, DO AS RH + IFE ..MX2,< ;;IF HAVEN'T DONE IT YET, + IFE <..MX1>B17,< + ..MX2==1 + MOVSI AC,(..MX1)>> ;;RH 0, DO AS LH + IFE ..MX2,< ;;IF HAVEN'T DONE IT YET, + IFE <<..MX1>B53-^O777777>,< + ..MX2==1 + HRROI AC,<..MX1>>> ;;LH -1 + IFE ..MX2,< ;;IF HAVEN'T DONE IT YET, + IFE <<..MX1>B17-^O777777B17>,< + ..MX2==1 + HRLOI AC,(..MX1-^O777777)>> ;;RH -1 + IFE ..MX2,< ;;IF STILL HAVEN'T DONE IT, + MOVE AC,[..MX1]> ;;GIVE UP AND USE LITERAL + >> + +;MV., MVI. - Move from memory to memory or immediate to memory + +DEFINE MV. (FROM,TOO)< + MOVE .SAC,FROM + MOVEM .SAC,TOO> + +DEFINE MVI. (STUFF,DEST)< + MOVX .SAC, + MOVEM .SAC,DEST> + ;VARIENT MNEMONICS FOR TX DEFINITIONS + +DEFINE IORX (AC,MSK)< + TXO AC,> + +DEFINE ANDX (AC,MSK)< + TXZ AC,<^->> + +DEFINE XORX (AC,MSK)< + TXC AC,> + SUBTTL TX -- TEST MASK + +;CREATE THE TX MACRO DEFINITIONS + +;THIS DOUBLE IRP CAUSES ALL COMBINATIONS OF MODIFICATION AND TESTING +;TO BE DEFINED + +DEFINE ..DOTX (M,T)< + IRP M,< + IRP T,< + DEFINE TX'M'T (AC,MSK)< + ..TX(M'T,AC,)>>>> + + ..DOTX (,<,E,N,A>) ;DO ALL DEFINITIONS + PURGE ..DOTX + +;..TX +;ALL TX MACROS JUST CALL ..TX WHICH DOES ALL THE WORK + +DEFINE ..TX(MT,AC,MSK)< + ..TX1==MSK ;;EVAL EXPRESSION IF ANY + .IFN ..TX1,ABSOLUTE,< + TD'MT AC,[MSK]> + .IF ..TX1,ABSOLUTE,< ;;MASK MUST BE TESTABLE + ..TX2==0 ;;FLAG SAYS HAVEN'T DONE IT YET + IFE <..TX1&^O777777B17>,< + ..TX2==1 ;;LH 0, DO AS RH + TR'MT AC,..TX1> + IFE ..TX2,< ;;IF HAVEN'T DONE IT YET, + IFE <..TX1&^O777777>,< + ..TX2==1 ;;RH 0, DO AS LH + TL'MT AC,(..TX1)>> + IFE ..TX2,< ;;IF HAVEN'T DONE IT YET, + IFE <<..TX1>B53-^O777777>,< ;;IF LH ALL ONES, + ..TX3 (MT,AC)>> ;;TRY Z,O,C SPECIAL CASES + IFE ..TX2,< ;;IF HAVEN'T DONE IT YET, + IFE <..TX1+1>,< ;;TRY WORD ALL ONES + ..TX4 (MT,AC)>> + IFE ..TX2,< ;;IF STILL HAVEN'T DONE IT, + TD'MT AC,[..TX1]> ;;MUST GIVE UP AND USE LITERAL + >> + ;SPECIAL CASE FOR LH ALL ONES + +DEFINE ..TX3 (MT,AC)< + IFIDN ,< ;;IF ZEROING WANTED + ..TX2==1 + ANDI AC,^-..TX1> ;;CAN DO IT WITH ANDI + IFIDN ,< ;;IF SET TO ONES WANTED + ..TX2==1 + ORCMI AC,^-..TX1> ;;CAN DO IT WITH IORCM + IFIDN ,< ;;IF COMPLEMENT WANTED + ..TX2==1 + EQVI AC,^-..TX1>> ;;CAN DO IT WITH EQV + +;SPECIAL CASE OF WORD ALL ONES + +DEFINE ..TX4 (MT,AC)< + IFIDN ,< + ..TX2==1 + CAIN AC,0> ;;CAN DO FULL WORD COMPARE + IFIDN ,< + ..TX2==1 + CAIE AC,0>> + SUBTTL JX -- JUMP ON MASK + +;JXE -- JUMP IF MASKED BITS ARE EQUAL TO 0 +;JXN -- JUMP IF MASKED BITS ARE NOT EQUAL TO 0 +;JXO -- JUMP IF MASKED BITS ARE ALL ONES +;JXF -- JUMP IF MASKED BITS ARE NOT ALL ONES (FALSE) + +DEFINE JXE (AC,MSK,BA)< + ..JX1==MSK ;;EVAL EXPRESSION IF ANY + .IFN ..JX1,ABSOLUTE, + .IF ..JX1,ABSOLUTE,< + .IF0 <<..JX1>-1B0>,< ;;IF MASK IS JUST B0, + JUMPGE AC,BA>,< + .IF0 <<..JX1>+1>,< ;;IF MASK IF FULL WORD, + JUMPE AC,BA>,< ;;USE GIVEN CONDITION + TXNN (AC,..JX1) + JRST BA>>>> + +DEFINE JXN (AC,MSK,BA)< + ..JX1==MSK ;;EVAL EXPRESSION IF ANY + .IFN ..JX1,ABSOLUTE, + .IF ..JX1,ABSOLUTE,< + .IF0 <<..JX1>-1B0>,< ;;IF MASK IS JUST B0, + JUMPL AC,BA>,< + .IF0 <<..JX1>+1>,< ;;IF MASK IF FULL WORD, + JUMPN AC,BA>,< ;;USE GIVEN CONDITION + TXNE (AC,..JX1) + JRST BA>>>> + +DEFINE JXO (AC,MSK,BA)< + ..JX1==MSK ;;EVAL EXPRESSION + .IFN ..JX1,ABSOLUTE, + .IF ..JX1,ABSOLUTE,< + .IF0 <<..JX1>-1B0>,< + JUMPL AC,BA>,< + ..ONEB (..BT,MSK) ;;TEST MASK FOR ONLY ONE BIT ON + .IF0 ..BT,< + SETCM .SAC,AC ;;GENERAL CASE, GET COMPLEMENTS OF BITS + JXE (.SAC,..JX1,BA)>,< ;;JUMP IF BITS WERE ORIGINALLY ONES + TXNE AC,..JX1 ;;TEST AND JUMP + JRST BA>>>> + +DEFINE JXF (AC,MSK,BA)< + ..JX1==MSK ;;EVAL EXPRESSION + .IFN ..JX1,ABSOLUTE, + .IF ..JX1,ABSOLUTE,< + .IF0 <<..JX1>-1B0>,< + JUMPGE AC,BA>,< + ..ONEB (..BT,MSK) ;;TEST MASK FOR ONLY ONE BIT ON + .IF0 ..BT,< + SETCM .SAC,AC ;;GENERAL CASE, GET COMPLEMENT OF BITS + JXN (.SAC,..JX1,BA)>,< ;;JUMP IF SOME ZEROS ORIGINALLY + TXNN AC,..JX1 ;;TEST AND JUMP + JRST BA>>>> + SUBTTL MACSYM Definitions -- CAXxx + +;GENERATE CAI OR CAM AS APPROPRIATE + +DEFINE CAX (AC,VAL), +DEFINE CAXL (AC,VAL), +DEFINE CAXLE (AC,VAL), +DEFINE CAXE (AC,VAL), +DEFINE CAXG (AC,VAL), +DEFINE CAXGE (AC,VAL), +DEFINE CAXN (AC,VAL), +DEFINE CAXA (AC,VAL), + +DEFINE OP%%CA (AC,VALUE,CODE),< + .XCREF +IFE <_-^D18>,< + .CREF + CAI'CODE AC, + .XCREF +> +IFN <_-^D18>,< + .CREF + CAM'CODE AC,[VALUE] + .XCREF +> + .CREF> + ;GENERATE IMMEDIATE OR MEMORY CONSTANTS + +DEFINE ADDX (AC,VAL), +DEFINE SUBX (AC,VAL), +DEFINE MULX (AC,VAL), +DEFINE IMULX (AC,VAL), +DEFINE DIVX (AC,VAL), +DEFINE IDIVX (AC,VAL), + +DEFINE OP%%IA (AC,VALUE,CODE,ALT),< + .XCREF + TEST%%=0 +IFE <<_-^D18>-^O777777>,< +IFN <&^O777777>,< + TEST%%=1 + .CREF + ALT'I AC,- + .XCREF +>> +IFE TEST%%,< + OP%%IN AC,,CODE +> + PURGE TEST%% + .CREF> + +DEFINE OP%%IN (AC,VALUE,CODE),< + .XCREF +IFE <_-^D18>,< + .CREF + CODE'I AC, + .XCREF +> +IFN <_-^D18>,< + .CREF + CODE AC,[VALUE] + .XCREF +> + .CREF> + ;GENERATE IMMEDIATE OR MEMORY FOR FLOATING POINT + +DEFINE FADRX (AC,VAL), +DEFINE FSBRX (AC,VAL), +DEFINE FMPRX (AC,VAL), +DEFINE FDVRX (AC,VAL), + +DEFINE OP%%FP (AC,VALUE,CODE),< + .XCREF +IFE <_^D18>,< + .CREF + CODE'I AC,(VALUE) + .XCREF +> +IFN <_^D18>,< + .CREF + CODE AC,[VALUE] + .XCREF +> + .CREF> + SUBTTL SUBFUNCTION MACROS + +;.IF0 CONDITION, ACTION IF CONDITION 0, ACTION OTHERWISE + +DEFINE .IF0 (COND,THEN,ELSE)< + ..IFT==COND ;;GET LOCAL VALUE FOR CONDITION + IFE ..IFT,< + THEN + ..IFT==0> ;;RESTORE IN CASE CHANGED BY NESTED .IF0 + IFN ..IFT,< + ELSE>> + +;CASE (NUMBER,) + +DEFINE .CASE (NUM,LIST)< + ..CSN==NUM + ..CSC==0 + IRP LIST,< + IFE ..CSN-..CSC,< + STOPI + ..CAS1 (LIST)> + ..CSC==..CSC+1>> + +DEFINE ..CAS1 (LIST)< + LIST> + +;TEST FOR FULL WORD, RH, LH, OR ARBITRARY BYTE + +DEFINE ..TSIZ (SYM,MSK)< + SYM==3 ;;ASSUME BYTE UNLESS... + IFE +1, ;;FULL WORD IF MASK IS -1 + IFE -^O777777, ;;RH IF MASK IS 777777 + IFE -^O777777B17,> ;;LH IF MAST IS 777777,,0 + +;TEST FOR LOC BEING AN AC -- SET SYM TO 1 IF AC, 0 IF NOT AC + +DEFINE ..TSAC (SYM,LOC)< + SYM==0 ;;ASSUME NOT AC UNLESS... + ..TSA1== ;;LOOK AT LOC + .IF ..TSA1,ABSOLUTE,< ;;SEE IF WE CAN TEST VALUE + IFE ..TSA1&^O777777777760,> ;;AC IF VALUE IS 0-17 + > + +;TEST FOR SPECIFIC NTH CHARACTER OF ARG + +DEFINE ..TSNC (SYM,NTH,STR,CH)< + SYM==0 ;;ASSUME NO + ..TSA1==0 ;;COUNT CHARS + IRPC STR,< + ..TSA1=..TSA1+1 + IFE ..TSA1-NTH,< + IFIDN ,< + SYM==1> ;;YES + STOPI>>> + +;FUNCTION TO TEST FOR MASK CONTAINING EXACTLY ONE BIT. RETURNS +;1 IFF LEFTMOST BIT AND RIGHTMOST BIT ARE SAME + +DEFINE ..ONEB (SYM,MSK)< + SYM==<<<->&>&<1B<^L>>>> + +;DEFAULT SCRACH AC + +.SAC=16 + SUBTTL DEFSTR -- DEFINE DATA STRUCTURE + +;DEFINE DATA STRUCTURE +; NAM - NAME OF STRUCTURE AS USED IN CODE +; ****** NOTE THAT THE NAMES OF STRUCTURES USED MUST BE ****** +; ****** UNIQUE IN THE FIRST 5 CHARACTERS, FOR BOTH DEFSTR & MSKSTR ****** +; LOCN - ADDRESS OF DATA +; POS - POSITION OF DATA WITHIN WORD (RIGHTMOST BIT NUMBER) +; SIZ - SIZE OF DATA (IN BITS) WITHIN WORD + +DEFINE DEFSTR (NAM,LOCN,POS,SIZ)< + NAM==<-1B+1B> ;;ASSIGN SYMBOL TO HOLD MASK + IF1,> + DEFINE %'NAM (OP,AC,Y,MSK)< + $'NAM== ;;LOCATION SYMBOL FOR DDT + OP (,LOCN''Y,MSK)>> ;;DEFINE MACRO TO HOLD LOCATION + +;EXTENDED DEFSTR - REQUIRED IF LOCATION IS IN DIFFERENT SECTION + +DEFINE EDEFST (NAM,LOCN,POS,SIZ)< + NAM==<-1B+1B> ;;ASSIGN SYMBOL TO HOLD MASK + IF1,> + DEFINE %'NAM (OP,AC,Y,MSK)< + OP (,<@[EP. LOCN''Y]>,MSK)>> ;;DEFINE MACRO TO HOLD LOCATION + +;ALTERNATE FORM OF DEFSTR -- TAKES MASK INSTEAD OF POS,SIZ + +DEFINE MSKSTR (NAM,LOCN,MASK)< + NAM==MASK ;;ASSIGN SYMBOL TO HOLD MASK + IF1,> + DEFINE %'NAM (OP,AC,Y,MSK)< + $'NAM== ;;LOCATION SYMBOL FOR DDT + OP (,LOCN''Y,MSK)>> ;;DEFINE MACRO TO HOLD LOCATION + +DEFINE EMSKST (NAM,LOCN,MASK)< + NAM==MASK ;;ASSIGN SYMBOL TO HOLD MASK + IF1,> + DEFINE %'NAM (OP,AC,Y,MSK)< + OP (,<@[EP. LOCN''Y]>,MSK)>> ;;DEFINE MACRO TO HOLD LOCATION + +;..STR0 - PROCESS INSTANCE OF STRUCTURE USAGE, SINGLE STRUCTURE CASE. + +DEFINE ..STR0 (OP,AC,STR,Y)< + IFNDEF STR,,,.FWORD)> ;;RESERVE A WORD, ASSUME WORD MASK + IFDEF STR,< + IFNDEF %'STR,< + OP (,,STR)> ;;ASSUME NO OTHER LOCN + IFDEF %'STR,< + %'STR (OP,,,STR)>>> ;;DO IT + ;..STR1, ..STR2, ..STR3, AND ..STR4 ARE INTERNAL MACROS FOR PROCESSING +;INSTANCES OF STRUCTURE USAGE. + +DEFINE ..STR1 (OP,AC,STR,Y,CLL)< + ..NS==0 ;;INIT COUNT OF STR'S + IRP STR,<..NS=..NS+1> ;;COUNT STR'S + IFE ..NS, + IFE ..NS-1,< ;;THE ONE CASE, CAN DO FAST + ..STR0 (OP,,,)> + IFG ..NS-1,< ;;MORE THAN ONE, DO GENERAL CASE + ..ICNS ;;INIT REMOTE MACRO + ..CNS (,,>) ;;CONS ON CALL AND FIRST ARGS + IRP STR,< ;;DO ALL NAMES IN LIST + IFNDEF STR, + IFDEF STR,< + IFNDEF %'STR,< + ..CNS (<,STR,Y>)> ;;ASSUME NO OTHER LOCN + IFDEF %'STR,< + %'STR (..STR2,,,STR)> ;;STR MACRO WILL GIVE LOCN TO ..STR2 + ..CNS (<)>) ;;CLOSE ARG LIST + ..GCNS ;;DO THIS AND PREVIOUS NAME + ..ICNS ;;REINIT CONS + ..CNS (>) ;;PUT ON FIRST ARGS + IFNDEF %'STR,< + ..CNS (<,STR,Y>)> ;;ASSUME NO OTHER LOCN + IFDEF %'STR,< + %'STR (..STR2,,,STR)>>> ;;PUT ON THIS ARG, END IRP + ..CNS (<,,)>) ;;CLOSE ARG LIST + ..GCNS>> ;;DO LAST CALL + +;..STR2 -- CALLED BY ABOVE TO APPEND STRUCTURE NAME AND LOC TO ARG LIST + +DEFINE ..STR2 (AA,LOC,STR)< + ..CNS (<,STR,LOC>)> ;;CONS ON NEXT ARG PAIR + +;..STR3 -- CHECK FOR ALL STRUCTURES IN SAME REGISTER + +DEFINE ..STR3 (OP,AC,S1,L1,S2,L2)< + IFDIF ,< + IFNB ,< + OP (,L1,..MSK) ;;DO ACCUMULATED STUFF + IFNB ,> + ..MSK==0> ;;INIT MASK + IFNB ,< + ..MSK=..MSK!>> + +;..STR4 -- COMPARE SUCCESSIVE ITEMS, DO SEPARATE OPERATION IF +;DIFFERENT WORDS ENCOUNTERED + +DEFINE ..STR4 (OP,AC,S1,L1,S2,L2)< + IFDIF ,< ;;IF THIS DIFFERENT FROM PREVIOUS + IFNB ,< + OP (,L1,..MSK)> ;;DO PREVIOUS + ..MSK==0> ;;REINIT MASK + IFNB ,< + ..MSK=..MSK!>> ;;ACCUMULATE MASK + +;..STR5 - SAME AS ..STR4 EXCEPT GIVES EXTRA ARG IF MORE STUFF TO +;FOLLOW. + +DEFINE ..STR5 (OP,AC,S1,L1,S2,L2)< + IFDIF ,< ;;IF THIS DIFFERENT FROM PREVIOUS, + IFNB ,< + IFNB ,< ;;IF MORE TO COME, + OP'1 (AC,L1,..MSK)> ;;DO VERSION 1 + IFB ,< ;;IF NO MORE, + OP'2 (AC,L1,..MSK)>> ;;DO VERSION 2 + ..MSK==0> ;;REINIT MASK + IFNB ,< + ..MSK=..MSK!>> ;;ACCUMULATE MASK + +;'REMOTE' MACROS USED TO BUILD UP ARG LIST + +;INITIALIZE CONS -- DEFINES CONS + +DEFINE ..ICNS < + DEFINE ..CNS (ARG)< + ..CNS2 ,> + + DEFINE ..CNS2 (NEW,OLD)< + DEFINE ..CNS (ARG)< + ..CNS2 ,>> + > + +;GET CONS -- EXECUTE STRING ACCUMULATED + +DEFINE ..GCNS < + DEFINE ..CNS2 (NEW,OLD)< + OLD> ;;MAKE ..CNS2 DO THE STUFF + ..CNS ()> ;;GET ..CNS2 CALLED WITH THE STUFF + +;Structure Definition Macros +; +; Usage: +; +; BEGSTR XX,OFFSET,INDEX +; +;This initializes the macros to define offset symbols of the form +;XX.NAM; where NAM is the name of the individual field defined by the +;following macro. INDEX specifies an optional index AC that the +;structure will always be referenced by. +; +; FIELD NAME,WID,POS +; +;This defines a field name (3 characters) which describes the field of +;width WID and position POS. POS indicates the position of the +;rightmost bit of the field, in decimal as for the POINT pseudo-op. If +;POS is left out, the macro will place the field in the next available +;position in the word. If it doesn't fit in the word, it will start a +;new word, leaving the rest of the previous word unassigned. +; +; FIELDM NAME,MASK +; +;This defines a field name just as FIELD, but with a specific mask. No +;attempt is made to reposition the field. +; +; BIT NAM +; +;BIT defines the next available bit in the previously defined field. In +;addition to the normal mask XXNAM, a right justified symbol XX%NAM is +;defined which may be useful when one LOADs the flags into an AC +;performs some operations on them (using the XX%NAM symbol) and later +;stores them. The field definition preceding the call to BIT must have +;allocated enough room for all the BIT definitions following (up to the +;next FIELD). +; +; FILLER NUM +; +;FILLER will generate a blank field of NUM bits. Useful for aligning +;fields. +; +; NXTWRD NUM +; +;NXTWRD tells the macros that the next field definition should start a +;new word unconditionally. Giving NXTWRD NUM as an argument will skip +;NUM words without defining anything. +; +; WORD NAM,NUM +; +;This will define a single word (or NUM words) entry for NAM. Any +;unused bits in the previous word are left unassigned. +; +; HWORD NAM +; +;This defines a half-word (18 bit field) at the next available +;half-word boundary. Any unused bits in the previous half-word are left +;unassigned. +; +; ENDSTR NAM +; +;This generates the symbol XX.NAM which is the length of the block. If +;NAM is omitted, XX.LEN is used. +; +; FTSHOW +; +;This symbol is a feature test switch. If non-zero, the structure +;definitions will show their offsets and masks to the left of the +;definitions in a compiled listing. See SHOW. macro for additional +;information and warnings. +; +;N.B. +;Data locations defined by these macros are not guaranteed to be +;initialized to zero especially if FTSHOW is used. + + FTSHOW==1 ;FTSHOW DEFAULTS TO TRUE + + +DEFINE BEGSTR(XX,OFFSET<0>,INDEX,BEGNAM),< + IFN FTSHOW,..LOC==. + + +DEFINE WORD(NAM,NUMB<1>),< + IFN <..MSK>,<..OFF==..OFF+1> ;;IF THE MASK IS PARTIALLY USED, BUMP IT + + ..MSK==0 ;;RE-INITIALIZE THE MASK + FIELDM(NAM,<.FWORD>) ;;DEFINE THE MASK, OFFSET AND MACRO + + ..MSK==0 ;;RE-INITIALIZE THE MASK + ..OFF==..OFF+NUMB ;;AND BUMP THE OFFSET + +>;; END OF DEFINE WORD + +DEFINE NXTWRD(NUMB<1>),< + ..MSK==0 + ..OFF=..OFF+NUMB + +>;;END OF DEFINE NXTWRD + +DEFINE FILLER(NUM),< + ..FLG==POS(..MSK) + IFE ..MSK,<..FLG==-1> + IFG <^D-<^D35-..FLG>>, + ...MSK==MASK.(^D,<..FLG+^D>) + IFN FTSHOW,< + PHASE ..OFF + EXP ...MSK + > + ..MSK==..MSK!...MSK +>;;END OF DEFINE FILLER + + + +DEFINE HWORD(nam),< + ..FLG==0 ;;HAVENT GOT ONE YET + IFE ..MSK&.LHALF, + IFE ..FLG,<..MSK==..MSK!.LHALF + IFE ..MSK&.RHALF, + IFE ..FLG, + > +> + + +DEFINE FIELD(NAM,SIZ,POS),< + ..FLG==0 ;;CLEAR THE "HAVE DEFINED FIELD" FLAG + + IFB ,,< + ...MSK==.RTMSK(<<^-<<..MSK>>>>) ;;GET THE END OF THE CURRENT MASK + IFE ...MSK,<..OFF==..OFF+1 ;;IF NO BITS LEFT + ..MSK==0 ;;USE ALL OF NEXT WORD + ...MSK==-1 + > + FIELDM(NAM,<...MSK>) ;;IF NO SIZE, USE THE REST + ..FLG==-1 ;;AND SAY WE HAVE ONE + >> + + IFNB ,<.SIZ==^D> ;;IF WE HAVE A SIZE, USE IT + + IFNB ,< ;;HAVE A POSITION?? + FIELDM(NAM,MASK.(.SIZ,POS)) ;;YES, MAKE THE THING + ..FLG==-1 ;;SAY WE HAVE IT + ..BITS==MASK.(.SIZ,POS) ;;SET UP BITS FOR ..OLD + > + + IFE ..FLG,-^D36>,< ;;IS THIS A WORD?? + WORD(NAM,<^D<.SIZ>/^D36>) ;;YES, DEFINE THE FIRST SECOND + IFN <<^D<.SIZ>-<^D<.SIZ>/^D36>*^D36>>,< ;;IS THERE MORE?? + FIELD(...,<<^D<.SIZ>-<^D<.SIZ>/^D36>*^D36>>) ;;YES, GENERATE IT + > + + ..FLG==-1 ;;SET THE "HAVE IT" FLAG + >> + + IFE ..FLG,< ;;HAVE A PLACE YET?? + ..BITS==MASK.(^D<.SIZ>,<^D<.SIZ>-1>) ;;NO, GET A MASK + + REPEAT <^D36-^D<.SIZ>+1>,< ;;FIND A PLACE IN THE WORD + IFE ..FLG,< ;;HAVE ONE YET?? + IFE <..BITS&..MSK>,< ;;NO, THIS ONE WORK?? + ..MSK==..MSK!..BITS ;;YES, SET THE MASK + ..FLG==-1 ;;AND FLAG WE HAVE ONE + > ;; END OF IFE <..BITS&..MSK> + + IFE ..FLG,..BITS==..BITS_<-1> ;;MOVE OVER ONE BIT + > + > + + IFE ..FLG,< ;;HAVE A MASK YET?? + ..BITS==MASK.(^D<.SIZ>,<^D<.SIZ>-1>) ;;NO, GET THE MASK AGAIN + ..OFF==..OFF+1 ;;POINT TO NEXT WORD + ..MSK==..BITS ;;AND SET THE MASK + > + + MSKSTR(XX''NAM,\..OFF'INDEX,..BITS) ;;DEFINE THE STRUCTURE + XX'.'NAM==..OFF + IFN FTSHOW,< + PHASE XX'.'NAM + EXP XX''NAM + >> + + ..OLD==..BITS ;;SAVE THE LAST MASK FOR BIT + ...OLD==..BITS ;; MACRO CALL + +>;;END OF DEFINE FIELD + +DEFINE BIT(NAM),< + ..BITS==LFTBT.(..OLD) ;;GET THE LEFTMOST BIT (ONE I CAN USE) + + IFE ..BITS, + + XX'%'NAM==..BITS_<-<^D35-POS(...OLD)>> ;;MAKE RIGHT JUSTIFIED MASK + XX'.'NAM==..OFF ;;MAKE UP LOC SYMBOL + + MSKSTR(XX''NAM,\..OFF'INDEX,..BITS) ;;DEFINE THE MASK AND MACRO + IFN FTSHOW,< + PHASE ..OFF + EXP XX''NAM + > + + ..OLD==..OLD&<^-<..BITS>> ;;SHRINK THE MASK BY THE BIT WE USED + +>;;END OF DEFINE BIT + +DEFINE FIELDM(NAM,MASK),< + IFN MASK&..MSK,< ;;WILL THIS BYTE FIT IN THE CURRENT WORD?? + ..MSK==0 ;;NO, ADVANCE TO THE NEXT + ..OFF==..OFF+1 + > + + ..MSK==..MSK!MASK ;;FLAG THE PART WE USED + + MSKSTR(XX''NAM,\..OFF'INDEX,MASK) ;;DEFINE IT + XX'.'NAM==..OFF + IFN FTSHOW,< + PHASE XX'.'NAM + EXP XX''NAM + > +>;;END OF DEFINE FIELDM + +DEFINE ENDSTR(LENNAM,LSTNAM),< + + IFN ..MSK,<..OFF==..OFF+1> ;;BUMP THE OFFSET IF THERES SOME LEFT + + XX'.'LSTNAM==..OFF ;;SYMBOL FOR LAST ENTRY + + IFN FTSHOW,DEPHASE + + ..LOK==..LOK+1 + IFN ..LOK, + + IF2,< + IFDEF ...MSK, + IFDEF ..BITS, + IFDEF .SIZ, + IFDEF ..MSK, + IFDEF ..OFF, + IFDEF ..FLG, + IFDEF ..LOK, + IFDEF ..LOC, + IFDEF ..OLD, + IFDEF ...OLD, + > + + IF1,< + IFDEF ...MSK,<.XCREF ...MSK> + IFDEF ..BITS,<.XCREF ..BITS> + IFDEF .SIZ,<.XCREF .SIZ> + IFDEF ..MSK,<.XCREF ..MSK> + IFDEF ..FLG,<.XCREF ..FLG> + IFDEF ..OFF,<.XCREF ..OFF> + IFDEF ..LOK,<.XCREF ..LOK> + IFDEF ..LOC,<.XCREF ..LOC> + IFDEF ..OLD,<.XCREF ..OLD> + IFDEF ...OLD,<.XCREF ...OLD> + > + + PURGE WORD,NXTWRD,FILLER,HWORD,FIELD,BIT,FIELDM + + XX'.'LENNAM==..OFF-OFFSET + IFN FTSHOW,> + +;;END OF DEFINE ENDSTR + + ..MSK==0 ;;INITIALIZE THE MASK + ..OFF==OFFSET ;;AND THE OFFSET + XX'.'BEGNAM==OFFSET ;;SYMBOL FOR BEGINNING OFFSET + + IFDEF ..LOK,> + + ..LOK==-1 + +>;;END OF DEFINE BEGSTR + +;Special macros for the BEGSTR macros to use + +DEFINE LFTBT.(MASK) <1_<^D35-^L>> + +DEFINE MASK.(WID,POS),<<<<1_>-1>B>> +;;END OF DEFINE MASK. + +DEFINE .RTMSK(MASK),< +)&<^-MASK>>>,>!)&<^-MASK> +>><)&<^-MASK>>>)>_-1>>!)>>>> + + +;SPECIFIC CASES + +;LOAD, STORE +; AC - AC OPERAND +; STR - STRUCTURE NAME +; Y - (OPTIONAL) ADDITIONAL SPECIFICATION OF DATA LOCATION + +DEFINE LOAD (AC,STR,Y)< + ..STR0 (..LDB,AC,STR,)> + + DEFINE ..LDB (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) + .CASE ..PST,<< + MOVE AC,LOC>,< + HRRZ AC,LOC>,< + HLRZ AC,LOC>,< + LDB AC,[POINT WID(),LOC,POS()]>>> + +;LOADE is to LOAD as HRRE is to HRR +;LOADE is skippable, like other LOADs, at great expense in the LDB case + +DEFINE LOADE (AC,STR,Y)< + ..STR0 (..LDBE,AC,STR,)> + + DEFINE ..LDBE (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) + .CASE ..PST,<< + MOVE AC,LOC>,< + HRRE AC,LOC>,< + HLRE AC,LOC>,< + JSP .SAC,[LDB AC,[POINT WID(),LOC,POS()] + ..MSK==MASK.(WID(MSK),35) + TXNE AC,LFTBT.(..MSK) ;;TEST SIGN BIT OF BYTE + TXO AC,^-..MSK ;;NEG, ALL 1S IN REST + PURGE ..MSK + JRST (.SAC)]>>> + +DEFINE STOR (AC,STR,Y)< + ..STR0 (..DPB,AC,STR,)> + + DEFINE ..DPB (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) + .CASE ..PST,<< + MOVEM AC,LOC>,< + HRRM AC,LOC>,< + HRLM AC,LOC>,< + DPB AC,[POINT WID(),LOC,POS()]>>> + +;SET TO ZERO + +DEFINE SETZRO (STR,Y)< + ..STR1 (..TQZ,,,,..STR4)> + + DEFINE ..TQZ (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) ;;SET ..PST TO CASE NUMBER + .CASE ..PST,<< + SETZM LOC>,< ;;FULL WORD + HLLZS LOC>,< ;;RH + HRRZS LOC>,< ;;LH + ..TSAC (..ACT,LOC) ;;SEE IF LOC IS AC + .IF0 ..ACT,< + MOVX .SAC,MSK ;;NOT AC + ANDCAM .SAC,LOC>,< + ..TX (Z,LOC,MSK)>>>> + +;SET TO ONE + +DEFINE SETONE (STR,Y)< + ..STR1 (..TQO,,,,..STR4)> + + DEFINE ..TQO (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) + .CASE ..PST,<< + SETOM LOC>,< + HLLOS LOC>,< + HRROS LOC>,< + ..TSAC (..ACT,LOC) + .IF0 ..ACT,< + MOVX .SAC,MSK + IORM .SAC,LOC>,< + ..TX (O,LOC,MSK)>>>> + +;SET TO COMPLEMENT + +DEFINE SETCMP (STR,Y)< + ..STR1 (..TQC,,,,..STR4)> + + DEFINE ..TQC (AC,LOC,MSK)< + ..TSIZ (..PST,MSK) + .IF0 ..PST,< ;;IF FULL WORD, + SETCMM LOC>,< ;;CAN USE SETCMM + ..TSAC (..ACT,LOC) ;;OTHERWISE, CHECK FOR AC + .IF0 ..ACT,< + MOVX .SAC,MSK + XORM .SAC,LOC>,< + ..TX(C,LOC,MSK)>>> + +;INCREMENT, DECREMENT FIELD + +;***WARNING*** FIELD OVERFLOWS MAY OCCUR ******** + +DEFINE INCR (STR,Y)< + ..STR0 (.INCR0,,,)> + + DEFINE .INCR0 (AC,LOC,MSK)< + ..PST==MSK&<-MSK> ;;GET LOWEST BIT + .IF0 ..PST-1,< + AOS LOC>,< ;;BIT 35, CAN USE AOS + MOVX .SAC,..PST ;;LOAD A ONE IN THE APPROPRIATE POSITION + ADDM .SAC,LOC>> + +DEFINE DECR (STR,Y)< + ..STR0 (.DECR0,,,)> + + DEFINE .DECR0 (AC,LOC,MSK)< + ..PST==MSK&<-MSK> + .IF0 ..PST-1,< + SOS LOC>,< ;;BIT 35, CAN USE SOS + MOVX .SAC,-..PST ;;LOAD -1 IN APPROPRIATE POSITION + ADDM .SAC,LOC>> + +;GENERAL DEFAULT, TAKES OPCODE + +DEFINE OPSTR (OP,STR,Y)< + ..STR0 (.OPST1,,,)> + + DEFINE .OPST1 (OP,LOC,MSK)< + ..TSIZ (..PST,MSK) + .IF0 ..PST,< + OP LOC>,< ;;FULL WORD, USE GIVEN OP DIRECTLY + ..LDB .SAC,LOC,MSK ;;OTHERWISE, GET SPECIFIED BYTE + OP .SAC>> + +DEFINE OPSTRM (OP,STR,Y)< + ..STR0 (.OPST2,,,)> + + DEFINE .OPST2 (OP,LOC,MSK)< + ..TSIZ (..PST,MSK) + .IF0 ..PST,< + OP LOC>,< ;;FULL WORD, USE OP DIRECTLY + ..LDB .SAC,LOC,MSK + OP .SAC + ..DPB .SAC,LOC,MSK>> + +;JUMP IF ALL FIELDS ARE 0 (ONE REGISTER AT MOST) + +DEFINE JE (STR,Y,BA)< + ..STR1 (..JE,,,,..STR3)> + + DEFINE ..JE (BA,LOC,MSK)< + ..TSAC (..ACT,LOC) ;;SEE IF AC + .IF0 ..ACT,< + ..TSIZ (..PST,MSK) ;;SEE WHICH CASE + .CASE ..PST,<< + SKIPN LOC ;;FULL WORD, TEST IN MEMORY + JRST BA>,< + HRRZ .SAC,LOC ;;RIGHT HALF, GET IT + JUMPE .SAC,BA>,< + HLRZ .SAC,LOC ;;LEFT HALF, GET IT + JUMPE .SAC,BA>,< + MOVE .SAC,LOC ;;NOTA, GET WORD + JXE (.SAC,MSK,)>>>,< + JXE (LOC,MSK,)>> + +;JUMP IF NOT ALL FIELDS ARE 0 (ONE REGISTER AT MOST) + +DEFINE JN (STR,Y,BA)< + ..STR1 (..JN,,,,..STR3)> + + DEFINE ..JN (BA,LOC,MSK)< + ..TSAC (..ACT,LOC) ;;SEE IF AC + .IF0 ..ACT,< + ..TSIZ (..PST,MSK) + .CASE ..PST,<< + SKIPE LOC ;;FULL WORD, TEST IN MEMORY + JRST BA>,< + HRRZ .SAC,LOC ;;RIGHT HALF, GET IT + JUMPN .SAC,BA>,< + HLRZ .SAC,LOC ;;LEFT HALF, GET IT + JUMPN .SAC,BA>,< + MOVE .SAC,LOC ;;NOTA, GET WORD + JXN (.SAC,MSK,)>>>,< + JXN (LOC,MSK,)>> + +;JOR - JUMP ON 'OR' OF ALL FIELDS + +DEFINE JOR (STR,Y,BA)< + ..STR1 (..JN,,,,..STR4)> + +;JNAND - JUMP ON NOT 'AND' OF ALL FIELDS + +DEFINE JNAND (STR,Y,BA)< + ..STR1 (..JNA3,,,,..STR4)> + + DEFINE ..JNA3 (BA,LOC,MSK)< + ..TSAC (..ACT,LOC) + .IF0 ..ACT,< + SETCM .SAC,LOC ;;NOT AC, GET COMPLEMENT OF WORD + JXN (.SAC,MSK,)>,< ;;JUMP IF ANY BITS ORIGINALLY OFF + JXF (LOC,MSK,)>> ;;DO AC CASE + +;JAND - JUMP ON 'AND' OF ALL FIELDS + +DEFINE JAND (STR,Y,BA,%TG)< + ..STR1 (..JAN,<%TG,>,,,..STR5) +%TG:> + + DEFINE ..JAN1 (BA1,BA2,LOC,MSK)< + ..JNA3 (BA1,LOC,MSK)> ;;DO JUMP NAND TO LOCAL TAG + + DEFINE ..JAN2 (BA1,BA2,LOC,MSK)< + ..TSAC (..ACT,LOC) + .IF0 ..ACT,< + SETCM .SAC,LOC ;;NOT AC, GET COMPLEMENT OF WORD + JXE (.SAC,MSK,)>,< ;;JUMP IF ALL BITS ORIGINALLY ONES + JXO (LOC,MSK,)>> ;;DO AC CASE + +;JNOR - JUMP ON NOT 'OR' OF ALL FIELDS + +DEFINE JNOR (STR,Y,BA,%TG)< + ..STR1 (..JNO,<%TG,>,,,..STR5) +%TG:> + + DEFINE ..JNO1 (BA1,BA2,LOC,MSK)< + ..JN (BA1,LOC,MSK)> ;;DO JUMP OR TO LOCAL TAG + + DEFINE ..JNO2 (BA1,BA2,LOC,MSK)< + ..JE (,LOC,MSK)> ;;DO JUMP NOR TO GIVEN TAG + +;TEST AND MODIFY GROUP USING DEFINED STRUCTURES. TEST-ONLY AND +;MODIFY-ONLY PROVIDED FOR COMPLETENESS. +;GENERATES EXACTLY ONE INSTRUCTION + +DEFINE ..DOTY (M,T)< ;;MACRO TO DEFINE ALL CASES + IRP M,< + IRP T,< + DEFINE TQ'M'T (STR,Y)< + ..STR1 (..TY,M'T,,,..STR3)>>>> + + ..DOTY (,<,E,N,A>) ;DO 16 DEFINES + PURGE ..DOTY + +;SPECIAL DEFINE FOR THE TWO CASES WHICH CAN TAKE MEMORY ARG +;*NOTE* MAY GENERATE MORE THAN ONE INSTRUCTION - CANNOT BE SKIPPED + +DEFINE TMNE (STR,Y)< + ..STR1 (..TYNE,,,,..STR3)> + +DEFINE ..TYNE (MT,LOC,MSK)< + ..TSAC (..ACT,LOC) ;;SEE IF LOC IS AC + .IF0 ..ACT,< + ..JX1==MSK + .IF0 <..JX1-1B0>,< + SKIPGE LOC>,< + .IF0 <..JX1+1>,< + SKIPE LOC>,< + MOVE .SAC,LOC + TXNE .SAC,MSK>>>,< + TXNE LOC,MSK>> + +DEFINE TMNN (STR,Y)< + ..STR1 (..TYNN,,,,..STR3)> + +DEFINE ..TYNN (MT,LOC,MSK)< + ..TSAC (..ACT,LOC) ;;SEE IF LOC IS AC + .IF0 ..ACT,< + ..JX1==MSK + .IF0 <..JX1-1B0>,< + SKIPL LOC>,< + .IF0 <..JX1+1>,< + SKIPN LOC>,< + MOVE .SAC,LOC + TXNN .SAC,MSK>>>,< + TXNN LOC,MSK>> + +;ALL TY MACROS CALL ..TY AFTER INITIAL STRUCTURE PROCESSING + +DEFINE ..TY (MT,LOC,MSK)< + ..TSAC (..ACT,LOC) ;;SEE IF LOC IS AC + .IF0 ..ACT,< + PRINTX ?TQ'MT - LOC NOT IN AC>,< + TX'MT LOC,MSK>> + SUBTTL BLOCK MACROS + +;MACROS TO PROVIDE SOME BLOCK HANDLING OF CODE + +;BLOCK., ENDBK. - Creates block within which stack variables, AC +;saving macros, etc. may be used. +;Control must flow into and out of block through BLOCK. and ENDBK. macros. +;Within block, RET or equivalent may be used to exit block. + +DEFINE BLOCK. (%TGE)< + ..SVBK ;;SAVE CURRENT BLOCK + XMOVEI .A16,%TGE ;;PUT DUMMY RETURN ON STACK + PUSH P,.A16 + DEFINE ENDBK. < + RET ;;POP STACK AND CONTINUE AT .+1 +%TGE:! ;;DUMMY RETURNS COMES HERE + .POPX>> ;;RESTORE DEFS + +DEFINE ..SVBK (%SY1)< + SYN ENDBK.,%SY1 + .PSHX < + SYN %SY1,ENDBK.>> + +;DO. - LOOP STRUCTURE, DECLARES TOP OF LOOP +; LOOP. - JUMPS TO TOP OF LOOP +; EXIT. - EXITS LOOP +; TOP. - TAG AT TOP OF LOOP FOR JUMPS, E.G. SOJG T4,TOP. +; ENDLP. - TAG AT END OF LOOP FOR JUMPS, E.G. SOJL T4,ENDLP. + +DEFINE DO. (%TGB,%TGE)< + ..SVLD ;;SAVE CURRENT BLOCK +%TGB:! ;;TOP OF LOOP + DEFINE OD. < +%TGE:! ;;END OF LOOP + .POPX> ;;RESTORE DEFS + DEFINE LOOP. < + JRST %TGB> ;;LOOP TO TOP + DEFINE TOP. <%TGB> ;;LABEL AT TOP FOR JUMPS + DEFINE ENDLP. <%TGE> ;;LABEL AT END FOR JUMPS + DEFINE EXIT. < + JRST %TGE>> ;;EXIT LOOP + +DEFINE ENDDO. < + OD.> + +DEFINE ..SVLD (%SY1,%SY2,%SY3,%SY4,%SY5)< + SYN OD.,%SY1 + SYN LOOP.,%SY2 + SYN TOP.,%SY3 + SYN EXIT.,%SY4 + SYN ENDLP.,%SY5 + .PSHX < + SYN %SY1,OD. + SYN %SY2,LOOP. + SYN %SY3,TOP. + SYN %SY4,EXIT. + SYN %SY5,ENDLP.>> + +;IFNSK., IFSKP. - "IF NO SKIP", "IF SKIP" + +;These macros cause the following code to be conditionally executed +;depending on whether the preceding instruction(s) skipped or not. +;The following code is ended with ENDIF., with ELSE. optional +;within the range. + +;Note: both of these result in the same or fewer instructions than +;the use of literals to handle the same cases. +;Also, since the code is not in literals, the binary appears in the +;listing, and the code is easier to follow with DDT. +;If the preceding skip can be written in either sense, it is better +;to use IFSKP. because one fewer instructions will be generated. + +;IFSKP. and IFNSK. have an alternate form where the consequence code +;is given as a macro argument. In the normal case, no macro argument is given. + +;"IF NO SKIP" CONSEQUENCE-CODE ALTERNATIVE-CODE +;If the instruction(s) preceding the macro does not skip, the 'consequence +; code' will be executed; otherwise (i.e. if the instruction skips) the +; 'alternative code' will be executed. + +DEFINE IFNSK. (NSCOD,SKCOD,%TG1,%TG2)< + IFB ,< ;;THE REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + TRNA ;;SKIP + JRST %TG1 ;;JUMP PAST CODE + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;SAVE THE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE THE END TAG + > + IFNB ,< ;;THE ALTERNATE FORM + JRST %TG1 ;;THE NOSKIP CASE + SKCOD + JRST %TG2 +%TG1:! NSCOD +%TG2:!>> + +;If JSYS Error + +DEFINE IFJER. (NSCOD,SKCOD,%TG1,%TG2,%TG3)< + IFB ,< ;;THE REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + ERJMP %TG3 ;;SKIP + JRST %TG1 ;;JUMP PAST CODE +%TG3:! + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;SAVE THE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE THE END TAG + > + IFNB ,< ;;THE ALTERNATE FORM + ERJMP %TG1 ;;THE NOSKIP CASE + SKCOD + JRST %TG2 +%TG1:! NSCOD +%TG2:!>> + +;VERSION OF JSYS ERROR HANDLER WHICH ALLOWS SPECIFICATION OF ERJMP TYPE. + +DEFINE IFJE. (TYPE,NSCOD,SKCOD,%TG1,%TG2,%TG3)< + IFB ,< ;;THE REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + ERJMP'TYPE %TG3 ;;SKIP + JRST %TG1 ;;JUMP PAST CODE +%TG3:! + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;SAVE THE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE THE END TAG + > + IFNB ,< ;;THE ALTERNATE FORM + ERJMP'TYPE %TG1 ;;THE NOSKIP CASE + SKCOD + JRST %TG2 +%TG1:! NSCOD +%TG2:!>> + +;OBSOLETE NAME + +DEFINE IFNES. (ARG1,ARG2)< + PRINTX % IFNES. should be changed to IFJER. + IFJER. ,> + + +;"IF SKIP" CONSEQUENCE-CODE +;If the instruction(s) preceding the macro skips, the 'consequence +; code' will be executed. + +DEFINE IFSKP. (SKCOD,%TG,%TG2)< + IFB ,< ;;REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + JRST %TG + DEFINE ..TAGF (INST,PCT)< + INST %TG''PCT> ;;SAVE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE END TAG + > + IFNB ,< + JRST %TG + SKCOD +%TG:!>> + +;If No JSYS Error + +DEFINE IFNJE. (SKCOD,%TG,%TG2)< + IFB ,< ;;REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + ERJMP %TG + DEFINE ..TAGF (INST,PCT)< + INST %TG''PCT> ;;SAVE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE END TAG + > + IFNB ,< + ERJMP %TG + SKCOD +%TG:!>> + +;VERSION WHICH ALLOWS SPECIFICATION OF ERJMP TYPE + +DEFINE IFJN. (TYPE,SKCOD,%TG,%TG2)< + IFB ,< ;;REGULAR FORM + ..SVDF ;;SAVE DEFINITIONS OF OUTER BLOCK + ERJMP'TYPE %TG + DEFINE ..TAGF (INST,PCT)< + INST %TG''PCT> ;;SAVE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;SAVE END TAG + > + IFNB ,< + ERJMP'TYPE %TG + SKCOD +%TG:!>> + +;OBSOLETE NAME + +DEFINE IFESK. (ARG)< + PRINTX % IFESK. should be changed to IFNJE. + IFNJE. > + +;CONDITIONALS WHICH REPRESENT JUMP CASES - I.E. AC L, LE, G, ETC. +; IF CONDITION IS SATISFIED, DO BRACKETTED CODE + +DEFINE IFE. (AC,%TG1,%TG2)< + JUMPN AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFN. (AC,%TG1,%TG2)< + JUMPE AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFG. (AC,%TG1,%TG2)< + JUMPLE AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFGE. (AC,%TG1,%TG2)< + JUMPL AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFLE. (AC,%TG1,%TG2)< + JUMPG AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFL. (AC,%TG1,%TG2)< + JUMPGE AC,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFXE. (AC,MASK,%TG1,%TG2)< + JXN AC,MASK,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFXN. (AC,MASK,%TG1,%TG2)< + JXE AC,MASK,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFQE. (STR,Y,%TG1,%TG2)< + JN ,,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +DEFINE IFQN. (STR,Y,%TG1,%TG2)< + JE ,,%TG1 ;;JUMP IF NOT CONDITION + ..SVDF ;;SAVE OUTER BLOCK + DEFINE ..TAGF (INST,PCT)< + INST %TG1''PCT> ;;DEFINE FALSE TAG + DEFINE ..TAGE (INST,PCT)< + INST %TG2''PCT> ;;DEFINE END TAG + > + +;GENERAL CASES WITHIN CONDITIONALS + +;"AND SKIP" + +DEFINE ANSKP. < + ..TAGF (JRST,)> ;;JUMP TO 'FALSE' + +DEFINE ANNSK. < + TRNA + ..TAGF (JRST,)> ;;JUMP TO 'FALSE' + +DEFINE ELSE. <....U> ;;UNDEFINED UNTIL BLOCK ENTERED +DEFINE ENDIF. <....U> +DEFINE ..TAGF <....U> +DEFINE ..TAGE <....U> + +;"AND E" ETC. + +DEFINE ANDE. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDN. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDG. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDGE. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDLE. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDL. (AC)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDXE. (AC,MASK)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDXN. (AC,MASK)< + ..TAGF (,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDQE. (STR,Y)< + ..TAGF (,,>,)> ;;JUMP IF NOT CONDITION + +DEFINE ANDQN. (STR,Y)< + ..TAGF (,,>,)> ;;JUMP IF NOT CONDITION + +;LOCAL WORKER MACROS + +;THIS INITS THE DEFINITIONS OF ELSE. AND ENDIF. WHEN ENTERING A +;NEW BLOCK. + +DEFINE ..INDF < + DEFINE ELSE. < + ..TAGE (JRST,) ;;JUMP TO END + ..TAGF (,<:!>) ;;DEFINE THE FALSE TAG + SYN ..TAGE,..TAGF ;;MAKE FALSE EQUIVALENT TO END + DEFINE ELSE. <....U>> ;;ELSE CAN APPEAR ONCE ONLY + + DEFINE ENDIF. < + ..TAGF (,<:!>) ;;DEFINE FALSE TAG + ..RSDF> ;;RESTORE DEFINITIONS OF OUTER BLOCK + > + +;SAVE DEFINITIONS + +DEFINE ..SVDF (%SY1,%SY2,%SY3,%SY4)< + SYN ELSE.,%SY1 + SYN ENDIF.,%SY2 + SYN ..TAGF,%SY3 + SYN ..TAGE,%SY4 + .PSHX < + SYN %SY1,ELSE. + SYN %SY2,ENDIF. + SYN %SY3,..TAGF + SYN %SY4,..TAGE> + ..INDF ;;REINIT DEFS + > + +DEFINE ..RSDF < + .POPX> + +;MACROS TO PUSH/POP STRINGS + +DEFINE .PSHX (STUFF)< + .PSHX1 (.PSHX2,)> + +DEFINE .PSHX1 (WCH,STUFF)< + WCH ()> + +DEFINE .PSHX2 (OLD)< + DEFINE .PSHX1 (WCH,STUFF)< + WCH (<,>)>> + +DEFINE .POPX < + .PSHX1 (.POPX2)> + +DEFINE .POPX2 (STUFF)< + .POPX4 STUFF> + +DEFINE .POPX4 (JUNK,STUFF)< + .POPX3 STUFF> + +DEFINE .POPX3 (TOP,REST)< + TOP + DEFINE .PSHX1 (WCH,STUFF)< + WCH (<,>)>> + SUBTTL CALL, RET, JSERR + + IFE REL,< + EXTERN JSERR0,JSMSG0,JSHLT0,R,RSKP> + +;CALL AND RETURN + +.AC1==1 ;ACS FOR JSYS ARGS +.AC2==2 +.AC3==3 +.A16==16 ;TEMP FOR STKVAR AND TRVAR +P=17 ;STACK POINTER + +OPDEF CALL [PUSHJ P,0] +OPDEF RET [POPJ P,0] + +;ABBREVIATION FOR CALL, RET, RETSKP + +OPDEF CALLRET [JRST] +.NODDT CALLRET + +DEFINE RETSKP + + SUBTTL + +;MACRO TO PRINT MESSAGE ON TERMINAL + +DEFINE TMSG ($MSG)< + HRROI .AC1,[ASCIZ \$MSG\] + PSOUT> + +;MACRO TO OUTPUT MESSAGE TO FILE +; ASSUMES JFN ALREADY IN .AC1 + +DEFINE FMSG ($MSG)< + HRROI .AC2,[ASCIZ \$MSG\] + MOVEI .AC3,0 + SOUT> + +;MACRO TO PRINT MESSAGE FOR LAST ERROR, RETURNS +1 + +DEFINE PERSTR ($MSG)< + IFNB <$MSG>,< + TMSG <$MSG>> + CALL JSMSG0> + +;MACRO TO PRINT JSYS ERROR MESSAGE, RETURNS +1 ALWAYS + +OPDEF JSERR[] +OPDEF EJSERR[] ;Since MACRO couldn't handle OPDEF of an OPDEF + ; (i.e. ERCAL) defined elsewhere, use JUMP 17, + ; instead + +;MACRO FOR FATAL JSYS ERROR, PRINTS MSG THEN HALTS + +OPDEF JSHLT[] +OPDEF EJSHLT[] ;Since MACRO couldn't handle OPDEF of an OPDEF + ; (i.e. ERCAL) defined elsewhere, use JUMP 17, + ; instead + +;PRINT ERROR MESSAGE IF JSYS FAILS + +DEFINE ERMSG(TEXT),< + ERJMP [TMSG + JSHLT] +> + +;MAKE SYMBOLS EXTERN IF NOT ALREADY DEFINED + +DEFINE EXT (SYM)< + IF2,< + IRP SYM,< + IFNDEF SYM,>>> + +;MACRO TO ADD BREAK CHARACTER TO FOUR WORD BREAK MASK (W0., W1., W2., W3.) + +DEFINE BRKCH. (%%V,V2) +< +%%FOO==%%V + BRK0 (%%FOO,V2,0) +> + +;MACRO TO REMOVE CHARACTER + +DEFINE UNBRK. (%%V,V2) +< +%%FOO==%%V + BRK0 (%%FOO,V2,1) +> + +DEFINE BRK0 (%%11,V2,FLAVOR) +< ..V22==%%11 + ..V1==%%11 + IFNB ,<..V22==V2> +REPEAT ..V22-<%%11>+1,< ;;BRACKETS AROUND %%11 IN CASE ITS AN EXPRESSION + %%W==..V1/^D32 ;;DECIDE WHICH WORD CHARACTER GOES IN + %%X==..V1-%%W*^D32 ;;CALCULATE BIT POSITION WITHIN WORD + IFE FLAVOR,BRKC1 \"<%%W+"0"> ;;MODIFY CORRECT MASK WORD + IFN FLAVOR,BRKC2 \"<%%W+"0"> + ..V1==..V1+1 + > +> + +DEFINE BRKC1 (ARG1) +< W'ARG1'.==W'ARG1'.!<1B<%%X>> +> + +DEFINE BRKC2 (ARG1) +< W'ARG1'.==W'ARG1'.&<-1-1B<%%X>> +> + +;MACRO TO INITIALIZE 4-WORD 12-BIT CHARACTER BREAK MASK + +DEFINE BRINI.(A0<0>,A1<0>,A2<0>,A3<0>) +< +W0.==A0 +W1.==A1 ;INITIALIZE BREAK MASK +W2.==A2 +W3.==A3 +> + +;MACRO TO DEFINE A BREAK SET + +DEFINE BRMSK. (INI0,INI1,INI2,INI3,ALLOW,DISALW) +< BRINI. INI0,INI1,INI2,INI3 ;;SET UP INITIAL MASK + IRPC ALLOW,< UNBRK. "ALLOW"> ;;DON'T BREAK ON CHARS TO BE ALLOWED IN FIELD + IRPC DISALW,< BRKCH. "DISALW"> ;;BREAK ON CHARACTERS NOT ALLOWED + EXP W0.,W1.,W2.,W3. ;;STORE RESULTANT MASK IN MEMORY +> + +;COMND - MACRO FOR BUILDING FUNCTION DESCRIPTOR BLOCK +;THIS IS THE OLD ONE, BEFORE .CMBRK EXISTED. USE FLDBK. FOR SPECIFYING +;BREAK SETS + +DEFINE FLDDB. (TYP,FLGS,DATA,HLPM,DEFM,LST)< + ..XX==+FLGS+<0,,LST> + IFNB ,<..XX=CM%HPP!..XX> + IFNB ,<..XX=CM%DPP!..XX> + ..XX + IFNB , + IFB ,<0> + IFNB , + IFB ,,<0>> + IFNB ,> + +;COMND - MACRO FOR BUILDING FUNCTION DESCRIPTOR BLOCK + +DEFINE FLDBK. (TYP,FLGS,DATA,HLPM,DEFM,BRKADR,LST)< + ..XX==+FLGS+ + IFNB ,<..XX=CM%HPP!..XX> + IFNB ,<..XX=CM%DPP!..XX> + IFNB ,<..XX=CM%BRK!..XX> + ..XX + IFNB , + IFB ,<0> + IFNB , + IFB ,,<0>> + IFB ,,<0>> + IFNB , + IFNB , + > + +;USEFUL EXTENDED ADDRESSING DEFINITIONS + +OPDEF XMOVEI [SETMI] ;EXTENDED MOVE IMMEDIATE +OPDEF XHLLI [HLLI] ;NOT YET IN MACRO + +DEFINE XBLT. (A)< + EXTEND A,[XBLT]> + SUBTTL SUPPORT CODE FOR JSERR + + IFN REL,< + +A=1 +B=2 +C=3 +D=4 + +;JSYS ERROR HANDLER +; CALL JSERR0 +; RETURNS +1: ALWAYS, CAN BE USED IN +1 RETURN OF JSYS'S + +JSERR0::MOVEI A,.PRIIN + CFIBF ;CLEAR TYPAHEAD + MOVEI A,.PRIOU + DOBE ;WAIT FOR PREVIOUS OUTPUT TO FINISH + TMSG < +? JSYS ERROR: > +JSMSG0::MOVEI A,.PRIOU + HRLOI B,.FHSLF ;SAY THIS FORK ,, LAST ERROR + SETZ C, + ERSTR + JFCL + JFCL + TMSG < +> + RET + +;FATAL JSYS ERROR - PRINT MESSAGE AND HALT +; CALL JSHLT0 +; RETURNS: NEVER + +JSHLT0::CALL JSERR0 ;PRINT THE MSG +JSHLT1: HALTF + TMSG + JRST JSHLT1 ;HALT AGAIN IF CONTINUED + > ;END OF IFN REL, + SUBTTL STKVAR - STACK VARIABLE FACILITY + +;MACRO FOR ALLOCATING VARIABLES ON THE STACK. ITS ARGUMENT IS +;A LIST OF ITEMS. EACH ITEM MAY BE: +; 1. A SINGLE VARIABLE WHICH WILL BE ALLOCATED ONE WORD +; 2. A VARIABLE AND SIZE PARAMETER WRITTEN AS . THE +; VARIABLE WILL BE ALLOCATED THE SPECIFIED NUMBER OF WORDS. +;RETURN FROM A SUBROUTINE USING THIS FACILITY MUST BE VIA +;RET OR RETSKP. A DUMMY RETURN WHICH FIXES UP THE STACK IS PUT ON +;THE STACK AT THE POINT THE STKVAR IS ENCOUNTERED. +;WITHIN THE RANGE OF A STKVAR, PUSH/POP CANNOT BE USED AS THEY WILL +;CAUSE THE VARIABLES (WHICH ARE DEFINED AS RELATIVE STACK LOCATIONS) +;TO REFERENCE THE WRONG PLACE. +;**note that the SAVE macros use PUSH & POP, so STKVAR macro must occur +; after any such in a routine. +;**also note that no blanks are allowed in the list, i.e., +; STKVAR will not work. +;TYPICAL USE: STKVAR ,ZZ> +; ENDSV. ;END OF SCOPE OF NAMES + + IFE REL,< + EXTERN .XSTKS,.XSTKR> + +DEFINE STKVAR (ARGS)< + ..STKR==10 ;;REMEMBER RADIX + RADIX 8 + ..STKN==0 + IRP ARGS,< + .STKV1 (ARGS)> + JSP .A16,.XSTKS ;Call internal routine for allocation + EXP ..STKN ;Size of block to allocate + RADIX ..STKR + DEFINE ENDSV.<.ENSV1 > + > + +;INTERMEDIATE MACRO TO PEAL OFF ANGLEBRACKETS IF ANY + +DEFINE .STKV1 (ARG)< + .STKV2 (ARG)> + +;INTERMEDIATE MACRO TO CALCULATE OFFSET AND COUNT VARIABLES + +DEFINE .STKV2 (VAR,SIZ)< + IFB ,<..STKN==..STKN+1> + IFNB ,< + ...X==SIZ + IF2,<.IFN ...X,ABSOLUTE,> + ..STKN==..STKN+...X> + ..STKQ==..STKN+1 + .STKV3 (VAR,\..STKQ)> + +;INNERMOST MACRO TO DEFINE VARIABLE + +DEFINE .STKV3 (VAR,LOC)< + IFDEF VAR,<.IF VAR,SYMBOL,> + DEFINE VAR<-^O'LOC(P)> + $'VAR==> ;SYMBOL FOR DDT + +;CLEANUP NAMES + +DEFINE .ENSV1 (ARGS)< + IRP ARGS,< + .ENSV2 (ARGS)>> + + DEFINE .ENSV2 (ARG)< + .ENSV3 (ARG)> + + DEFINE .ENSV3 (ARG,SIZ)< + DEFINE ARG<....U>> + + IFN REL,< + +;COMMON ENTRY AND EXIT ROUTINE FOR STACK VARIABLE + + ENTRY .STKST + +;This code assumes local format stack pointers which can detect only +; stack overflow (not stack underflow). This code is left intact +; because there may be old .REL files which contain a JSP to .STKST +; instead of the new way to .XSTKS and also expect the block size +; following the JSP to be in the form n,,n instead of just EXP n. This +; code is left purely for compatibility and may one day be removed. + +.STKST::ADD P,0(.A16) ;BUMP STACK FOR VARIABLES USED + JUMPGE P,STKSOV ;TEST FOR STACK OVERFLOW +STKSE1: PUSH P,0(.A16) ;SAVE BLOCK SIZE FOR RETURN + PUSHJ P,1(.A16) ;CONTINUE ROUTINE, EXIT TO .+1 +.STKRT::JRST STKRT0 ;NON-SKIP RETURN COMES HERE + POP P,.A16 ;SKIP RETURN COMES HERE-RECOVER COUNT + SUB P,.A16 ;ADJUST STACK TO REMOVE BLOCK + AOS 0(P) ;NOW DO SKIP RETURN + RET + +STKRT0: POP P,.A16 ;RECOVER COUNT + SUB P,.A16 ;ADJUST STACK TO REMOVE BLOCK + RET ;DO NON-SKIP RETURN + +STKSOV: SUB P,0(.A16) ;STACK OVERFLOW- UNDO ADD + HLL .A16,0(.A16) ;SETUP TO DO MULTIPLE PUSH, GET COUNT +STKSO1: PUSH P,[0] ;DO ONE PUSH AT A TIME, GET REGULAR + SUB .A16,[1,,0] ; ACTION ON OVERFLOW + TLNE .A16,777777 ;COUNT DOWN TO 0? + JRST STKSO1 ;NO, KEEP PUSHING + JRST STKSE1 + +;This is the new internal routine for STKVAR which can work with both +; local and global format stack pointers because the ADJSP instruction +; is used. It differs from the previous code in two ways. 1) The block +; size for the allocation is NOT duplicated in BOTH halves of the word +; following the JSP. 2) The code does not check for stack overflow +; because ADJSP will set TRAP 2 for us. + + ENTRY .XSTKS + +.XSTKS::ADJSP P,@0(.A16) ;Adjust stack pointer for variables used + PUSH P,0(.A16) ;Save block size for return + PUSHJ P,1(.A16) ;Call routine and return following here +.XSTKR::IFSKP. ;Skip return comes here so + POP P,.A16 ; recover count, + MOVNS .A16 ; get size for deallocation, + ADJSP P,(.A16) ; adjust stack to remove block, + AOS 0(P) ; and now adjust for skip return + ELSE. ;Now for Non-Skip return so + POP P,.A16 ; recover count, + MOVNS .A16 ; get size for deallocation, + ADJSP P,(.A16) ; and adjust stack to remove block + ENDIF. + RET ;Now just return + + > ;END OF IFN REL, + SUBTTL TRVAR - TRANSIENT VARIABLE FACILITY + +;TRANSIENT (STACK) VARIABLE FACILITY - EQUIVALENT TO STKVAR +;EXCEPT ALLOWS VARIABLES TO BE USED WITHIN LOWER LEVEL ROUTINES +;AND AFTER OTHER THINGS HAVE BEEN PUSHED ON STACK. +;N.B. USES .FP AS FRAME POINTER - MUST NOT BE CHANGED WHILE +;VARIABLES IN USE. + +.FP==15 ;DEFAULT FRAME POINTER + + IFE REL,< + EXTERN .XTRST,.XTRRT> + +DEFINE TRVAR (VARS)< + ..TRR==10 ;;REMEMBER CURRENT RADIX + RADIX 8 + ..NV==1 ;;INIT COUNT OF STACK WORDS + IRP VARS,< + .TRV1 (VARS)> ;;PROCESS LIST + JSP .A16,.XTRST ;;ALLOCATE STACK SPACE, SETUP .FP + EXP ..NV-1 ;Size of block to allocate + RADIX ..TRR ;;RESTORE RADIX + DEFINE ENDTV.<.ENSV1 > + > + +DEFINE .TRV1 (VAR)< + .TRV2 (VAR)> ;;PEEL OFF ANGLEBRACKETS IF ANY + +DEFINE .TRV2 (NAM,SIZ)< + .TRV3 (NAM,\..NV) ;;DEFINE VARIABLE + IFB ,<..NV=..NV+1> + IFNB ,< + ...X==SIZ + IF2,<.IFN ...X,ABSOLUTE,> + ..NV=..NV+...X>> + +DEFINE .TRV3 (NAM,LOC)< + IFDEF NAM,<.IF NAM,SYMBOL,> + DEFINE NAM<^O'LOC(.FP)> + $'NAM==> ;;SYMBOL FOR DDT + + IFN REL,< + +;SUPPORT ROUTINE FOR TRVAR + +;This code assumes local format stack pointers which can detect only +; stack overflow (not stack underflow). This code is left intact +; because there may be old .REL files which contain a JSP to .TRSET +; instead of the new way to .XTRST and also expect the block size +; following the JSP to be in the form n,,n instead of just EXP n. This +; code is left purely for compatibility and may one day be removed. + +.TRSET::PUSH P,.FP ;PRESERVE OLD .FP + MOVE .FP,P ;SETUP FRAME PTR + ADD P,0(.A16) ;ALLOCATE SPACE + JUMPGE P,TRSOV +TRSET1: PUSHJ P,1(.A16) ;CONTINUE ROUTINE, EXIT VIA .+1 +.TRRET::JRST [ MOVEM .FP,P ;CLEAR STACK + POP P,.FP ;RESTORE OLD .FP + POPJ P,] + MOVEM .FP,P ;HERE IF SKIP RETURN + POP P,.FP + AOS 0(P) ;PASS SKIP RETURN + POPJ P, + +TRSOV: MOVE P,.FP ;STACK OVERFLOW, UNDO ADD + PUSH P,.A16 ;SAVE LOCAL RETURN + HRRZ .A16,0(.A16) ;GET COUNT + ADJSP P,-1(.A16) ;ADJUST STACK, GET TRAP HERE OR ON PUSH + MOVE .A16,1(.FP) ;RESTORE LOCAL RETURN + JRST TRSET1 ;NOW CHARGE AHEAD + + +;This is the new internal routine for TRVAR which can work with both +; local and global format stack pointers because the ADJSP instruction +; is used. It differs from the previous code in two ways. 1) The block +; size for the allocation is NOT duplicated in BOTH halves of the word +; following the JSP. 2) The code does not check for stack overflow +; because ADJSP will set TRAP 2 for us. + +.XTRST::PUSH P,.FP ;Save old frame pointer + MOVE .FP,P ;Set up new frame pointer + ADJSP P,@0(.A16) ;Adjust stack pointer for variables used + PUSHJ P,1(.A16) ;Call routine and return following here +.XTRRT::IFSKP. ;Skip return comes here so + MOVEM .FP,P ; deallocate space for variables, + POP P,.FP ; restore old frame pointer, + AOS 0(P) ; and now adjust for skip return + ELSE. ;Now for Non-Skip return so + MOVEM .FP,P ; deallocate space for variables + POP P,.FP ; and restore old frame pointer + ENDIF. + RET ;Now just return + + > ;END OF IFN REL, + SUBTTL ASUBR - AC SUBROUTINE + +;AC SUBROUTINE - ENTRY FOR SUBROUTINE CALLED WITH 1-4 ARGS IN ACS T1-T4. +;USES .FP AS FRAME PTR LIKE TRVAR + + IFE REL,< + EXTERN .ASSET,.ASRET> + +DEFINE ASUBR (ARGS)< + ..TRR==10 ;;SAVE RADIX + RADIX 8 + ..NV==1 ;;INIT ARG COUNT + IRP ARGS,< + .TRV1 (ARGS)> ;;DEFINE ARG SYMBOL + IFG ..NV-5, + JSP .A16,.ASSET ;;SETUP STACK + RADIX ..TRR ;;RESTORE RADIX + DEFINE ENDAS.<.ENSV1 > + > + + + IFN REL,< + +;SUPPORT ROUTINE FOR ASUBR + +.ASSET::PUSH P,.FP ;SAVE .FP + MOVE .FP,P ;SETUP FRAME POINTER + ADJSP P,4 ;BUMP STACK + DMOVEM A,1(.FP) ;SAVE ARGS + DMOVEM C,3(.FP) + PUSHJ P,0(.A16) ;CONTINUE ROUTINE +.ASRET:: JRST [ MOVEM .FP,P ;NO-SKIP RETURN, CLEAR STACK + POP P,.FP + POPJ P,] + MOVEM .FP,P ;SKIP RETURN, CLEAR STZCK + POP P,.FP + AOS 0(P) + POPJ P, + + > ;END OF IFN REL, + SUBTTL SASUBR - STACKED AC SUBROUTINE + +;SAME AS ABOVE EXCEPT ALSO RESTORES T1-T4 FROM STACK + + IFE REL,< + EXTERN .SASET,.SARET> + +DEFINE SASUBR (ARGS)< + ..TRR==10 ;;SAVE RADIX + RADIX 8 + ..NV==1 ;;INIT ARG COUNT + IRP ARGS,< + .TRV1 (ARGS)> ;;DEFINE ARG SYMBOL + IFG ..NV-5, + JSP .A16,.SASET ;;SETUP STACK + RADIX ..TRR ;;RESTORE RADIX + DEFINE ENDSA.<.ENSV1 > + > + + + IFN REL,< + +;SUPPORT ROUTINE FOR SASUBR + +.SASET::PUSH P,.FP ;SAVE .FP + MOVE .FP,P ;SETUP FRAME POINTER + ADJSP P,4 ;BUMP STACK + DMOVEM A,1(.FP) ;SAVE ARGS + DMOVEM C,3(.FP) + PUSHJ P,0(.A16) ;CONTINUE ROUTINE +.SARET:: JRST [ DMOVE A,1(.FP) ;RESTORE + DMOVE C,3(.FP) + MOVEM .FP,P ;NO-SKIP RETURN, CLEAR STACK + POP P,.FP + POPJ P,] + DMOVE A,1(.FP) ;RESTORE + DMOVE C,3(.FP) + MOVEM .FP,P ;SKIP RETURN, CLEAR STACK + POP P,.FP + AOS 0(P) + POPJ P, + + > ;END OF IFN REL, + SUBTTL ACVAR - AC VARIABLE FACILITY + + IFE REL,< + EXTERN .SAV1,.SAV2,.SAV3,.SAV4,.SAV8> + +.FPAC==5 ;FIRST PRESERVED AC +.NPAC==10 ;NUMBER OF PRESERVED ACS + +DEFINE ACVAR (LIST)< + ..NAC==0 ;;INIT NUMBER OF ACS USED + IRP LIST,< + .ACV1 (LIST)> ;;PROCESS ITEMS + .ACV3 (\..NAC) ;;SAVE ACS USED + DEFINE ENDAV.<.ENAV1 >> + +DEFINE .ACV1 (ITEM)< + .ACV2 (ITEM)> ;;PEEL OFF ANGLEBRACKETS IF ANY + +DEFINE .ACV2 (NAM,SIZ)< + IFDEF NAM,<.IF NAM,SYMBOL,> + NAM==.FPAC+..NAC ;;DEFINE VARIABLE + $'NAM==NAM ;;FOR DDT + IFB ,<..NAC=..NAC+1> + IFNB ,< + ...X==SIZ + IF2,<.IFN ...X,ABSOLUTE,> + ..NAC=..NAC+...X>> + +DEFINE .ACV3 (N)< + IFG N-.NPAC, + IFLE N-4,< + JSP .A16,.SAV'N> ;;SAVE ACTUAL NUMBER USED + IFG N-4,< + JSP .A16,.SAV8>> ;;SAVE ALL + +DEFINE .ENAV1 (ARGS)< + IRP ARGS,< + .ENAV2 (ARGS)>> + + DEFINE .ENAV2 (ARG)< + .ENAV3 (ARG)> + + DEFINE .ENAV3 (NAM,SIZ)< + PURGE NAM,NAM + > + SUBTTL SAVEAC - Save AC List + +;SAVEAC is a macro to generate a JSP .SAC,xxx call to an AC saving +;co-routine and to generate the routine also, if necessary. SAVEAC +;generates the routines as literals so that MACRO will compress as +;many as possible. SAVEAC sorts the arguments so that routines which +;save the same ACs will always look the same to MACRO. + +;When the there are four or more ACs to be saved, SAVEAC assumes that +;at least two of them will be adjacent and changes from multiple +;PUSHes and POPs to and ADJSP and MOVEMs or, if possible, DMOVEMs for +;efficiency. + +;If .SAC is among the ACs being saved, it is saved before the JSP +;.SAC,xxx and then restored in the co-routine literal. + +;ACs may be refered to by any currently valid name and in any order. +;A given set of ACs will always be recognized if its literal code has +;been generated before or if it is a special set handled by a system +;routine. + +;If an AC is mentioned more than once, it will only be saved/restored +;once. + +;Provision is made for detecting standard AC sets which are handled by +;user or system routines. The routines, if defined, must be entered +;with JSP .SAC,xxx. For example, SAVEAC will call the system +;routine .SAV2 instead of generating local code to do the same thing. +;See SPCMAC below. By redefining the macro USRSAV, the user can +;control the tests made for standard routines. + +DEFINE USRSAV,<> ;DEFAULT TO NO SPECIAL-CASE ROUTINES + +DEFINE SAVEAC(ACS),< + +..DONE==0 +..SACC==0 +..NAC==0 +..MASK==0 + +IRP ,< + IFG ACS-^D15, + IFE ACS-.SAC,<..SACC==1> + ..SYAC==ACS + IFN ACS-.SAC,,< + ..MASK==..MASK!1B<..SYAC> + ..NAC==..NAC+1>> + > +IFE ..SACC, ;;..DONE SET BY SPCSAV IF IT SUCCEEDS +IFE ..DONE,< + IFLE ..SACC, + IFG ..SACC, + IFG ..NAC-3, + IFLE ..NAC-3,> + PUSHJ P,(.SAC) + TRNA + AOS -..NAC-..SACC(P) + IFG ..NAC-3, + IFLE ..NAC-3,> + IFG ..SACC, + POPJ P,] +> +PURGE ..NAC,..TNAC,..MASK,..TMSK,..SACC,..NUM,..SMSK,..DONE,..SYAC +>;END OF DEFINE SAVEAC + +;Helper macros for SAVEAC + +DEFINE SPCSAV(ADDR,ACS),< + IFE ..DONE,< + ..SMSK==0 + IRP ,< + ..SYAC==ACS + ..SMSK==..SMSK!1B<..SYAC>> + IFE ..MASK-..SMSK, + > +>;END OF SPCSAV + + +DEFINE DSAVAC,< +IFG ..NAC, +..TMSK==..MASK +..TNAC==..NAC-1 +REPEAT ..NAC,< + IFN ..TMSK,< + ..NUM==^L<..TMSK> + ..TMSK==..TMSK-1B<..NUM> + IFE ..TMSK & 1B<..NUM+1>,< + MOVEM ..NUM,-..TNAC(P) + ..TNAC==..TNAC-1> + IFN ..TMSK & 1B<..NUM+1>,< + DMOVEM ..NUM,-..TNAC(P) + ..TNAC==..TNAC-2 + ..TMSK==..TMSK-1B<..NUM+1>> + >> +>;END OF DEFINE DSAVAC + +DEFINE DRSTAC,< +..TMSK==..MASK +..TNAC==..NAC-1 +REPEAT ..NAC,< + IFN ..TMSK,< + ..NUM==^L<..TMSK> + ..TMSK==..TMSK-1B<..NUM> + IFE ..TMSK & 1B<..NUM+1>,< + MOVE ..NUM,-..TNAC(P) + ..TNAC==..TNAC-1> + IFN ..TMSK & 1B<..NUM+1>,< + DMOVE ..NUM,-..TNAC(P) + ..TNAC==..TNAC-2 + ..TMSK==..TMSK-1B<..NUM+1>> + >> +IFG ..NAC, +>;END OF DEFINE DRSTAC + +DEFINE PSAVAC,< + ..TMSK==..MASK + REPEAT ..NAC,< + ..NUM==^L<..TMSK> + ..TMSK==..TMSK-1B<..NUM> + PUSH P,..NUM + > +> +DEFINE PRSTAC,< + ..NUM==^D15 + REPEAT ^D16,< + IFN ..MASK & 1B<..NUM>,< + POP P,..NUM> + ..NUM==..NUM-1 + > +> + +IFN REL,< + +;STANDARD RETURNS + +RSKP:: AOS 0(P) +R:: RET + > ;END OF IFN REL, + + IFN REL,< +;SUPPORT ROUTINES FOR AC VARIABLE FACILITY + +.SAV1:: PUSH P,.FPAC + PUSHJ P,0(.A16) + SKIPA + AOS -1(P) + POP P,.FPAC + POPJ P, + +.SAV2:: PUSH P,.FPAC + PUSH P,.FPAC+1 + PUSHJ P,0(.A16) + SKIPA + AOS -2(P) + POP P,.FPAC+1 + POP P,.FPAC + POPJ P, + +.SAV3:: +.SAV4:: ADJSP P,4 + DMOVEM .FPAC,-3(P) + DMOVEM .FPAC+2,-1(P) + PUSHJ P,0(.A16) + SKIPA + AOS -4(P) + DMOVE .FPAC,-3(P) + DMOVE .FPAC+2,-1(P) + ADJSP P,-4 + POPJ P, + +.SAV8:: ADJSP P,10 + DMOVEM .FPAC,-7(P) + DMOVEM .FPAC+2,-5(P) + DMOVEM .FPAC+4,-3(P) + DMOVEM .FPAC+6,-1(P) + PUSHJ P,0(.A16) + SKIPA + AOS -10(P) + DMOVE .FPAC+6,-1(P) + DMOVE .FPAC+4,-3(P) + DMOVE .FPAC+2,-5(P) + DMOVE .FPAC,-7(P) + ADJSP P,-10 + POPJ P, + > + SUBTTL BLSUBR - BLISS-STYLE SUBROUTINE MECHANISM + +;MACROS FOR STACK-STYLE (BLISS) SUBROUTINE ENTRY +;BLSUBR DEFINE A SUBROUTINE ENTRY POINT. IT TAKES THE LIST OF +;SYMBOLS WHICH WILL BE BOUND TO VALUES ON THE STACK AT ENTRY TO +;THE ROUTINE. A STACK FRAME POINTER IS SETUP IN .FP AND MUST +;BE UNDISTURBED THROUGH THE ROUTINE. OTHER MECHANISMS WHICH +;USE THE STACK (E.G. SAVEAC) CAN BE USED. +;AN OPTIONAL LIST OF VARIABLES IN THE SAME FORMAT AS FOR TRVAR CAN +;BE GIVEN TO ALLOCATE LOCAL DYNAMIC STORAGE. + +;SUBROUTINES DEFINED HEREBY ARE CALLED WITH BLCALL. + + IFE REL,< + EXTERN .ENTER> + +DEFINE BLSUB. (ARGS,VARS)< ;;ARGUMENTS, LOCAL VARIABLES + ..TRR==10 ;;REMEMBER CURRENT RADIX + RADIX 8 ;;SO BACKSLASH ARGS WILL WORK HEREIN + ..NA==2 ;;INIT ARG COUNT + IRP ARGS,< + ..NA=..NA+1> ;;COUNT ARGS + IRP ARGS,< + .BLSU1(ARGS,\..NA) ;;DEFINE AN ARG + ..NA=..NA-1> + ..NV==1 ;;SETUP TO COUNT VARIABLE STORAGE + IRP VARS,< + .TRV1 (VARS)> ;;COUNT WORDS AND DEFINE SYMBOLS + DEFINE ENDBS. <.ENBS1 + .ENSV1 > ;;SAVE SYMBOLS + JSP .A16,.ENTER + ..NV-1,,..NV-1 + RADIX ..TRR> ;;SETUP FRAME PTR + +DEFINE .BLSU1 (ARG,LOC)< + DEFINE ARG<-^O'LOC(.FP)> + $'ARG==> + +DEFINE .ENBS1 (ARGS)< + IRP ARGS,< + DEFINE ARGS<....U>>> + +;CALL STACK-STYLE (BLISS) SUBROUTINE +;THIS MACRO TAKES THE NAME OF THE SUBROUTINE AND A LIST OF ARGUMENTS. +;EACH ARGUMENT IN THE ARG LIST IS ONE OF THE FOLLOWING: +; 1. A NORMAL EFFECTIVE ADDRESS SPECIFICATION, E.G. FOO, @FIE(X) +; 2. AN IMMEDIATE ADDRESS WRITTEN AS <.,ADR> WHERE ADR IS AN EFFECTIVE +; ADDRESS SPECIFICATION, E.G. FOO, @FIE(X). NOTE THAT THIS +; ADDRESS WILL BE COMPUTED BY AN XMOVEI AT THE TIME OF THE CALL +; SO SECTION INFORMATION WILL BE BOUND AT THAT TIME. NOTE ALSO +; THAT THIS FORM SHOULD *NOT* BE USED FOR A LITERAL CONSTANT +; WHERE YOU WOULD NOT WANT THE CURRENT SECTION PUT IN THE LEFT +; HALF. USE [CONST] INSTEAD. YES, THE DOT HERE IS LIKE NO-DOT IN BLISS +; AND VICE-VERSA. +; 3. A STRUCTURE REFERENCE SPECIFICATION, E.G. AAA, . IF +; THE LATTER FORM IS USED, THE BRACKETS ARE REQUIRED. + +DEFINE BLCAL. (NAME,ARGS)< + ..NA==0 ;;INIT ARG COUNT + IRP ARGS,< + .BLCL2 ARGS> ;;COMPILE PUSH + PUSH P,[..NA+1,,..NA+1] ;;COUNT OF ARGS AND SELF + PUSHJ P,NAME ;;JUMP TO SUBR + > + +;SEPARATE PAIRED ARGS + + DEFINE .BLCL2 (ARGS)< + .BLCL1 ARGS> + + DEFINE .BLCL1 (ARG1,ARG2)< + IFIDN <.>,< + XMOVEI .A16,ARG2 ;;IMMEDIATE ARG + PUSH P,.A16> + IFDIF <.>,< + .IFATM ,.BLF4 ;;SEE IF ARG IS ATOMIC + .BLF1==0 ;;SET TO 1 WHEN WE ASSEMBLE SOMETHING + IFN .BLF4,< ;;SEE IF A STRUCTURE REF + .IF %'ARG1,MACRO,< ;;CHECK RELATED STRUCTURE SYMBOL + .BLF1==1> ;;IS A STRUCTURE + IFNB ,< + .BLF1==1> ;;SECOND ARG IMPLIES STRUCTURE TOO + IFN .BLF1,< ;;'OR' OF ABOVE TWO CHECKS + LOAD .A16,ARG1,ARG2 + PUSH P,.A16>> + IFE .BLF1,< ;IF WASN'T A STRUCTURE REF, + IFN .BLF4,< ;;IF ARG IS ATOMIC... + .BLF2==<&17B17>-

B17 ;;TRY TO GET VALUE + .IF .BLF2,ABSOLUTE,< ;;IF WE NOW HAVE THE VALUE + IFE .BLF2,< ;;SEE IF INDEXED BY P + .BLF1==1 ;;NOTE WE DID SOMETHING + .BLF3==&777777 + PUSH P,.BLF3-..NA(P)>>>> ;;YES, MUST ADJUST BY PUSHES SO FAR + IFE .BLF1,< ;;ELSE... + PUSH P,ARG1>> ;;PUSH ONE ARG + ..NA=..NA+1> + +;MACRO TO SEE IF STRING IS AN ATOM, I.E. CONTAINS ONLY LEGAL SYMBOL +;CONSTITUENTS A-Z, 0-9, %, $, . +;IT IS PAINFULLY SLOW, BUT MACRO PROVIDES NO OTHER WAY +;FLAG WILL BE SET TO 1 IF STRING IS ATOM, 0 OTHERWISE + +DEFINE .IFATM (S,FLG)< + IRPC S,< + FLG==0 + IFGE "S"-"A",> ;;SET FLG IF LETTER OK + IFGE "S"-"0",> + IFE "S"-"%", + IFE "S"-"$", + IFE "S"-".", + IFE FLG,>> + + IFN REL,< +;SUPPORT CODE FOR BLSUBR + +.ENTER::PUSH P,.FP + MOVE .FP,P + ADD P,0(.A16) ;ALLOCATE LOCAL STORAGE + JUMPGE P,ENTOV ;JUMP IF OVERFLOW +ENTOV1: PUSHJ P,1(.A16) + JRST [ MOVE P,.FP ;RESET STACK PTR + JRST ENTX1] + MOVE P,.FP + AOS -1(P) ;PROPAGATE SKIP +ENTX1: POP P,.FP + MOVN .A16,-1(P) ;get - + HRRZM .A16,-1(P) ;Store 0,,-n + POP P,.A16 ;Recover return address + ADJSP P,@0(P) ;Clean up the stack + JRST 0(.A16) ;RETURN + +ENTOV: MOVE P,.FP ;STACK OVERFLOW, UNDO ADD + PUSH P,.A16 ;SAVE LOCAL RETURN IN 1(.FP) + HRRZ .A16,0(.A16) ;GET COUNT + ADJSP P,-1(.A16) ;ALLOCATE SPACE, GET TRAP HERE OR ON PUSH + MOVE .A16,1(.FP) ;RESTORE LOCAL RETURN + JRST ENTOV1 ;CHARGE AHEAD + > ;END IFN REL + SUBTTL ERROR-MESSAGE SUPPORT FOR MACROS + +;Macro to print current location, macro name, and text + +DEFINE MPRNTX (MNAME,TEXT)< + DEFINE ..MP. (LOCN,MTEXT,PTEXT)< + PRINTX Location 'LOCN', Macro 'MTEXT': PTEXT + > + ..MP.(\.,MNAME,) + PURGE ..MP. + > + +;Macro to print current location and text + +DEFINE EPRNTX (TEXT)< + DEFINE ..EP. (LOCN,PTEXT) + + ..EP.(\.,) + PURGE ..EP. + > + SUBTTL MACROS TO SUPPORT EXTENDED ADDRESSING + +;EP. - Build Extended Pointer (extended format indirect word). +;See format picture below. +;Allows standard syntax for indexing and indirection. +; +; EP. @ADR(X) +; +; where +; @ - indirection, may be omitted +; ADR - full address including section +; X - index, may be omitted. +;Examples: +; EP. @FOO ;indirection only +; EP. FOO(X) ;indexing only +; EP. @FOO(X) ;both +;These would generally be used in literals as indirect words, e.g. +; MOVE T1,@[EP. FOO(X)] +;No nested parentheses should be used. + +DEFINE EP. (ARG)< + ..I==0 + ..X==0 + MAKRM. (..CON,..GET) + ..CON + IRPC ARG,< + ..SC==0 + IFE "ARG"-"@",<..I==1 + ..SC=1> + IFE "ARG"-"(",<..CON <,> + ..SC=1 + ..X==1> + IFE "ARG"-")",< + IFE ..X, + ..SC=1> + IFE ..SC,< + ..CON >> + IFE ..X,< + ..CON <,0>> + ..CON < +> + ..GET + > + +;Basic macro to construct EFIW with 30-bit Y. +; EXIND. (IND,YYY,XXX) +; where +; IND is 0 or 1 +; YYY is a 30-bit address +; XXX is an index + +DEFINE EXIND. (IND,YYY,IDX)<<B1+B5+>> + + +; Local format indirect word +; ================================================================= +; !1!0! Reserved ! I ! X ! ADDR ! +; ================================================================= +; !0!1!2 12! 13!14 17!18 35! + + + +;Macro to generate local-format (instruction-format) indirect words +;Args: +; ADDR 18-bit in-section address (indexing or indirection +; may be specified) + +;Generates Q errors on the following: +; Bits 0-12 non-zero in ADDR + +DEFINE LFIWM (ADDR)< + ..ERR.=0 ;;Reset error flag + IFN <&<^O<777740,,0>>>,< + MPRNTX(LFIWM,Bits 0 - 12 non-zero in address field: ADDR) + ..ERR.=1 + > + IFN ..ERR.,<-1,-1,-1> ;;Generate Q error + IFE ..ERR.,<1B0!<<^O<400037,,-1>>&>> ;;Generate LFIW + PURGE ..ERR. + > + +; Global format indirect word +; ================================================================= +; !0! I ! X ! SEC ! ADDR ! +; ================================================================= +; !0! 1 !2 5!6 17! 35! + + +;Macro to generate global-format (extended-format) indirect words +;Args: +; SEC 12-bit section number +; ADDR 18-bit in-section address (indexing or indirection +; may be specified) + +;Generates Q errors on the following: +; Bits 0-12 non-zero in ADDR +; SEC greater than 12 bits + +DEFINE GFIWM (SEC,ADDR)< + ..ERR.=0 ;;Reset error flag + IFN <&<^O<-1,,770000>>>,< + MPRNTX(GFIWM,Section greater than 12 bits: SEC) + ..ERR.=1 + > + IFN <&<^O<777740,,0>>>,< + MPRNTX(GFIWM,Bits 0 - 12 non-zero in address field: ADDR) + ..ERR.=1 + > + IFN ..ERR.,<-1,-1,-1> ;;Generate Q error + ;;Generate GFIW + IFE ..ERR.,< + <<_<^O14>>&<^O<370000,,0>>!<&<0,,-1>>!<_<^O22>>>> + PURGE ..ERR. + > + +; The following macros generate all flavors of 1 and 2-word +; global and local byte pointers. They are similar to the +; POINT pseudo-op, with the following exceptions: + +; 1. The basic argument triad of (bytesize,address,byte position) +; is maintained. However, some of the macros will prefix +; and-or postfix the triad with additional argument(s). +; 2. Numeric arguments are always interpreted in the current radix. +; Assuming the current radix is octal, note the following +; equivalences: +; a. POINT 10,200,36 +; b. L1BPT(12,200,44) +; c. L1BPT(^D10,200,^D36) +; 3. Strict field-limits are enforced. Any expression that +; will not fit into its appropriate field will generate +; an error message and cause a Q error. Thus: +; L1BPT (10,200,-1) will cause an error. (The correct effect +; is generated with: L1BPT (10,200).) + +; Also, note that in those macros that generate global byte-pointers, +; section values and address values must always be specified as distinct +; arguments. If address symbol FOO resolves to 377,,123456 , then it +; would be specified in the macros as follows: +; G2BPT(FOO_-^D18,7,FOO&777777,36) +; Or (better): +; FOOSEC=FOO_-^D18 +; FOOADR=FOO&777777 +; G2BPT(FOOSEC,7,FOOADR,36) + +; If runtime-generated values are needed, then any or all argument +; fields may be assembled as zero and filled in at runtime using an +; appropriate DPB instruction. (G1BPT will not allow a zero bytesize +; and will only allow a zero byte position if it is legal for that +; particular bytesize.) + + + +; 1-word local byte pointer +; ================================================================= +; ! P ! S ! 0 ! I ! X ! ADDR ! +; ================================================================= +; !0 5!6 11! 12! 13!14 17!18 35! + + + +;Macro to generate local, 1-word byte pointers +;Args: +; BSIZ Byte size +; ADDR 18-bit address (indexing or indirection +; may be specified) +; BPOS Optional byte position + +;Generates Q errors on the following: +; Bits 0-12 non-zero in ADDR +; BSIZ or BPOS greater than 6 bits + +DEFINE L1BPT (BSIZ,ADDR,BPOS)< + .BSIZ.=BSIZ ;;Convert args to numeric + .BPOS.=BPOS + ..ERR.=0 ;;Reset error flag + IFN <&<^O<777740,,0>>>,< + MPRNTX(L1BPT,Bits 0 - 12 non-zero in address field: ADDR) + ..ERR.=1 + > + IFN <.BSIZ.&<^O<-1,,777700>>>,< + MPRNTX(L1BPT,Bytesize greater than 6 bits: BSIZ) + ..ERR.=1 + > + IFN <.BPOS.&<^O<-1,,777700>>>,< + MPRNTX(L1BPT,Byte offset greater than 6 bits: BPOS) + ..ERR.=1 + > + ;;Cause Q error + IFN <..ERR.>,<-1,-1,-1> + ;;Generate byte pointer + IFE <..ERR.>,< + IFIDN <>, + IFDIF <>, + > + PURGE ..ERR.,.BSIZ.,.BPOS. + > + + + +; 1-word global byte pointer +; ================================================================= +; ! CODE ! SEC ! ADDR ! +; ================================================================= +; !0 5!6 17! 35! + + + +;Macro to generate global, 1-word byte pointers +;Args: +; +; SEC 12-bit section address +; BSIZ Byte size +; ADDR 18-bit address (NO!! indexing or indirection +; may be specified) +; BPOS Optional byte position + +;Generates Q errors on following: +; Illegal byte size or byte position +; Indirection or indexing specified with ADDR +; ADDR greater than 18 bits +; SEC greater than 12 bits + +;Legal sizes and positions are as follows: + +;Size Positions (Octal) +;6 44,36,30,22,14,6,0 +;7 44,35,26,17,10,1 +;8 44,34,24,14,4 +;9 44,33,22,11,0 +;18 44,22,0 + + +; Define (somewhat) mnemonic symbols for the P&S field of a one-word global +; byte pointer. These symbols have the form .Psspp where ss is the byte +; size in decimal, and pp is the byte position in decimal (just like the +; POINT pseudo-op in MACRO). There are also a group of symbols that +; generate ILDB style pointers for word aligned data. They are of the +; form .Pss. +; +; Example: +; +; If AC contains the 30 bit address of a buffer, then: +; TXO AC,.P0736 +; will generate a byte pointer that can be used for ILDB, IDPB +; operations. Equivalently, the symbol .P07 could have been used +; instead. + +DEFINE GENBPT (SIZ)< +..CC=45 ;; Initialize the P&S field +..R=10 ;; Save current radix + +IRP ,< +..PP=^D36 ;; Initialize the position field + +REPEAT ^O44/^D'SIZ+1,< + RADIX 10 ;; Make \ generate base ^D10. + GENBP1 (SIZ,\..PP) ;; Generate .Psspp symbols + GENBP2 ($,SIZ,\..PP) ;; Generate base ^d10 .$sp symbols + RADIX 8 ;; Make \ generate base 8. + GENBP2 (%,\<^D'SIZ>,\..PP) ;; Generate base 8 .%sp symbols + IFE ..PP-^D36,..PP=-1 + ..PP=..PP+^D'SIZ + ..CC=..CC+1> +> +RADIX ..R +> + +; Helper macro for GENBPT. Generates .Psspp symbols. Note that all numbers +; are in radix ^D10. + +DEFINE GENBP1 (SIZ,POS)< +IFL SIZ-10,< + IFL POS-10,.P0'SIZ'0'POS==:<..CC>B5 + IFGE POS-10,.P0'SIZ'POS==:<..CC>B5 + IFE POS-36,.P0'SIZ==:<..CC>B5 + > +IFGE SIZ-10,< + IFL POS-10,.P'SIZ'0'POS==:<..CC>B5 + IFGE POS-10,.P'SIZ'POS==:<..CC>B5 + IFE POS-36,.P'SIZ==:<..CC>B5 + > +> + +; Generate .% or .$ symbols for internal macro use. + +DEFINE GENBP2(TYP,SIZ,POS)<.'TYP'SIZ'POS==:<..CC>B5> + +lall +GENBPT (<6,8,7,9,18>) ; Generate all one-word global symbols + +; ..OWGP - internal macro used by other macros to generate .% symbols. Should +; be invoked using \ feature of macro arguments, and in radix 8 or 10. + +DEFINE ..OWGP (SIZ,ADDR,POS)>+  + IFE 10-^D10,<.$'SIZ'POS!>> + +PURGE ..CC,..PP,GENBPT,GENBP1,GENBP2 ; Get rid of extra symbols + +repeat 0,< +DEFINE G1BPT (SEC,BSIZ,ADDR,BPOS<^O44>)< + .GTBCD (BPOS,BSIZ,..ENC.) ;;GET OWGBP CODE + IFE ..ENC.,)> + IFN <&<-1,,0>>,< + MPRNTX (G1BPT,

)> + IFN <&<^O<-1,,770000>>>,< + MPRNTX (G1BPT,
)> + <..ENC.>B5+B17+> ;;GENERATE THE WORD +> + +DEFINE G1BPT (SEC,BSIZ,ADDR,BPOS<^O44>)<<..OWGP (\,,\)>> + + +;ONE WORD GLOBAL - Where address includes section. +repeat 0,< +DEFINE OWGP. (SS,ADR,POS)< + ..SS== + ..PP==^O44 + IFNB ,<..PP==^D35-> + .GTBCD (..PP,..SS,..ENC) ;;GET OWGPB CODE + IFE ..ENC,)> + <..ENC>B5+ADR> ;;GENERATE THE WORD +> + +DEFINE OWGP. (SS,ADR,POS<^O44>)<<..OWGP (\,ADR,\)>> + +;ONE WORD GLOBAL - Given mask as argument ala POINTR. + +DEFINE OWGPR. (LOC,MASK) + +repeat 0,< +;Internal macro to convert P and S to OWGPB code. +; Accepts: PP - P value +; SS - S value +; Returns (sets): +; CD - Code +;Code set to 0 if P,S combination not recognized. + +DEFINE .GTBCD (PP,SS,CD)< + ..P==PP + ..S==SS + ..C==0 ;;INIT CODE + ..Q==10 ;;SAVE RADIX + RADIX ^D8 + IFE ..S-6,< + IFE ..P-44,<..C=45> + IFE ..P-36,<..C=46> + IFE ..P-30,<..C=47> + IFE ..P-22,<..C=50> + IFE ..P-14,<..C=51> + IFE ..P-06,<..C=52> + IFE ..P-00,<..C=53>> + IFE ..S-10,< + IFE ..P-44,<..C=54> + IFE ..P-34,<..C=55> + IFE ..P-24,<..C=56> + IFE ..P-14,<..C=57> + IFE ..P-04,<..C=60>> + IFE ..S-7,< + IFE ..P-44,<..C=61> + IFE ..P-35,<..C=62> + IFE ..P-26,<..C=63> + IFE ..P-17,<..C=64> + IFE ..P-10,<..C=65> + IFE ..P-01,<..C=66>> + IFE ..S-11,< + IFE ..P-44,<..C=67> + IFE ..P-33,<..C=70> + IFE ..P-22,<..C=71> + IFE ..P-11,<..C=72> + IFE ..P-00,<..C=73>> + IFE ..S-20,< + IFE ..P-44,<..C=74> + IFE ..P-22,<..C=75> + IFE ..P-00,<..C=76>> + RADIX ..Q ;;RESTORE RADIX + CD==..C> +> + +; 2-word local byte pointer + +; !0 5!6 11! 12! 13 17!18 35! +; ================================================================= +; ! P ! S ! 1 ! Reserved ! Available to User ! +; ================================================================= +; !1!0! Reserved ! I ! X ! ADDR ! +; ================================================================= +; !0!1!2 12! 13!14 17!18 35! + + + +;Macro to generate local, 2-word byte pointers +;Args: +; +; BSIZ Byte size +; ADDR 18-bit address (Indexing or indirection +; may be specified) +; BPOS Optional byte position +; OPT Optional user field available in word 1, right half + +;Generates Q errors on the following: +; Bits 0-12 non-zero in ADDR +; Bits 0-17 non-zero in OPT +; BSIZ or BPOS greater than 6 bits + +DEFINE L2BPT(BSIZ,ADDR,BPOS,OPT<0>)< + ..ERR.=0 ;;Reset error flag + .BSIZ.=BSIZ ;;Convert args to numeric + .BPOS.=BPOS + IFN <&<^O<777740,,0>>>,< + MPRNTX(L2BPT,Bits 0 - 12 non-zero in address field: ADDR) + ..ERR.=1 + > + IFN <&<-1,,0>>,< + MPRNTX(L2BPT,Bits 0-17 non-zero in optional field: OPT) + ..ERR.=1 + > + IFN <.BSIZ.&<^O<-1,,777700>>>,< + MPRNTX(L2BPT,Bytesize greater than 6 bits: BSIZ) + ..ERR.=1 + > + IFN <.BPOS.&<^O<-1,,777700>>>,< + MPRNTX(L2BPT,Byte offset greater than 6 bits: BPOS) + ..ERR.=1 + > + IFN ..ERR.,<-1,-1,-1> ;;Generate Q error + ;;Generate the byte pointer + IFE ..ERR.,< + IFDIF <>,<<!1B12>&<^O<777740,,-1>>> + IFIDN <>,<<!1B12>&<^O<777740,,-1>>> + <1B0!<<^O<400037,,-1>>&>> ;;Generate LFIW + > + PURGE ..ERR.,.BSIZ.,.BPOS. + > + + +; 2-word global byte pointer + +; !0 5!6 11! 12! 13 17!18 35! +; ================================================================= +; ! P ! S ! 1 ! Reserved ! Available to User ! +; ================================================================= +; !0! I ! X ! SEC ! ADDR ! +; ================================================================= +; !0! 1 !2 5!6 17! 35! + + +;Macro to generate global, 2-word byte pointers +;Args: +; SEC 12-bit section address +; BSIZ Byte size +; ADDR 18-bit address (Indexing or indirection +; may be specified) +; BPOS Optional byte position +; OPT Optional user field available in word 1, right half + +;Generates Q errors on the following: +; SEC greater than 12 bits +; Bits 0-12 non-zero in ADDR +; Bits 0-17 non-zero in OPT +; BSIZ or BPOS greater than 6 bits + +DEFINE G2BPT(SEC,BSIZ,ADDR,BPOS,OPT<0>)< + ..ERR.=0 ;;Reset error flag + .BSIZ.=BSIZ ;;Convert args to numeric + .BPOS.=BPOS + IFN <&<^O<-1,,770000>>>,< + MPRNTX(G2BPT,Section greater than 12 bits: SEC) + ..ERR.=1 + > + IFN <&<^O<777740,,0>>>,< + MPRNTX(G2BPT,Bits 0 - 12 non-zero in address field: ADDR) + ..ERR.=1 + > + IFN <&<-1,,0>>,< + MPRNTX(G2BPT,Bits 0-17 non-zero in optional field: OPT) + ..ERR.=1 + > + IFN <.BSIZ.&<^O<-1,,777700>>>,< + MPRNTX(G2BPT,Bytesize greater than 6 bits: BSIZ) + ..ERR.=1 + > + IFN <.BPOS.&<^O<-1,,777700>>>,< + MPRNTX(G2BPT,Byte offset greater than 6 bits: BPOS) + ..ERR.=1 + > + IFN ..ERR.,<-1,-1,-1> ;;Generate Q error + ;;Generate the byte pointer + IFE ..ERR.,< + IFDIF <>,<<!1B12>&<^O<777740,,-1>>> + IFIDN <>,<<!1B12>&<^O<777740,,-1>>> + ;;Generate GFIW + <<_<^O14>>&<^O<370000,,0>>!<&<0,,-1>>!<_<^O22>>> + > + PURGE ..ERR.,.BSIZ.,.BPOS. + > + SUBTTL Byte pointers for ASCII strings + REPEAT 0,< ;SUPERCEDED BY .Psspp + +;Macros to generate 7-bit byte pointers where AC already contains an address. + +;NOTE: In the case of one-word globals, AC must contain ONLY a 30-bit +;address. That is, bits 0-5 must be zero. + +;PTLOCI - One word local pointer to bits 28-34 of a word. Used when AC +; points to word preceding the one of interest. ILDB gets the byte +; from the first 7 bits of the next word + +;PTGLBI - One-word global equivalent of PTLOCI + +; Replaces HRLI AC,700 + + DEFINE PTLOCI (AC)< + HRLI AC,(POINT 7,0,35)> + +LSTBYT==660000,,0 + DEFINE PTGLBI (AC)< + TXO AC,LSTBYT> + +;PTLOC - One word local pointer to 7 bits preceding a word. Used when AC +; points to the word of interest. ILDB gets the byte +; from the first 7 bits of the word + +;PTGLB - One-word global equivalent of PTLOC + +;Replaces HRLI AC,440700 + + DEFINE PTLOC (AC),< + HRLI AC,(POINT 7,0)> + +FRSBYT==610000,,0 + DEFINE PTGLB (AC)< + TXO AC,FRSBYT> + > ;END REPEAT 0 + + +;Macros to generate 8-bit byte pointers where AC already contains an address. + +;PTLC8. - generates 8-bit local byte pointer to beginning of word + + DEFINE PTLC8. (AC),< + HRLI AC,(POINT 8,0)> + +;PTGB8. - generates 8-bit global byte pointer to beginning of word + +.FR8BY==540000,,0 + DEFINE PTGB8. (AC)< + TXO AC,.FR8BY> + SUBTTL +LIT ;MAKE SURE LITERALS COME BEFORE END MARK + IFN REL,< +.RLEND==:.-1 ;MARK END OF CODE IN MACREL + > + IF2, ;FLUSH REL FROM UNIV FILE + + .XCMSY + + END ;End of MACSYM diff --git a/src/decsys/monsym.mac b/src/decsys/monsym.mac new file mode 100644 index 00000000..62d6540f --- /dev/null +++ b/src/decsys/monsym.mac @@ -0,0 +1,8275 @@ +; UPD ID= 60, RIP:<7.UTILITIES>MONSYM.MAC.27, 24-Mar-88 14:22:48 by RASPUZZI +;TCO 7.1263 - Add a default (0) function for TCP JFN stuff for JSYS manual. +; UPD ID= 56, RIP:<7.UTILITIES>MONSYM.MAC.26, 1-Mar-88 15:51:05 by GSCOTT +;TCO 7.1248 - Remove bad definition of .QBDMX +; UPD ID= 53, RIP:<7.UTILITIES>MONSYM.MAC.25, 19-Feb-88 18:13:57 by GSCOTT +;TCO 7.1236 - Update copyright notice. +; UPD ID= 45, RIP:<7.UTILITIES>MONSYM.MAC.24, 19-Feb-88 08:48:17 by RASPUZZI +;TCO 7.1234 - Fix misspelling in ARGX27. +; UPD ID= 42, RIP:<7.UTILITIES>MONSYM.MAC.23, 18-Feb-88 15:34:07 by RASPUZZI +;TCO 7.1231 - Add new SMON% function for setting min password lengths. +; Also, add new error codes. +; UPD ID= 41, RIP:<7.UTILITIES>MONSYM.MAC.22, 3-Feb-88 15:12:20 by WADDINGTON +;TCO 7.1207 - Add .GOLAT GETOK% function +; UPD ID= 40, RIP:<7.UTILITIES>MONSYM.MAC.21, 27-Jan-88 10:23:37 by GSCOTT +;TCO 7.1200 - Move GJINF, TIME, RUNTM, GTRPI, SYSGT, GETAB, SETSN, SETNM, +;GETNM, GETJI, GTDAL, SWTCH, LITES, USRIO, PEEK, and XPEEK JSYSes to XCDSEC. +; UPD ID= 38, RIP:<7.UTILITIES>MONSYM.MAC.20, 19-Jan-88 13:49:57 by GSCOTT +;TCO 7.1183 - Move ODTIM, IDTIM, ODTNC, IDTNC, ODCNV, IDCNV to XCDSEC. +; UPD ID= 37, RIP:<7.UTILITIES>MONSYM.MAC.19, 15-Jan-88 16:25:38 by MCCOLLUM +;TCO 7.1185 - NODE% JSYS entry point is now in XCDSEC. +; UPD ID= 25, RIP:<7.UTILITIES>MONSYM.MAC.18, 10-Nov-87 16:52:01 by GSCOTT +;TCO 7.1123 - .DBTIM defined where we wanted .DBTVS +; UPD ID= 21, RIP:<7.UTILITIES>MONSYM.MAC.17, 4-Nov-87 15:41:27 by MCCOLLUM +;TCO 7.1112 - Add MS%BS bit to SDBSTS and .SFLGS to SMON%/TMON functions +; UPD ID= 16, RIP:<7.UTILITIES>MONSYM.MAC.15, 23-Oct-87 15:45:51 by WADDINGTON +;TCO 7.1082 - Add LATOP% JSYS symbols +; UPD ID= 15, RIP:<7.UTILITIES>MONSYM.MAC.14, 23-Oct-87 14:58:15 by GSCOTT +;TCO 7.1081 - Add DOB errors, bits, MS%DMP, "?" to PRINTX, UF%FSH +; UPD ID= 14, RIP:<7.UTILITIES>MONSYM.MAC.12, 23-Oct-87 12:47:09 by RASPUZZI +;TCO 7.1080 - Make .SPNEB and .SDNEB so NEBULA can have a system PID. +; UPD ID= 13, RIP:<7.UTILITIES>MONSYM.MAC.11, 21-Oct-87 17:06:52 by RASPUZZI +;More of TCO 7.1076 - Make INFO% for real instead of commented out. +; UPD ID= 12, RIP:<7.UTILITIES>MONSYM.MAC.10, 21-Oct-87 17:02:12 by MCCOLLUM +;TCO 7.1079 - Add STRX11 error code +; UPD ID= 10, RIP:<7.UTILITIES>MONSYM.MAC.9, 21-Oct-87 13:20:46 by WONG +;TCO 7.1077 - Add new bit, SC%SEM, for SEMI-OPERATOR privilege. +; UPD ID= 9, RIP:<7.UTILITIES>MONSYM.MAC.8, 20-Oct-87 21:45:13 by RASPUZZI +;TCO 7.1076 - Add INFO% JSYS stuff (functions and related items). Also +; include new SMON%/TMON% function and GETOK% function. +; Add new mnemonics for TTMSG% for cluster sendalls. +; UPD ID= 8, RIP:<7.UTILITIES>MONSYM.MAC.7, 19-Oct-87 17:17:00 by LOMARTIRE +;TCO 7.1072 - Add .ENECL, EN%QCC, EN%QCN, EN%QCS, and ENQX24 for ENQ +; UPD ID= 7, RIP:<7.UTILITIES>MONSYM.MAC.6, 23-Sep-87 15:52:28 by MCCOLLUM +;TCO 7.1063 - Add SMONX3 and STRX10. Add MS%OFS to .MSGSS bits. Add .SFOFS +; SMON% and TMON% function code. +; UPD ID= 5, RIP:<7.UTILITIES>MONSYM.MAC.5, 3-Sep-87 20:42:04 by GSCOTT +; TCO 7.1049 - Add error code USGX04 - Invalid terminal line number +; UPD ID= 4, RIP:<7.UTILITIES>MONSYM.MAC.4, 28-Jul-87 14:39:36 by RASPUZZI +;TCO 7.1028 - Fix spelling error in error string. +; UPD ID= 3, RIP:<7.UTILITIES>MONSYM.MAC.3, 5-Jun-87 11:46:40 by MCCOLLUM +; TCO 7.1010 - Add ENACX5 error code for use by ENACT routine in JSYSA +; *** Edit 7462 to MONSYM.MAC by EVANS on 28-Apr-87, for SPR #19914 +; Do not allow removal of Subdirectory-user-goups-allowed if the group number +; is in use in a subdirectory +; Add new error for CRDIR% - RE: JSYSF edit 7461 +; *** Edit 7436 to MONSYM.MAC by GSCOTT on 3-Apr-87, for SPR #21488 +; Add MTOPR functions .MOHUP (62) and .MOUHU (63) for terminals +; *** Edit 7431 to MONSYM.MAC by MCCOLLUM on 31-Mar-87 +; Add error code MSTX51 for use by the MSTR% JSYS when STRTAB is full +; *** Edit 7424 to MONSYM.MAC by EVANS on 11-Mar-87 +; Add VT300 - dependent monitor edit 7423 and EXEC edit 3055 +; *** Edit 7412 to MONSYM.MAC by RASPUZZI on 24-Jan-87, for SPR #18873 +; Change directory and username break masks so they don't include ^V +; *** Edit 7409 to MONSYM.MAC by RASPUZZI on 22-Jan-87, for SPR #21507 +; Add new error code for NTINF% (TTYX04) +; *** Edit 7370 to MONSYM.MAC by RASPUZZI on 30-Sep-86, for SPR #21272 +; Add error message GNJFX2 for GNJFN% when current file vanishes. +; *** Edit 7353 to MONSYM.MAC by JROSSELL on 11-Aug-86, for SPR #21161 +; Add error codes for .DSKOP +; *** Edit 7331 to MONSYM.MAC by LOMARTIRE on 27-Jun-86, for SPR #21275 +; Add MSTX50 error code +; *** Edit 7327 to MONSYM.MAC by MCCOLLUM on 24-Jun-86, for SPR #21297 +; Add symbols for new SMON function to enable/disable LAT logins. +; *** Edit 7323 to MONSYM.MAC by RASPUZZI on 17-Jun-86, for SPR #20058 +; Add a new error code for online date out of range and change the off line +; date out of range error slightly. +; *** Edit 7322 to MONSYM.MAC by WONG on 17-Jun-86, for SPR #20898 (TCO none) +; Define SF%LSN for .SFPTR JSYS to state whether to include LSN or not in its +; calculation. +; *** Edit 7258 to MONSYM.MAC by WONG on 14-Mar-86, for SPR #18580 +; Add 3 new SETJB% functions. +; *** Edit 7214 to MONSYM.MAC by WAGNER on 19-Dec-85, for SPR #20844 +; Change error message for NPXNMD to include mention of structure not mounted. +; *** Edit 7213 to MONSYM.MAC by GRANT on 19-Dec-85 +; Add .CSTAT, the table number for the CI statistics table CISTAT +;------------------------- Autopatch Tape # 12 ------------------------- +; UPD ID= 148, SNARK:<6.1.UTILITIES>MONSYM.MAC.310, 17-Jul-85 10:53:41 by WAGNER +;Remove TCO 6.1.1479 - Some people actually use .ERCOD, cannot purge it +; UPD ID= 147, SNARK:<6.1.UTILITIES>MONSYM.MAC.309, 10-Jul-85 13:40:07 by WAGNER +;TCO 6.1.1479 - Purge .ERCOD on second pass to save storage in UNV +; UPD ID= 130, SNARK:<6.1.UTILITIES>MONSYM.MAC.308, 3-Jun-85 13:33:35 by TBOYLE +;TCO 6.1.1421 - Add PAGPTN. Internal error return for PAGEM. +; UPD ID= 128, SNARK:<6.1.UTILITIES>MONSYM.MAC.307, 22-May-85 13:51:23 by MCCOLLUM +;Put back symbols .QBEVT and .QBDLK that were removed by UPD ID 126 +; UPD ID= 127, SNARK:<6.1.UTILITIES>MONSYM.MAC.306, 20-May-85 14:48:32 by MCCOLLUM +;TCO 6.1.1402 - Reserve error codes 6000-6777 for custmoers. QAR 838366. +; UPD ID= 126, SNARK:<6.1.UTILITIES>MONSYM.MAC.305, 17-May-85 16:42:09 by DMCDANIEL +;Insert the following TCO's: +; TCO 6.2281 - Add .PVEXP, value = 2, obsolete .PVSTR. +; TCO 6.2280 - Add QU%TAB, QU%NXL, QU%RCL for SNA. (Per MAYBERRY). +; TCO 6.2262 - Change JS%DEV back to 3 bits/obsolete. Add JS%DVN. +; UPD ID= 125, SNARK:<6.1.UTILITIES>MONSYM.MAC.304, 14-May-85 16:58:26 by JROSSELL +;TCO 6.1.1389 - Remove one of the definitions of .QBSNA +; UPD ID= 115, SNARK:<6.1.UTILITIES>MONSYM.MAC.303, 23-Apr-85 17:06:03 by GROSSMAN +;TCO 6.1.1336 - Add .EIPHY and .EIHRD. +; UPD ID= 105, SNARK:<6.1.UTILITIES>MONSYM.MAC.301, 25-Mar-85 12:03:23 by LOMARTIRE +;TCO 6.1.1286 - Add MS%IAC +; UPD ID= 99, SNARK:<6.1.UTILITIES>MONSYM.MAC.300, 20-Mar-85 08:48:24 by GROSSMAN +;More TCO 6.1.1054 - Make .EIBMX global. +; UPD ID= 97, SNARK:<6.1.UTILITIES>MONSYM.MAC.299, 14-Mar-85 15:29:15 by WAGNER +;TCO 6.1.1263 - Add 2 symbols fixing documentation error with SKED%. +; UPD ID= 95, SNARK:<6.1.UTILITIES>MONSYM.MAC.298, 12-Mar-85 15:37:09 by GROSSMAN +;More TCO 6.1.1202 - Fix value of symbols in receive failure bit mask. +; UPD ID= 91, SNARK:<6.1.UTILITIES>MONSYM.MAC.297, 5-Mar-85 14:51:42 by HAUDEL +;TCO 6.1.1232 - Add SCA connection management symbols for SCS%. +; UPD ID= 88, SNARK:<6.1.UTILITIES>MONSYM.MAC.296, 25-Feb-85 12:28:13 by GRANT +;TCO 6.1.1220 - Add MS%SVD +; UPD ID= 87, SNARK:<6.1.UTILITIES>MONSYM.MAC.295, 25-Feb-85 08:38:53 by WAGNER +;Modify range for IFIXX1 to ^D36, QAR 706379 +; UPD ID= 84, SNARK:<6.1.UTILITIES>MONSYM.MAC.294, 19-Feb-85 13:32:07 by GROSSMAN +;TCO 6.1.1210 - Add symbols for NI% Read Portal Counters. +; UPD ID= 83, SNARK:<6.1.UTILITIES>MONSYM.MAC.293, 19-Feb-85 09:20:27 by LOMARTIRE +;TCO 6.1.1195 - Add MSTX47, MSTX48, MSTX49. Change text of MSTX45 and MSTX44. +; UPD ID= 82, SNARK:<6.1.UTILITIES>MONSYM.MAC.292, 18-Feb-85 22:18:34 by GROSSMAN +;TCO 6.1.1202 - Add symbols for NI% Read Channel Counters function. +; UPD ID= 76, SNARK:<6.1.UTILITIES>MONSYM.MAC.291, 11-Feb-85 08:42:30 by GRANT +;TCO 6.1.1183 - Add MSCPX4 +; UPD ID= 73, SNARK:<6.1.UTILITIES>MONSYM.MAC.290, 29-Jan-85 14:35:30 by GROSSMAN +;TCO 6.1.1162 - Add NI% state .EISRR. +; UPD ID= 69, SNARK:<6.1.UTILITIES>MONSYM.MAC.289, 21-Jan-85 15:35:10 by MCCOLLUM +;TCO 6.1.1148 - Add definitions for PDV memory map block +; UPD ID= 67, SNARK:<6.1.UTILITIES>MONSYM.MAC.288, 16-Jan-85 15:56:16 by GROSSMAN +;TCO 6.1.1138 - Add .EIGET, .EIRET, and error code NIECIO. +; UPD ID= 64, SNARK:<6.1.UTILITIES>MONSYM.MAC.287, 31-Dec-84 09:34:15 by LOMARTIRE +;TCO 6.1.1096 - Add the .CFHSC function to the CNFIG% JSYS +; UPD ID= 62, SNARK:<6.1.UTILITIES>MONSYM.MAC.286, 18-Dec-84 14:26:49 by HAUDEL +;TCO 6.1.1087 - Add .DGWMD and .DGRMD DIAG% function codes. +; UPD ID= 61, SNARK:<6.1.UTILITIES>MONSYM.MAC.285, 18-Dec-84 14:06:14 by HAUDEL +;TCO 6.1.1090 - Add SCSFRK error code by changing one version of +;SCSNQD error code. +; UPD ID= 56, SNARK:<6.1.UTILITIES>MONSYM.MAC.284, 7-Dec-84 15:13:56 by HALPIN +;TCO 6.1.1075 - Make BXSAD a two word field by changing BXPRO from 12 to 13 +; and BXBMX from 13 to 14. +; +; UPD ID= 53, SNARK:<6.1.UTILITIES>MONSYM.MAC.283, 30-Nov-84 17:42:34 by GROSSMAN +;TCO 6.1.1065 - Add NIERTE +; UPD ID= 51, SNARK:<6.1.UTILITIES>MONSYM.MAC.282, 20-Nov-84 10:05:04 by GLINDELL +;Add .QBSNA and .QBDFG argument blocks to QUEUE% jsys +; UPD ID= 46, SNARK:<6.1.UTILITIES>MONSYM.MAC.281, 16-Nov-84 19:03:21 by MELOHN +; Add .SFLTS SMON symbol for LAT State +; UPD ID= 44, SNARK:<6.1.UTILITIES>MONSYM.MAC.280, 15-Nov-84 14:17:48 by GROSSMAN +;TCO 6.1.1054 - Change NI% symbols to avoid conflicts with rest of monitor. +; UPD ID= 40, SNARK:<6.1.UTILITIES>MONSYM.MAC.279, 12-Nov-84 23:23:20 by GROSSMAN +;TCO 6.1.1045 - Add all symbols for the NI% JSYS. +; UPD ID= 39, SNARK:<6.1.UTILITIES>MONSYM.MAC.278, 9-Nov-84 14:40:29 by GLINDELL +;TCO 6.1.1033 - Add .QBEVT and .QBDLK +; UPD ID= 38, SNARK:<6.1.UTILITIES>MONSYM.MAC.277, 6-Nov-84 22:12:07 by PAETZOLD +;Add some 5.4 symbols that slipped through the cracks. +; UPD ID= 35, SNARK:<6.1.UTILITIES>MONSYM.MAC.276, 2-Nov-84 15:31:27 by MCLEAN +;make diag21 instead of diag20 +; UPD ID= 623, SNARK:<6.UTILITIES>MONSYM.MAC.275, 30-Oct-84 21:43:48 by MOSER +;TCO 6.2196 - ADD .MSMID +; UPD ID= 622, SNARK:<6.UTILITIES>MONSYM.MAC.274, 30-Oct-84 16:52:51 by MCLEAN +;add diag20 +; UPD ID= 621, SNARK:<6.UTILITIES>MONSYM.MAC.273, 29-Oct-84 08:06:48 by GRANT +;Fix .SQDSE +; UPD ID= 620, SNARK:<6.UTILITIES>MONSYM.MAC.272, 28-Oct-84 11:26:32 by PRATT +;TCO 6.1.1022 - Add NTINF% jsys and it's symbols +; UPD ID= 619, SNARK:<6.UTILITIES>MONSYM.MAC.271, 24-Oct-84 19:55:50 by GRANT +;Add .SQNNM and adjust .SQDHV +; UPD ID= 616, SNARK:<6.UTILITIES>MONSYM.MAC.270, 23-Oct-84 15:46:59 by HALL +;ADD .QBSNA PER BRANDT +; UPD ID= 615, SNARK:<6.UTILITIES>MONSYM.MAC.269, 22-Oct-84 13:47:32 by HALPIN +; Change value of LOWFNC in NTMAN% symbol definitions back to -3. I changed +; it to -4 in edit 610. LOWFNC is not used in V6.1. +; +; UPD ID= 613, SNARK:<6.UTILITIES>MONSYM.MAC.268, 18-Oct-84 16:14:34 by PAETZOLD +;TCO 6.1.1024 - Add .GTHLA function of GTHST. +; UPD ID= 610, SNARK:<6.UTILITIES>MONSYM.MAC.267, 17-Oct-84 14:38:44 by HALPIN +;Update NTMAN% JSYS symbols for 6.1 +; +; UPD ID= 607, SNARK:<6.UTILITIES>MONSYM.MAC.266, 12-Oct-84 17:55:36 by GLINDELL +;Add NTMX17 and .NDSDP function .NDFLO +; UPD ID= 606, SNARK:<6.UTILITIES>MONSYM.MAC.265, 9-Oct-84 13:19:22 by PALMIERI +;Add ND%RUK +; UPD ID= 605, SNARK:<6.UTILITIES>MONSYM.MAC.264, 9-Oct-84 11:41:46 by GLINDELL +;Add error code NTMX3 +; UPD ID= 604, SNARK:<6.UTILITIES>MONSYM.MAC.263, 9-Oct-84 10:21:04 by GLINDELL +;Add ND%LGL and ND%RCH +; UPD ID= 601, SNARK:<6.UTILITIES>MONSYM.MAC.262, 26-Sep-84 17:06:31 by WEISBACH +;Add LATOP% definitions +; UPD ID= 600, SNARK:<6.UTILITIES>MONSYM.MAC.261, 25-Sep-84 15:53:45 by PALMIERI +;Add .MORFT to read format type of DECnet source process names +;Chnage defintions of Router types to comform with network management +; UPD ID= 599, SNARK:<6.UTILITIES>MONSYM.MAC.260, 25-Sep-84 13:25:24 by GRANT +;Add .DGxxx for DIAG% READ-COUNTERS function for the CI +; UPD ID= 598, SNARK:<6.UTILITIES>MONSYM.MAC.259, 25-Sep-84 10:50:28 by EVANS +;TCO 6.2222 - Add support for VT200 terminals. +; UPD ID= 596, SNARK:<6.UTILITIES>MONSYM.MAC.258, 17-Sep-84 16:08:26 by PURRETTA +;Update copyright notice. +; UPD ID= 584, SNARK:<6.UTILITIES>MONSYM.MAC.257, 17-Aug-84 20:36:02 by GROSSMAN +;TCO 6.1.1101 - Add NI% JSYS +; UPD ID= 579, SNARK:<6.UTILITIES>MONSYM.MAC.256, 10-Aug-84 17:12:33 by CDUNN +;Add function .SSRPS (Return path status) to SCS% definitions +; UPD ID= 575, SNARK:<6.UTILITIES>MONSYM.MAC.255, 7-Aug-84 16:12:28 by CDUNN +;Add SCSIBN to list of error codes +; UPD ID= 573, SNARK:<6.UTILITIES>MONSYM.MAC.254, 31-Jul-84 10:24:35 by PAETZOLD +;TCO 6.1.1010 - New error codes for IPNIDV and friends. +; UPD ID= 572, SNARK:<6.UTILITIES>MONSYM.MAC.253, 30-Jul-84 17:12:56 by TBOYLE +;Make SPLFK% symbols all global. +; UPD ID= 571, SNARK:<6.UTILITIES>MONSYM.MAC.252, 30-Jul-84 15:05:31 by MCCOLLUM +; Fix unbalanced paren in CIUNOP error definition. +; UPD ID= 556, SNARK:<6.UTILITIES>MONSYM.MAC.251, 2-Jul-84 07:23:38 by GRANT +;Remove VC.CIP, it's not going to be used afterall +; UPD ID= 555, SNARK:<6.UTILITIES>MONSYM.MAC.250, 20-Jun-84 16:20:41 by TBOYLE +;Make all CNFIG% symbols global +; UPD ID= 553, SNARK:<6.UTILITIES>MONSYM.MAC.249, 19-Jun-84 15:16:19 by GUNN +;~6.0 Add .RCADR function to LLMOP%. +; UPD ID= 552, SNARK:<6.UTILITIES>MONSYM.MAC.248, 19-Jun-84 14:20:32 by MCLEAN +;CHANGE CODES FOR DON'T CARE DISKS +; UPD ID= 550, SNARK:<6.UTILITIES>MONSYM.MAC.247, 15-Jun-84 23:43:22 by MCLEAN +;ADD CODES FOR DON'T CARE DISKS +; UPD ID= 548, SNARK:<6.UTILITIES>MONSYM.MAC.246, 11-Jun-84 09:27:19 by HAUDEL +;CHANGE ERROR STRING FOR DIAG30 . +; UPD ID= 546, SNARK:<6.UTILITIES>MONSYM.MAC.245, 7-Jun-84 21:14:26 by MCLEAN +;ADD NEW DSKOP ERROR CODES +; UPD ID= 544, SNARK:<6.UTILITIES>MONSYM.MAC.244, 6-Jun-84 14:32:24 by GLINDELL +;~6.0 Add .NDINT, .NDNNN and .NDNTA to NODE% jsys +; UPD ID= 543, SNARK:<6.UTILITIES>MONSYM.MAC.243, 4-Jun-84 10:32:31 by HAUDEL +;Add SQ%CVD and SQ%WRT +; UPD ID= 542, SNARK:<6.UTILITIES>MONSYM.MAC.242, 3-Jun-84 15:56:34 by PAETZOLD +;Add .HSVMS and .HSTAC +; UPD ID= 540, SNARK:<6.UTILITIES>MONSYM.MAC.241, 30-May-84 16:56:28 by GLINDELL +;~6.0 Add .NDBSZ to NODE% jsys +; UPD ID= 538, SNARK:<6.UTILITIES>MONSYM.MAC.240, 30-May-84 14:30:07 by PAETZOLD +;Correct the BBN TCP JSYS flags once and for all. +; UPD ID= 537, SNARK:<6.UTILITIES>MONSYM.MAC.239, 30-May-84 14:10:42 by TBOYLE +;Add .MSTSP true sectors per page for MSTR drive status call. +; UPD ID= 536, SNARK:<6.UTILITIES>MONSYM.MAC.237, 25-May-84 13:04:38 by MCLEAN +;ADD DOP%PS +; UPD ID= 534, SNARK:<6.UTILITIES>MONSYM.MAC.236, 22-May-84 13:47:32 by GUNN +;~6.0 Make LLMOP function codes be decimal radix. +; UPD ID= 532, SNARK:<6.UTILITIES>MONSYM.MAC.235, 18-May-84 07:27:01 by MCINTEE +;~6.0 Add definitions CTERM - .MOTXT & .MOCTM & RD%CON +; UPD ID= 530, SNARK:<6.UTILITIES>MONSYM.MAC.234, 11-May-84 09:50:45 by GUNN +;~6.0 Add LM%CCF to get both LM%CMN and LM%CBF. +; UPD ID= 529, SNARK:<6.UTILITIES>MONSYM.MAC.233, 9-May-84 16:52:35 by GUNN +;~6.0 Add LM%CMN for ASCII Console Command and Poll. +; UPD ID= 528, SNARK:<6.UTILITIES>MONSYM.MAC.232, 8-May-84 15:19:20 by GUNN +;~6.0 Change order of .LMCIF argument word to conform to architecture +; and make it easier to place in BOOT message using DNP2BY. +; UPD ID= 527, SNARK:<6.UTILITIES>MONSYM.MAC.231, 8-May-84 15:02:13 by GLINDELL +;~6.0 Add new NODE% jsys function code .NDSDP +; UPD ID= 526, SNARK:<6.UTILITIES>MONSYM.MAC.230, 8-May-84 14:16:26 by GLINDELL +;~6.0 Add error code NODX16 +; UPD ID= 522, SNARK:<6.UTILITIES>MONSYM.MAC.229, 25-Apr-84 13:05:36 by LOMARTIRE +;Add error code SCSTBF +; UPD ID= 521, SNARK:<6.UTILITIES>MONSYM.MAC.228, 25-Apr-84 10:45:03 by HAUDEL +;Fix typo in previous edit. +; UPD ID= 520, SNARK:<6.UTILITIES>MONSYM.MAC.227, 23-Apr-84 08:55:58 by HAUDEL +;Add error codes DIAG22 through DIAG30. +; UPD ID= 518, SNARK:<6.UTILITIES>MONSYM.MAC.226, 17-Apr-84 10:34:46 by GROSSMAN +;TCO 6.2035 - Add new SMON% function .SFSEA to set Ethernet address. +; UPD ID= 514, SNARK:<6.UTILITIES>MONSYM.MAC.225, 30-Mar-84 13:42:42 by CDUNN +;Fix missed referance to SBI. Change to node number. Node code change, only +;change to comments and text of error string for SCSISB. +; UPD ID= 511, SNARK:<6.UTILITIES>MONSYM.MAC.224, 28-Mar-84 01:09:26 by CDUNN +;More TCO 6.1127 - Update SCS% symbols and pictures to reflect reality. +; UPD ID= 507, SNARK:<6.UTILITIES>MONSYM.MAC.223, 20-Mar-84 10:16:23 by GUNN +;Add .LMCCL and .LMCCP for LLMOP% .RCSND function. +; UPD ID= 506, SNARK:<6.UTILITIES>MONSYM.MAC.222, 20-Mar-84 08:30:15 by GRANT +;Remove SF%KLP +; UPD ID= 505, SNARK:<6.UTILITIES>MONSYM.MAC.221, 19-Mar-84 16:56:23 by MOSER +;TCO 6.2003 - ADD .JILJI +; UPD ID= 504, SNARK:<6.UTILITIES>MONSYM.MAC.219, 19-Mar-84 14:42:02 by HAUDEL +;Change .DGPVL and .DGPND definitions for KLIPA'S counter function +; UPD ID= 503, SNARK:<6.UTILITIES>MONSYM.MAC.218, 17-Mar-84 13:00:32 by PAETZOLD +;More TCO 6.1733 - Add .IPRIB, .IPSIB, and .HSFUZ. +; UPD ID= 500, SNARK:<6.UTILITIES>MONSYM.MAC.217, 11-Mar-84 10:45:34 by PAETZOLD +;More TCO 6.1733 - Add HS%GAT, HS%NET, and .TCSFN. +; UPD ID= 496, SNARK:<6.UTILITIES>MONSYM.MAC.216, 5-Mar-84 15:50:50 by PAETZOLD +;More TCO 6.1733 - Make the DEFSTRs only be defined in the DEFIP. macro. +; UPD ID= 495, SNARK:<6.UTILITIES>MONSYM.MAC.215, 5-Mar-84 13:52:52 by TBOYLE +;SPLFK - Add new support symbols. +; UPD ID= 494, SNARK:<6.UTILITIES>MONSYM.MAC.214, 5-Mar-84 13:24:59 by PAETZOLD +;TCO 6.1733 - Add IP header structure definitions +; UPD ID= 493, SNARK:<6.UTILITIES>MONSYM.MAC.213, 5-Mar-84 13:21:51 by MOSER +;TCO 6.1984 - ADD .MOIRB FUNCTION CODE +; UPD ID= 491, SNARK:<6.UTILITIES>MONSYM.MAC.211, 28-Feb-84 13:43:28 by CJOHNSON +;TCO 6.1921 - Make IFIXX3 message include 2**35 as overflow +; UPD ID= 490, SNARK:<6.UTILITIES>MONSYM.MAC.210, 27-Feb-84 09:58:00 by PRATT +;TCO 6.1966 - Add IP%MON in .IPCFL word +; UPD ID= 488, SNARK:<6.UTILITIES>MONSYM.MAC.209, 25-Feb-84 06:03:01 by GRANT +;Add .DGDIP and .DGDMC +; UPD ID= 487, SNARK:<6.UTILITIES>MONSYM.MAC.208, 21-Feb-84 13:31:28 by MCCOLLUM +;TCO 6.1972 - Add MTNX01 error code for MTALN% JSYS +; UPD ID= 483, SNARK:<6.UTILITIES>MONSYM.MAC.207, 15-Feb-84 14:57:26 by GRANT +;Change .DGPOL to .DGUCD +;Add .DGRIP, .DGRLC, KLPX14, and KLPX15. +; UPD ID= 478, SNARK:<6.UTILITIES>MONSYM.MAC.206, 10-Feb-84 14:01:51 by GUNN +;~6.0 - Change order of LLMOP% arguments .LMPWD/.LMCIF for functions +; .RCRBT & .RCRSV +; Change definition of field LM%ICH for LLMOP% +; UPD ID= 477, SNARK:<6.UTILITIES>MONSYM.MAC.205, 8-Feb-84 14:43:28 by TBOYLE +;Change CF%CIN from using bits 0-17 to using 14-17 +; UPD ID= 462, SNARK:<6.UTILITIES>MONSYM.MAC.204, 1-Feb-84 10:59:03 by PRATT +;TCO 6.1956 - Add .SFXEC and XC%FST for EXEC flags +; UPD ID= 461, SNARK:<6.UTILITIES>MONSYM.MAC.203, 31-Jan-84 15:09:41 by MCCOLLUM +;TCO 6.1961 - PURGE symbols .CHLFD, .CHCRT, .CHFFD. They belong in MACSYM. +; UPD ID= 460, SNARK:<6.UTILITIES>MONSYM.MAC.202, 30-Jan-84 11:08:54 by MCINTEE +;TCO 6.1959 ADD .MOTCE, .MORTC, MTOX21, .TITCE +; UPD ID= 455, SNARK:<6.UTILITIES>MONSYM.MAC.201, 24-Jan-84 19:49:09 by MCLEAN +;ADD KLPX13 +; UPD ID= 454, SNARK:<6.UTILITIES>MONSYM.MAC.200, 24-Jan-84 15:44:47 by HAUDEL +;TCO 6.1546 - ADD PERFORMANCE COUNTER ERROR MESSAGE FOR THE KLIPA +; UPD ID= 452, SNARK:<6.UTILITIES>MONSYM.MAC.199, 24-Jan-84 13:48:44 by MCCOLLUM +;TCO 6.1950 - Add SM%RWX definition +; UPD ID= 450, SNARK:<6.UTILITIES>MONSYM.MAC.198, 23-Jan-84 18:27:29 by MOSER +;More inquisition fixes. DO NOT CHANGE ERROR CODES EVER!!! +; UPD ID= 448, SNARK:<6.UTILITIES>MONSYM.MAC.197, 23-Jan-84 17:22:14 by PAETZOLD +;Fix up TCP error code definitions. We need a Spanish inquisition. +; UPD ID= 447, SNARK:<6.UTILITIES>MONSYM.MAC.196, 23-Jan-84 16:36:57 by MOSER +;MORE 6.1562 - Change text of MSCPX2 and MSCPX3 errors +; UPD ID= 444, SNARK:<6.UTILITIES>MONSYM.MAC.195, 23-Jan-84 16:08:04 by PRATT +;TCO 6.1947 - Remove the .QJxxx symbols for QUEUE%, make them local to JSYSA. +; UPD ID= 443, SNARK:<6.UTILITIES>MONSYM.MAC.194, 20-Jan-84 16:13:06 by MOSER +;TCO 6.1944 ADD .MSDSH AND .MSDSN +; UPD ID= 441, SNARK:<6.UTILITIES>MONSYM.MAC.193, 20-Jan-84 15:14:11 by MOSER +;MORE 6.1562 - UPDATE SMON% STUFF FOR NEW FORMAT OF .SFMSD. DUMP .SFSMS +; UPD ID= 440, SNARK:<6.UTILITIES>MONSYM.MAC.192, 20-Jan-84 11:00:48 by MCINTEE +;Add RD%NED +; UPD ID= 439, SNARK:<6.UTILITIES>MONSYM.MAC.191, 19-Jan-84 19:23:30 by TBOYLE +;Add CF%MCA, CF%CH1, CF%CH2, CF%CI, remove CF%CHO +; UPD ID= 438, SNARK:<6.UTILITIES>MONSYM.MAC.190, 18-Jan-84 17:02:48 by GLINDELL +;~6.0 Add error code NTMX2 +; UPD ID= 432, SNARK:<6.UTILITIES>MONSYM.MAC.189, 15-Jan-84 14:06:19 by GLINDELL +;~6.0 Add .NTSLM function to NTMAN% +; UPD ID= 430, SNARK:<6.UTILITIES>MONSYM.MAC.188, 13-Jan-84 16:00:02 by PAETZOLD +;More TCO 6.1927 - Add XPEK03 and XPEK04 +; UPD ID= 429, SNARK:<6.UTILITIES>MONSYM.MAC.187, 12-Jan-84 17:21:15 by GRANT +;Add KLPX12 - virtual circuit not closed +; UPD ID= 428, SNARK:<6.UTILITIES>MONSYM.MAC.186, 12-Jan-84 17:03:20 by GRANT +;Add new virtual circuit state VC.CIP - close in progress +; UPD ID= 427, SNARK:<6.UTILITIES>MONSYM.MAC.185, 12-Jan-84 15:14:43 by PAETZOLD +;More TCO 6.1927 - Add XPEK01 and XPEK02 +; UPD ID= 426, SNARK:<6.UTILITIES>MONSYM.MAC.184, 10-Jan-84 14:40:54 by HALL +;Change message for SCSNBA to be specific +; UPD ID= 425, SNARK:<6.UTILITIES>MONSYM.MAC.183, 10-Jan-84 14:23:26 by TBOYLE +;UN-NIM CNFIG% JSYS +; UPD ID= 424, SNARK:<6.UTILITIES>MONSYM.MAC.182, 10-Jan-84 14:20:24 by TBOYLE +; UPD ID= 420, SNARK:<6.UTILITIES>MONSYM.MAC.181, 7-Jan-84 11:16:16 by PAETZOLD +;TCO 6.1927 - Add .XPJSB and .XPPSB stuff +; UPD ID= 419, SNARK:<6.UTILITIES>MONSYM.MAC.180, 6-Jan-84 13:23:36 by TBOYLE +;correct .CFCND arguments. +; UPD ID= 416, SNARK:<6.UTILITIES>MONSYM.MAC.179, 21-Dec-83 11:21:18 by PURRETTA +; UPD ID= 415, SNARK:<6.UTILITIES>MONSYM.MAC.178, 21-Dec-83 09:34:34 by PURRETTA +;"NIM" the CNFIG% JSYS until implemented. +; UPD ID= 414, SNARK:<6.UTILITIES>MONSYM.MAC.177, 20-Dec-83 17:20:09 by PRATT +;TCO 6.1796 - Add TTMSX2, the refused message or link error +; UPD ID= 413, SNARK:<6.UTILITIES>MONSYM.MAC.176, 19-Dec-83 17:04:17 by TBOYLE +;More CNFIG support. CFGxxx error codes. and .CFGKL. +; UPD ID= 412, SNARK:<6.UTILITIES>MONSYM.MAC.175, 19-Dec-83 14:03:54 by PRATT +;TCO 6.1916 - Define "display" argument types to QUEUE% +; UPD ID= 410, SNARK:<6.UTILITIES>MONSYM.MAC.174, 19-Dec-83 13:20:09 by PRATT +;TCO 6.1915 - Define .IPCCG, "IPCF packet came from QUEUE% jsys" +; UPD ID= 408, SNARK:<6.UTILITIES>MONSYM.MAC.173, 19-Dec-83 07:44:20 by GRANT +;Add KLPX11 +; UPD ID= 407, SNARK:<6.UTILITIES>MONSYM.MAC.172, 16-Dec-83 15:41:14 by TBOYLE +;ADD SYMBOLS TO SUPPORT CNFIG% JSYS +; UPD ID= 406, SNARK:<6.UTILITIES>MONSYM.MAC.171, 14-Dec-83 17:15:09 by MILLER +;TCO 6.1452. Add MSTX44 error +; UPD ID= 405, SNARK:<6.UTILITIES>MONSYM.MAC.170, 14-Dec-83 15:46:45 by PAETZOLD +;Add TCPX42 and TCPX43 +; UPD ID= 404, SNARK:<6.UTILITIES>MONSYM.MAC.169, 14-Dec-83 14:06:34 by GRANT +;Create error codes KLPX1 - KLPX10 +; UPD ID= 401, SNARK:<6.UTILITIES>MONSYM.MAC.168, 14-Dec-83 06:08:17 by GRANT +;Move VC.xxx here from SCAPAR +; UPD ID= 399, SNARK:<6.UTILITIES>MONSYM.MAC.167, 13-Dec-83 13:12:47 by CDUNN +;More TCO 6.1127 - Fix SCS% DMA offsets... +; UPD ID= 391, SNARK:<6.UTILITIES>MONSYM.MAC.166, 5-Dec-83 19:37:03 by CDUNN +;More TCO 6.1127 - Fix random SCS% symbols to match the functional spec +; UPD ID= 382, SNARK:<6.UTILITIES>MONSYM.MAC.165, 28-Nov-83 15:57:51 by TBOYLE +;TCO 6.1876 - DEFS for MSTR: .MSRLS and .MSRSS, bump .MSRLN by 2. +; UPD ID= 381, SNARK:<6.UTILITIES>MONSYM.MAC.163, 28-Nov-83 15:06:51 by PRATT +;TCO 6.1796 - Defs for MTOPR: .MORTF, .MOSTF, MO%NUM, MO%NTM +; UPD ID= 380, SNARK:<6.UTILITIES>MONSYM.MAC.162, 28-Nov-83 11:40:47 by GLINDELL +;More TCO 6.1.1004 - Flag definitions ~6.0 +; UPD ID= 379, SNARK:<6.UTILITIES>MONSYM.MAC.161, 28-Nov-83 11:34:11 by GLINDELL +;TCO 6.1.1004 - Add definitions for set/read link parameters and quotas +; UPD ID= 378, SNARK:<6.UTILITIES>MONSYM.MAC.160, 28-Nov-83 10:36:06 by GLINDELL +;TCO 6.1882 - Add D1%MTO bit "allow MTOPR for this device without jfn open" +; UPD ID= 374, SNARK:<6.UTILITIES>MONSYM.MAC.159, 17-Nov-83 16:36:14 by CDUNN +;More TCO 6.1127 - Fix SCS% JSYS argument block to reflect reality and add +;a new error code or two. +; UPD ID= 370, SNARK:<6.UTILITIES>MONSYM.MAC.158, 14-Nov-83 23:58:36 by PAETZOLD +;TCO 6.1864 - Add .GTHLN and .GTHNT functions to GTHST% +; UPD ID= 367, SNARK:<6.UTILITIES>MONSYM.MAC.157, 9-Nov-83 06:09:17 by GRANT +;Add SF%KLP - KLIPA initialization completed +; UPD ID= 366, SNARK:<6.UTILITIES>MONSYM.MAC.156, 8-Nov-83 09:00:16 by MCINTEE +;~6.0 - Remove NSP jsys. +; UPD ID= 365, SNARK:<6.UTILITIES>MONSYM.MAC.155, 1-Nov-83 11:57:22 by PAETZOLD +;Add DEFJS's for MONRD and DBGRD so that they stay reserved +; UPD ID= 364, SNARK:<6.UTILITIES>MONSYM.MAC.153, 31-Oct-83 16:57:01 by CJOHNSON +;TCO 6.1845 - Add new CHFDB error code CFDBX5 "No FDB for non-directory devices" +; UPD ID= 361, SNARK:<6.UTILITIES>MONSYM.MAC.152, 22-Oct-83 08:54:12 by PAETZOLD +;TCO 6.1836 - Add .IPGWY +; UPD ID= 360, SNARK:<6.UTILITIES>MONSYM.MAC.151, 12-Oct-83 08:15:40 by MILLER +;TCO 6.1826. Add IPCF36 +; UPD ID= 359, SNARK:<6.UTILITIES>MONSYM.MAC.150, 10-Oct-83 17:30:40 by MOSER +;TCO 6.1746 - ADD LK%EPN +; UPD ID= 355, SNARK:<6.UTILITIES>MONSYM.MAC.149, 3-Oct-83 12:05:13 by MURPHY +;Get rid of SK%RQM, not used. +; UPD ID= 348, SNARK:<6.UTILITIES>MONSYM.MAC.148, 7-Sep-83 14:11:19 by PURRETTA +;Remove unwanted widgets in comments. +; UPD ID= 347, SNARK:<6.UTILITIES>MONSYM.MAC.147, 24-Aug-83 18:27:27 by PRATT +;TCO 6.1779 - Add TB%ABR for TBADD and TBDEL +; UPD ID= 346, SNARK:<6.UTILITIES>MONSYM.MAC.146, 24-Aug-83 12:53:48 by PAETZOLD +;TCO 6.1761 - Add VT131 support +; UPD ID= 329, SNARK:<6.UTILITIES>MONSYM.MAC.145, 1-Aug-83 09:22:32 by HAUDEL +;TCO 6.1744 - Add to .MOINF function of MTORP jsys +; UPD ID= 325, SNARK:<6.UTILITIES>MONSYM.MAC.144, 25-Jul-83 17:44:26 by MCCOLLUM +;TCO 6.1743 - Add XPEEK% JSYS definitions +; UPD ID= 324, SNARK:<6.UTILITIES>MONSYM.MAC.143, 22-Jul-83 11:45:59 by MCINTEE +;TCO 6.1030 - Add GJFX55 error code +; UPD ID= 323, SNARK:<6.UTILITIES>MONSYM.MAC.142, 22-Jul-83 09:55:19 by MURPHY +;TCO 6.1719 - Customer control of hangup action. +;TCO 6.1568 - Customer control of time after carrier off. +; UPD ID= 322, SNARK:<6.UTILITIES>MONSYM.MAC.141, 21-Jul-83 23:58:50 by PAETZOLD +;TCO 6.1733 - No more NCP +; UPD ID= 321, SNARK:<6.UTILITIES>MONSYM.MAC.140, 20-Jul-83 16:19:06 by GUNN +;TCO 6.1.1003 - Add DNA Phase IV Ethernet LLMOP Support ~6.0 +;~6.0 Add LLMX05 error code - LLMOP% Invalid KLNI channel specified +;~6.0 Add LLMX04 error code - LLMOP% Nonexistent Request Number +;~6.0 Add LLMX03 error code - LLMOP% Invalid Byte Pointer +;~6.0 Add LLMX02 error code - LLMOP% State is OFF +;~6.0 Add LLMX01 error code - LLMOP% Transmit Datagram Failed +;~6.0 Add LLMOP% JSYS +; UPD ID= 320, SNARK:<6.UTILITIES>MONSYM.MAC.139, 18-Jul-83 16:13:12 by JCAMPBELL +;TCO 6.1728 - Add FB%FOR (FORTRAN data file) to .FBCTL in FDB. +; UPD ID= 314, SNARK:<6.UTILITIES>MONSYM.MAC.138, 7-Jul-83 15:16:56 by MURPHY +;TCO 6.1716 - ADD XJRST. +; UPD ID= 313, SNARK:<6.UTILITIES>MONSYM.MAC.137, 7-Jul-83 15:04:24 by CDUNN +;More TCO 6.1127 - Fix .SSGDE block to allow specification of fork or +;connection when retriving DMA events. Also add new SCS% error codes +; UPD ID= 307, SNARK:<6.UTILITIES>MONSYM.MAC.136, 5-Jul-83 13:36:25 by MURPHY +;.EDSEC added to .JBEDV +; UPD ID= 296, SNARK:<6.UTILITIES>MONSYM.MAC.135, 20-Jun-83 13:09:44 by MOSER +;TCO 6.1562 - .ERR for SMON errors +; UPD ID= 290, SNARK:<6.UTILITIES>MONSYM.MAC.134, 8-Jun-83 10:59:13 by CHALL +;TCO 6. XXX Add .RFSIG to PSW and .SIGIO to I/O identifiers +; UPD ID= 287, SNARK:<6.UTILITIES>MONSYM.MAC.133, 20-May-83 14:35:15 by MCINTEE +;Add more ~6.0 comments +; UPD ID= 285, SNARK:<6.UTILITIES>MONSYM.MAC.132, 20-May-83 13:49:47 by CDUNN +;More TCO 6.1127 - Add .ERR error definitions for internal SCA error codes +; UPD ID= 283, SNARK:<6.UTILITIES>MONSYM.MAC.131, 17-May-83 13:16:14 by CDUNN +;More TCO 6.1127 - Make SCS% message and datagram send definitions the same +; UPD ID= 281, SNARK:<6.UTILITIES>MONSYM.MAC.130, 9-May-83 18:41:59 by WEETON +;tco 6.1611 - Add two new symbol "DA%AIN" and "MSTX43" +; UPD ID= 280, SNARK:<6.UTILITIES>MONSYM.MAC.129, 9-May-83 08:17:20 by HALL +;TCO 6.1636 - Move APCON JSYS to 625 +; UPD ID= 275, SNARK:<6.UTILITIES>MONSYM.MAC.128, 3-May-83 13:32:31 by COBB +;TCO 6.1637 - SMON/TMON function for SPEAR event counts +; UPD ID= 274, SNARK:<6.UTILITIES>MONSYM.MAC.127, 2-May-83 15:41:37 by LEACHE +; UPD ID= 273, SNARK:<6.UTILITIES>MONSYM.MAC.126, 29-Apr-83 14:33:41 by HALL +;TCO 6.1636 - Reserve JSYS number for FPS array processor +; UPD ID= 272, SNARK:<6.UTILITIES>MONSYM.MAC.125, 27-Apr-83 13:49:57 by MOSER +;TCO 6.1562 - ADD SMON FUNCTIONS .SFSMS AND .SFMSD +; UPD ID= 270, SNARK:<6.UTILITIES>MONSYM.MAC.124, 26-Apr-83 13:15:31 by CDUNN +;More TCO 6.1127 - Add .SQLRP to receive datagram and message for SCS% +; UPD ID= 269, SNARK:<6.UTILITIES>MONSYM.MAC.123, 21-Apr-83 07:42:08 by WACHS +;TCO 6.1620 - define MS%2PT +; UPD ID= 268, SNARK:<6.UTILITIES>MONSYM.MAC.122, 20-Apr-83 15:22:34 by PAETZOLD +;TCO 6.1619 - Add H19 +; UPD ID= 265, SNARK:<6.UTILITIES>MONSYM.MAC.121, 20-Apr-83 04:00:15 by WACHS +;More 6.1127 - DIAG symbols +; UPD ID= 264, SNARK:<6.UTILITIES>MONSYM.MAC.120, 18-Apr-83 05:23:02 by GRANT +;TCO 6.1127 - fix .SQLPN, add .LBEVT and SQ%SBL +; UPD ID= 262, SNARK:<6.UTILITIES>MONSYM.MAC.119, 16-Apr-83 19:17:55 by PAETZOLD +;TCO 6.1557 - TCP Merge +; UPD ID= 260, SNARK:<6.UTILITIES>MONSYM.MAC.118, 13-Apr-83 22:04:27 by CDUNN +;More TCO 6.1127 - Add symbols for the length of each SCS% block. Do general +;cleanup of SCS% blocks. +; UPD ID= 254, SNARK:<6.UTILITIES>MONSYM.MAC.117, 12-Apr-83 07:43:58 by MCINTEE +;More 6.0 comments +; UPD ID= 253, SNARK:<6.UTILITIES>MONSYM.MAC.116, 12-Apr-83 01:56:36 by CDUNN +;More TCO 6.1127 - Remove dependancy on SCAPAR, also remove all referances +;to FTCI and FTKLIPA +; UPD ID= 252, SNARK:<6.UTILITIES>MONSYM.MAC.115, 11-Apr-83 00:12:43 by CDUNN +;More TCO 6.1127 - Update DMA functions to conform to new scheme. +; UPD ID= 251, SNARK:<6.UTILITIES>MONSYM.MAC.114, 8-Apr-83 05:15:49 by WACHS +;More TCO 6.1127 - Add DIAG error codes +; UPD ID= 250, SNARK:<6.UTILITIES>MONSYM.MAC.113, 8-Apr-83 05:06:35 by CDUNN +;More TCO 6.1127 - Update .SSMAP to conform to the new map scheme +; UPD ID= 249, SNARK:<6.UTILITIES>MONSYM.MAC.112, 8-Apr-83 04:48:29 by CDUNN +;More TCO 6.1127 - Two more error codes for SCS% JSYS +; UPD ID= 248, SNARK:<6.UTILITIES>MONSYM.MAC.111, 6-Apr-83 14:35:51 by COBB +;TCO 6.1594 - Add new def's for QUEUE% debugging features. +; UPD ID= 241, SNARK:<6.UTILITIES>MONSYM.MAC.107, 25-Mar-83 05:12:54 by WACHS +;TCO 6.1569 Add CI DIAG functions +; UPD ID= 247, SNARK:<6.UTILITIES>MONSYM.MAC.110, 6-Apr-83 07:21:30 by FLEMMING +; UPD ID= 245, SNARK:<6.UTILITIES>MONSYM.MAC.109, 4-Apr-83 07:09:07 by WACHS +;TCO 6.1569 Add CI DIAG functions +; UPD ID= 244, SNARK:<6.UTILITIES>MONSYM.MAC.108, 2-Apr-83 22:49:46 by LEACHE +;TC0 6.1247 Add more password encryption definitions +; UPD ID= 238, SNARK:<6.UTILITIES>MONSYM.MAC.106, 22-Mar-83 08:02:52 by WACHS +;Add DIAG15, DIAG16 +; UPD ID= 230, SNARK:<6.UTILITIES>MONSYM.MAC.104, 21-Mar-83 13:45:27 by CHALL +;Change messages for NODX13, NODX14 to be more general +; UPD ID= 229, SNARK:<6.UTILITIES>MONSYM.MAC.104, 16-Mar-83 19:19:57 by GUNN +;Reserve JSYS 624 for future use. +; UPD ID= 227, SNARK:<6.UTILITIES>MONSYM.MAC.103, 15-Mar-83 17:34:52 by MILLER +;TCO 6.1546 once again +; UPD ID= 226, SNARK:<6.UTILITIES>MONSYM.MAC.102, 15-Mar-83 16:55:11 by MILLER +;TCO 6.1546. Add DIAG% function for reading SYSERR counter +; UPD ID= 220, SNARK:<6.UTILITIES>MONSYM.MAC.101, 8-Mar-83 21:59:27 by CDUNN +;More TCO 6.1127 - Fix .SQTXT to point to start of user data, not start of +;SCA header +; UPD ID= 219, SNARK:<6.UTILITIES>MONSYM.MAC.100, 7-Mar-83 21:36:12 by CDUNN +;More TCO 6.1127 - Change default to include CI symbols +; UPD ID= 218, SNARK:<6.UTILITIES>MONSYM.MAC.99, 4-Mar-83 09:29:47 by CDUNN +;More TCO 6.1127 - Additional symbol support for SCS%. Also another error +;message +; UPD ID= 217, SNARK:<6.UTILITIES>MONSYM.MAC.98, 3-Mar-83 09:16:06 by CHALL +;Add .NDRDB and associated data def's for NODE JSYS +;Add NODX12, NODX13, NODX14, NODX15 +; UPD ID= 214, SNARK:<6.UTILITIES>MONSYM.MAC.97, 25-Feb-83 12:06:09 by MURPHY +;More 6.1514 - ERJMPR and ERCALR which always put error code in AC1. +; UPD ID= 213, SNARK:<6.UTILITIES>MONSYM.MAC.96, 25-Feb-83 00:04:38 by MURPHY +;TCO 6.1514 - ERJMPS and ERCALS which don't store error code in AC. +; UPD ID= 212, SNARK:<6.UTILITIES>MONSYM.MAC.95, 22-Feb-83 20:06:19 by MILLER +;Once more... +; UPD ID= 211, SNARK:<6.UTILITIES>MONSYM.MAC.94, 22-Feb-83 19:49:38 by MILLER +;TCO 6.1520. Add SMON/TMON bit for disk preallocation +; UPD ID= 209, SNARK:<6.UTILITIES>MONSYM.MAC.93, 16-Feb-83 09:38:47 by MCINTEE +;ADD ERROR CODES FOR SCJSYS +; UPD ID= 208, SNARK:<6.UTILITIES>MONSYM.MAC.92, 11-Feb-83 03:48:16 by WACHS +;Add definition for TA78 +; UPD ID= 207, SNARK:<6.UTILITIES>MONSYM.MAC.91, 9-Feb-83 14:08:07 by CHALL +;ADD .NDCIN AND ASSOCIATED NB BEGSTR FOR NODE JSYS +;ADD NODX07, NODX10, NODX11 +; UPD ID= 205, SNARK:<6.UTILITIES>MONSYM.MAC.90, 9-Feb-83 13:46:04 by WEETON +; UPD ID= 202, SNARK:<6.UTILITIES>MONSYM.MAC.89, 4-Feb-83 04:56:20 by WACHS +;TCO 6.1355 - add defs for RA80, RA81, RA60 disks +; UPD ID= 201, SNARK:<6.UTILITIES>MONSYM.MAC.88, 2-Feb-83 13:55:09 by GRANT +;TCO 6.1484 - add function .NTPSI to NTMAN% +; UPD ID= 194, SNARK:<6.UTILITIES>MONSYM.MAC.87, 20-Jan-83 07:43:56 by GRANT +;TCO 6.1473 - update DECnet disconnect codes and error messages +; UPD ID= 189, SNARK:<6.UTILITIES>MONSYM.MAC.86, 14-Jan-83 03:12:50 by CDUNN +;Fix problem with edit 187. Put referance to CI only symbol under feature test. +; UPD ID= 188, SNARK:<6.UTILITIES>MONSYM.MAC.85, 14-Jan-83 03:06:26 by CDUNN +;More TCO 6.1126 Add yet another error code for the SCS% JSYS +; UPD ID= 187, SNARK:<6.UTILITIES>MONSYM.MAC.84, 12-Jan-83 22:06:00 by CDUNN +;More TCO 6.1127 and 6.1452 Fix forgotten bracket on new MSTR errors, also +;add more errors for SCS%. +; UPD ID= 186, SNARK:<6.UTILITIES>MONSYM.MAC.82, 12-Jan-83 13:36:06 by MILLER +;MORE TCO 6.1452. Fix names of errors +; UPD ID= 185, SNARK:<6.UTILITIES>MONSYM.MAC.81, 12-Jan-83 12:42:24 by CDUNN +;More TCO 6.1127 Fix some block definitions and add more error codes. +; UPD ID= 184, SNARK:<6.UTILITIES>MONSYM.MAC.80, 11-Jan-83 19:35:23 by MILLER +;TCO 6.1452. Add defs and error messages for .MSCSM function of MSTR +; UPD ID= 181, SNARK:<6.UTILITIES>MONSYM.MAC.79, 6-Jan-83 13:25:19 by MCINTEE +;TCO 6.1441 - Add .MONVR +; UPD ID= 178, SNARK:<6.UTILITIES>MONSYM.MAC.78, 3-Jan-83 16:15:02 by LOMARTIRE +;TCO 6.1433 - Add code for ^ESET [NO] LOGINS-ALLOWED DECNET-LINES command +; UPD ID= 177, SNARK:<6.UTILITIES>MONSYM.MAC.77, 29-Dec-82 04:01:06 by WACHS +;TCO 6.1355 Add error code for CI DIAG JSYS +; UPD ID= 176, SNARK:<6.UTILITIES>MONSYM.MAC.76, 28-Dec-82 23:46:46 by CDUNN +;More TCO 6.1127 Fix JSYS blocks to include the remote SBI as needed. +; UPD ID= 173, SNARK:<6.UTILITIES>MONSYM.MAC.75, 15-Dec-82 14:55:44 by CDUNN +;Changes for the SCS% JSYS. Update arg blocks and define forgotten symbols. +; UPD ID= 155, SNARK:<6.UTILITIES>MONSYM.MAC.74, 12-Oct-82 20:19:39 by CDUNN +;Add more error codes for the SCS% JSYS +; UPD ID= 153, SNARK:<6.UTILITIES>MONSYM.MAC.73, 6-Oct-82 00:57:14 by CDUNN +;Fix some block definitions for the SCS% JSYS +; UPD ID= 152, SNARK:<6.UTILITIES>MONSYM.MAC.72, 3-Oct-82 18:29:35 by CDUNN +;More error codes for the SCS% JSYS +; UPD ID= 151, SNARK:<6.UTILITIES>MONSYM.MAC.71, 2-Oct-82 17:29:44 by CDUNN +;More error codes for the SCS% JSYS +; UPD ID= 148, SNARK:<6.UTILITIES>MONSYM.MAC.70, 30-Sep-82 13:00:51 by CDUNN +;More symbols for the SCS% JSYS +; UPD ID= 145, SNARK:<6.UTILITIES>MONSYM.MAC.69, 28-Sep-82 13:11:46 by MCINTEE +;TCO 6.1056 - TYPO in previous edit +; UPD ID= 144, SNARK:<6.UTILITIES>MONSYM.MAC.68, 28-Sep-82 13:04:29 by MCINTEE +;TCO 6.1056 - Make JS%DEV smaller, to make room for JS%NOD +; UPD ID= 143, SNARK:<6.UTILITIES>MONSYM.MAC.67, 28-Sep-82 09:01:42 by LEACHE +;More TCO 6.1273 Change MS%EXL TO MS%EXC +; UPD ID= 139, SNARK:<6.UTILITIES>MONSYM.MAC.66, 27-Sep-82 09:56:20 by LEACHE +;More TCO 6.1247 - Make AC%PWD 1B3 +; UPD ID= 138, SNARK:<6.UTILITIES>MONSYM.MAC.65, 24-Sep-82 11:32:22 by LEACHE +;More TCO 6.1273 - add MS%CRD, MS%IDX, and MS%EXL +; UPD ID= 137, SNARK:<6.UTILITIES>MONSYM.MAC.64, 23-Sep-82 19:24:50 by PAETZOLD +;TCO 6.1281 - Add OPRFN as an obsolete JSYS so we never use it. +; Update copyright and remove pre release 5 edit history. +; UPD ID= 134, SNARK:<6.UTILITIES>MONSYM.MAC.63, 22-Sep-82 20:44:53 by CDUNN +;More symbols for the SCS% JSYS +; UPD ID= 132, SNARK:<6.UTILITIES>MONSYM.MAC.62, 20-Sep-82 13:14:33 by LEACHE +;More of previous +; UPD ID= 131, SNARK:<6.UTILITIES>MONSYM.MAC.61, 20-Sep-82 10:55:20 by LEACHE +;TCO 6.1273 Add MS%ASG and MS%MXB +; UPD ID= 129, SNARK:<6.UTILITIES>MONSYM.MAC.60, 14-Sep-82 18:15:23 by LEACHE +;TCO 6.1247 add CRDI28 +; UPD ID= 128, SNARK:<6.UTILITIES>MONSYM.MAC.59, 13-Sep-82 19:41:15 by MILLER +;tco 6.1094. Define MS%EXL FOR CFS +; UPD ID= 127, SNARK:<6.UTILITIES>MONSYM.MAC.58, 8-Sep-82 22:36:27 by LEACHE +;TCO 6.1247 Add CRDI26 and CRDI27 +; UPD ID= 126, SNARK:<6.UTILITIES>MONSYM.MAC.57, 3-Sep-82 13:24:15 by LEACHE +;MORE TCO 6.1247 +; UPD ID= 124, SNARK:<6.UTILITIES>MONSYM.MAC.56, 2-Sep-82 20:26:49 by LEACHE +;TCO 6.1247 - Add definitions for password encryption +; UPD ID= 121, SNARK:<6.UTILITIES>MONSYM.MAC.55, 19-Aug-82 17:51:00 by LEACHE +;TCO 6.1232 - ADD TTYX03 +; UPD ID= 119, SNARK:<6.UTILITIES>MONSYM.MAC.54, 19-Aug-82 09:41:46 by MCINTEE +;TCO 6.1030 - Clean up DAP% error strings +; UPD ID= 118, SNARK:<6.UTILITIES>MONSYM.MAC.53, 19-Aug-82 09:35:06 by MCINTEE +;TCO 6.1230 - Add symbols for remote alias support (.CDxxx, CD%xxx, RNxxx) +; UPD ID= 117, SNARK:<6.UTILITIES>MONSYM.MAC.52, 10-Aug-82 09:17:30 by MILLER +;TCO 6.1025 again. Add the JSYS definition +; UPD ID= 108, SNARK:<6.UTILITIES>MONSYM.MAC.51, 2-Aug-82 18:53:09 by MILLER +;TCO 6.1025. Add defs for WSMGR +; UPD ID= 106, SNARK:<6.UTILITIES>MONSYM.MAC.50, 31-Jul-82 12:15:34 by WALLACE +;TCO 6.1105 - Add error code CTSX13 to be used by CTS Libraries +; UPD ID= 105, SNARK:<6.UTILITIES>MONSYM.MAC.49, 31-Jul-82 12:11:12 by CDUNN +;More symbols yet for the SCS% JSYS +; UPD ID= 104, SNARK:<6.UTILITIES>MONSYM.MAC.48, 30-Jul-82 12:19:48 by WALLACE +;TCO 6.1104 and TCO 6.1105 - Add flags for DYNLB%, more offsets for +; terminal data base, and more function codes for CTSOP% +; UPD ID= 103, SNARK:<6.UTILITIES>MONSYM.MAC.47, 30-Jul-82 11:50:10 by CDUNN +;Add more symbols yet for the SCS% JSYS +; UPD ID= 99, SNARK:<6.UTILITIES>MONSYM.MAC.46, 15-Jul-82 13:46:14 by VBROWNELL +; Add more error codes for NODE% +; UPD ID= 96, SNARK:<6.UTILITIES>MONSYM.MAC.45, 15-Jul-82 12:46:53 by CDUNN +;Add symbols to support the SCS% JSYS +; UPD ID= 95, SNARK:<6.UTILITIES>MONSYM.MAC.44, 1-Jul-82 11:20:00 by CHALL +;TCO 6.1182 ADD DEFINITIONS TO SUPPORT DECNET-36 AND THE NSP% JSYS +; UPD ID= 94, SNARK:<6.UTILITIES>MONSYM.MAC.43, 30-Jun-82 16:04:41 by MCINTEE +;TCO 6.1030 - Add the DAP% jsys definition & its error strings +; UPD ID= 88, SNARK:<6.UTILITIES>MONSYM.MAC.42, 16-Jun-82 11:59:22 by MURPHY +;More 6.1126 - Note "$" symbols created by DEFSTR, etc. +; UPD ID= 87, SNARK:<6.UTILITIES>MONSYM.MAC.41, 11-Jun-82 16:39:16 by HALL +;TCO 6.1000 - Support the 2080 +; Add offsets for argument blocks for address break +; UPD ID= 86, SNARK:<6.UTILITIES>MONSYM.MAC.40, 11-Jun-82 09:01:38 by HALL +;TCO 6.1000 - Support the 2080 +; Add more error codes for address break +;TCO 6.1000 - Support the 2080 +; Add data for address break +; UPD ID= 85, SNARK:<6.UTILITIES>MONSYM.MAC.39, 10-Jun-82 07:35:29 by HALL +;TCO 6.1000 - Support the 2080 +; Add bit definition for address break +; UPD ID= 77, SNARK:<6.UTILITIES>MONSYM.MAC.38, 4-Jun-82 13:41:51 by HALL +;More on previous edit. Use error name consistent with existing one +; UPD ID= 76, SNARK:<6.UTILITIES>MONSYM.MAC.37, 4-Jun-82 13:37:13 by HALL +;Add error message for address break when EXEC mode break in effect. +; UPD ID= 66, SNARK:<6.UTILITIES>MONSYM.MAC.36, 26-May-82 19:34:45 by WALLACE +;TCO 6.1104 and 6.1105 Add Dynamically Linked Libraries and Canonical +; Terminal Support +; Add Error Codes for DYNLB% and CTSOP% JSYS's +; Add Symbols for DYNLB% JSYS +; Add Symbols for CTSOP% JSYS and the Library Descriptor Block +; Add Definitions for DYNLB% and CTSOP% JSYS's +; UPD ID= 54, SNARK:<6.UTILITIES>MONSYM.MAC.35, 21-May-82 11:06:20 by PAETZOLD +;More TCO 6.1138 - Make BBN TCP JSYSi of the new type +; UPD ID= 53, SNARK:<6.UTILITIES>MONSYM.MAC.34, 21-May-82 09:28:15 by PAETZOLD +;More TCO 6.1138 - Correct things one more time +; UPD ID= 52, SNARK:<6.UTILITIES>MONSYM.MAC.33, 20-May-82 13:45:35 by MILLER +;TCO 6.1142. Restore edits lost in ID=49 +; UPD ID= 51, SNARK:<6.UTILITIES>MONSYM.MAC.32, 19-May-82 17:45:50 by PAETZOLD +;More TCP 6.1138 - Use the correct number of commas this time +; UPD ID= 50, SNARK:<6.UTILITIES>MONSYM.MAC.31, 19-May-82 16:24:51 by MCINTEE +;TCO 6.1143 - Add new bit definition G1%LOC - local files only GTJFN +; UPD ID= 49, SNARK:<6.UTILITIES>MONSYM.MAC.30, 19-May-82 15:42:47 by COBB +;TCO 6.1142 - Add new bit definitions and block description to QUEUE% for FACTSW +; UPD ID= 43, SNARK:<6.UTILITIES>MONSYM.MAC.29, 19-May-82 10:09:03 by MILLER +;TCO 6.1142. Add definition for new FACTSW bit +; UPD ID= 42, SNARK:<6.UTILITIES>MONSYM.MAC.28, 18-May-82 09:55:40 by GRANT +;TCO 6.1140 - .NTEVQ +; UPD ID= 40, SNARK:<6.UTILITIES>MONSYM.MAC.27, 15-May-82 20:14:19 by PAETZOLD +;TCO 6.1138 - Document the BBN IP and TCP JSYSes in JSTAB +; UPD ID= 38, SNARK:<6.UTILITIES>MONSYM.MAC.26, 4-May-82 12:10:26 by MURPHY +;TCO 6.1126 - Comment to describe symbol conventions. +; UPD ID= 34, SNARK:<6.UTILITIES>MONSYM.MAC.25, 9-Apr-82 10:26:05 by CHALL +;TCO 6.1087 - ADD .TT102 TO THE TERMINAL TYPE NUMBERS +; UPD ID= 33, SNARK:<6.UTILITIES>MONSYM.MAC.24, 13-Mar-82 17:02:20 by MILLER +;TCO 6.1066. ADD DEFS FOR 2080 DIAG CONSOLE FUNCTIONS +; UPD ID= 25, SNARK:<6.UTILITIES>MONSYM.MAC.23, 22-Jan-82 17:02:59 by MURPHY +;TCO 5.1697 - XSSEV%, XGSEV%, etc. +; UPD ID= 24, SNARK:<6.UTILITIES>MONSYM.MAC.22, 22-Jan-82 15:54:24 by PAETZOLD +;TCO 5.1699 - Add .TT125 and .TTK10 +; UPD ID= 23, SNARK:<6.UTILITIES>MONSYM.MAC.21, 21-Jan-82 10:30:36 by COBB +;TCO 6.1057 - Add error codes, arguments, Jsys def'n for QUEUE% +;Correct grammar errors in ARCFX3, ARCFX4, ARCFX9, and ARCX16 +; UPD ID= 22, SNARK:<6.UTILITIES>MONSYM.MAC.13, 18-Jan-82 10:17:23 by PAETZOLD +;Add BOTX20 and ILLX05 +; UPD ID= 18, SNARK:<6.UTILITIES>MONSYM.MAC.12, 14-Jan-82 09:15:02 by MCINTEE +;TCO 6.1056 - Add JS%NOD +;TCO 6.1055 - Add GJ%NOD +; UPD ID= 17, SNARK:<6.UTILITIES>MONSYM.MAC.11, 13-Jan-82 16:48:12 by PAETZOLD +;TCO 5.1673 - Add BOTX19 +; UPD ID= 16, SNARK:<6.UTILITIES>MONSYM.MAC.10, 6-Jan-82 09:39:13 by MILLER +;TCO 6.1054. ADD .GOATJ DEF FOR ATACH ACJ +; UPD ID= 15, SNARK:<6.UTILITIES>MONSYM.MAC.9, 5-Jan-82 13:43:53 by MILLER +;TCO 6.1053. ADD FB%WNC +; UPD ID= 14, SNARK:<6.UTILITIES>MONSYM.MAC.8, 3-Dec-81 14:04:40 by COBB +;TCO 6.1041 - ADD .SPDBG TO SYSTEM PID TABLE (for QUEUE% jsys) +; UPD ID= 11, SNARK:<6.UTILITIES>MONSYM.MAC.7, 10-Nov-81 10:47:18 by HALL +;TCO 6.1037 - ADD PDL OVERFLOW TO SWTRP JSYS +;TCO 6.1000 - ADD SW%NMI BIT TO SWTRP JSYS +; UPD ID= 10, SNARK:<6.UTILITIES>MONSYM.MAC.6, 6-Nov-81 12:50:32 by CHALL +;TCO 6.1036 ADD CM%NSF - "SUFFIX MAY BE OMITTED" FLAG FOR COMND +; UPD ID= 8, SNARK:<6.UTILITIES>MONSYM.MAC.5, 26-Oct-81 19:55:44 by SOUTH +;tco 5.1598 - insert symbols for DN60 protocol in DTESRV. +; UPD ID= 7, SNARK:<6.UTILITIES>MONSYM.MAC.4, 16-Oct-81 12:25:50 by MURPHY +;FH%EPN +; UPD ID= 6, SNARK:<6.UTILITIES>MONSYM.MAC.3, 29-Sep-81 10:10:03 by PAETZOLD +;TCO 5.1536 - INSERT .BTD60 AND .VND60 +; UPD ID= 5, SNARK:<6.UTILITIES>MONSYM.MAC.2, 14-Aug-81 16:50:40 by MURPHY +;.GJNOD, GJFX54 +; UPD ID= 14, SNARK:<5.UTILITIES>MONSYM.MAC.61, 30-Jul-81 07:10:57 by FLEMMING +;Add definitions for XGTPW +; UPD ID= 10, SNARK:<5.UTILITIES>MONSYM.MAC.60, 24-Jul-81 16:08:55 by SCHMITT +;TCO 5.1433 - Add SMAPX2 and PMAPX8 error codes +; UPD ID= 7, SNARK:<5.UTILITIES>MONSYM.MAC.59, 18-Jul-81 17:53:52 by PAETZOLD +;Fix typo - TTYXO2 should be TTYX02 +; UPD ID= 5, SNARK:<5.UTILITIES>MONSYM.MAC.58, 17-Jul-81 16:13:44 by MURPHY +;MORE 5.1390 - TTYX02 +; UPD ID= 4, SNARK:<5.UTILITIES>MONSYM.MAC.57, 17-Jul-81 14:48:24 by PAETZOLD +;TCO 5.1301 - Add .SCOUN getab index +;Also Remove TCO 5.1302 as it is no longer needed +; UPD ID= 3, SNARK:<5.UTILITIES>MONSYM.MAC.56, 16-Jul-81 13:45:28 by GRANT +;TCO 5.1418 - Symbol for new NODE JSYS function .NDRNM; also, .NDMAX +; UPD ID= 1, SNARK:<5.UTILITIES>MONSYM.MAC.55, 8-Jul-81 17:45:52 by MURPHY +;TCO 5.1398 - IOX34, IOX35 +;TCO 5.1396 - JP%SYS +; UPD ID= 2272, SNARK:<5.UTILITIES>MONSYM.MAC.54, 30-Jun-81 11:44:59 by MURPHY +;ANTX01 +;<5.UTILITIES>MONSYM.MAC.53, 29-Jun-81 18:58:47, Edit by PAETZOLD +;<5.UTILITIES>MONSYM.MAC.52, 29-Jun-81 18:52:52, Edit by PAETZOLD +;ANTX01 - ADD DEFINITION WITHOUT STRING SO TTYSRV ASSEMBLES +; UPD ID= 2249, SNARK:<5.UTILITIES>MONSYM.MAC.51, 24-Jun-81 12:18:00 by LEACHE +;TCO 5.1383 Modify definition of DESX7 +; UPD ID= 2242, SNARK:<5.UTILITIES>MONSYM.MAC.50, 23-Jun-81 14:31:02 by MURPHY +;REMOVE EXTRANEOUS XHLLI DEF +; UPD ID= 2222, SNARK:<5.UTILITIES>MONSYM.MAC.49, 19-Jun-81 10:20:39 by GRANT +;TCO 5.1375 - Add ATACX6 and ATACX7 +; UPD ID= 1925, SNARK:<5.UTILITIES>MONSYM.MAC.48, 1-May-81 12:06:28 by PAETZOLD +;TCO 5.1302 add .GOTRK for GETOK subsystem (compiler) access +;also .GETYP for block type of .GOTRK function +; UPD ID= 1915, SNARK:<5.UTILITIES>MONSYM.MAC.44, 30-Apr-81 16:50:59 by CHALL +;Define FB%NDL in the FDB and error message DELX13 (2453) +; UPD ID= 1861, SNARK:<5.UTILITIES>MONSYM.MAC.43, 21-Apr-81 18:27:59 by MURPHY +; UPD ID= 1796, SNARK:<5.UTILITIES>MONSYM.MAC.42, 7-Apr-81 12:44:53 by GRANT +;Change wording of NSPX25 +; UPD ID= 1794, SNARK:<5.UTILITIES>MONSYM.MAC.41, 6-Apr-81 15:57:23 by GRANT +;Make COMX21 upper/lower case +; UPD ID= 1773, SNARK:<5.UTILITIES>MONSYM.MAC.40, 25-Mar-81 17:53:26 by GRANT +;Update Copyright +; UPD ID= 1699, SNARK:<5.UTILITIES>MONSYM.MAC.39, 16-Mar-81 08:18:39 by FLEMMING +;add definitions for XRMAP +; UPD ID= 1531, SNARK:<5.UTILITIES>MONSYM.MAC.38, 7-Feb-81 21:31:08 by GRANT +;ADD COMX21 +; UPD ID= 1530, SNARK:<5.UTILITIES>MONSYM.MAC.37, 7-Feb-81 21:23:01 by GRANT +;Network Management only needs 1 error code, remove the others +;Add 2 Network Management functions - .NTMAP and .NTREX +; UPD ID= 1528, SNARK:<5.UTILITIES>MONSYM.MAC.36, 6-Feb-81 17:03:00 by MURPHY +;OF%RDU +; UPD ID= 1474, SNARK:<5.UTILITIES>MONSYM.MAC.35, 22-Jan-81 11:59:21 by ZIMA +;Comment-only edit to .GERLG +; UPD ID= 1448, SNARK:<5.UTILITIES>MONSYM.MAC.34, 15-Jan-81 16:00:10 by FLEMMING +;add code for SMAP/RSMAP +; UPD ID= 1327, SNARK:<5.UTILITIES>MONSYM.MAC.33, 1-Dec-80 16:09:12 by OSMAN +;TCO 5.1205 - ADD XGVEC AND XSVEC +;tco 5.1204 - Add XSFRK jsys +; UPD ID= 1313, SNARK:<5.UTILITIES>MONSYM.MAC.32, 25-Nov-80 16:30:26 by GRANT +;New NTMAN% JSYS symbols and error messages +; UPD ID= 1298, SNARK:<5.UTILITIES>MONSYM.MAC.31, 19-Nov-80 16:53:05 by MURPHY +;SH%LPM +; UPD ID= 1282, SNARK:<5.UTILITIES>MONSYM.MAC.29, 18-Nov-80 12:00:11 by OSMAN +;Fix GET bit definitions +; UPD ID= 1271, SNARK:<5.UTILITIES>MONSYM.MAC.28, 13-Nov-80 16:25:00 by OSMAN +;Add GETX5 +; UPD ID= 1243, SNARK:<5.UTILITIES>MONSYM.MAC.27, 7-Nov-80 09:56:36 by OSMAN +;tco 5.1189 - Add new GET symbols +; UPD ID= 1204, SNARK:<5.UTILITIES>MONSYM.MAC.26, 28-Oct-80 16:55:09 by MURPHY +;SK%CL1 +; UPD ID= 1164, SNARK:<5.UTILITIES>MONSYM.MAC.25, 15-Oct-80 11:48:51 by MOSER +;TCO 5.1173 - ADD .LSxxx SYMBOLS FOR MAGTAPE LABEL STATE +; UPD ID= 1144, SNARK:<5.UTILITIES>MONSYM.MAC.24, 9-Oct-80 22:41:43 by ENGEL +;ADD CIBDFQ +; UPD ID= 1096, SNARK:<5.UTILITIES>MONSYM.MAC.23, 1-Oct-80 16:14:45 by BLOUNT +;re-define .FBLN1 to be 31 (it changed in Release 4) +; UPD ID= 1055, SNARK:<5.UTILITIES>MONSYM.MAC.22, 26-Sep-80 12:00:36 by MURPHY +;ARG BLOCK SYMBOLS FOR .MOSNH +; UPD ID= 1048, SNARK:<5.UTILITIES>MONSYM.MAC.21, 25-Sep-80 16:25:36 by GRANT +;Add NTMAN% JSYS definitions +;Add .NDNNO and .NDMSK to NODE JSYS +; UPD ID= 1037, SNARK:<5.UTILITIES>MONSYM.MAC.20, 24-Sep-80 14:55:23 by ZIMA +;TCO 5.1155 - ADD GJFX53 +; UPD ID= 1022, SNARK:<5.UTILITIES>MONSYM.MAC.19, 16-Sep-80 16:00:24 by GRANT +;NSPX24 - NSPX26 +; UPD ID= 984, SNARK:<5.UTILITIES>MONSYM.MAC.18, 3-Sep-80 14:46:14 by GRANT +;NTMX1 - NTMX5 +; UPD ID= 926, SNARK:<5.UTILITIES>MONSYM.MAC.17, 20-Aug-80 10:29:45 by MURPHY +;.MOANT, .MOSNH +; UPD ID= 921, SNARK:<5.UTILITIES>MONSYM.MAC.16, 19-Aug-80 15:19:29 by MURPHY +;.GSSMB +; UPD ID= 877, SNARK:<5.UTILITIES>MONSYM.MAC.15, 12-Aug-80 10:51:01 by OSMAN +;tco 5.1130 - Change wording of SEVEX1 +; UPD ID= 817, SNARK:<5.UTILITIES>MONSYM.MAC.14, 30-Jul-80 16:55:33 by OSMAN +;More 5.1105 - Add .POLOC +; UPD ID= 816, SNARK:<5.UTILITIES>MONSYM.MAC.13, 30-Jul-80 16:45:36 by OSMAN +;More 5.1105 - Add PDVX03 +; UPD ID= 800, SNARK:<5.UTILITIES>MONSYM.MAC.12, 24-Jul-80 16:45:34 by OSMAN +;More 5.1105 - Add SSAVX5 +; UPD ID= 771, SNARK:<5.UTILITIES>MONSYM.MAC.11, 22-Jul-80 09:07:14 by OSMAN +;tco 5.1105 - Put in PDVOP% definitions +; UPD ID= 656, SNARK:<5.UTILITIES>MONSYM.MAC.10, 16-Jun-80 17:22:43 by KONEN +;TCO 5.1063 -- ADD .MSISN AND .MSRSE TO MSTR +;CHANGE PS: ERROR MESSAGES TO SAY SYSTEM STRUCTURE +; UPD ID= 618, SNARK:<5.UTILITIES>MONSYM.MAC.9, 9-Jun-80 16:21:42 by LYONS +;TCO 5.1062 ADD MSTR BITS FOR READ AFTER WRITE FOR SWAP AND DATA SPACE +; UPD ID= 595, SNARK:<5.UTILITIES>MONSYM.MAC.8, 3-Jun-80 17:10:46 by MURPHY +;ADD SYSTEM MESSAGE LEVEL BITS TO SMON/TMON +; UPD ID= 582, SNARK:<5.UTILITIES>MONSYM.MAC.7, 1-Jun-80 23:56:29 by ZIMA +;TCO 5.1055 - CORRECT DEFINITION OF TL%AAD TO ==: +; UPD ID= 580, SNARK:<5.UTILITIES>MONSYM.MAC.6, 31-May-80 23:11:23 by DBELL +;TCO 5.1048 - ADD ERROR CODES FOR MULTIPLE-PAGE DSKOPS +; UPD ID= 479, SNARK:<5.UTILITIES>MONSYM.MAC.5, 25-Apr-80 14:09:34 by ENGEL +;ADD LCBDBP,LCLNER,LCNOND +; UPD ID= 396, SNARK:<5.UTILITIES>MONSYM.MAC.4, 1-Apr-80 17:19:47 by LYONS +;ADD SC%ANA, SC%DNA AS PRIVE, AND GETOK FUNCTIONS .GOANA, .GODNA +; UPD ID= 384, SNARK:<5.UTILITIES>MONSYM.MAC.3, 27-Mar-80 14:04:37 by ENGEL +;ADD CILENR +; UPD ID= 380, SNARK:<5.UTILITIES>MONSYM.MAC.2, 26-Mar-80 16:15:41 by ENGEL +;ADD CIXXX CODES +; UPD ID= 370, SNARK:<4.1.UTILITIES>MONSYM.MAC.14, 26-Mar-80 11:12:31 by DBELL +;TCO 4.1.1119 - ADD RP20 DEFINITIONS +; UPD ID= 301, SNARK:<4.1.UTILITIES>MONSYM.MAC.13, 3-Mar-80 12:36:15 by HALL +;MAKE SMAP BE PART OF THE STANDARD MONITOR (FOR INHOUSE, AT LEAST) +; UPD ID= 286, SNARK:<4.1.UTILITIES>MONSYM.MAC.12, 20-Feb-80 17:59:33 by MURPHY +;SK%TOP, SK%RQM +; UPD ID= 282, SNARK:<4.1.UTILITIES>MONSYM.MAC.11, 20-Feb-80 13:25:35 by MURPHY +;FIELDS FOR SJPRI, SPRIW +; UPD ID= 235, SNARK:<4.1.UTILITIES>MONSYM.MAC.10, 31-Jan-80 16:44:53 by DBELL +;FIX JS%SPC TO INCLUDE JS%PAF +; UPD ID= 227, SNARK:<4.1.UTILITIES>MONSYM.MAC.9, 25-Jan-80 17:02:47 by DBELL +;TCO 4.1.1074 - ADD SYMBOL JS%SPC FOR JFNS +; UPD ID= 188, SNARK:<4.1.UTILITIES>MONSYM.MAC.8, 8-Jan-80 09:12:13 by KONEN +;ADD MORE BOOT ERROR MESSAGES +; UPD ID= 180, SNARK:<4.1.UTILITIES>MONSYM.MAC.7, 31-Dec-79 12:51:31 by GRANT +;MONX06 - make the message better +; UPD ID= 178, SNARK:<4.1.UTILITIES>MONSYM.MAC.6, 28-Dec-79 14:11:55 by GRANT +;Add MONX06 error code +;<4.1.UTILITIES>MONSYM.MAC.5, 16-Nov-79 13:49:40, EDIT BY MILLER +;TCO 4.1.1021 ADD TTMSX1 ERROR CODE +;<4.1.UTILITIES>MONSYM.MAC.4, 13-Nov-79 09:27:17, EDIT BY OSMAN +;MORE 4.1.1016 - Change .CHFF to .CHFFD +;<4.1.UTILITIES>MONSYM.MAC.3, 13-Nov-79 07:51:35, EDIT BY R.ACE +;TCO 4.1.1018 - REMOVE EFACT JSYS FROM MONITOR +;<4.1.UTILITIES>MONSYM.MAC.2, 12-Nov-79 16:06:49, EDIT BY OSMAN +;tco 4.1.1016 - Allow formfeed to end lines + +; COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976, 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 THAT IS NOT SUPPLIED BY DIGITAL. + + + SALL + +IFNDEF REL, ;ASSEMBLING REL IF NON-0 + IFE REL,< + UNIVERSAL MONSYM - TOPS20 MONITOR CALL DEFINITIONS AND ERROR MNEMONICS + > + IFN REL,< + TITLE MONSYM - TOPS20 MONITOR CALL DEFINITIONS AND ERROR MNEMONICS + IFNDEF .PSECT,< + .DIRECT .XTABM> + > + +SEARCH MACSYM ;SOME SYMBOLS ARE DEFINED VIA MACROS + + COMMENT ! + +Certain conventions are observed regarding the construction of symbols as +follows: ("x" represents any alphanumeric) + + xxxxx. an opdef or macro defininition + + xxxxx% a JSYS + + .xxxxx a constant value + + xx%xxx a mask, i.e., a bit or bits which specify a + field + +Symbols containing multiple periods may be used internally by some macros. + +Symbols containing "$" are not used or defined by DEC and are reserved for +customer use. Note however that certain macros in MACSYM create symbols +containing "$" by prefixing a "$" to a name supplied by the user. DEFSTR, +MSKSTR, and the stack variable macros all do this. + +All JSYS names are defined as xxxxx%. Those existing prior to release 4 are +also defined without the trailing "%". + +For JSYS argument values, the symbol is usually divided into a general part +relating to the JSYS, and a specific part identifying the function. The form +gg%sss is used for fields, and the form .ggsss is used for constant values. +For example, GJ%OLD, GJ%FNS, and .GJDEF are all defined as arguments to GTJFN%. + +!;end comment + +;NOTE: +; THE FOLLOWING SYMBOLS ARE RESERVED: +; +; SYMBOL RESERVED BY +; ====== =========== +; +; .OF??? RMS-20 +; .SZ??? RMS-20 +; .PS??? RMS-20 + +;MACRO TO DEFINE JSYS NAMES + +DEFINE DEFJS (NAME,NUM,SECT,XTRA,OLDNEW)< + OPDEF NAME'% [104B8+NUM] + IFDEF .PSECT,< + INTERN NAME'%> + IFIDN ,,< + OPDEF NAME [104B8+NUM] + IFDEF .PSECT,< + INTERN NAME>>> + +;JSYS DEFINITIONS WITH 'NIM' AS A FOURTH ARGUMENT ARE CLASSIFIED +; AS 'NOT IN MONITOR' + +DEFINE JSLIST < + +DEFJS LOGIN,1,MSEC1,,OLD +DEFJS CRJOB,2,MSEC1,,OLD +DEFJS LGOUT,3,MSEC1,,OLD +DEFJS CACCT,4,MSEC1,,OLD +DEFJS EFACT,5,MSEC1,NIM,OLD +DEFJS SMON,6,MSEC1,,OLD +DEFJS TMON,7,MSEC1,,OLD +DEFJS GETAB,10,XCDSEC,,OLD ;[7.1200] Get information from table +DEFJS ERSTR,11,MSEC1,,OLD +DEFJS GETER,12,MSEC1,,OLD +DEFJS GJINF,13,XCDSEC,,OLD ;[7.1200] Get job information +DEFJS TIME,14,XCDSEC,,OLD ;[7.1200] Get system uptime +DEFJS RUNTM,15,XCDSEC,,OLD ;[7.1200] Get fork or job runtime +DEFJS SYSGT,16,XCDSEC,,OLD ;[7.1200] Get table number given SIXBIT name +DEFJS GNJFN,17,MSEC1,,OLD +DEFJS GTJFN,20,MSEC1,,OLD +DEFJS OPENF,21,MSEC1,,OLD +DEFJS CLOSF,22,MSEC1,,OLD +DEFJS RLJFN,23,MSEC1,,OLD +DEFJS GTSTS,24,MSEC1,,OLD +DEFJS STSTS,25,MSEC1,,OLD +DEFJS DELF,26,MSEC1,,OLD +DEFJS SFPTR,27,MSEC1,,OLD +DEFJS JFNS,30,MSEC1,,OLD +DEFJS FFFFP,31,MSEC1,,OLD +DEFJS RDDIR,32,MSEC1,,OLD ;OBSOLETE,,OLD +DEFJS CPRTF,33,,NIM,OLD +DEFJS CLZFF,34,MSEC1,,OLD +DEFJS RNAMF,35,MSEC1,,OLD +DEFJS SIZEF,36,MSEC1,,OLD +DEFJS GACTF,37,MSEC1,,OLD +DEFJS STDIR,40,MSEC1,,OLD ;OBSOLETE,,OLD +DEFJS DIRST,41,MSEC1,,OLD +DEFJS BKJFN,42,MSEC1,,OLD +DEFJS RFPTR,43,MSEC1,,OLD +DEFJS CNDIR,44,,NIM,OLD +DEFJS RFBSZ,45,MSEC1,,OLD +DEFJS SFBSZ,46,MSEC1,,OLD +DEFJS SWJFN,47,MSEC1,,OLD +DEFJS BIN,50,MSEC1,,OLD +DEFJS BOUT,51,MSEC1,,OLD +DEFJS SIN,52,MSEC1,,OLD +DEFJS SOUT,53,MSEC1,,OLD +DEFJS RIN,54,MSEC1,,OLD +DEFJS ROUT,55,MSEC1,,OLD +DEFJS PMAP,56,MSEC1,,OLD +DEFJS RPACS,57,MSEC1,,OLD +DEFJS SPACS,60,MSEC1,,OLD +DEFJS RMAP,61,MSEC1,,OLD +DEFJS SACTF,62,MSEC1,,OLD +DEFJS GTFDB,63,MSEC1,,OLD +DEFJS CHFDB,64,MSEC1,,OLD +DEFJS DUMPI,65,MSEC1,,OLD +DEFJS DUMPO,66,MSEC1,,OLD +DEFJS DELDF,67,MSEC1,,OLD +DEFJS ASND,70,MSEC1,,OLD +DEFJS RELD,71,MSEC1,,OLD +DEFJS CSYNO,72,,NIM,OLD +DEFJS PBIN,73,MSEC1,,OLD +DEFJS PBOUT,74,MSEC1,,OLD +DEFJS PSIN,75,,NIM,OLD +DEFJS PSOUT,76,MSEC1,,OLD +DEFJS MTOPR,77,MSEC1,,OLD +DEFJS CFIBF,100,MSEC1,,OLD +DEFJS CFOBF,101,MSEC1,,OLD +DEFJS SIBE,102,MSEC1,,OLD +DEFJS SOBE,103,MSEC1,,OLD +DEFJS DOBE,104,MSEC1,,OLD +DEFJS GTABS,105,MSEC1,,OLD ;OBSOLETE +DEFJS STABS,106,MSEC1,,OLD ;OBSOLETE +DEFJS RFMOD,107,MSEC1,,OLD +DEFJS SFMOD,110,MSEC1,,OLD +DEFJS RFPOS,111,MSEC1,,OLD +DEFJS RFCOC,112,MSEC1,,OLD +DEFJS SFCOC,113,MSEC1,,OLD +DEFJS STI,114,MSEC1,,OLD +DEFJS DTACH,115,MSEC1,,OLD +DEFJS ATACH,116,MSEC1,,OLD +DEFJS DVCHR,117,MSEC1,,OLD +DEFJS STDEV,120,MSEC1,,OLD +DEFJS DEVST,121,MSEC1,,OLD +DEFJS MOUNT,122,MSEC1,,OLD ;OBSOLETE +DEFJS DSMNT,123,,,OLD ;OBSOLETE +DEFJS INIDR,124,MSEC1,,OLD ;OBSOLETE +DEFJS SIR,125,MSEC1,,OLD +DEFJS EIR,126,MSEC1,,OLD +DEFJS SKPIR,127,MSEC1,,OLD +DEFJS DIR,130,MSEC1,,OLD +DEFJS AIC,131,MSEC1,,OLD +DEFJS IIC,132,MSEC1,,OLD +DEFJS DIC,133,MSEC1,,OLD +DEFJS RCM,134,MSEC1,,OLD +DEFJS RWM,135,MSEC1,,OLD +DEFJS DEBRK,136,MSEC1,,OLD +DEFJS ATI,137,MSEC1,,OLD +DEFJS DTI,140,MSEC1,,OLD +DEFJS CIS,141,MSEC1,,OLD +DEFJS SIRCM,142,MSEC1,,OLD +DEFJS RIRCM,143,MSEC1,,OLD +DEFJS RIR,144,MSEC1,,OLD +DEFJS GDSTS,145,MSEC1,,OLD +DEFJS SDSTS,146,MSEC1,,OLD +DEFJS RESET,147,MSEC1,,OLD +DEFJS RPCAP,150,MSEC1,,OLD +DEFJS EPCAP,151,MSEC1,,OLD +DEFJS CFORK,152,MSEC1,,OLD +DEFJS KFORK,153,MSEC1,,OLD +DEFJS FFORK,154,MSEC1,,OLD +DEFJS RFORK,155,MSEC1,,OLD +DEFJS RFSTS,156,MSEC1,,OLD +DEFJS SFORK,157,MSEC1,,OLD +DEFJS SFACS,160,MSEC1,,OLD +DEFJS RFACS,161,MSEC1,,OLD +DEFJS HFORK,162,MSEC1,,OLD +DEFJS WFORK,163,MSEC1,,OLD +DEFJS GFRKH,164,MSEC1,,OLD +DEFJS RFRKH,165,MSEC1,,OLD +DEFJS GFRKS,166,MSEC1,,OLD +DEFJS DISMS,167,MSEC1,,OLD +DEFJS HALTF,170,MSEC1,,OLD +DEFJS GTRPW,171,MSEC1,,OLD +DEFJS GTRPI,172,XCDSEC,,OLD ;[7.1200] Return paging trap information +DEFJS RTIW,173,MSEC1,,OLD +DEFJS STIW,174,MSEC1,,OLD +DEFJS SOBF,175,MSEC1,,OLD +DEFJS RWSET,176,MSEC1,,OLD +DEFJS GETNM,177,XCDSEC,,OLD ;[7.1200] Return job's program name +DEFJS GET,200,MSEC1,,OLD +DEFJS SFRKV,201,MSEC1,,OLD +DEFJS SAVE,202,MSEC1,,OLD +DEFJS SSAVE,203,MSEC1,,OLD +DEFJS SEVEC,204,MSEC1,,OLD +DEFJS GEVEC,205,MSEC1,,OLD +DEFJS GPJFN,206,MSEC1,,OLD +DEFJS SPJFN,207,MSEC1,,OLD +DEFJS SETNM,210,XCDSEC,,OLD ;[7.1200] Set job's program name +DEFJS FFUFP,211,MSEC1,,OLD +DEFJS DIBE,212,MSEC1,,OLD +DEFJS FDFRE,213,,NIM,OLD +DEFJS GDSKC,214,MSEC1,,OLD +DEFJS LITES,215,XCDSEC,,OLD ;[7.1200] Obsolete +DEFJS TLINK,216,MSEC1,,OLD +DEFJS STPAR,217,MSEC1,,OLD +DEFJS ODTIM,220,XCDSEC,,OLD ;[7.1183] Output date and time +DEFJS IDTIM,221,XCDSEC,,OLD ;[7.1183] Input date and time +DEFJS ODCNV,222,XCDSEC,,OLD ;[7.1183] Convert internal date/time to numbers +DEFJS IDCNV,223,XCDSEC,,OLD ;[7.1183] Convert numbers to internal date/time +DEFJS NOUT,224,MSEC1,,OLD +DEFJS NIN,225,MSEC1,,OLD +DEFJS STAD,226,MSEC1,,OLD +DEFJS GTAD,227,MSEC1,,OLD +DEFJS ODTNC,230,XCDSEC,,OLD ;[7.1183] Output discrete date/time numbers +DEFJS IDTNC,231,XCDSEC,,OLD ;[7.1183] Input to discrete date/time numbers +DEFJS FLIN,232,MSEC1,,OLD +DEFJS FLOUT,233,MSEC1,,OLD +DEFJS DFIN,234,MSEC1,,OLD +DEFJS DFOUT,235,MSEC1,,OLD + +DEFJS CRDIR,240,MSEC1,,OLD +DEFJS GTDIR,241,MSEC1,,OLD +DEFJS DSKOP,242,MSEC1,,OLD +DEFJS SPRIW,243,MSEC1,,OLD +DEFJS DSKAS,244,MSEC1,,OLD +DEFJS SJPRI,245,MSEC1,,OLD +DEFJS STO,246,MSEC1,,OLD +DEFJS ARCF,247,MSEC1,,OLD ;ARCHIVE SYSTEM JSYS +DEFJS ASNDP,260,,NIM,OLD +DEFJS RELDP,261,,NIM,OLD +DEFJS ASNDC,262,,NIM,OLD +DEFJS RELDC,263,,NIM,OLD +DEFJS STRDP,264,,NIM,OLD +DEFJS STPDP,265,,NIM,OLD +DEFJS STSDP,266,,NIM,OLD +DEFJS RDSDP,267,,NIM,OLD +DEFJS WATDP,270,,NIM,OLD + +DEFJS GTNCP,272,,NIM,OLD ;TOPS20AN, Obsolete +DEFJS GTHST,273,MSEC1,,OLD ;TOPS20AN +DEFJS ATNVT,274,MSEC1,,OLD ;TOPS20AN +DEFJS CVSKT,275,,NIM,OLD ;TOPS20AN, Obsolete +DEFJS CVHST,276,MSEC1,,OLD ;TOPS20AN +DEFJS FLHST,277,,NIM,OLD ;TOPS20AN, Obsolete + +DEFJS GCVEC,300,MSEC1,,OLD +DEFJS SCVEC,301,MSEC1,,OLD +DEFJS STTYP,302,MSEC1,,OLD +DEFJS GTTYP,303,MSEC1,,OLD +DEFJS BPT,304,MSEC1,,OLD ;OBSOLETE +DEFJS GTDAL,305,XCDSEC,,OLD ;[7.1200] Get directory allocation +DEFJS WAIT,306,MSEC1,,OLD +DEFJS HSYS,307,MSEC1,,OLD +DEFJS USRIO,310,XCDSEC,,OLD ;[7.1200] Enter user i/o mode +DEFJS PEEK,311,XCDSEC,,OLD ;[7.1200] Peek at the monitor's 0/1 space +DEFJS MSFRK,312,MSEC1,,OLD +DEFJS ESOUT,313,MSEC1,,OLD +DEFJS SPLFK,314,MSEC1,,OLD +DEFJS ADVIS,315,,NIM,OLD +DEFJS JOBTM,316,,NIM,OLD +DEFJS DELNF,317,MSEC1,,OLD +DEFJS SWTCH,320,XCDSEC,,OLD ;[7.1200] Obsolete +DEFJS TFORK,321,MSEC1,,OLD +DEFJS RTFRK,322,MSEC1,,OLD +DEFJS UTFRK,323,MSEC1,,OLD +DEFJS SCTTY,324,MSEC1,,OLD + +DEFJS OPRFN,326,,NIM,OLD ;TOPS20AN, Obsolete + +DEFJS SETER,336,MSEC1,,OLD + + +;NEW (NOT IN BBN TENEX) JSYS'S ADDED STARTING AT 500 + +DEFJS RSCAN,500,MSEC1,,OLD +DEFJS HPTIM,501,MSEC1,,OLD +DEFJS CRLNM,502,MSEC1,,OLD +DEFJS INLNM,503,MSEC1,,OLD +DEFJS LNMST,504,MSEC1,,OLD +DEFJS RDTXT,505,MSEC1,,OLD ;OBSOLETED BY RDTTY AND TEXTI +DEFJS SETSN,506,XCDSEC,,OLD ;[7.1200] Set system/private program names +DEFJS GETJI,507,XCDSEC,,OLD ;[7.1200] Get job information +DEFJS MSEND,510,MSEC1,,OLD +DEFJS MRECV,511,MSEC1,,OLD +DEFJS MUTIL,512,MSEC1,,OLD +DEFJS ENQ,513,MSEC1,,OLD +DEFJS DEQ,514,MSEC1,,OLD +DEFJS ENQC,515,MSEC1,,OLD +DEFJS SNOOP,516,MSEC1,,OLD +DEFJS SPOOL,517,MSEC1,,OLD +DEFJS ALLOC,520,MSEC1,,OLD +DEFJS CHKAC,521,MSEC1,,OLD +DEFJS TIMER,522,MSEC1,,OLD +DEFJS RDTTY,523,MSEC1,,OLD +DEFJS TEXTI,524,MSEC1,,OLD +DEFJS UFPGS,525,MSEC1,,OLD +DEFJS SFPOS,526,MSEC1,,OLD +DEFJS SYERR,527,MSEC1,,OLD +DEFJS DIAG,530,MSEC1,,OLD +DEFJS SINR,531,MSEC1,,OLD +DEFJS SOUTR,532,MSEC1,,OLD +DEFJS RFTAD,533,MSEC1,,OLD +DEFJS SFTAD,534,MSEC1,,OLD +DEFJS TBDEL,535,MSEC1,,OLD +DEFJS TBADD,536,MSEC1,,OLD +DEFJS TBLUK,537,MSEC1,,OLD +DEFJS STCMP,540,MSEC1,,OLD +DEFJS SETJB,541,MSEC1,,OLD +DEFJS GDVEC,542,MSEC1,,OLD +DEFJS SDVEC,543,MSEC1,,OLD +DEFJS COMND,544,MSEC1,,OLD +DEFJS PRARG,545,MSEC1,,OLD +DEFJS GACCT,546,MSEC1,,OLD +DEFJS LPINI,547,MSEC1,,OLD +DEFJS GFUST,550,MSEC1,,OLD +DEFJS SFUST,551,MSEC1,,OLD +DEFJS ACCES,552,MSEC1,,OLD +DEFJS RCDIR,553,MSEC1,,OLD +DEFJS RCUSR,554,MSEC1,,OLD +DEFJS MSTR,555,MSEC1,,OLD +DEFJS STPPN,556,MSEC1,,OLD +DEFJS PPNST,557,MSEC1,,OLD +DEFJS PMCTL,560,MSEC1,,OLD +DEFJS PLOCK,561,MSEC1,,OLD +DEFJS BOOT,562,MSEC1,,OLD +DEFJS UTEST,563,MSEC1,,OLD +DEFJS USAGE,564,MSEC1,,OLD +DEFJS WILD,565,MSEC1 +DEFJS VACCT,566,MSEC1,,OLD +DEFJS NODE,567,XCDSEC,,OLD ;[7.1185] +DEFJS ADBRK,570,MSEC1,,OLD +DEFJS SINM,571,MSEC1 +DEFJS SOUTM,572,MSEC1 +DEFJS SWTRP,573,MSEC1 +DEFJS GETOK,574,MSEC1 +DEFJS RCVOK,575,MSEC1 +DEFJS GIVOK,576,MSEC1 +DEFJS SKED,577,MSEC1 ;SCHEDULER CONTROL JSYS +DEFJS MTU,600,MSEC1 ;MTU JSYS +DEFJS XRIR,601,MSEC1 ;EXTENDED RIR +DEFJS XSIR,602,MSEC1 ;EXTENDED SIR +DEFJS PDVOP,603,MSEC1 ;MANIPULATE PROGRAM DATA VECTORS +DEFJS NTMAN,604,MSEC1 ;DECNET NETWORK MANAGEMENT INTERFACE +DEFJS XSFRK,605,MSEC1 ;START FORK AT GLOBAL PC +DEFJS XGVEC,606,MSEC1 ;GET FULL ENTRY VECTOR +DEFJS XSVEC,607,MSEC1 ;SET FULL ENTRY VECTOR +DEFJS RSMAP,610,MSEC1 ;READ SECTION MAP +DEFJS XRMAP,611,MSEC1 ;EXTENDED RMAP +DEFJS XGTPW,612,MSEC1 ;EXTENDED GET TRAP WORD +DEFJS XSSEV,613,MSEC1 ;EXTENDED SET SPECIAL ENTRY VECTOR +DEFJS XGSEV,614,MSEC1 ;EXTENDED GET SPECIAL ENTRY VECTOR +DEFJS QUEUE,615,MSEC1 ;QUEUE REQUEST TO COMPONENT +DEFJS DYNLB,616,MSEC1 ;DYNamic LiBrary +DEFJS CTSOP,617,MSEC1 ;Canonical Terminal Support OPeration +DEFJS DAP,620,MSEC1 ;~6.0 Data Access Protocol +DEFJS SCS,622,MSEC1 ;SCA user interface JSYS +DEFJS WSMGR,623,MSEC1 ;Working-set manager JSYS +DEFJS LLMOP,624,MSEC1 ;~6.0 Low Level MOP for Ethernet DLL +DEFJS APCON,625,,NIM ;Reserved for FPS array processor support +DEFJS XPEEK,626,XCDSEC ;[7.1200] Extended peek at the monitor +DEFJS CNFIG,627,MSEC1 ;CONFIGURATION INFORMATION +DEFJS NI,630,MSEC1 ;Direct Ethernet Interface +DEFJS LATOP,631,MSEC1 ;~6.0 LAT Operation Display and Control +DEFJS NTINF,632,MSEC1 ;NETWORK INFORMATION JSYS +DEFJS INFO,633,XCDSEC ;[7.1076] INFO% monitor call (in section 6) +DEFJS DOB,635,XCDSEC ;[7.1081] Dump On Bugchk control JSYS +DEFJS MONRD,717,,NIM ;Reserved for MONRD +DEFJS DBGRD,720,,NIM ;Reserved for MONRD debuging + +;TOPS20AN JSYS DEFINITIONS + +DEFJS SEND,740,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS RECV,741,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS OPEN,742,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS CLOSE,743,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS SCSLV,744,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS STAT,745,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS CHANL,746,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS ABORT,747,MSEC1 ;TOPS20AN, BBN TCP JSYS Interface +DEFJS SNDIM,750,MSEC1,,OLD ;TOPS20AN, Send IMP Special Queue Message +DEFJS RCVIM,751,MSEC1,,OLD ;TOPS20AN, Receive IMP Special Queue Message +DEFJS ASNSQ,752,MSEC1,,OLD ;TOPS20AN, Assign IMP Special Queue +DEFJS RELSQ,753,MSEC1,,OLD ;TOPS20AN, Release IMP Special Queue +DEFJS SNDIN,754,MSEC1 ;TOPS20AN, Send Internet Message +DEFJS RCVIN,755,MSEC1 ;TOPS20AN, Receive Internet Message +DEFJS ASNIQ,756,MSEC1 ;TOPS20AN, Assign Internet Queue +DEFJS RELIQ,757,MSEC1 ;TOPS20AN, Release Internet Queue +DEFJS IPOPR,760,MSEC1 ;TOPS20AN, IP Functions JSYS +DEFJS TCOPR,761,MSEC1 ;TOPS20AN, TCP Functions JSYS + +;TEMPORARY JSYS DEFINITIONS + +DEFJS METER,766,MSEC1 ;METER JSYS. FOR KL ONLY +DEFJS SMAP,767,MSEC1 ;CREATE AND MAP SECTIONS +DEFJS THIBR,770,MSEC1,,OLD +DEFJS TWAKE,771,MSEC1,,OLD +DEFJS MRPAC,772,MSEC1,,OLD +DEFJS SETPV,773,,NIM,OLD +DEFJS MTALN,774,MSEC1,,OLD +DEFJS TTMSG,775,MSEC1,,OLD +DEFJS MDDT,777,MSEC1 + +> ;;; END OF DEFINE JSLIST + +;NOW EXPAND THE JSYS DEFINITIONS + +JSLIST + +;ERROR CONDITION INSTRUCTIONS. THESE ARE NOP'S UNLESS IMMEDIATELY +;FOLLOWING A JSYS WHICH FAILS. + +OPDEF ERJMPR [JUMP 12,0] ;JUMP ON ERROR, ALWAYS PUT ERROR CODE IN AC1 +OPDEF ERCALR [JUMP 13,0] ;CALL ON ERROR, ALWAYS PUT ERROR CODE IN AC1 +OPDEF ERJMPS [JUMP 14,0] ;JUMP ON ERROR, SUPPRESS ERROR CODE IN AC +OPDEF ERCALS [JUMP 15,0] ;CALL ON ERROR, SUPPRESS ERROR CODE IN AC +OPDEF ERJMP [JUMP 16,0] ;JUMP ON ERROR +OPDEF ERCAL [JUMP 17,0] ;CALL ON ERROR (SIMULATE PUSHJ 17,ADR) + + IFNDEF FOR,< + IFDEF .PSECT,< +INTERN ERJMP,ERCAL,ERJMPS,ERCALS,ERJMPR,ERCALR + >> + +DEFINE GOPDEF (OP,DEF)< + OPDEF OP [DEF] + IFNDEF FOR,< + IFDEF .PSECT,< + INTERN OP>>> + +; THE FOLLOWING OPCODES ARE USED TO PERFORM THE EXTENDED +; ADDRESSING FUNCTIONS. + +GOPDEF XJRSTF, ;RESTORE FLAGS AND PC +GOPDEF XJEN, ;RESTORE FLAGS,PC AND DISMISS +GOPDEF XPCW, ;EXCHANGE FLAGS AND PC +GOPDEF XSFM, ;SAVE PC FLAGS IN MEMORY +GOPDEF XJRST, ;JUMP TO C(E) +GOPDEF XMOVEI, ;EXTENDED MOVEI +GOPDEF XHLLI, ;INSTRUCTION TO PUT IMMEDIATE ADDRESS IN LH + +;OTHER VARIANTS OF JRST + +GOPDEF PORTAL, +GOPDEF JRSTF, +GOPDEF JEN, + +IFIW==:1B0 ;INSTRUCTION FORMAT INDIRECT WORD +EFIW==:0 ;EXTENDED FORMAT INDIRECT WORD + +;THE NO-OPERATION INSTRUCTION (MAY CHANGE FROM PROCESSOR TO PROCESSOR) + +GOPDEF NOP, +.NODDT NOP + +;SPECIAL LOSEG SYMBOLS + +.JBHSO==:75 ; 0 ,, HIGHSEG ORIGIN PAGE NUMBER +.JBEDV==:112 ;POINTER TO EXEC DATA VECTOR + .EDCNT==:0 ;'EDV',,COUNT (INCLUDES THIS WORD) + .EDHSB==:1 ;POINTER TO HIDDEN SYMBOL MAP SWITCHING BLOCK + .EDSYM==:2 ;.JBSYM IN SYMBOL SPACE + .EDUSY==:3 ;.JBUSY IN SYMBOL SPACE + .EDHSF==:4 ;POINTER TO SYMBOLS HIDDEN FLAG WORD + .EDSEC==:5 ;SECTION (AS VIRTUAL ADDRESS) OF SYMTABS + +;***************************************** +;JSYS SPECIFIC ARGUMENTS +;THE FOLLOWING ARE ORDERED ALPHABETICALLY BY JSYS NAME +;***************************************** + + +;ACCES - ACCESS A DIRECTORY (E.G., BY CONNECTING) + +AC%CON==:1B0 ;CONNECT TO THE SPECIFIED DIRECTORY +AC%OWN==:1B1 ;GAIN OWNERSHIP +AC%REM==:1B2 ;REMOVE OWNERSHIP +AC%PWD==:1B3 ;CHECK PASSWORD + +;OFFSETS IN ARGUMENT BLOCK + +.ACDIR==:0 ;DIRECTORY DESIGNATOR +.ACPSW==:1 ;POINTER TO PASSWORD STRING +.ACJOB==:2 ;JOB NUMBER (-1 FOR SELF) + + +;ADBRK - Address break JSYS function codes and bits + +;FUNCTION CODES + +.ABSET==:0 ;SET USER ADDRESS BREAK +.ABRED==:1 ;READ USER ADDRESS BREAK +.ABCLR==:2 ;CLEAR USER ADDRESS BREAK +.ABGAD==:3 ;GET ADDRESS OF TRAPPED INSTRUCTION +.ABSRG==:4 ;SET ADDRESS BREAK RANGE +.ABRRG==:5 ;READ ADDRESS BREAK RANGE +.ABGBR==:6 ;GET ADDRESS BREAK DATA + +;FUNCTION BITS FOR FUNCTION .ABSET + +AB%RED==:1B0 ;READ +AB%WRT==:1B1 ;WRITE +AB%XCT==:1B2 ;EXECUTE +AB%SEC==:1B3 ;BREAK ON THIS OFFSET IN ANY SECTION (KC ONLY) + +;Offsets in argument blocks + +.ABHDR==:0 ;HEADER (COUNT) +.ABLOB==:1 ;LOWER BOUND ADDRESS +.ABUPB==:2 ;UPPER BOUND ADDRESS +.ABFLG==:3 ;FLAGS +.ABBPC==:1 ;PC WHERE BREAK OCCURRED +.ABBAD==:2 ;ADDRESS WHERE BREAK OCCURRED + +;ALLOC JSYS FUNCTION CODES + +.ALCAL==:0 ;ALLOCATE A DEVICE + + +; ARCF + +.ARRAR==:0 ; Request file archive (user) + .ARCLR==:0 ; Clear the request + .ARSET==:1 ; Set the request +; AR%NDL can be specified in AC2, defined elsewhere +.ARRIV==:1 ; Request file migration (system) +.AREXM==:2 ; File exempt from migration (system) +.ARRFR==:3 ; Request file's contents be restored to disk + AR%NMS==:1B0 ; Request no msg on restoration + AR%WAT==:1B1 ; Wait for file to be restored to disk +.ARDIS==:4 ; Clear archive status for file + AR%CR1==:1B0 ; Clear 1st run info + AR%CR2==:1B1 ; Clear 2nd run info +.ARSST==:5 ; Set archive status for file + .AROFL==:0 ; Flags + AR%O1==:1B0 ; Set run 1 info + AR%O2==:1B1 ; Set run 2 info + AR%OFL==:1B2 ; Flush contents of file + AR%ARC==:1B3 ; Set FB%ARC (archive the file) + AR%CRQ==:1B4 ; Clear archive/migration request + .ARTP1==:1 ; Tape 1 ID + .ARSF1==:2 ; XWD TSN 1, TFN 1 + AR%TSN==:777777B17 ; Tape saveset number + AR%TFN==:777777B35 ; Tape file number + .ARTP2==:3 ; Tape 2 ID + .ARSF2==:4 ; XWD TSN 2, TFN 2 +;;; AR%TSN==:777777B17 ; Tape saveset number +;;; AR%TFN==:777777B35 ; Tape file number + .ARODT==:5 ; Date and time + .ARPSZ==:6 ; Number of pages in the file (.ARGST only) +.ARRST==:6 ; Restore contents to archived file +.ARGST==:7 ; Get tape info for file (blk as for ARSST) +.ARRFL==:10 ; Retrieve failed +.ARNAR==:11 ; Set/clear resist archive + +; Function & reason codes for IPCF msgs + +.RETM==:0 ; Send retrieve message + .RETR==:0 ; Normal retrieve + .RETRW==:1 ; User waiting for retrieve +.NOTM==:1 ; Send notification message + .FLXP==:0 ; Archive file expunged + .ACLR==:1 ; Archive status cleared + +;ASNIQ - IP assign queue (requires NET WIZ capability, SC%NWZ) + +;AC1 - LH flags, Queue descriptor block address +AQ%SCR==1B0 ; Use RPI device (secure) +AQ%SPT==1B1 ; Single port protocol +AQ%ICM==1B2 ; Permit send/receive of ICMP messages + +.INTVR==4 ; Internet protocol version number + + ; Queue descriptor block format +.IQPRV==^D0 ; Internet protocol value (bits 24-31) +.IQFHV==^D1 ; Internet foreign host value (bits 0-31) +.IQSHV==^D2 ; Internet source host value (bits 0-31) +.IQPTV==^D3 ; Internet port value, local bits 0-15, foreign bits 16-31 +.IQPRM==^D4 ; Mask for protocol value (bits 24-31) +.IQFHM==^D5 ; Mask for foreign host value (bits 0-31) +.IQSHM==^D6 ; Mask for source host value (bits 0-31) +.IQPTM==^D7 ; Mask for port value, local bits 0-15, foreign bits 16-31 + ; Note: port(s) follow IP header if .IQPTM is non-zero + ; Note: If AS%SPT is specified, the (single) port is +.IQLEN==^D8 ; in bits 0-15 (bits 16-31 should be zero) + + ; Internet Message Header Structures +.IPKVR==0 ; Word with version, type of service, etc +.IPKSG==1 ; Word with segmentation info +.IPKPR==2 ; Word with time to live, checksum, protocol +.IPKSH==3 ; Word with source host +.IPKDH==4 ; Word with destination host + +DEFINE DEFIP.< +DEFSTR(PIVER,.IPKVR,3,4) ; PACKET.INTERNET.VERSION +DEFSTR(PIDO,.IPKVR,7,4) ; PACKET.INTERNET.DATA-OFFSET +DEFSTR(PITOS,.IPKVR,15,8) ; PACKET.INTERNET.TYPE-OF-SERVICE + DEFSTR(PIPRC,.IPKVR,10,3) ; PACKET.IP.PRECEDENCE + DEFSTR(PILDY,.IPKVR,11,1) ; PACKET.IP.LOW-DELAY + DEFSTR(PIHTR,.IPKVR,12,1) ; PACKET.IP.HIGH-THROUGHPUT + DEFSTR(PIHRL,.IPKVR,13,1) ; PACKET.IP.HIGH-RELIABILITY +DEFSTR(PIPL,.IPKVR,31,16) ; PACKET.INTERNET.PACKET-LENGTH +DEFSTR(PISID,.IPKSG,15,16) ; PACKET.INTERNET.SEGMENT-ID +DEFSTR(PIFLG,.IPKSG,18,3) ; PACKET.INTERNET.FLAGS + DEFSTR(PIDF,.IPKSG,17,1) ; PACKET.INTERNET.DONT-FRAGMENT + DEFSTR(PIMF,.IPKSG,18,1) ; PACKET.INTERNET.MULTIFRAGMENT +DEFSTR(PIFO,.IPKSG,31,13) ; PACKET.INTERNET.FRAGMENT-OFFSET +DEFSTR(PITTL,.IPKPR,7,8) ; PACKET.INTERNET.TIME-TO-LIVE +DEFSTR(PIPRO,.IPKPR,15,8) ; PACKET.INTERNET.PROTOCOL +DEFSTR(PICKS,.IPKPR,31,16) ; PACKET.INTERNET.HEADER-CHECKSUM +DEFSTR(PISH,.IPKSH,31,32) ; PACKET.INTERNET.SOURCE-HOST +DEFSTR(PIDH,.IPKDH,31,32) ; PACKET.INTERNET.DESTINATION-HOST +> ; END OF DEFINE DEFIP. + +;ATNVT ;TOPS20AN + +AN%TCP==:1B0 ;TOPS20AN ; RH of 1 contains TCP JCN instead + ; of JFN; Implies AN%NTP +AN%NTP==:1B2 ;TOPS20AN ;NEW TELNET PROTOCOL + + +;ATACH + +AT%CCJ==:1B0 ;^C JOB WHEN ATTACHED +AT%NAT==:1B1 ;NO ATTACH +AT%TRM==:1B2 ;ATTACH JOB TO TERMINAL IN REGISTER 4 +AT%JOB==:777777B35 ;JOB NUMBER + + + +;BOOT + +.BTROM==:0 ;ACTIVATE ROM BOOT + .BTDTE==:0 ;DTE-20 NUMBER +.BTLDS==:1 ;LOAD SECONDARY BOOTSTRAP PROGRAM + .BTERR==:1 ;ERROR FLAGS + .BTSEC==:2 ;ADDRESS OF SECONDARY BOOTSTRAP PROGRAM +.BTLOD==:2 ;LOAD MEMORY (OBSOLETE) +.BTSMP==:2 ;SEND MOP MESSAGE + .BTFLG==:3 ;FLAGS + BT%BEL==:1B0 ;SEND TO -11 DOORBELL AFTER SETUP + .BTCNT==:4 ;NUMBER OF BYTES TO BE TRANSFERRED + .BTLPT==:5 ;BYTE POINTER TO DATA TO BE LOADED +.BTDMP==:3 ;DUMP MEMORY + .BTDPT==:5 ;BYTE POINTER TO DESTINATION OF DUMPED DATA +.BTIPR==:4 ;INITIALIZE COMMUNICATIONS PROTOCOL + .BTPRV==:1 ;PROTOCOL VERSION NUMBER +.BTTPR==:5 ;TERMINATE COMMUNICATIONS PROTOCOL +.BTSTS==:6 ;RETURN PROTOCOL STATUS + .BTCOD==:1 ;STATUS CODE +.BTBEL==:7 ;WAIT FOR DOORBELL +.BTRMP==:10 ;READ MOP MESSAGE + .BTMPT==:5 ;POINTER TO DESTINATION FOR MOP MESSAGE +.BTKML==:11 ;LOAD KMC11 + .BTKMC==:0 ;KMC11 ADDRESS + .BTKER==:1 ;ERROR FLAGS + BT%CVE==:1B0 ;CRAM VERIFY ERROR (RH IS BAD DATA) + BT%DVE==:1B1 ;DRAM VERIFY ERROR (RH IS BAD DATA) + BT%RVE==:1B2 ;REG VERIFY ERROR (RH IS BAD DATA) + .BTKCC==:2 ;COUNT OF CRAM DATA + .BTKCP==:3 ;POINTER TO CRAM DATA (16 BIT DATA) + .BTKDC==:4 ;COUNT OF DRAM DATA + .BTKDP==:5 ;POINTER TO DRAM DATA (8 BIT DATA) + .BTKRC==:6 ;COUNT OF REGISTER DATA + .BTKRP==:7 ;POINTER TO REGISTER DATA (16 BIT DATA) + .BTKSA==:10 ;RH IS STARTING ADDRESS + BT%KSA==:1B0 ;IS SET RH WANT TO START KMC11 +.BTKMD==:12 ;DUMP KMC11 +.BTRLC==:13 ;RETURN LINE COUNTERS + .BTPRT==:0 ;PORT NUMBER + BT%ZRO==:1B0 ;CLEAR COUNTERS AFTER READING + .BTZTM==:1 ;TIME SINCE COUNTERS HAVE BEEN ZEROED + .BTSCC==:2 ;STATUS COUNT COUNT + .BTSCP==:3 ;STATUS COUNT POINTER + .BTRCC==:4 ;RECEIVE COUNT COUNT + .BTRCP==:5 ;RECEIVE COUNT POINTER + .BTTCC==:6 ;TRANSMIT COUNT COUNT + .BTTCP==:7 ;TRANSMIT COUNT POINTER +.BTCLI==:14 ;CONVERT LINEID TO PORT NUMBER + .BTLID==:1 ;POINTER TO ASCIZ LINE-ID +.BTCPN==:15 ;CONVERT PORT NUMBER TO LINE-ID +.BTD60==:16 ;DN60 PROTOCOL OPERATION + DEFSTR (BT6DTE,0,35,36) ;DTE number + .BT6DTE==:0 + DEFSTR (BT6ERR,1,35,36) ;returned error flags + .BT6ERR==:1 + ;protocol flags + D6%BSY==:1B0 ;port is busy - sign bitness is used in testing + D6%QHD==:1B1 ;header has been queued + D6%HDD==:1B2 ;to -11 done for header seen + D6%NDT==:1B3 ;this is a no-data-transfer operation + D6%RED==:1B4 ;this is a read data type operation + D6%QDT==:1B5 ;data has been queued(for write fcn) + D6%DTD==:1B6 ;to -11 done for write data seen + D6%RBL==:1B7 ;to -10 doorbell for response header seen + D6%RDN==:1B8 ;to -10 done for response header seen + D6%DBL==:1B9 ;to -10 doorbell for read data seen + D6%DDN==:1B10 ;to -10 done for read data seen + D6%FDN==:1B11 ;to -10 done for read data was faked + ;error flags + D6%BDP==:1B30 ;bad data byte ptr + D6%ARD==:1B31 ;11 attempted to send read data when + ; when none was expected + D6%TRS==:1B32 ;timed out waiting for response header + D6%TDT==:1B33 ;timed out waiting for read data + + D6%TPO==:1B34 ;timed out waiting for port to be free + D6%NT6==:1B35 ;not a DN60 front end + + DEFSTR (BT6HBC,2,17,18) ;DN60 header byte count + .BT6HBC==:2 + DEFSTR (BT6HDR,2,35,18) ;DN60 header address(begins on word) + .BT6HDR==:2 + DEFSTR (BT6DBC,3,35,36) ;data byte count + .BT6DBC==:3 + ; positive = write data mode + ; zero = no data transfer + ; negative = read data mode + DEFSTR (BT6PTR,4,35,36) ;data byte ptr + .BT6PTR==:4 + ;the following are returned for timing analysis + DEFSTR (BT6TMR,5,35,36) ;time of request + .BT6TMR==:5 + DEFSTR (BT6TAS,6,35,36) ;TIME DTE ASSIGNED + .BT6TAS==:6 + DEFSTR (BT6THQ,7,35,36) ;time header queued to 11 + .BT6THQ==:7 + DEFSTR (BT6TRD,10,35,36) ;time of -10 done for response header + .BT6TRD==:10 + DEFSTR (BT6TDD,11,35,36) ;time of -10 done for data + .BT6TDD==:11 + DEFSTR (BT6TFR,12,35,36) ;time finished request + .BT6TFR==:12 + +.BTSTA==:16 ;SET STATION POLLING STATUS +.BTSSP==:17 ;SET LINE STARTUP PRIORITY + .BTPRI==:1 ;PRIORITY VALUE +.BTSTP==:20 ;SET STATION POLLING PRIORITY +.BTSDD==:21 ;SEND DDCMP MESSAGE + .BTMSG==:1 ;ADDR OF MESSAGE + .BTLEN==:2 ;BYTE COUNT OF MESSAGE +.BTRDD==:22 ;RECEIVE A MESSAGE FROM DDCMP + .BTSUP==:1 ;STATION CAME UP + .BTSDW==:2 ;STATION WENT DOWN + .BTCMP==:3 ;XMIT COMPLETE + .BTSSF==:4 ;STARTUP FAILED + BT%CTL==:1B0 ;CONTROL MESSAGE +.BTCHN==:23 ;ASSIGN A SOFTWARE INTERRUPT CHANNEL + .BTESI==:1 ;CHANNEL NUMBER + +;CFORK + +CR%MAP==:1B0 ;SET MAP FOR NEW FORK TO POINT TO + ; THIS PROCESS +CR%CAP==:1B1 ;MAKE CAPABILITIES IDENTICAL +CR%ACS==:1B3 ;SET ACS FROM BLOCK +CR%ST==:1B4 ;START PROCESS AT PC +CR%PCV==:777777B35 ;VALUE OF PC + + +;CHFDB + +CF%NUD==:1B0 ;NO UPDATE DIRECTORY +CF%DSP==:777B17 ;FDB DISPLACEMENT +CF%JFN==:777777B35 ;JFN + + + +;CHKAC JSYS DEFINITIONS + +;CHKAC FLAG DEFINITIONS + +CK%JFN==:1B0 ;JFN IS GIVEN AS AN ARGUMENT + +;CHKAC ARGUMENT BLOCK OFFSET VALUES + +.CKAAC==:0 ;ACCESS CODE +.CKALD==:1 ;LOGGED IN USER NUMBER OF USER +.CKACD==:2 ;CONNECTED DIR NUMBER OF USER +.CKAEC==:3 ;ENABLED CAPABILITIES OF USER BEING CHK'D +.CKAUD==:4 ;DIR NUMBER OF DIRECTORY CONTAINING FILE +.CKAPR==:5 ;PROTECTION OF FILE + +;CHKAC ACCESS CODES + +.CKARD==:0 ;READ AN EXISTING FILE +.CKAWT==:1 ;WRITE AN EXISTING FILE +.CKAWR==:1 ; (ANOTHER NAME FOR ABOVE) +.CKAEX==:2 ;EXECUTE AN EXISTING FILE +.CKAAP==:3 ;APPEND TO AN EXISTING FILE +.CKADL==:4 ;GET DIR LISTING OF AN EXISTING FILE +.CKADR==:6 ;READ THE DIRECTORY +.CKAOF==:7 ;OPEN FILES IN DIR (NOT IMPLEMENTED) +.CKACN==:10 ;CONNECT TO A DIR +.CKACF==:11 ;CREATE FILES IN DIR + + +;CLOSF + +CO%NRJ==:1B0 ;NO RELEASE JFN +CO%WCL==:1B1 ;TOPS20AN ;WAIT UNTIL MATCHING CLS IS RECEIVED +CO%JFN==:777777B35 ;JFN + + +;CLZFF + +CZ%NIF==:1B0 ;NO INFERIOR FORK FILES +CZ%NSF==:1B1 ;NO SELF FORK FILES +CZ%NRJ==:1B2 ;NO RELEASE JFN +CZ%NCL==:1B3 ;NO CLOSE FILE +CZ%UNR==:1B4 ;UNRESTRICT +CZ%ARJ==:1B5 ;ALWAYS RELEASE JFN +CZ%ABT==:1B6 ;ABORT +CZ%NUD==:1B7 ;NO UPDATE DIRECTORY +CZ%PRH==:777777B35 ;PROCESS HANDLE + + + +;CNDIR + +CN%CKP==:1B0 ;CHECK PASSWORD ONLY +CN%NOC==:1B1 ;NO CONNECT +CN%JOB==:1B2 ;DOING CONNECT FOR ANOTHER JOB +CN%DIR==:777777B35 ;DIRECTORY NUMBER + +;CNFIG% + +.CFGKL==:4 ;Processor ID for KL. + +.CFINF==:0 ;Return hardware and software information + .CFLEN==:0 ;Base word of every argument block + MSKSTR (CF%WDP,<>,<-1,,0>) ;Words processed mask + MSKSTR (CF%LOB,<>,<0,,-1>) ;Length of block + .CFIPR==:1 ;type of processor + .CFISE==:2 ;serial number of processor + .CFIUC==:3 ;CPU microcode version number + .CFIHO==:4 ;CPU hardware options + CF%50Z==:1B0 ;line power is 50 hertz + CF%CHI==:1B1 ;cache is installed + CF%CHN==:1B2 ;channel bit in APRID + CF%EKL==:1B3 ;this is an extended KL + CF%MOS==:1B4 ;system has a master oscillator + CF%MCA==:1B5 ;system has MCA25 Pager cache + CF%CH1==:1B6 ;cache control bit 1 + CF%CH2==:1B7 ;cache control bit 2 + CF%CI==:1B8 ;system has a CI + .CFIMO==:5 ;CPU microcode options + CF%T20==:1B0 ;TOPS-20 paging implemented + CF%EAD==:1B1 ;microcode handles extended addressing + CF%UCO==1B2 ;non-standard microcode loaded + .CFISO==:6 ;TOPS-20 static software options + CF%CFS==:1B0 ;CFS capability installed + CF%DCN==:1B1 ;DECNET capability installed + CF%ARP==:1B2 ;ARPANET capability installed + .CFIVR==:7 ;TOPS-20 operating system version + .CFILN==:8 ;Maximum length of block + +.CFCIN==:1 ;Return CFS information + .CFNCN==:1 ;The number of CFS nodes up + .CFCDO==:2 ;CFS dynamic options + CF%CFR==:1B0 ;CFS connected to another host at least once + .CFCLN==:3 ;Maximum length of block + +.CFCSE==:2 ;Return serial numbers of CFS nodes + .CFCS1==:1 ;CI node number,,serial number of first host + MSKSTR (CF%CIN,<>,<17,,0>) ;CI node number + MSKSTR (CF%HSN,<>,<0,,-1>) ;host serial number + +.CFCND==:3 ;Return node names of CFS hosts + .CFNND==:0 ;Number of nodes returned,,length of block + MSKSTR (CF%NND,<>,<-1,,0>) ;Number of nodes returned + .CFBP1==:1 ;Byte pointer to ASCIZ node name of first host + +.CFHSC==:4 ;Return node names of HSC hosts + .CFNHN==:0 ;Number of nodes returned,,length of block + MSKSTR (CF%NHN,<>,<-1,,0>) ;Number of nodes returned + .CFHP1==:1 ;Byte pointer to ASCIZ node name of first host + + +;COMND + +;COMND - COMMAND STATE BLOCK + +.CMFLG==:0 ;USER FLAGS,,REPARSE DISPATCH ADDRESS +.CMIOJ==:1 ;INJFN,,OUTJFN +.CMRTY==:2 ;^R BUFFER POINTER +.CMBFP==:3 ;PTR TO TOP OF BUFFER +.CMPTR==:4 ;PTR TO NEXT INPUT TO BE PARSED +.CMCNT==:5 ;COUNT OF SPACE LEFT IN BUFFER AFTER PTR +.CMINC==:6 ;COUNT OF CHARACTERS FOLLOWING PTR +.CMABP==:7 ;ATOM BUFFER POINTER +.CMABC==:10 ;ATOM BUFFER SIZE +.CMGJB==:11 ;ADR OF GTJFN ARG BLOCK + CM%GJB==:777777 ;ADR OF GTJFN ARG BLOCK + +;COMND - FUNCTION DESCRIPTOR BLOCK + +.CMFNP==:0 ;FUNCTION AND POINTER + CM%FNC==:777B8 ;FUNCTION CODE + CM%FFL==:777B17 ;FUNCTION-SPECIFIC FLAGS + CM%LST==:777777 ;LIST POINTER TO OTHER BLOCKS +.CMDAT==:1 ;DATA FOR FUNCTION +.CMHLP==:2 ;HELP TEXT POINTER +.CMDEF==:3 ;DEFAULT STRING POINTER +.CMBRK==:4 ;FIELD BREAK MASK POINTER + +;COMND - FLAGS IN .CMFLG + +CM%ESC==:1B0 ;ESC SEEN +CM%NOP==:1B1 ;NO PARSE +CM%EOC==:1B2 ;END OF COMMAND SEEN +CM%RPT==:1B3 ;REPEAT PARSE NEEDED +CM%SWT==:1B4 ;SWITCH TERMINATED WITH ":" +CM%PFE==:1B5 ;PREVIOUS FIELD ENDED WITH ESC +CM%RAI==:1B6 ;RAISE INPUT +CM%XIF==:1B7 ;EXCLUDE INDIRECT FILES +CM%WKF==:1B8 ;WAKEUP AFTER EACH FIELD + +;FUNCTION BLOCK FLAGS (IN WORD .CMFNP) + +CM%NOC==:1B11 ;SEMI COLON DOES NOT CAUSE COMMENT +CM%NSF==:1B12 ;SUFFIX MAY BE OMITTED IF DESIRED +CM%BRK==:1B13 ;BREAK MASK PRESENT +CM%PO==:1B14 ;PARSE-ONLY +CM%HPP==:1B15 ;HELP POINTER PRESENT +CM%DPP==:1B16 ;DEFAULT POINTER PRESENT +CM%SDH==:1B17 ;SUPPRESS DEFAULT HELP MESSAGE + +;FLAGS FOR CMDIR FUNCTION + +CM%DWC==:1B0 ;DIRECTORY WILD CARDING ALLOWED + +;FLAGS FOR CMTAD FUNCTION + +CM%IDA==:1B0 ;INPUT DATE +CM%ITM==:1B1 ;INPUT TIME +CM%NCI==:1B2 ;NO CONVERT TO INTERNAL + +;FLAGS IN KEYWORD TABLE (FIRST WORD OF STRING IF B0-6 = 0) + +CM%INV==:1B35 ;INVISIBLE +CM%NOR==:1B34 ;NO-RECOGNIZE (PLACEHOLDER) +CM%ABR==:1B33 ;ABBREVIATION FOR ANOTHER ENTRY +CM%FW==:1B7 ;FLAG WORD (MUST ALWAYS BE ON) + + +;COMND - FUNCTION CODES + +.CMKEY==:0 ;KEYWORD +.CMNUM==:1 ;NUMBER +.CMNOI==:2 ;NOISE WORD +.CMSWI==:3 ;SWITCH +.CMIFI==:4 ;INPUT FILE +.CMOFI==:5 ;OUTPUT FILE +.CMFIL==:6 ;GENERAL FILESPEC +.CMFLD==:7 ;ARBITRARY FIELD +.CMCFM==:10 ;CONFIRM +.CMDIR==:11 ;DIRECTORY NAME +.CMUSR==:12 ;USER NAME +.CMCMA==:13 ;COMMA +.CMINI==:14 ;INIT LINE +.CMFLT==:15 ;FLOATING POINT NUMBER +.CMDEV==:16 ;DEVICE NAME +.CMTXT==:17 ;TEXT TO ACTION CHAR +.CMTAD==:20 ;TIME AND DATE +.CMQST==:21 ;QUOTED STRING +.CMUQS==:22 ;UNQUOTED STRING +.CMTOK==:23 ;TOKEN +.CMNUX==:24 ;NUMBER DELIMITED BY NON-DIGIT +.CMACT==:25 ;ACCOUNT +.CMNOD==:26 ;NODE NAME + +;DEFINE BREAK MASKS + + BRINI. ;INITIALIZE BREAK MASK FOR STANDARD FIELD + BRKCH. (0,37) ;ALL CONTROL CHARACTERS + BRKCH. (40,54) ;SPACE THROUGH COMMA + BRKCH. (56,57) ;DOT AND SLASH + BRKCH. (72,77) ;COLON THROUGH QUESTION MARK + BRKCH. (100) ;ATSIGN + BRKCH. (133,140) ;OPEN BRACKET THROUGH ACCENT GRAVE + BRKCH. (173,177) ;CLOSE BRACKET THROUGH TILDE + +FLDB0.==W0. ;STANDARD FIELD BREAK MASK +FLDB1.==W1. +FLDB2.==W2. +FLDB3.==W3. + +;KEYWORD BREAK SET. SAME AS STANDARD FIELD FOR NOW + +KEYB0.==FLDB0. +KEYB1.==FLDB1. +KEYB2.==FLDB2. +KEYB3.==FLDB3. + +;USERNAME BREAK SET. BREAKS ON EVERYTHING EXCEPT DOT AND ALPHABETICS. + + UNBRK. "." ;MODIFY FIELD BREAK SET INTO USER BREAK SET. DON'T BREAK ON DOT + UNBRK. "%" ;DON'T BREAK ON PERCENT + UNBRK. "*" ;STAR + UNBRK. "$" ;ALLOW DOLLARSIGN! (I NEVER KNEW THAT BEFORE) + UNBRK. "_" ;ALLOW UNDERSCORE IN ATOM + UNBRK. "V"-100 ;[7412] ^V is a no-no in user name + +USRB0.==W0. +USRB1.==W1. +USRB2.==W2. +USRB3.==W3. + +;ACCOUNT MASK CURRENTLY THE SAME AS USER MASK (+ ^V) + + BRKCH. "V"-100 ;But include ^V this time + +ACTB0.==W0. ;[7412] +ACTB1.==W1. ;[7412] +ACTB2.==W2. ;[7412] +ACTB3.==W3. ;[7412] + +;FILESPEC FIELD - FILESPEC PUNCTUATION CHARACTERS +;ARE LEGAL ( :, <, >, ., ;) + + UNBRK. ":" ;MODIFY USERNAME BREAK SET INTO FILE BREAK SET. DON'T BREAK ON THESE + UNBRK. "<" + UNBRK. ">" + UNBRK. "[" + UNBRK. "]" + UNBRK. ";" + +FILB0.==W0. +FILB1.==W1. +FILB2.==W2. +FILB3.==W3. + +;DIRECTORY FIELD - DIRECTORY PUNCTUATION CHARACTERS + + UNBRK. "V"-100 ;[7412] Don't allow ^V + +DIRB0.==W0. ;[7412] +DIRB1.==W1. ;[7412] +DIRB2.==W2. ;[7412] +DIRB3.==W3. ;[7412] + +;READ DEVICE NAME + +BRINI. FLDB0.,FLDB1.,FLDB2.,FLDB3. ;VERY SIMILAR TO STANDARD FIELD +UNBRK. "$" ;ALLOW DOLLARSIGN IN DEVICE NAME (LIKE FILESPEC) +UNBRK. "_" ;UNDERSCORE TOO + +DEVB0.==W0. +DEVB1.==W1. +DEVB2.==W2. +DEVB3.==W3. + +;READ TO END OF LINE + + BRINI. ;INITIALIZE END OF LINE BREAK SET + BRKCH. .CHLFD ;BREAK ON LINEFEED + BRKCH. .CHCRT ;AND CARRIAGE RETURN + BRKCH. .CHFFD ;FORMFEED IS VALID END-OF-LINE + +PURGE .CHLFD,.CHCRT,.CHFFD ;DEFINED IN MACSYM + +EOLB0.==W0. +EOLB1.==W1. +EOLB2.==W2. +EOLB3.==W3. + + + + +;CRDIR + +CD%LEN==:1B0 ;FLAGS ,, LENGTH OF CRDIR BLOCK +CD%PSW==:1B1 ;SET PASSWORD STRING +CD%LIQ==:1B2 ;SET LOGGED IN QUOTA +CD%PRV==:1B3 ;SET PRIVILEGES +CD%MOD==:1B4 ;SET MODE BITS +CD%LOQ==:1B5 ;SET LOGGED OUT QUOTA +CD%NUM==:1B6 ;SET DIRECTORY NUMBER FROM PARAM BLK +CD%FPT==:1B7 ;SET DEFAULT FILE PROTECTION +CD%DPT==:1B8 ;SET DIRECTORY PROTECTION +CD%RET==:1B9 ;SET DEFAULT RETENTION COUNT +CD%LLD==:1B10 ;SET LAST LOGIN DATE +CD%UGP==:1B11 ;SET USER GROUPS +CD%DGP==:1B12 ;SET DIRECTORY GROUPS +CD%SDQ==:1B13 ;SET SUBDIRECTORY QUOTA +CD%CUG==:1B14 ;SET CREATABLE USER GROUPS +CD%DAC==:1B15 ;SET DEFAULT ACCOUNT +CD%PPN==:1B16 ;SET PROJECT-PROGRAMMER NUMBER +CD%DEL==:1B17 ;DELETE DIRECTORY +CD%APB==:777777B35 ;ADDRESS OF PARAMETER BLOCK +.CDLEN==:0 ;LENGTH OF ARGUMENT BLOCK + CD%NSQ==:1B0 ;DO NOT UPDATE QUOTAS OF SUPERIOR DIR + CD%NCE==:1B1 ;DO NOT CHANGE PARAMETERS OF EXISTING DIRS + CD%NED==:1B2 ; Set def online exp from .CDDNE + CD%FED==:1B3 ; Set def offline exp from .CDDFE + CD%RNA==:1B4 ;~6.0 set remote alias list from @.CDDRN + CD%PEN==:1B5 ; Set password encryption version from .CDPEV + ; And encryption date from .CDPDT + CD%PED==:1B6 ; Set password expiration date from .CDPED + CD%PMU==:1B7 ; Set max password use count from .CDPMU +.CDPSW==:1 ;POINTER TO PASSWORD STRING +.CDLIQ==:2 ;LOGGED IN QUOTA +.CDPRV==:3 ;PRIVILEGE WORD +.CDMOD==:4 ;MODE WORD + CD%DIR==:1B0 ;DIRECTORY NAME FOR CNDIR ONLY (FILES ONLY) + CD%ANA==:1B1 ;ALPHANUMERIC ACCOUNTS + CD%RLM==:1B2 ;REPEAT LOGIN MESSAGES + CD%DAR==:1B7 ; Archived online expired files +.CDLOQ==:5 ;LOGGED OUT QUOTA +.CDNUM==:6 ;DIRECTORY NUMBER +.CDFPT==:7 ;DEFAULT FILE PROTECTION +.CDDPT==:10 ;DIRECTORY PROTECTION +.CDRET==:11 ;DEFAULT RETENTION COUNT +.CDLLD==:12 ;LAST LOGIN DATE +.CDUGP==:13 ;USER GROUPS +.CDDGP==:14 ;DIRECTORY GROUPS +.CDSDQ==:15 ;MAXIMUM NUMBER OF SUBDIRECTORIES +.CDCUG==:16 ;POINTER TO CREATABLE USER GROUP LIST +.CDDAC==:17 ;POINTER TO DEFAULT ACCOUNT +.CDDNE==:20 ; Default online expiration +.CDDFE==:21 ; Default offline expiration +.CDDRN==:22 ;~6.0 Pointer to remote alias list +;(More) + CRDMAX==:100 ;~6.0 Maximum length of remote alias list +;offsets in remote alias list entry + .CDSIZ==:0 ;~6.0 flags,,length + ;flags for this list entry - NOTE - only CD%PAS & CD%ACC are compatible + CD%NEW==:1B0 ;~6.0 this is a new alias + CD%KIL==:1B1 ;~6.0 delete the remote alias with this node + CD%PAS==:1B2 ;~6.0 change password for an existing remote alias + CD%ACC==:1B3 ;~6.0 change account for an existing remote alias + .CDNXT==:1 ;~6.0 next entry in list (0 if end of list) + .CDNOD==:2 ;~6.0 node byte pointer (ASCIZ) + .CDUSR==:3 ;~6.0 user byte pointer (ASCIZ) + .CDPAS==:4 ;~6.0 password byte pointer (ASCIZ) + .CDACC==:5 ;~6.0 account byte pointer (ASCIZ) + + ;offsets in user free space block + .CDRLN==:0 ;~6.0 used words,,size of free space + .CDLST==:1 ;~6.0 the first list entry + +.CDPEV==:23 ;Password encryption version +.CDPDT==:24 ;Password encryption date +.CDPED==:25 ;Expiration date of password +.CDPMU==:26 ;Maximum use count of password +.CDPPN==:27 ;TOPS-10 PPN (for compatability) + + +;CRJOB + +CJ%LOG==:1B0 ;ATTEMPT TO LOG IN THE NEW JOB +CJ%NAM==:1B1 ;USE NAME AND PSWD IN ARG BLK +CJ%ACT==:3B3 ;WHERE TO GET ACCOUNT + .CJUCA==:0 ;USE CURRENT ACCT OF CREATOR + .CJUAA==:1 ;USE ACCOUNT IN ARG BLOCK + .CJUDA==:2 ;USE DEFAULT ACCOUNT OF NEW USER +CJ%ETF==:1B4 ;PUT EXEC IN TOP FORK +CJ%FIL==:1B5 ;GET FILE IN ARG BLOCK +CJ%ACS==:1B6 ;LOAD THE ACS FROM ARG BLOCK +CJ%OWN==:1B7 ;RETAIN OWNERSHIP OF NEW JOB +CJ%WTA==:1B8 ;NEW JOB WAITS TIL ATTACHED +CJ%NPW==:1B9 ;NO PASSWORD CHECK AT LOGIN TIME +CJ%NUD==:1B10 ;NO UPDATE OF LAST-LOGIN DATE +CJ%SPJ==:1B11 ;DO SPJFN IN NEW JOB FROM ARG BLK +CJ%CAP==:1B12 ;PASS ENABLED CAPABILITIES AS ALLOWED +CJ%CAM==:1B13 ;CAPABILITY MASK AT LOGIN +CJ%SLO==:1B14 ;SIGNAL (IPCF) AT LOGOUT TIME +CJ%DSN==:1B17 ;DISOWN EXISTING JOB # IN 3 + +.CJNAM==:0 ;NAME STRING POINTER +.CJPSW==:1 ;PASSWORD STRING POINTER +.CJACT==:2 ;ACCOUNT DESIGNATOR/STRING +.CJFIL==:3 ;FILE NAME STRING POINTER +.CJSFV==:4 ;SFRKV OFFSET +.CJTTY==:5 ;TTY DESIGNATOR, OR NULL DESIGNATOR +.CJTIM==:6 ;TIME LIMIT +.CJACS==:7 ;ADDRESS OF 16. WORDS OF AC'S +.CJEXF==:10 ;EXEC FLAGS, FOR EXEC AC1 +.CJPRI==:11 ;PRIMARY JFN'S FOR SPJFN IN NEW JOB +.CJCPU==:12 ;CPU LIMIT (0 IF NONE) +.CJCAM==:13 ;CAPABILITY MASK TO APPLY TO LOGIN +.CJSLO==:14 ;PID TO SIGNAL AT LOGOUT TIME + +CR%PRA==:2545 ;MAGIC # FOR EXEC/CRJOB LINKAGE VIA PRARG + + +;CRLNM + +.CLNJ1==:0 ;DELETE 1 LOGICAL NAME FROM JOB +.CLNS1==:1 ;DELETE 1 LOGICAL NAME FROM SYSTEM +.CLNJA==:2 ;DELETE ALL JOB WIDE LOGICAL NAMES +.CLNSA==:3 ;DELETE ALL SYSTEM LOGICAL NAMES +.CLNJB==:4 ;CREATE A JOB WIDE LOGICAL NAME +.CLNSY==:5 ;CREATE A SYSTEM WIDE LOGICAL NAME + + +;CTSOP% + +;CTSOP% Function Codes +.CTCAL==:1 ;Canonical Operation Call +.CTLNK==:2 ;Link Canonical Library +.CTOVL==:3 ;Overload Canonical Library +.CTDLK==:4 ;De-Link Canonical Library +.CTGDB==:5 ;Get CTS Terminal Data Base +.CTBTF==:6 ;Bind Terminal and Fork +.CTUTF==:7 ;Un-Bind Terminal and Fork +.CTGBT==:10 ;Get Bound Terminals +.CTSIC==:11 ;Set Interrupt Channel +.CTCIC==:12 ;Clear Interrupt Channel +.CTROB==:13 ;Read from CTS Sequence Output Buffer +.CTGOC==:14 ;Get CTS Sequence Output Buffer Count +.CTDOE==:15 ;Dismiss until CTS Sequence Output Buffer Empty + +;Offsets into the Argument Block +.CTHDR==:0 ;Header Word: Flags,,Length (including header) + CT%LNM==:1B0 ;Library Name Given +.CTIOJ==:1 ;I/O Designator +.CTDBL==:1 ;Length of Data Block +.CTCHN==:1 ;Channel Number +.CTCOC==:2 ;Canonical Operation Code +.CTLNM==:2 ;Byte Pointer to Library Name +.CTCDB==:2 ;Address of CTS Descriptor Block +.CTFHN==:2 ;Relative Fork Handle +.CTDSD==:2 ;Destination Designator +.CTRCT==:2 ;Returned Count +.CTDBA==:3 ;Address of Data Block +.CTBCT==:3 ;Byte Count +.CTCNT==:4 ;Counts (Possible Number,,Actual Number) +.CTTBT==:4 ;Terminating Byte + +;CTS Descriptor Block +.CBHDR==:0 ;Header Word: Flags,,Length (including header) +.CBPPN==:1 ;Process Page Number +.CBNPG==:2 ;Number of Pages +.CBLID==:3 ;Two Word Lock ID to be Used by Fork + +;CTS Terminal Data Base +.TDLOK==:0 ;Lock Word (-1 if free) +.TDLID==:1 ;Two Word Lock Id +.TDNST==:3 ;Nesting Count +.TDLTM==:4 ;Time Data Base was Last Locked +.TDIOJ==:5 ;I/O Designator for This Terminal +.TDIMG==:6 ;Address of Screen Image + +;DELDF + +DD%DTF==:1B0 ;DELETE TEMPORARY FILES +DD%DNF==:1B1 ;DELETE NONEXISTENT FILES +DD%RST==:1B2 ;REBUILD THE SYMBOL TABLE +DD%CHK==:1B3 ;CHECK THE DIR FOR CONSISTENCY ONLY + + +;DELF + +DF%NRJ==:1B0 ;DON'T RELEASE JFN +DF%EXP==:1B1 ;EXPUNGE CONTENTS +DF%FGT==:1B2 ;FORGET (EXPUNGE W/O DEASSIGNING ADDRESSES) +DF%DIR==:1B3 ;DELETE, FORGET, AND EXPUNGE A DIRECTORY + ; FILE. (ONLY IF ^E-CREATE KILL FAILED) +DF%ARC==:1B4 ; Delete of archive status file allowed +DF%CNO==:1B5 ; Delete only contents of file + ; Immediate expunge implied + +DF%JFN==777777B35 ;JFN + + +;DIAG JSYS DEFINITIONS + +DG%ADT==:7B2 ;ADDRESS TYPE FIELD +DG%DVC==:177B9 ;DEVICE CODE FIELD + .DGRH0==:130 ;MBC0 + .DGRH7==:137 ;MBC7 +DG%UNI==:77B29 ;UNIT NUMBER +DG%SUN==:77B35 ;SUBUNIT NUMBER + +;DIAG JSYS FUNCTION CODES + +.DGACU==:1 ;ASSIGN DEVICE +.DGACH==:2 ;ASSIGN CONTROLLER AND ALL DEVICES +.DGRCH==:3 ;RELEASE DEVICE(S) +.DGSCP==:4 ;SETUP CHANNEL PROGRAM +.DGRCP==:5 ;RELEASE CHANNEL PROGRAM +.DGGCS==:6 ;GET CHANNEL STATUS + +;DIAG NEW CONTROL FUNCTIONS + +.DGGEM==:100 ;LEAVE LARGE HOLE FOR MORE RH20 FUNCTIONS + ;GET MEM (FOR TGHA) +.DGREM==:101 ;RELEASE MEM (FOR TGHA) +.DGPDL==:102 ;UNIT ONLINE +.DGCSL==:103 ;DO 2080 CONSOLE FUNCTIONS + .DGSPC==:0 ;PSEUDO-CONSOLE + .DGRDE==:1 ;READ EMM + .DGIEM==:2 ;ENABLE/DISABLE INTERRUPT FOR EMM + .DGRTE==:3 ;WRITE EMM + .DGDXX==:4 ;SET DNxx line +.DGUCD==:104 ;LOAD/DUMP KLIPA U-CODE + .DGRIP==:0 ;DEFAULT KLIPA U-CODE LOAD IN PROGRESS + .DGRLC==:1 ;DEFAULT KLIPA U-CODE LOAD COMPLETE + .DGDIP==:2 ;DEFAULT KLIPA U-CODE DUMP IN PROGRESS + .DGDMC==:3 ;DEFAULT KLIPA U-CODE DUMP COMPLETE +.DGRST==:105 ;RESET REMOTE SYSTEM +.DGSTR==:106 ;START REMOTE SYSTEM +.DGCTR==:107 ;PERFORMANCE COUNTER FUNCTIONS + .DGGTC==:0 ;GET COUNTERS + .DGGVC==:1 ;RELINQUISH COUNTERS + .DGPTC==:2 ;POINT AND CLEAR COUNTERS + .DGRDC==:3 ;READ COUNTERS + .DGPVL==:2 ;MONOTONIC COUNTER,,OWNER'S FORK NUMBER + .DGPND==:3 ;KLIPA U-CODE VERSION + .DGP0A==:4 ;PORT 0 ACKS + .DGP0N==:5 ;PORT 0 NAKS + .DGP0R==:6 ;PORT 0 NO RESPONSES + .DGP1A==:7 ;PORT 1 ACKS + .DGP1N==:10 ;PORT 1 NAKS + .DGP1R==:11 ;PORT 1 NO RESPONSES + .DGPDD==:12 ;DATAGRAMS DISCARDED + .DGPXC==:13 ;PACKETS TRANSMITTED + .DGPRC==:14 ;PACKETS RECEIVED + .DGPTG==:15 ;TARGET NODE + .DGCRC==:16 ;PACKETS RECEIVED WITH CRC ERRORS + .DGEW1==:17 ;ERROR WORD 1 + .DGEW2==:20 ;ERROR WORD 2 + .DGEW3==:21 ;ERROR WORD 3 + .DGEW4==:22 ;ERROR WORD 4 + .DGEW5==:23 ;ERROR WORD 5 + .DGEW6==:24 ;ERROR WORD 6 + +.DGRSC==:110 ;read SYSERR counter + .DGCNT==:1 ;Where the count is +.DGENB==:111 ;ENABLE .DGACH FOR A CI PORT +.DGWMD==:112 ;WRITE MAINTENANCE DATA +.DGRMD==:113 ;READ MAINTENANCE DATA + +;[7.1081] DOB% + +;DOB% Argument block used for all functions + + .DBCNT==:0 ;Count of words in block (including this word) + .DBFNC==:1 ;Function + +;DOB% Function Codes and flags + +.DBENA==:0 ;Enable DOB + +.DBDIS==:1 ;Disable DOB + +.DBSBG==:2 ;Set configuration word for a BUG + .DBNAM==:2 ;Name of BUG in SIXBIT + .DBCFG==:3 ;Configuration word + DB%ENA==:1B0 ;Enable specified bits + DB%REQ==:1B1 ;Dump on this BUG is requested + DB%IGN==:1B2 ;Ignore timeout for this BUG + DB%DON==:1B3 ;Bug has been dumped already - set by monitor + DB%NND==:1B9 ;Bug is not normally dumpable - set by monitor + + +.DBPAR==:3 ;Enable/Disable DOB parameters + .DBFLG==2 ;Flags word + DB%INF==:1B4 ;Dump on all BUGINFs + DB%CHK==:1B5 ;Dump on all BUGCHKs + +.DBIMD==:4 ;Take an immediate dump (FORCED BUGINF) + .DBSTR==2 ;Pointer to optional 7-Bit ASCIZ structure name + +.DBSTA==:5 ;Return status of DOB + .DBSTS==:2 ;Status flags (DOBSTS) + DB%DOB==:1B0 ;DOB is enabled (in DOBSTS, must be 1B0) + DB%DIP==:1B6 ;Dump is in progress + DB%ERR==:1B7 ;Dump in progress had an error + DB%SML==:1B8 ;DUMP.EXE for dump in progress is too small + + .DBNUM==:3 ;Number of BUGs enabled,,Number returned + .DBTOV==:4 ;Timeout value in seconds + ;Following two words repeated for each BUG + .DBBNM==:5 ;SIXBIT BUG name + .DBBCF==:6 ;SIXBIT BUG configuration word + +.DBTIM==:6 ;Set DOB timeout + .DBTVS==2 ;[7.1123] Timeout value in seconds + +;DSKAS + +DA%DEA==:1B0 ;DEASSIGN DISK ADDRESS +DA%ASF==:1B1 ;ASSIGN FREE PAGE +DA%CNV==:1B2 ;CONVERT SOFTWARE TO HARDWARE ADDRESS +DA%HWA==:1B3 ;HARDWARE ADDRESS GIVEN +DA%INI==:1B4 ;INITIALIZE THE BIT TABLE +DA%WRT==:1B5 ;WRITE THE BIT TABLE FILE +DA%AIN==:1B6 ;ABORT INITIALIZATION OF BITTABLE FILE +DA%ADR==:777777B35 ;DISK ADDRESS + + + +;DVCHR, DEVUNT AND DVCH1 BIT DEFINITIONS + +DV%OUT==:1B0 ;DEVICE CAN DO OUTPUT +DV%IN==:1B1 ;DEVICE CAN DO INPUT +DV%DIR==:1B2 ;DEVICE HAS A DIRECTORY +DV%AS==:1B3 ;DEVICE IS ASSIGNABLE +DV%MDD==:1B4 ;DEVICE IS A MULTIPLE DIRECTORY DEVICE +DV%AV==:1B5 ;DEVICE IS AVAILABLE TO THIS JOB +DV%ASN==:1B6 ;DEVICE IS ASSIGNED BY ASND +DV%MDV==:1B7 ;RESERVED (HISTORICAL) +DV%MNT==:1B8 ;DEVICE IS MOUNTED +DV%TYP==:777B17 ;DEVICE TYPE FIELD +DV%PSD==:1B18 ;PSEUDO DEVICE +DV%UNT==:77777 ;UNIT MASK +DV%MOD==:177777B35 ;DEVICE DATA MODE +DV%M0==:1B35 ;DEVICE CAN BE OPENED IN MODE 0 +DV%M1==:1B34 ;DEVICE CAN BE OPENED IN MODE 1 +DV%M2==:1B33 ;DEVICE CAN BE OPENED IN MODE 2 +DV%M3==:1B32 ;DEVICE CAN BE OPENED IN MODE 3 +DV%M4==:1B31 ;DEVICE CAN BE OPENED IN MODE 4 +DV%M5==:1B30 ;DEVICE CAN BE OPENED IN MODE 5 +DV%M6==:1B29 ;DEVICE CAN BE OPENED IN MODE 6 +DV%M7==:1B28 ;DEVICE CAN BE OPENED IN MODE 7 +DV%M10==:1B27 ;DEVICE CAN BE OPENED IN MODE 10 +DV%M11==:1B26 ;DEVICE CAN BE OPENED IN MODE 11 +DV%M12==:1B25 ;DEVICE CAN BE OPENED IN MODE 12 +DV%M13==:1B24 ;DEVICE CAN BE OPENED IN MODE 13 +DV%M14==:1B23 ;DEVICE CAN BE OPENED IN MODE 14 +DV%M15==:1B22 ;DEVICE CAN BE OPENED IN MODE 15 +DV%M16==:1B21 ;DEVICE CAN BE OPENED IN MODE 16 +DV%M17==:1B20 ;DEVICE CAN BE OPENED IN MODE 17 +D1%SPL==:1B0 ;DEVICE IS SPOOLED +D1%ALC==:1B1 ;DEVICE IS UNDER CONTROL OF ALLOCATOR +D1%VVL==:1B2 ;VOLUME VALID +D1%NIU==:1B3 ;DEVICE SLOT IS NOT IN USE (FOR STRUCTURES + ; NOT YET MOUNTED) +D1%INI==:1B4 ;DEVICE IS BEING INITIALIZED (STRUCTURE + ; IS AVAILABLE ONLY TO THE FORK WHOSE NUMBER + ; IS STORED IN SDBSTS) +D1%MTO==:1B5 ;DEVICE CAN DO MTOPR WITHOUT JFN OPENED + + + +;DEVICE TYPE DEFINITIONS + +.DVDSK==:0 ;DISK +.DVMTA==:2 ;MAGTAPE +.DVDTA==:3 ;DECTAPE +.DVPTR==:4 ;PAPER TAPE READER +.DVPTP==:5 ;PAPER TAPE PUNCH +.DVDSP==:6 ;DISPLAY +.DVLPT==:7 ;LINE PRINTER +.DVCDR==:10 ;CARD READER +.DVFE==:11 ;FRONT END DEVICE +.DVTTY==:12 ;TERMINAL +.DVPTY==:13 ;PTY +.DVNUL==:15 ;NULL DEVICE +.DVNET==:16 ;ARPA NETWORK +.DVPLT==:17 ;PLOTTER +.DVCDP==:21 ;CARD PUNCH +.DVDCN==:22 ;DECNET ACTIVE COMPONENT +.DVSRV==:23 ;DECENT PASSIVE COMPONENT +.DVATS==:24 ;APPLICATIONS TERMINAL SERVICE +.DVADS==:25 ;AYDIN DISPLAY + + +;DSKOP + +DOP%SA==:1B0 ;SOFTWARE ADDRESS +DOP%AT==:3B1 ;ADDRESS TYPE FIELD + .DOPPU==:1 ;PHYSICAL CHANNEL AND UNIT + DOP%CN==:37B6 ;CHANNEL NUMBER (OLD FORMAT) + DOP%UN==:77B12 ;UNIT NUMBER (OLD FORMAT) + DOP%UA==:37777777 ;UNIT ADDRESS + .DOPSR==:2 ;STRUCTURE AND RELATIVE ADDRESS + DOP%SN==:777B10 ;STRUCTURE NUMBER + DOP%RA==:177777777 ;RELATIVE ADDRESS + DOP%C2==:7777B11 ;CHANNEL NUMBER (NEW FORMAT) + DOP%K2==:7777B23 ;CONTROLLER NUMBER (NEW FORMAT) + DOP%U2==:7777B35 ;UNIT NUMBER (NEW FORMAT) +DOP%NF==:1B9 ;USE NEW FORMAT FOR CHANNEL, UNIT NUMBERS +DOP%EO==:1B10 ;ERROR IF UNIT OFFLINE +DOP%IL==:1B11 ;INHIBIT ERROR LOGGING +DOP%IR==:1B12 ;INHIBIT ERROR RECOVERY +DOP%PS==:1B13 ;PHYSICAL SECTOR ADDRESSING +DOP%WR==:1B14 ;WRITE +DOP%CT==:777777B35 ;WORD COUNT + + +;DUMPI/DUMPO + +DM%NWT==:1B0 ;NO WAIT FOR COMPLETION +DM%FIN==:1B1 ;FINISH PREVIOUS REQUEST + ;***NOT INPLEMENTED YET*** +DM%PTR==:777777B35 ;POINTER TO COMMAND LIST + + + +;DYNLB% + +.DYLNK==:1 ;Link Dynamic Library +.DYOVL==:2 ;Overload Dynamic Library +.DYDLK==:3 ;De-Link Dynamic Library +.DYLCL==:4 ;Link Canonical Library + +;Flags for DYNLB% +DY%IML==:1B0 ;Ignore Any Previously Mapped Library + +;Library Descriptor Block +.LBHDR==:0 ;Header Word: Flags,,Length (including header) + LB%CTS==:1B0 ;Library is a CTS Library +.LBTVA==:1 ;Address of Transfer Vector +.LBCDB==:2 ;Address of Canonical Descriptor Block + +;DEFINE DECNET DISCONNECT CODES. THESE ARE STIPULATED BY THE NSP SPEC +;AND MAY HAVE MEANININGS NOT IMPLIED BY THE COMMENTS + +.DCX0==:0 ;REJECT OR DISCONNECT BY OBJECT +.DCX1==:1 ;RESOURCE ALLOCATION FAILURE +.DCX2==:2 ;DESTINATION NODE DOES NOT EXIST +.DCX3==:3 ;REMOTE NODE SHUTTING DOWN +.DCX4==:4 ;DESTINATION PROCESS DOES NOT EXIST +.DCX5==:5 ;INVALID PROCESS NAME FIELD +.DCX6==:6 ;OBJECT IS BUSY +.DCX7==:7 ;UNSPECIFIED ERROR +.DCX8==:^D8 ;ABORT BY MANAGEMENT +.DCX9==:^D9 ;ABORT BY OBJECT +.DCX10==:^D10 ;INVALID NODE NAME +.DCX11==:^D11 ;LOCAL NODE SHUT +.DCX21==:^D21 ;CI WITH ILLEGAL DESTINATION ADDRESS +.DCX22==:^D22 ;CC WITH ILLEGAL DESTINATION ADDRESS +.DCX23==:^D23 ;CI OR CC WITH ZERO SOURCE ADDRESS +.DCX24==:^D24 ;FLOW CONTROL VIOLATION +.DCX32==:^D32 ;TOO MANY CONNECTIONS TO NODE +.DCX33==:^D33 ;TOO MANY CONNECTIONS TO DEST. PROCESS +.DCX34==:^D34 ;ACCESS NOT PERMITTED +.DCX35==:^D35 ;LOGICAL LINK SERVICES MISMATCH +.DCX36==:^D36 ;INVALID ACCOUNT +.DCX37==:^D37 ;SEGSIZE TOO SMALL +.DCX38==:^D38 ;NO RESPONSE FROM DESTINATION PROCESS +.DCX39==:^D39 ;NODE UNREACHABLE +.DCX40==:^D40 ;LINK ABORTED DUE TO DATA LOSS +.DCX41==:^D41 ;DESTINATION PROCESS DOES NOT EXIST +.DCX42==:^D42 ;CONFIRMATION OF DI +.DCX43==:^D43 ;IMAGE DATA FIELD TOO LONG + + +;EFACT - FACT FILE ENTRY DEFINITIONS + +.EFHDR==:0 ;HEADER WORD + EF%COD==:777B8 ;ENTRY TYPE CODE + EF%JOB==:777B17 ;JOB NUMBER + EF%LIN==:7777B29 ;LINE NUMBER + EF%SIZ==:77B35 ;ENTRY SIZE +.EFUSR==:1 ;USER NUMBER WORD +.EFTAD==:2 ;TIME AND DATE OF ENTRY + +; FACT FILE ENTRY TYPE CODES + +.EFLGI==:501 ;LOGIN +.EFLGO==:141 ;LOGOUT +.EFCAC==:502 ;CHANGE ACCOUNT +.EFATT==:142 ;CONSOLE ATTACH +.EFDET==:143 ;CONSOLE DETACH +.EFCHK==:201 ;CHECKPOINT +.EFSDU==:540 ;START DISK-UTILIZATION ENTRIES +.EFDSK==:601 ;DISK SPACE UTILIZATION +.EFTIM==:741 ;TIME SET +.EFRES==:740 ;SYSTEM RESTARTED +.EFLPT==:401 ;LINE PRINTER USAGE +.EFCDR==:402 ;CARD READER USAGE + + +;ENQ/DEQ BIT DEFINITIONS AND FUNCTION CODES + +;FUNCTION CODES + +.ENQBL==:0 ;ENQ BLOCK OPTION +.ENQAA==:1 ;ENQ ALLOCATE ONLY IF AVAILABLE +.ENQSI==:2 ;ENQ SOFTWARE INTERRUPT WHEN LOCKED +.ENQMA==:3 ;ENQ MODIFY ACCESS +.ENECL==:4 ;[7.1072] Enable cluster-wide functionality +.DEQDR==:0 ;DEQ RESOURCE +.DEQDA==:1 ;DEQ ALL RESOURCES OF THIS FORK +.DEQID==:2 ;DEQ THIS ID NUMBER +.ENQCS==:0 ;ENQC STATUS +.ENQCG==:1 ;ENQC GET ENQ/DEQ QUOTA FOR A JOB +.ENQCC==:2 ;ENQC CHANGE ENQ/DEQ QUOTA FOR A JOB +.ENQCD==:3 ;ENQC DUMP LOCKS AND QUEUE ENTRIES + + + +;BIT DEFINITIONS + +EN%SHR==:1B0 ;SHARABLE REQUEST +EN%BLN==:1B1 ;BYPASS LEVEL NUMBER +EN%NST==:1B2 ;ALLOW NESTING +EN%LTL==:1B3 ;LONG TERM LOCK +EN%LVL==:777B17 ;LEVEL NUMBER +EN%JOB==:777777B35 ;JOB NUMBER +EN%QCE==:1B0 ;ERROR CODE IN RH OF STATUS WORD +EN%QCL==:1B0 ;LOCK DUMP (.ENQCD ONLY) +EN%QCO==:1B1 ;THIS FORK OWNS THE LOCK +EN%QCQ==:1B2 ;THIS FORK IS IN THE QUEUE FOR THIS LOCK +EN%QCT==:1B2 ;LOCK CONTAINS A TEXT STRING +EN%QCX==:1B3 ;THE LOCK IS LOCKED EXCLUSIVELY +EN%QCB==:1B4 ;USER IS BLOCKED FOR LOCK +EN%QCC==:1B5 ;[7.1072] This is a cluster-wide lock (EN.CLL set) +EN%QCN==:1B6 ;[7.1072] No vote require for lock (EN.NOV set) +EN%QCS==:1B7 ;[7.1072] Scheduling required on lock (EN.SDO set) + +;ENQ/DEQ ARGUMENT BLOCK DATA STRUCTURE + +.ENQLN==:0 ;# OF LOCKS ,, LENGTH OF ARGUMENT BLOCK + .ENHLN==:77B5 ;LENGTH OF HEADER AREA + .ENNLK==:7777B17 ;NUMBER OF LOCKS + .ENALN==:777777B35 ;LENGTH OF ARGUMENT BLOCK +.ENQID==:1 ;PSI CHANNEL # ,, REQUEST ID +.ENQLV==:2 ;FLAGS & LEVEL NUMBER ,, JFN, -1, -2, OR -3 +.ENQUC==:3 ;STRING POINTER OR USER CODE +.ENQRS==:4 ;# OF RESOURCES IN POOL ,, # OF RESOURCES WANTED +.ENQMS==:5 ;ADDRESS OF RESOURCE BLOCK + + + +;ENQC DUMP DATA STRUCTURE + +.ENQDF==:0 ;FLAGS + LEVEL # ,, OFN, 400000+JOB #, -2, OR -3 + ;OR: FLAGS + PSI # ,, JOB # OF Q-ENTRY CREATOR + +.ENQDR==:1 ;TOTAL RESOURCES IN POOL ,, RESOURCES REMAINING +.ENQDT==:2 ;TIME STAMP OF LAST REQUEST LOCKED +.ENQDC==:3 ;USER CODE OF LOCK OR START OF TEXT STRING + +.ENQDI==:1 ;GROUP # OR # REQUESTED ,, ENQ ID + + +;FLOUT/DFOUT +;FORMAT CONTROL WORD + +FL%SGN==:3B1 ;FIRST FIELD SIGN CONTROL + .FLDIG==:0 ;DIGIT + .FLSPC==:1 ;SPACE + .FLPLS==:2 ;PLUS SIGN + .FLSPA==:3 ;SPACE +FL%JUS==:3B3 ;FIRST FIELD JUSTIFICATION CONTROL + .FLLSP==:0 ;LEADING SPACES + .FLLZR==:1 ;LEADING ZEROS + .FLLAS==:2 ;LEADING ASTERISKS + .FLTSP==:3 ;TRAILING SPACES +FL%ONE==:1B4 ;FIRST FIELD NONBLANK +FL%DOL==:1B5 ;DOLLAR SIGN PREFIX +FL%PNT==:1B6 ;DECIMAL POINT +FL%EXP==:3B8 ;THIRD FIELD EXPONENT CONTROL + .FLEXN==:0 ;NO EXPONENT + .FLEXE==:1 ;E EXPONENT PREFIX + .FLEXD==:2 ;D EXPONENT PREFIX + .FLEXM==:3 ;*10^ EXPONENT PREFIX +FL%ESG==:3B10 ;EXPONENT SIGN CONTROL + .FLDGE==:0 ;DIGIT + .FLPLE==:1 ;PLUS SIGN + .FLSPE==:2 ;SPACE + .FLDGT==:3 ;DIGIT +FL%OVL==:1B11 ;COLUMN OVERFLOW +FL%RND==:37B17 ;DIGIT POSITION FOR ROUNDING +FL%FST==:77B23 ;FIRST FIELD WIDTH +FL%SND==:77B29 ;SECOND FIELD WIDTH +FL%THD==:77B35 ;THIRD FIELD WIDTH + + + +;GDSTS + +;SEE MTOPR FOR CARD READER AND LINE PRINTER STATUS BITS +;SEE GENERAL FIELD AND VALUE SECTION FOR MAGTAPE STATUS BITS +;SEE TOPS20AN SECTION FOR NETWORK STATUS BITS + +.GDFSM==:17B3 ;TOPS20AN ;FINITE MACHINE STATE + +;TTY BITS + +GD%PAR==:1B35 ;IF ON, TERMINAL ACCEPTS PARITY + + +;GET + + ;Argument block for GET: + + .GFLAG==:0 ;FLAG WORD + GT%LOW==:1B0 ;USE LOW ADDRESS IN .GLOW + GT%HGH==:1B1 ;USE HIGH ADDRESS IN .GHIGH + GT%BAS==:1B2 ;USE BASE SECTION IN .GBASE + GT%CCH==:1B3 ;CLEAR PROGRAM CACHE + GT%CSH==:1B4 ;CACHE THIS PROGRAM + GT%ADR==:1B19 ; (IN AC1) USE ADDRESS LIMITS IN AC2 + GT%PRL==:1B20 ; (IN AC1) PRELOAD PAGES + GT%NOV==:1B21 ; (IN AC1) DON'T OVERLAY EXISTING PAGES + GT%ARG==:1B22 ; (IN AC1) IF ON, AC2 CONTAINS ADDRESS OF ARG BLOCK + GT%JFN==:7777B35 ; (IN AC1) JFN + + .GLOW==:1 ;LOW ADDRESS IF GT%LOW ON + .GHIGH==:2 ;HIGH ADDRESS IG GT%HGH ON + .GBASE==:3 ;BASE IF GT%BAS ON + + +;GETAB - TABLE INDICES + +.JOBTT==:0 ;JOB NUMBER TO TTY NUMBER +.JOBRT==:1 ;JOB RUNTIME +.TICKP==:2 ;TICKS PER SECOND +.JOBDI==:3 ;JOB NUMBER TO DIRECTORY NUMBERS (OBS) +.TTYJO==:4 ;TTY NUMBER TO JOB NUMBER +.NCPGS==:5 ;NUMBER PHYSICAL CORE PAGES +.DEVNA==:6 ;DEVICE NAME +.DEVCH==:7 ;DEVICE CHARACTERISTICS +.DEVUN==:10 ;DEVICE UNIT NUMBERS +.DSKER==:11 ;DISK ERROR WORDS +.DRMER==:12 ;DRUM ERROR WORDS +.SYSVE==:13 ;VERSION TEXT +.SYSTA==:14 ;STATISTICS +.QTIME==:15 ;SCHED QUEUE TIMES +.JOBNA==:16 ;JOB NUMBER TO PROGRAM NAME +.SNAME==:17 ;SUBSYSTEM NAME +.STIME==:20 ; " TIME +.SPFLT==:21 ; " PAGE FAULTS +.SSIZE==:22 ; " SIZE INTEGRAL +.SNBLK==:23 ; " NUMBER WAKEUPS +.DBUGS==:24 ;DBUGSW, DCHKSW +.LOGDE==:25 ;LOG, JOB 0 DESIGNATORS +.PTYPA==:26 ;PTY PARAMETERS +.SYMTA==:27 ;GTTAB SYMBOL TABLE +.DWNTI==:30 ;HSYS VARIABLES +.JOBPN==:31 ;JOB NUMBER TO PROGRAM NAME +.BLDTD==:32 ;MONITOR BUILD TIME AND DATE +.LSTDR==:33 ;LAST DIR NUMBER ASSIGNED (OBS) +.APRID==:34 ;APR SERIAL NUMBER +.HQLAV==:35 ;HIGH QUEUE LOAD AVERAGES +.LQLAV==:36 ;LOW QUEUE LOAD AVERAGES +.NETRD==:37 ;TOPS20AN ;ARPANET STATUS +.IMPHR==:40 ;TOPS20AN ;HOST READY +.HSTST==:41 ;TOPS20AN ;DEAD HOST STATUS +.HSTNA==:42 ;TOPS20AN ;HOST NAMES +.HOSTN==:43 ;TOPS20AN ;HOST NAME INDEX +.NETLS==:44 ;TOPS20AN ;LOCAL SOCKET +.NETFS==:45 ;TOPS20AN ;FOREIGN SOCKET +.NETAW==:46 ;TOPS20AN ;ARPA CONNECTION ADDRESS +.NETBA==:47 ;TOPS20AN ;BIT ALLOCATION +.NETST==:50 ;TOPS20AN ;CONNECTION STATUS +.NETBU==:51 ;TOPS20AN ;ARPANET BUFFERS +.NETBT==:52 ;TOPS20AN ;BYTE COUNT STATISTICS +.IMPL1==:53 ;TOPS20AN ;IMP LINK TABLE ONE +.IMPL2==:54 ;TOPS20AN ;IMP LINK TABLE TWO +.IMPL3==:55 ;TOPS20AN ;IMP LINK TABLE THREE +.IMPL4==:56 ;TOPS20AN ;IMP LINK TABLE FOUR +.LHOST==:57 ;TOPS20AN ;LOCAL HOST NUMBER +.JBONT==:60 ;OWNING JOB +.NSWPG==:61 ;DEFAULT SWAPPING PAGES +.SCOUN==:62 ;COUNT SNAMES TABLE +.MONVR==:63 ;MONITOR VERSION (ADDRESS 137) +.CSTAT==:64 ;[7213] CI STATISTICS + + + +;GETJI + +.JIJNO==:0 ;JOB NUMBER +.JITNO==:1 ;TERMINAL NUMBER +.JIUNO==:2 ;USER NUMBER +.JIDNO==:3 ;DIRECTORY NUMBER +.JISNM==:4 ;SUBSYS NAME +.JIPNM==:5 ;PROGRAM NAME +.JIRT==:6 ;RUN TIME +.JICPJ==:7 ;CONTROLLING PTY JOB NUMBER +.JIRTL==:10 ;RUN TIME LIMIT (SET BY TIMER JSYS) +.JIBAT==:11 ;CONTROLLED BY BATCH +.JIDEN==:12 ;MAGTAPE DEFAULT DENSITY +.JIPAR==:13 ;MAGTAPE DEFAULT PARITY +.JIDM==:14 ;MAGTAPE DEFAULT DATA MODE +.JIRS==:15 ;MAGTAPE DEFAULT RECORD SIZE +.JIDFS==:16 ;DEFERRED SPOOLING +.JILNO==:17 ;LOGGED-IN DIRECTORY NUMBER +.JISRM==:20 ;POINTER TO JOB SESSION REMARK +.JILLN==:21 ;LAST LOGIN DATE & TIME +.JISRT==:22 ;JOB RUNTIME AT START OF THIS ACCOUNTING SESSION +.JISCT==:23 ;JOB CONSOLE TIME AT START OF THIS SESSION +.JIT20==:24 ;-1 IF AT TOPS20 COMMAND LEVEL +.JISTM==:25 ;DATE & TIME JOB WAS INITIALIZED +.JIBCH==:26 ;BATCH STREAM AND FLAGS + OB%WTO==3B1 ;WRITE TO OPERATOR CAPABILITIES + .OBALL==0 ;WTO AND WTOR ALLOWED + .OBNWR==1 ;NO WTOR ALLOWED + .OBNOM==2 ;NO MESSAGE ALLOWED + OB%BSS==1B10 ;BATCH STREAM NUMBER SET + OB%BSN==177B17 ;BATCH-STREAM NUMBER +.JILLO==:27 ;LOGICAL LOCATION (NODE NAME) +.JILJI==:30 ;LOCAL JOB INDEX +.JIBSN==:31 ;[7258]Batch sequence number +.JIBJN==:32 ;[7258]Batch Job name +.JIBID==:33 ;[7258]Batch request ID +.JIMAX==:.JIBID ;[7258]Current highest GETJI offset + + +;GFRKS + +GF%GFH==:1B0 ;GET RELATIVE FORK HANDLES +GF%GFS==:1B1 ;GET FORK STATUS + + +;GFUST + +.GFAUT==:0 ;GET FILE AUTHOR +.GFLWR==:1 ;GET FILE LAST WRITER + +;GTHST ;TOPS20AN + +.GTHSZ==:0 ;HOST TABLE SIZES +.GTHIX==:1 ;INDEX TO STRING CONVERSION +.GTHNS==:2 ;NUMBER TO STRING CONVERSION +.GTHSN==:3 ;STRING TO NUMBER CONVERSION +.GTHHN==:4 ;HOST NUMBER TO STATUS +.GTHHI==:5 ;HOST INDEX TO STATUS +.GTHLN==:6 ;GET LOCAL NUMBER ON A NETWORK +.GTHNT==:7 ;GET STATUS TABLE OF A NETWORK +.GTHLA==:10 ;GET ADDRESSES OF NETWORK INTERFACES + + ;GETOK DEFINITIONS +.GOASD==:1 ;ASSIGN DEVICE + .GEERB==:0 ;ERROR BLOCK ADDRESS + .GEADD==:1 ;DEVICE DESIGNATOR +.GOCAP==:2 ;ENABLE CAPABILITIES + .GENCP==:1 ;NEW CAPABILITIES +.GOCJB==:3 ;ALLOW CRJOB JSYS +.GOLOG==:4 ;ALLOW LOGINS + .GELUN==:1 ;USER NUMBER +.GOCFK==:5 ;ALLOW CFORK JSYS + .GEFCT==:1 ;NUMBER OF FORKS +.GOTBR==:6 ;ALLOW SET TERMINAL BAUD RATE + .GELIN==:1 ;LINE NUMBER + .GESPD==:2 ;SPEED +.GOLGO==:7 ;ALLOW LOGOUT + .GEUSD==:1 ;PAGES USED + .GEQUO==:2 ;QUOTA + .GERLG==:3 ;JOB TO BE LOGGED OUT, -1 FOR CALLER +.GOENQ==:10 ;ALLOW SET ENQ QUOTA + .GEEQU==:1 ;DESIRED QUOTA + .GEEUN==:2 ;JOB NUMBER +.GOCRD==:11 ;ALLOW CREDIR +.GOSMT==:12 ;ALLOW SMOUNT + .GESDE==:1 ;DEVICE DESIGNATOR + +.GOMDD==:13 ;ALLOW MDDT ENTRY +.GOCLS==:14 ;VERIFY CLASS ASSIGNMENT FOR A JOB + .GEJOB==:1 ;JOB # + .GECLS==:2 ;CLASS DESIRED +.GOCL0==:15 ;SET CLASS AT LOGIN +.GOMTA==:16 ;MT ACCESS REQUEST + + .GEACC==:1 ;ACCESS CODE FROM HDR1 + .GEUSN==:2 ;USER NUMBER + .GEUNT==:3 ;MT UNIT NUMBER + .GEACD==:4 ;DESIRED ACCESS (BITS) + .GELTP==:5 ;LABEL TYPE +.GOACC==:17 ;ACCESS AND CONNECT + .GOAC0==:1 ;FLAGS FROM ACESS JSYS + .GOAC1==:2 ;DIRECTORY NUMBER +.GOOAD==:20 ;ASSIGN DUE TO OPENF + ;.GEADD IS THE ARG OFFSET FOR THE + ; DEVICE DESIGNATOR +.GODNA==:21 ;ACCESS TO DECNET +.GOANA==:22 ;ACCESS TO ARPANET + +.GOATJ==:23 ;ATACH JSYS + .GOTJB==:1 ;TAGET JOB NUMBER + .GOTTY==:2 ;SOURCE TTY NUMBER + +.GOINF==:24 ;[7.1076] INFO% JSYS request +; .GEERB==:0 ;[7.1076] Error block address +; .GEJOB==:1 ;[7.1076] Job number + .GECIN==:2 ;[7.1076] CI node to do INFO% request + .GEINF==:3 ;[7.1076] INFO% function being requested + +.GOLAT==:25 ;[7.1207] LATOP% JSYS request +; .GEERB==:0 ;[7.1207] Error block address +; .GEJOB==:1 ;[7.1207] Job number + .GEFUN==:2 ;[7.1207] Flags,,Function Code + ;[7.1207] Flags are LA%PSI, LA%QUE, LA%SYS, + ;[7.1207] and LA%JOB + .GESRN==:3 ;[7.1207] 4 Words containing the ASCIZ nodename + .GEPRN==:7 ;[7.1207] 4 Words containing the ASCIZ portname + .GESVN==:13 ;[7.1207] 4 Words containing the ASCIZ service + .GLSIZ==:17 ;[7.1207] Size of the .GOLAT argument block + +.GOKMZ==:^D20 ;MAX ARGUMENT BLOCK SIZE FOR GETOK REQUEST +;ERROR BLOCK ADDRESS OFFSETS + +.GESIZ==:0 ;SIZE OF THIS BLOCK +.GEERN==:1 ;ERROR NUMBER +.GEPTR==:2 ;POINTER TO ERROR STRING +.GEBSZ==:3 ;STRING SIZE + +;GTJFN DEFINITIONS + +;FLAGS PROVIDED TO GTJFN ON CALL + +GJ%FOU==:1B0 ;FILE IS FOR OUTPUT USE +GJ%NEW==:1B1 ;NEW FILE ONLY +GJ%OLD==:1B2 ;OLD FILE ONLY +GJ%MSG==:1B3 ;PRINT AN APPROPRIATE MESSAGE +GJ%CFM==:1B4 ;CONFIRMATION IS REQUIRED +GJ%TMP==:1B5 ;TEMPORARY +GJ%NS==:1B6 ;DONT SEARCH SEARCH LISTS +GJ%ACC==:1B7 ;NO ACCESS BY OTHER FORKS +GJ%DEL==:1B8 ;IGNORE "DELETED" BIT +GJ%JFN==:3B10 ;JFN USE FIELD +.GJDNU==:0 ;DO NOT USE JFN PROVIDED +.GJERR==:2 ;ERROR IF CANNOT USE JFN PROVIDED +.GJALT==:3 ;USE ALTERNATE IF CANNOT USE GIVEN JFN +GJ%IFG==:1B11 ;ACCEPT INPUT FILE GROUP DESCRIPTORS +GJ%OFG==:1B12 ;ACCEPT OUTPUT FILE GROUP DESCRIPTORS +GJ%FLG==:1B13 ;RETURN FLAGS +GJ%PHY==:1B14 ;PHYSICAL DEVICE ONLY +GJ%XTN==:1B15 ;EXTENDED FORMAT (E+11 EXISTS) +GJ%FNS==:1B16 ;ACCUMULATOR 2 CONTAINS JOB FILE NUMBERS +GJ%SHT==:1B17 ;SHORT CALL FORMAT + +;FLAGS PROVIDED TO GTJFN (IN SECOND FLAG WORD) + +G1%RND==:1B0 ;RETURN ON NULL(IN ALTERNATE FLAG WORD) +G1%RBF==:1B1 ;^R BUFFER IS DISJOINT (OBSOLETE) +G1%NLN==:1B2 ;NO LONG NAMES +G1%RCM==:1B3 ;RETURN CONFIRM MESSAGE +G1%RIE==:1B4 ;RETURN WHEN MAIN STRING IS EMPTY +G1%IIN==:1B5 ; Ignore invisible status +G1%SLN==:1B6 ;SUPPRESS EXPANSION OF LOGICAL NAMES +G1%LOC==:1B7 ;Local files only + + +;FLAGS RETURNED BY GTJFN + +GJ%DEV==:1B0 ;ASTERISK WAS GIVEN FOR DEVICE +GJ%UNT==:1B1 ;ASTERISK WAS GIVEN FOR UNIT +GJ%DIR==:1B2 ;ASTERISK WAS GIVEN FOR DIRECTORY +GJ%NAM==:1B3 ;ASTERISK WAS GIVEN FOR NAME +GJ%EXT==:1B4 ;ASTERISK WAS GIVEN FOR EXTENSION +GJ%VER==:1B5 ;ASTERISK WAS GIVEN FOR GENERATION +GJ%UHV==:1B6 ;USE HIGHEST GENERATION +GJ%NHV==:1B7 ;USE NEXT HIGHER GENERATION +GJ%ULV==:1B8 ;USE LOWEST GENERATION +GJ%PRO==:1B9 ;PROTECTION GIVEN +GJ%ACT==:1B10 ;ACCOUNT GIVEN +GJ%TFS==:1B11 ;TEMPORARY FILE SPECIFIED (;T) +GJ%GND==:1B12 ;COMPLEMENT OF GJ%DEL ON CALL +GJ%NOD==:1B13 ;NODE NAME WAS GIVEN +GJ%GIV==:1B17 ; Comp of G1%IIV + +;GTJFN TABLE OFFSETS + +.GJGEN==:0 ;FLAGS ,, GENERATION +.GJDEF==: ;DEFAULT GENERATION +.GJNHG==: ;NEXT HIGHER GENERATION +.GJLEG==: ;LOWEST EXISTING GENERATION +.GJALL==: ;ALL GENERATIONS (I.E., ;*) +.GJSRC==:1 ;SOURCE JFN ,, OUTPUT JFN +.GJDEV==:2 ;DEFAULT DEVICE +.GJDIR==:3 ;DEFAULT DIRECTORY +.GJNAM==:4 ;DEFAULT NAME +.GJEXT==:5 ;DEFAULT EXTENSTION +.GJPRO==:6 ;DEFAULT PROTECTION +.GJACT==:7 ;DEFAULT ACCOUNT +.GJJFN==:10 ;DESIRED JFN +.GJF2==:11 ;SECOND GROUP FLAGS,,COUNT +.GJCPP==:12 ;COPY BUFFER POINTER +.GJCPC==:13 ;COPY BUFFER COUNT +.GJRTY==:14 ;RETYPE (^R) POINTER +.GJBFP==:15 ;TOP OF BUFFER POINTER +.GJATR==:16 ;POINTER TO ARBITRARY ATTRIBUTE BLOCK +.GJNOD==:17 ;DEFAULT NODE + +;GNJFN - FLAGS RETURNED + +GN%STR==:1B13 ;STRUCTURE CHANGED +GN%DIR==:1B14 ;DIRECTORY CHANGED +GN%NAM==:1B15 ;NAME CHANGED +GN%EXT==:1B16 ;EXTENSION CHANGED + +;GTNCP ;TOPS20AN + +.GTNSZ==:0 ;SIZE OF TABLE +.GTNIX==:1 ;NCP INDEX +.GTNNI==:2 ;NVT INPUT +.GTNNO==:3 ;NVT OUTPUT +.GTNJF==:4 ;JFN + +.NCIDX==:0 ;NCP INDEX +.NCFHS==:1 ;FOREIGN HOST +.NCLSK==:2 ;LOCAL SOCKET +.NCFSK==:3 ;FOREIGN SOCKET +.NCFSM==:4 ;FINITE STATE MACHINE STATE +.NCLNK==:5 ;LINK +.NCNVT==:6 ;NVT, -1 IF NOT A TELNET CONNECTION +.NCSIZ==:7 ;BYTE SIZE OF CONNECTION +.NCMSG==:10 ;MSG ALLOC +.NCBAL==:11 ;BIT ALLOC +.NCDAL==:12 ;DESIRED ALLOC +.NCBTC==:13 ;BITS XFERRED +.NCBPB==:14 ;BYTES/BUFFER +.NCCLK==:15 ;TIME-OUT COUNTDOWN +.NCSTS==:16 ;CONNECTION STATUS + + +;GTRPW + +PF%USR==:1B0 ;PAGE FAIL WORD - USER MODE REFERENCE +PF%WTF==:1B1 ; " - WRITE REFERENCE (XGTPW) +PF%WRT==:1B5 ; " - WRITE REFERENCE +TSW%RD==:1B14 ;TRAP STATUS WORD - READ +TSW%WT==:1B15 ; " - WRITE +TSW%WR==:1B15 ; (ANOTHER NAME FOR ABOVE) +TSW%EX==:1B16 ; " - EXECUTE +TSW%MN==:1B17 ; " - MONITOR MODE REFERENCE + + +;GTSTS BITS RETURNED IN 2 + +GS%OPN==:1B0 ;FILE IS OPEN +GS%RDF==:1B1 ;IF OPEN, FILE IS OPEN FOR READ +GS%WRF==:1B2 ;IF OPEN, FILE IS OPEN FOR WRITE +GS%XCF==:1B3 ;IF OPEN, FILE IS OPEN FOR EXECUTE +GS%RND==:1B4 ;OK TO RESET BYTE POINTER + ; (FILE IS NOT APPEND) +GS%APT==:1B5 ;ACCESS PER PAGE TABLE + ; (NOT IMPLEMENTED -- OBSOLETE) +GS%CAL==:1B6 ;OK TO CALL AS A PROCEDURE + ; (NOT IMPLEMENTED -- OBSOLETE) +GS%LNG==:1B7 ;FILE IS LONG +GS%EOF==:1B8 ;AT END OF FILE ON READ +GS%ERR==:1B9 ;FILE MAY BE IN ERROR +GS%NAM==:1B10 ;FILE HAS A NAME (JFN EXISTS) +GS%AST==:1B11 ;ONE OR MORE FIELDS OF NAME + ; IS WILD +GS%ASG==:1B12 ;JFN IS BEING ASSIGNED +GS%HLT==:1B13 ;TERMINATE ON I/O ERROR +GS%FRK==:1B17 ;JFN IS RESTRICTED TO CREATING FORK +GS%PLN==:1B18 ;DON'T STRIP LINE NUMBERS ON SIN/BIN +GS%MOD==:17B35 ;DATA MODE + .GSNRM==:0 ;NORMAL MODE + .GSSMB==:1 ;SMALL BUFFER MODE (DCN:, SRV:) + .GSIMG==:10 ;IMAGE (BINARY) MODE + .GSDMP==:17 ;DUMP MODE + + + +;HPTIM + +.HPELP==:0 ;ELAPSED TIME +.HPRNT==:1 ;RUN TIME + + +;IDCNV (ALSO IDTNC AND ODCNV) + +IC%DSA==:1B0 ;DAYLIGHT SAVINGS IF APPROPRIATE +IC%ADS==:1B1 ;APPLY DAYLIGHT SAVINGS +IC%UTZ==:1B2 ;USE TIME ZONE GIVEN +IC%JUD==:1B3 ;USE JULIAN DATE CONVERSION +IC%TMZ==:77B17 ;TIME ZONE +IC%TIM==777777B35 ;LOCAL TIME + + +;IDTIM & IDTNC + +IT%NDA==:1B0 ;NO DATE +IT%NNM==:1B1 ;NO NUMERIC MONTH +IT%SNM==:1B2 ;SECOND NUMBER IS MONTH +IT%ERR==:1B3 ;ERROR IF NUMBERS ARE NOT IN SPECIFIED + ; ORDER +IT%NTI==:1B6 ;NO TIME +IT%NIS==:1B7 ;NO SECONDS +IT%AIS==:1B8 ;ALWAYS INCLUDE SECONDS +IT%NAC==:1B9 ;NO COLON ALLOWED BETWEEN HH AND MM +IT%AAC==:1B10 ;ALWAYS ALLOW COLON +IT%AMS==:1B11 ;ALWAYS INTERPRET ONE COLON AS HHMM:SS +IT%AHM==:1B12 ;ALWAYS INTERPRET ONE COLON AS HH:MM +IT%N24==:1B14 ;NO 24-HOUR FORMAT +IT%NTM==:1B15 ;NO TIME MODIFIER (AM, PM) +IT%NTZ==:1B16 ;NO TIME ZONE + + +;INFO% JSYS stuff +IN%RER==:1B0 ;[7.1076] Bit indicates remote failure + +;Argument block words for INFO% +.INFUN==:0 ;[7.1076] Function word,,length +.INCID==:1 ;[7.1076] CI node word +.INAC1==:2 ;[7.1076] AC1 of remote call +.INAC2==:3 ;[7.1076] AC2 of remote call +.INAC3==:4 ;[7.1076] AC3 of remote call +.INAC4==:5 ;[7.1076] AC4 of remote call +.INMIN==:.INAC1+1 ;[7.1076] Block must be at least this long +.INMAX==:.INAC4+1 ;[7.1076] And cannot be longer than this + +;Valid INFO% functions +.INCIN==:0 ;[7.1076] Get CI nodes in cluster +.INCFG==:1 ;[7.1076] Do remote CNFIG% +.INDST==:2 ;[7.1076] Do remote DIRST% +.INGTB==:3 ;[7.1076] Do remote GETAB% +.INGJI==:4 ;[7.1076] Do remote GETJI% +.INGTY==:5 ;[7.1076] Do remote GTTYP% +.ININL==:6 ;[7.1076] Do remote INLNM% +.INLNS==:7 ;[7.1076] Do remote LNMST% +.INMSR==:10 ;[7.1076] Do remote MSTR% +.INMTO==:11 ;[7.1076] Do remote MTOPR% +.INMUT==:12 ;[7.1076] Do remote MUTIL% +.INRCR==:13 ;[7.1076] Do remote RCUSR% +.INSKD==:14 ;[7.1076] Do remote SKED% +.INSNP==:15 ;[7.1076] Do remote SNOOP% +.INSGT==:16 ;[7.1076] Do remote SYSGT% +.INTMN==:17 ;[7.1076] Do remote TMON% +.INXPK==:20 ;[7.1076] Do remote XPEEK% +.INDVC==:21 ;[7.1076] Do remote DVCHR% +.INNTF==:22 ;[7.1076] Do remote NTINF% +.INSTV==:23 ;[7.1076] Do remote STDEV% +.INDVT==:24 ;[7.1076] Do remote DEVST% +.INSYS==:25 ;[7.1076] Obtain remote SYSTAT information + ;Block for .INSYS + .SYUSR==:0 ;[7.1076] Byte pointer to username + .SYDIR==:1 ;[7.1076] Byte pointer for connected directory + .SYPRG==:2 ;[7.1076] SIXBIT program name + .SYORG==:3 ;[7.1076] Job origin + .SYCJB==:4 ;[7.1076] Controlling job + .SYTTY==:5 ;[7.1076] Controlling terminal + .SYJOB==:6 ;[7.1076] Job number + .SYSTT==:7 ;[7.1076] Run state + .SYTIM==:10 ;[7.1076] Job run time + .SYLIM==:11 ;[7.1076] Job runtime limit + .SYCLS==:12 ;[7.1076] Job class number + .SYSHR==:13 ;[7.1076] Job share percentage + .SYUSE==:14 ;[7.1076] Job percentage of CPU +.INJOB==:26 ;[7.1076] Obtain remote jobs for supplied user + .JOLEN==:0 ;[7.1076] Length of arg block +.INRCD==:27 ;[7.1076] Do remote RCDIR% +.INTIM==:30 ;[7.1076] Do remote TIME% + + +;.IMOPR - MONITOR ROUTINE USED BY MDDT AND SNOOP. THIS IS NOT +;A JSYS SO THAT CALLS ARE FAST. + +.IMALC==:1 ;ALLOCATE PAGES FOR USE IN MAPPING SYMBOLS +.IMMAP==:2 ;MAP PAGES OF THE SYMBOL TABLE +.IMUMP==:3 ;UNMAP PAGES OF THE SYMBOL TABLE + + +;INLNM + +.INLJB==:0 ;GET JOB WIDE LOGICAL NAME FROM INDEX +.INLSY==:1 ;GET SYSTEM LOGICAL NAME FROM INDEX + +;IPCF BIT DEFINITIONS AND DATA STRUCTURES + +;PACKET FORMAT + +.IPCFL==:0 ;FLAGS WORD +IP%CFB==:1B0 ;DON'T BLOCK READ +IP%CFS==:1B1 ;INDIRECT SENDER'S PID +IP%CFR==:1B2 ;INDIRECT RECEIVER'S PID +IP%CFO==:1B3 ;OVERDRAW SEND +IP%TTL==:1B4 ;TRUNCATE ON TOO LARGE MESSAGE +IP%CPD==:1B5 ;CREATE A PID ON THE SEND +IP%JWP==:1B6 ;MAKE THE CREATED PID BE JOB WIDE +IP%NOA==:1B7 ;NO ACCESS OF PID BY OTHER FORKS +IP%MON==:1B8 ; Reserved for monitor - unavailable to users +IP%CFP==:1B18 ;SENDER IS PRIV'D AND IS ENVOKING PRIVS +IP%CFV==:1B19 ;PAGE TRANSFER MODE +IP%CFZ==:1B20 ;ZERO LENGTH MESSAGE WAS SENT +IP%INT==:1B21 ; Internal call - unavailable to users +IP%EPN==:1B22 ;PAGE NUMBER IS 18 BITS +IP%CFE==:77B29 ;ERROR FIELD + +;ERRORS SENT BY INFO + + .IPCPI==:15 ;INSUFFICIENT PRIVILEGE + .IPCUF==:16 ;ILLEGAL FUNCTION + .IPCSN==:67 ;SEND INFO YOUR NAME + .IPCFF==:72 ;INFO FREE SPACE EXHAUSTED + .IPCBP==:74 ;PID HAS NO NAME OR IS ILLEGAL + .IPCDN==:75 ;DUPLICATE NAME + .IPCNN==:76 ;UNKNOWN NAME + .IPCEN==:77 ;ILLEGAL NAME + .IPCKM==:66 ;NOTIFICATION THAT PID HAS BEEN DELETED +IP%CFC==:7B32 ;SYSTEM SENDER CODE + .IPCCC==:1 ;SENT BY [SYSTEM]IPCF + .IPCCF==:2 ;SENT BY SYSTEM WIDE [SYSTEM]INFO + .IPCCP==:3 ;SENT BY RECEIVER'S [SYSTEM]INFO + .IPCCG==:4 ;SENT BY SYSTEM FOR QUEUE% +IP%CFM==:7B35 ;SPECIAL MESSAGE RETURN FIELD + .IPCFN==:1 ;MESSAGE WAS NOT DELIVERED +.IPCFS==:1 ;PID OF SENDER +.IPCFR==:2 ;PID OF RECEIVER +.IPCFP==:3 ;POINTER TO MESSAGE BLOCK +.IPCFD==:4 ;LOGGED IN DIR OF SENDER +.IPCFC==:5 ;ENABLED CAPABILITIES OF SENDER +.IPCSD==:6 ;CONNECTED DIRECTORY NUMBER OF SENDER +.IPCAS==:7 ;POINTER TO ACCOUNT STRING OF SENDER +.IPCLL==:10 ;POINTER TO LOGICAL LOCATION OF SENDER + +.IPCSU==:26 ;SPOOL MESSAGE CODE FROM IPCC +.IPCSL==:27 ;LOGOUT MESSAGE CODE FROM IPCC +.IPCSA==:30 ;RESOURCE ALLOCATOR MESSAGE CODE +.IPCDS==:31 ;STRUCTURE DISMOUNT MESSAGE CODE FROM IPCC +.IPCLI==:32 ;LOGIN MESSAGE CODE FROM IPCC +.IPCLO==:33 ;LOGOUT MESSAGE TO CREATOR FROM IPCC +.IPCKP==:34 ;DELETED PID MESSAGE FROM IPCC +.IPCCA==:35 ;CREATE AN APPLICATION (RESERVED FOR TPS USE) +.IPCTR==:36 ;REQUEST FROM TAPE +.IPCMS==:37 ;STRUCTURE MOUNT MESSAGE CODE FROM IPCC +.IPCRS==:40 ;STRUCTURE REMOVAL MSSG CODE FROM IPCC +.IPCSR==:41 ; Archive message code from IPCC + +.IPCSS==:15 ;IPCC REQUEST TO INFO TO DELETE PIDS + + +;[SYSTEM] INFO DEFINITIONS + +.IPCI0==:0 ;CODE,,FUNCTION +.IPCIW==:1 ;FIND PID FOR NAME +.IPCIG==:2 ;FIND NAME FOR PID +.IPCII==:3 ;ASSIGN NAME TO PID +.IPCIJ==:4 ;ASSIGN NAME TO PID +.IPCIK==:5 ;NOTIFY WHEN SPECIFIED PID IS KILLED +.IPCIS==:15 ;MONITOR DROP PID FUNCTION +.IPCI1==:1 ;PID TO GET A COPY OF REPLY +.IPCI2==:2 ;START OF DATA + + +;JFNS + +JS%DEV==:7B2 ;DEVICE FIELD OUTPUT CONTROL [OBSOLETE] + JS%NOD==:1B0 ;NODE FIELD OUTPUT CONTROL - .JSSSD IS ILLEGAL + JS%DVN==:3B2 ;DEVICE FIELD OUTPUT CONTROL +JS%DIR==:7B5 ;DIRECTORY FIELD OUTPUT CONTROL +JS%NAM==:7B8 ;NAME FIELD OUTPUT CONTROL +JS%TYP==:7B11 ;FILE TYPE FIELD OUTPUT CONTROL +JS%GEN==:7B14 ;GENERATION FIELD OUTPUT CONTROL +JS%PRO==:7B17 ;PROTECTION FIELD OUTPUT CONTROL +JS%ACT==:7B20 ;ACCOUNT FIELD OUTPUT CONTROL + ;VALUES FOR ABOVE 8 FIELDS: + .JSNOF==:0 ;NEVER OUTPUT FIELD + .JSAOF==:1 ;ALWAYS OUTPUT FIELD + .JSSSD==:2 ;SUPPRESS IF SYSTEM DEFAULT +JS%TMP==:1B21 ;RETURN ;T IF TEMP FILE +JS%SIZ==:1B22 ;RETURN SIZE +JS%CDR==:1B23 ;RETURN CREATION DATE +JS%LWR==:1B24 ;RETURN LAST WRITE +JS%LRD==:1B25 ;RETURN LAST READ +JS%PTR==:1B26 ;AC 2 HOLDS STRING POINTER NOT JFN +JS%ATR==:1B27 ;RETURN ATTRIBUTES +JS%AT1==:1B28 ;RETURN 1 SPECIFIC ATTRIBUTE +JS%OFL==:1B29 ;RETURN ;OFF-LINE IF OFFLINE FILE +JS%PSD==:1B32 ;PUNCTUATE SIZE AND DATE +JS%TBR==:1B33 ;TAB BEFORE FIELDS RETURNED +JS%TBP==:1B34 ;TAB BEFORE POSSIBLE FIELDS +JS%PAF==:1B35 ;PUNCTUATE ALL FIELDS + +JS%SPC==:!!! +!!JS%PAF ;MASK FOR WHOLE SPEC + + + +;~6.0 LATOP% - LAT Host + +;LATOP% Function Code Definitions + + .LASET==0 ;Set + .LACLR==1 ;Clear + .LASCH==2 ;Show characteristics of host + .LASTC==3 ;Show terminal connects + .LASAS==4 ;Show adjacent servers + .LASCO==5 ;Show counters + .LAZCO==6 ;Zero counters + .LARHC==7 ;[7.1082]Request host-initiated connect + .LATHC==10 ;[7.1082]Terminate host-initiated connect + .LASHC==11 ;[7.1082]Show host-initiated connects + +;LATOP% argument block definitions + + .LAACT==0 ;Argument block count + .LAFCN==1 ;LATOP% function code + + .LAPRM==2 ;SET/CLEAR parameter number + LA%PSI==1B0 ;[7.1082]Use PSI to interrupt (TOPS-20) + LA%QUE==1B1 ;[7.1082]Queue the request at the remote server + LA%SYS==1B2 ;[7.1082]Show all host-initiated connects + LA%JOB==1B3 ;[7.1082]Show all host-initiated connects for the job + LA%CID==777777;[7.1082]Connect id + .LAVAL==3 ;SET/CLEAR new parameter value + LA%ECB==1B0 ;[7.1082]Use the Extended Connect Block + LA%CHN==777777;[7.1082]PSI Channel number + + .LABCT==2 ;SHOW Buffer count + .LABFA==3 ;SHOW Buffer Address + .LAQUA==4 ;SET/SHOW/ZERO Qualifier + .LADSC==5 ;Service description for .LPSRV + .LASVR==4 ;[7.1082]Server name + .LASVC==5 ;[7.1082]Service name + .LAPRT==6 ;[7.1082]Port name + + LA%RAT==1B0 ;Set rating flag for .LPSRV + LA%DSC==1B1 ;Set description flag for .LPSRV + +;LATOP% Parameter definitions + + .LPMAC==1 ;Maximum active circuits + .LPMCO==2 ;Maximum connects + .LPNUM==3 ;Host number + .LPLAS==4 ;Lat access state + .LPRLI==5 ;Retransmit limit + .LPTIM==6 ;Retransmit timer + .LPMTI==7 ;Multicast timer + .LPCOD==10 ;Access codes + .LPNNM==11 ;Host name + .LPNID==12 ;Host identification + .LPSRV==13 ;Host service + +;Port type codes + + .LATTY==1 ;[7.1082]Standard LAT terminal connection + .LADLP==2 ;[7.1082]Dial-up Lat terminal connection + .LAAPP==3 ;[7.1082]LAT application terminal + +;Status codes + + .LASOL==377777 ;[7.1082]Request is being solicited + .LAQUE==377776 ;[7.1082]Request is queued + .LACAN==377775 ;[7.1082]Request was cancelled by user + .LATMO==377774 ;[7.1082]Request has timed out + +;LATOP% LAT Reject codes + + .LAUNK==00 ;[7.1082]Unknown error + .LAURD==01 ;[7.1082]User requested disconnect + .LASSP==02 ;[7.1082]System shutdown in progress + .LAISR==03 ;[7.1082]Invalid slot received + .LAISC==04 ;[7.1082]Invalid service class + .LAIRS==05 ;[7.1082]Insufficient resources + .LASIU==06 ;[7.1082]Service is in use + .LANSS==07 ;[7.1082]No such service + .LASDI==10 ;[7.1082]Service is disabled + .LASNP==11 ;[7.1082]Service is not offered by requested port + .LANSP==12 ;[7.1082]No such port name + .LAIPW==13 ;[7.1082]Invalid password + .LAENQ==14 ;[7.1082]Entry is not in queue + .LAIAR==15 ;[7.1082]Immediate access rejected + .LAACD==16 ;[7.1082]Access denied + .LACSR==17 ;[7.1082]Corrupted solicit request + .LACTI==20 ;[7.1082]Command type code is illegal + .LASCS==21 ;[7.1082]Start slot can't be sent + .LAQED==22 ;[7.1082]Queue entry deleted by local node + .LAIRP==23 ;[7.1082]Inconsistent or illegal request parameters + +;LATOP% LAT access states + + LS.OFF==0 ;LAT Access State OFF + LS.ON==1 ;LAT Access State ON + + +;~6.0 LLMOP% - Low Level MOP for Ethernet Data Link Layer + +;LLMOP% Function Code Definitions + + .LLMIN==:^D0 ;Low fence + .ELDIR==:^D0 ;Ethernet Loop Direct + .ELAST==:^D1 ;Ethernet Loop Assisted + .ELRPY==:^D2 ;Ethernet Loop Read Reply + .ELAIC==:^D3 ;Ethernet Loop Assign Interrupt Channel + .ELABT==:^D4 ;Ethernet Loop Abort + .ELSTS==:^D5 ;Ethernet Loop Request Status + .RCRID==:^D6 ;Remote Console Read Identity + .RCRCT==:^D7 ;Remote Console Read Counters + .RCIDS==:^D8 ;Remote Console Identify Self + .RCRBT==:^D9 ;Remote Console Remote Boot + .RCRPY==:^D10 ;Remote Console Read Reply + .RCRSV==:^D11 ;Reserve Remote Console + .RCREL==:^D12 ;Release Remote Console + .RCSND==:^D13 ;Send Console Command + .RCPOL==:^D14 ;Console Response Poll + .RCAIC==:^D15 ;Remote Console Assign Interrupt Channel + .RCABT==:^D16 ;Remote Console Abort Request + .RCSTS==:^D17 ;Remote Console Request Status + .RCADR==:^D18 ;Obtain Channel Addresses + .LLMAX==:^D18 ;High fence + +;LLMOP% Argument Block Definitions + +;Common prefix for all functions + + .LMCID==:0 ;Channel Id and Flags + LM%MRF==:MASKB(0,0) ;More Replies Flag + + ;For .RCSND only + LM%CBF==:MASKB(16,16) ;Command Break Flag + LM%MNO==:MASKB(17,17) ;Message Number + LM%CCF==:LM%MNO!LM%CBF ;Console Command Control Flags + + ;For .RCPOL only + LM%RDL==:MASKB(7,7) ;Receive Data Lost Flag + LM%RDO==:MASKB(15,15) ;Response Data Lost Flag + LM%CDL==:MASKB(16,16) ;Command Data Lost Flag + LM%RCF==:LM%MNO!LM%RDO!LM%CDL ;Console Response Control Flags + + LM%CID==:MASKB(34,35) ;Channel-id + +;Suffix for .RCRID,.RCRCT,.RCIDS,.RCRBT, +; .RCRSV,.RCREL,.RCSND,.RCPOL, +; .RCRPY,.ELDIR,.ELAST,.ELRPY + + .LMDST==:1 ;Destination Address + .LMSRC==:.LMDST ;Source Address for .ELRPY and .RCRPY only + LM%MCA==:MASKB(7,7) ;Multicast Address Bit + LM%AB0==:MASKB(0,7) ;Address Byte 0 + LM%AB1==:MASKB(8,15) ;Address Byte 1 + LM%AB2==:MASKB(16,23) ;Address Byte 2 + LM%AB3==:MASKB(24,31) ;Address Byte 3 + LM%AB4==:LM%AB0 ;Address Byte 4 + LM%AB5==:LM%AB1 ;Address Byte 5 + +;Suffix for .ELSTS,.RCSTS + + .LMSTF==:1 ;Request Status and Flags + LM%RTC==:MASKB(18,35) ;Status Return Code + .LMPND==:0 ;Request Pending, Not Complete + .LMSUC==:1 ;Success, Complete + .LMABT==:2 ;Aborted + .LMTXF==:3 ;Transmit Failed + .LMCCE==:4 ;Channel Communication Error + .LMCST==:2 ;KLNI Channel Status + +;Suffix for .RCAIC,.ELAIC + + .LMICF==:1 ;Interrupt channel and flags + LM%AIC==:MASKB(0,0) ;Assign Interrupt Channel + LM%ENU==:MASKB(1,1) ;Enable Unsolicited Receipt + LM%ICH==:MASKB(12,17) ;Interrupt Channel Number + +;Suffix for .RCADR + + .LMHWA==:1 ;Local KLNI channel hardware address + .LMPYA==:3 ;Local KLNI channel current physical address + +;Suffix for .RCRID,.RCRCT,.RCSND,.ELDIR,.ELAST,.ELRPY,.RCRPY,.RCPOL +; .ELSTS,.RCSTS,.ELABT,.RCABT + + .LMREQ==:3 ;Request Number + .LMPID==:.LMREQ ;Remote Console Port Id + LM%PID==:MASKB(0,17) ;Port Id + LM%REQ==:MASKB(18,35) ;Request Id + +;Suffix for .RCRBT Remote Boot and .RCRSV Reserve Console + + .LMPWD==:3 ;Password Verification Code + .LMCIF==:5 ;Control Information + LM%BSV==:MASKB(27,27) ;Boot Server + .LMSDF==:0 ;System Default + .LMRSS==:1 ;Requesting System + LM%BDV==:MASKB(26,26) ;Boot Device + .LMSDF==:0 ;System Default + .LMRSD==:1 ;Specified Device + LM%PRO==:MASKB(28,35) ;Processor to Boot + .LMSSP==:0 ;System Processor + .LMCMP==:1 ;Communications Processor + .LMDID==:6 ;Device Id + .LMSID==:7 ;Software Id + +;Suffix for .ELRPY,.RCRPY,.RCPOL,.RCSND,.ELDIR,.ELAST + + .LMRBL==:4 ;LLMOP Response Buffer Length + LM%RML==:MASKB(0,17) ;Returned Message Length + LM%MBL==:MASKB(18,35) ;Maximum Buffer Length + .LMRBP==:5 ;LLMOP Response Buffer Pointer + + .LMLBL==:.LMRBL ;Loop Buffer Length + .LMLBP==:.LMRBP ;Loop Buffer Pointer + + .LMLDL==:.LMRBL ;Loopback Data Length + .LMLDP==:.LMRBP ;Loopback Data Pointer + +;Suffix for .ELAST + + .LMAST==:6 ;Assistant Address + .LMHLP==:10 ;Assistant Level + .LMXMT==:1 ;Transmit + .LMRCV==:2 ;Receive + .LMFUL==:3 ;Full + +;~6.0 + +;LNMST + +.LNSJB==:0 ;GET JOB WIDE DEFINITION OF A LN +.LNSSY==:1 ;GET SYSTEM DEFINITION OF A LOGICAL NAME + + +;LOCK + +LK%CNT==:1B0 ;USE COUNT IN AC3 +LK%PHY==:1B1 ;USE AC1 AS PHYSICAL PAGE NUMBER +LK%NCH==:1B2 ;MAP PAGES CACHE INHIBITED +LK%AOL==:1B3 ;ALLOW LOCKING IN OFFLINE PAGES +LK%EPN==:1B4 ;PAGE NUMBER IS ABSOLUTE NOT SECTION RELATIVE + + +;METER JSYS DEFS. + +.MEREA==:1 ;READ EBOX TICKS +.MERMA==:2 ;READ MBOX TICKS + +;MSTR + +.MSRNU==:0 ;READ STATUS OF NEXT DISK UNIT +.MSRUS==:1 ;READ STATUS OF A DISK UNIT + .MSRCH==:0 ;CHANNEL NUMBER + .MSRCT==:1 ;CONTROLLER NUMBER + .MSRUN==:2 ;UNIT NUMBER + .MSRST==:3 ;STATUS + MS%MNT==:1B0 ;THIS UNIT IS PART OF A MOUNTED STRUCTURE + MS%16B==:1B1 ;THIS UNIT WRITTEN IN 16-BIT MODE + ; (RESERVED FOR FUTURE) + MS%DIA==:1B2 ;THIS UNIT IS CURRENTLY IN USE BY AN + ; ON-LINE DIAGNOSTIC + MS%OFL==:1B3 ;THIS UNIT IS OFF-LINE + MS%ERR==:1B4 ;THERE WAS AN ERROR READING THIS UNIT + MS%BBB==:1B5 ;ONE OF THE BAT BLOCKS IS BAD + MS%HBB==:1B6 ;ONE OF THE HOME BLOCKS IS BAD + MS%WLK==:1B7 ;UNIT IS WRITE-LOCKED + MS%2PT==:1B8 ;UNIT IS POTENTIALLY DUAL-PORTED BETWEEN SYSTEMS + MS%TYP==:777B17 ;DISK TYPE CODE +; DEFINED THE SAME AS .UTTXX IN PHYPAR + .MSRP4==:1 ;RP04 + .MSRP5==:5 ;RP05 + .MSRP6==:6 ;RP06 + .MSRP7==:7 ;RP07 + .MSRM3==:11 ;RM03 + .MSR20==:24 ;RP20 + .MSR80==:27 ;RA80 + .MSR81==:30 ;RA81 + .MSR60==:31 ;RA60 + MS%SVD==:1B18 ;UNIT IS SERVED (ONLINE VIA MSCP SERVER) + MS%IAC==:1B19 ;Unit is inaccessible due to homeblock checking + .MSRSN==:4 ;STRUCTURE NAME + .MSRSA==:5 ;STRUCTURE ALIAS + .MSRNS==:6 ;UNIT # IN STRUCTURE,,# OF UNITS IN STRUCTURE + .MSRSW==:7 ;NUMBER OF PAGES FOR SWAPPING + .MSRUI==:10 ;UNIT ID + .MSROI==:13 ;OWNER ID + .MSRFI==:16 ;FILE-SYSTEM ID + .MSRSP==:21 ;NUMBER OF SECTORS PER PAGE + .MSRSC==:22 ;NUMBER OF SECTORS PER CYLINDER + .MSRPC==:23 ;NUMBER OF PAGES PER CYLINDER + .MSRCU==:24 ;NUMBER OF CYLINDERS PER UNIT + .MSRSU==:25 ;NUMBER OF SECTORS PER UNIT + .MSRBT==:26 ;NUMBER OF BIT-WORDS IN BIT TABLE PER CYLINDER + .MSRSE==:27 ;CPU SERIAL # IF STRUCTURE IS USED FOR BOOTING + .MSRLS==:30 ;NUMBER OF LOST SECTORS PER CYLINDER + .MSRSS==:31 ;NUMBER OF SECTORS PER SURFACE + .MSDSH==:32 ;HIGH ORDER DRIVE SERIAL NUMBER + .MSDSN==:33 ;LOW ORDER DRIVE SERIAL NUMBER + .MSTSP==:34 ;TRUE NUMBER OF SECTORS PER PAGE + .MSMID==:35 ;MAINTANENCE ID - ID ALL PACKS IN STR + .MSRLN==:36 ;MAX LENGTH OF ARGUMENT BLOCK IN WORDS + +.MSMNT==:2 ;MOUNT A STRUCTURE + .MSTNM==:0 ;NAME OF STRUCTURE + .MSTAL==:1 ;ALIAS NAME + .MSTNU==:2 ;NUMBER OF UNITS IN STRUCTURE + .MSTFL==:2 ;FLAGS (LHS) + MS%FLG==:777777,,0 ;MASK FOR .MSTFL + MS%NFH==:1B0 ;NO FIX BAD HOME BLOCK + MS%NFB==:1B1 ;NO FIX BAD BAT BLOCK + MS%XCL==:1B2 ;MOUNT FOR EXCLUSIVE USE BY JOB + MS%IGN==:1B3 ;IGNORE ERRORS + MS%EXL==:1B4 ;CFS mount exclusive + .MSTUI==:3 ;START OF UNIT INFORMATION + .MSTCH==:0 ;CHANNEL NUMBER + .MSTCT==:1 ;CONTROLLER NUMBER + .MSTUN==:2 ;UNIT NUMBER + .MSTNO==:3 ;# OF ARGUMENT WORDS/UNIT + +.MSDIS==:3 ;DISMOUNT A STRUCTURE + .MSDNM==:0 ;NAME OF STRUCTURE + +.MSGSS==:4 ;GET STATUS OF A STRUCTURE + .MSGSN==:0 ;STRUCTURE NAME (ALIAS) + .MSGST==:1 ;STATUS + MS%PS==:1B0 ;[7.1112]Structure is the Login Structure + MS%DIS==:1B1 ;STRUCTURE IS BEING DISMOUNTED + MS%DOM==:1B2 ;STRUCTURE IS DOMESTIC + MS%PPS==:1B3 ;[7.1112]Structure is permanent, protected + MS%INI==:1B4 ;STRUCTURE IS BEING INITIALIZED + MS%LIM==:1B5 ;STRUCTURE LIMITED TO 2050 SIZES + MS%NRS==:1B6 ;STRUCTURE IS NOT REGULATED + MS%RWS==:1B7 ;READ AFTER WRITE FOR SWAP SPACE + MS%RWD==:1B8 ;READ AFTER WRITE FOR DATA SPACE + MS%ASG==:1B9 ;DISK ASSIGNMENTS ARE PROHIBITED + ; (BIT TABLE IS BAD) + MS%MXB==:1B10 ;BIT TABLE TOO LARGE FOR MONITOR ADDRESS SPACE + MS%CRY==:1B11 ;ENABLE PASSWORD ENCRYPTION + MS%IDT==:1B12 ;ENABLE PASSWORD INVALIDATION BY DATE + MS%IUS==:1B13 ;ENABLE PASSWORD INVALIDATION BY USE + MS%DMP==:1B14 ;[7.1081] Structure is dumpable + MS%EXC==:1B15 ;EXCLUDE STRUCTURE FROM COMMON FILE SYSTEM + MS%IDX==:1B16 ;INDEX TABLE FILE OFN HAS BEEN SET UP + MS%CRD==:1B17 ;CREATING ROOT-DIRECTORY ON THIS STR + MS%OFS==:1B18 ;[7.1063]Structure is offline + MS%BS==:1B19 ;[7.1112]Structure is the boot structure + .MSGNU==:2 ;NUMBER OF UNITS IN STRUCTURE + .MSGMC==:3 ;MOUNT COUNT + .MSGFC==:4 ;OPEN FILE COUNT + .MSGSI==:5 ;STRUCTURE ID + .MSGLN==:6 ;LENGTH OF ARGUMENT BLOCK + +.MSSSS==:5 ;SET STATUS OF A STRUCTURE + .MSSSN==:0 ;STRUCTURE NAME + .MSSST==:1 ;NEW STATUS BITS + .MSSMW==:2 ;MASK WORD OF BITS TO BE CHANGED + .MSSLN==:3 ;LENGTH OF ARGUMENT BLOCK + +.MSINI==:6 ;INITIALIZE A STRUCTURE + .MSINM==:0 ;NAME OF STRUCTURE + .MSIAL==:1 ;ALIAS NAME + .MSINU==:2 ;NUMBER OF UNITS IN STRUCTURE + .MSIFL==:2 ;FLAGS (LHS) + ;FLAGS DEFINED IN .MSMNT FUNCTION + MS%FCN==:77B17 ;FUNCTION CODE + .MSCRE==:1 ;CREATE NEW FILE SYSTEM + .MSRRD==:2 ;RECONSTRUCT THE ROOT-DIRECTORY + .MSWHB==:3 ;WRITE THE HOME BLOCKS + .MSRIX==:4 ;REBUILD INDEX TABLE (IDXFIL) + .MSISU==:3 ;START OF UNIT INFORMATION + .MSICH==:0 ;CHANNEL NUMBER + .MSICT==:1 ;CONTROLLER NUMBER + .MSIUN==:2 ;UNIT NUMBER + .MSINO==:3 ;# OF ARGUMENT WORDS/UNIT + .MSIST==:6 ;STATUS WORD + .MSISW==:7 ;NUMBER OF PAGES FOR SWAPPING ON THIS UNIT + .MSIFE==:10 ;NUMBER OF PAGES FOR FRONT-END FILE SYSTEM + .MSIUI==:11 ;UNIT ID + .MSIOI==:14 ;OWNER ID + .MSIFI==:17 ;FILE SYSTEM ID + .MSIFB==:22 ;NUMBER OF PAGES FOR BOOTSTRAP.BIN (OPTIONAL) + .MSISN==:23 ;CPU SERIAL # IF STRUCTURE IS USED FOR BOOTING + +.MSIMC==:7 ;INCREMENT MOUNT COUNT +.MSDMC==:10 ;DECREMENT MOUNT COUNT + .MSDEV==:0 ;DEVICE DESIGNATOR OR STRUCTURE + .MSJOB==:1 ;JOB NUMBER FOR WHICH TO CHANGE COUNT + +.MSGSU==:11 ;GET STRUCTURE USERS + .MSUAL==:0 ;POINTER TO ALIAS OF STRUCTURE + .MSUFL==:1 ;FLAGS,,# OF ITEMS RETURNED + MS%GTA==:1B0 ;GET USERS WHO HAVE ACCESSED STRUCTURE + MS%GTM==:1B1 ;GET USERS WHO HAVE MOUNTED STRUCTURE + MS%GTC==:1B2 ;GET USERS WHO ARE CONNECTED TO STRUCTURE + .MSUJ1==:2 ;FIRST JOB NUMBER RETURNED + +.MSHOM==:12 ;MODIFY HOMEBLOCK WORD + .MSHNM==:0 ;POINTER TO ALIAS, OR DESIGNATOR FOR ALIAS + .MSHOF==:1 ;OFFSET INTO HOMEBLOCK OF WORD BEING CHANGED + .MSHVL==:2 ;NEW VALUES FOR BITS BEING CHANGED + .MSHMK==:3 ;MASK DECLARING WHICH BITS BEING CHANGED + +.MSICF==:13 ;INCREMENT MOUNT COUNT ON A FORK BASIS +.MSDCF==:14 ;DECREMENT MOUNT COUNT ON A FORK BASIS + .MSDEV==:0 ;DEVICE DESIGNATOR OR STRUCTURE + +.MSOFL==:15 ;ENABLE PSI INTERRUPTS INTERRUPTS FOR + ; DISK (FOR DEVICE ALLOCATOR) + .MSCHN==:0 ;CHANNEL ON WHICH TO RECEIVE INTERRUPT + + +.MSIIC==:16 ;IGNORE INCREMENT CHECK FOR STRUCTURE USE +.MSCSM==:17 ;Convert structure mount attribute + .MSCDV==:0 ;Device designator + .MSCST==:1 ;New attribute + + +;MTOPR - FUNCTION CODES + +.MOCLE==:0 ;CLEAR ERRORS +.MONOP==:31 ;NOP (WAIT FOR ACTIVITY TO STOP) +.MOREW==:1 ;REWIND +.MOEOF==:3 ;WRITE EOF +.MODTE==:4 ;ASSIGN FE DEVICE TO A DTE +.MOFWR==:6 ;FORWARD SPACE RECORD +.MOBKR==:7 ;BACKSPACE RECORD +.MORUL==:11 ;REWIND AND UNLOAD +.MOERS==:13 ;ERASE TAPE +.MOFWF==:16 ;FORWARD SPACE FILE +.MOBKF==:17 ;BACKSPACE FILE +.MOSPD==:26 ;SET TTY SPEED (FOR KL ONLY) +.MORSP==:27 ;READ LINE SPEED (FOR KL ONLY) + MO%RMT==:1B0 ;FLAG TO SAY LINE IS REMOTE + MO%AUT==:1B1 ;FLAG TO SAY LINE IS "AUTO" SPEED + ; (RSX20F ONLY) +.MOSDR==:2 ;SET READ DIRECTION +.MORDR==:26 ;READ READ DIRECTION +.MOEOT==:10 ;SKIP TO LOGICAL END OF TAPE +.MOSRS==:5 ;SET RECORD SIZE +.MORRS==:15 ;READ RECORD SIZE +.MOSDN==:24 ;SET DENSITY +.MORDN==:12 ;READ DENSITY +.MOSDM==:4 ;SET DATA MODE +.MORDM==:14 ;READ DATA MODE +.MOSPR==:20 ;SET PARITY +.MORPR==:21 ;READ PARITY +.MONRB==:22 ;GET NUMBER OF REMAINING BYTES IN RECORD +.MOFOU==:23 ;FORCE OUT RECORD +.MOINF==:25 ;GET INFORMATION ABOUT TAPE + .MOICT==:0 ;COUNT OF ARGUMENTS TO BE RETURNED + .MOITP==:1 ;MAGTAPE TYPE CODE +; DEFINED THE SAME AS .UTTXX IN PHYPAR + .MTT45==:3 ;MAGTAPE TYPE TU45 + .MTT77==:13 ;MAGTAPE TYPE TU77 + .MTT78==:15 ;MAGTAPE TYPE TU78 + .MTT70==:17 ;MAGTAPE TYPE TU70 + .MTT71==:20 ;MAGTAPE TYPE TU71 + .MTT72==:21 ;MAGTAPE TYPE TU72 + .MTT73==:22 ;RESERVED FOR 200 IPS STC GCR DRIVE + .MTA78==:34 ;MAGTAPE TYPE TA78 + .MOIID==:2 ;MAGTAPE REEL ID + .MOISN==:3 ;CHAN,CONTROLLER,UNIT ,, SERIAL # + .MOIRD==:4 ;# OF READS DONE + .MOIWT==:5 ;# OF WRITES DONE + .MOIRC==:6 ;RECORD # FROM BOT + .MOIFC==:7 ;FILE COUNT ON TAPE + .MOISR==:10 ;# OF SOFT READ ERRORS + .MOISW==:11 ;# OF SOFT WRITE ERRORS + .MOIHR==:12 ;# OF HARD READ ERRORS + .MOIHW==:13 ;# OF HARD WRITE ERRORS + .MOIRF==:14 ;# RECORDS READ + .MOIWF==:15 ;# OF FRAMES WRITTEN + .MOICH==:16 ;CHANNEL # + .MOICO==:17 ;CONTROLLER # + .MOIUN==:20 ;UNIT # + .MOIDH==:21 ;HIGH ORDER DRIVE SERIAL # + .MOIDN==:22 ;LOW ORDER DRIVE SERIAL # +.MOLOC==:32 ;ATTACH MT TO MTA + .MOCNT==:0 ;OFFSET FOR COUNT + .MOMTN==:1 ;OFFSET FOR MT NUMBER + .MOLBT==:2 ;LABEL TYPE (.LTxxx) + .MODNS==:3 ;DENSITY (.SJDxx) + .MOAVL==:4 ;ADDRESS OF VOLUME LABELS + .MONVL==:5 ;# OF VOLUME LABELS (VOL1 + UVLSs) + .MOCVN==:6 ;CURRENT VOLUME NUMBER WITHIN SET + .MOVSN==:7 ;VOLUME SET NAME +.MOSTA==:37 ;CURRENT MAGTAPE STATUS + .MODDN==:1 ;1ST WORD OF .MOSTA DENSITIES CAPABLE + + SJ%CP2==:1B1 ;200 BPI + SJ%CP5==:1B2 ;556 BPI + SJ%CP8==:1B3 ;800 BPI + SJ%C16==:1B4 ;1600 BPI + SJ%C62==:1B5 ;6250 BPI + + .MODDM==:2 ;2ND WORD OF .MOSTA DATA MODES CAPABLE + SJ%CMC==:1B1 ;CORE DUMP MODE + SJ%CM6==:1B2 ;SIXBIT + SJ%CMA==:1B3 ;ANSI ASCII + SJ%CM8==:1B4 ;INDUSTRY COMPATABLE + SJ%CMH==:1B5 ;HIGH DENSITY MODE + .MOTRK==:3 ;3RD WORD OF .MOSTA NUMBER OF TRACKS + SJ%7TR==:1B1 ;7 TRACK DRIVE + SJ%9TR==:1B2 ;9 TRACK DRIVE + + .MOCST==:4 ;4TH WORD OF .MOSTA TAPE STATUS + SJ%OFS==:1B0 ;OFF LINE + SJ%MAI==:1B1 ;MAINTENANCE MODE ENABLED + SJ%MRQ==:1B2 ;MAINTENANCE MODE REQUESTED + SJ%BOT==:1B3 ;BOT + SJ%REW==:1B4 ;REWINDING + SJ%WLK==:1B5 ;WRITE LOCKED + + .MODVT==:5 ;5TH WORD OF .MOSTA DEVICE TYPE + +; DEFINITIONS FOR THIS ARE SAME AS USED IN .MTALN +.MOOFL==:40 ;PSI FOR MAGTAPES +.MOPST==:42 ;PSI FOR EOT ON MT'S +; T3/ PSI ASSIGNMENT (-1 = CLEAR) +.MORVS==:.MOREW ;REWIND VOLUME SET +.MORVL==:43 ;REWIND CURRENT VOLUME +.MOVLS==:44 ;VOLUME SWITCH FOR UNLABELED TAPES +.MONTR==:45 ;SET/CLEAR NO TRANSLATE FLAG +; T3/ -1 = DON'T CONVERT EBCDIC TO ASCII +; T3/ 0 = CONVERT +.MORDL==:46 ;READ USER LABELS +; T2/ GETS LABEL I.D. +; T3/ SP TO WHERE 76 CHARCTERS ARE TO BE PLACED +.MOWUL==:47 ;WRITE USER LABELS +; T2/ LABEL I.D. +; T3/ SP TO 76 CHARACTERS OF DATA +.MORLI==:50 ;READ LABEL INFORMATION FOR MT + .MOMTP==:1 ;TYPE OF LABEL + .MOMVN==:2 ;VOLUME NAME + .MOMOW==:3 ;OWNER + .MOMFM==:4 ;FORMAT OF TAPE FILE + .MOMRL==:5 ;RECORD LENGTH + .MOMBL==:6 ;BLOCK LENGTH + .MOMCD==:7 ;CREATION DATE + .MOMED==:10 ;EXPIRATION DATE + .MOMFI==:11 ;FILE NAME + .MOMGN==:12 ;GENERATION NUMBER + .MOMGV==:13 ;GENERATION VERSION NUMBER + .MOVMB==:14 ;VALUE OF MODE BYTE +.MOSMV==:51 ;SET MODE VALUE + .TPFST==:0 ;STREAM MODE + .TPFCP==:1 ;ALL FORMATTING CONTROLS PRESENT + .TPFFC==:2 ;FORTRAN CONTROLS PRESENT + .TPFNC==:3 ;NO CONTROLS PRESENT + .TPFMX==:3 ;MAX VALUE OF FIELD +.MOSDS==:52 ;SET DEFERRED VOLUME-SWITCH MODE +.MOIRB==:53 ;RETURN NUMBER OF IORBS QUEUED FOR DEVICE +.MOPSI==:27 ;SET ERROR PSI FOR LPT AND CDR + MO%MSG==:1B0 ;SUPPRESS STANDARD CTY MESSAGES +.MOSID==:27 ;SET REEL I.D. +.MOIEL==:30 ;INHIBIT ERROR LOGGING +.MOSHV==:45 ;SET HDR1 AND HDR2 VALUES FOR MT + .MOFMT==:1 ;OFFSET FOR FORMAT + .MOEPD==:2 ;EXPIRATION DATE + .MOBSZ==:3 ;BLOCK SIZE + .MORSZ==:4 ;RECORD SIZE + +;DEF FOR IPCF MESSAGE SENT ON A VOLUME SWITCH OR OTHER CONDITION +;MESSAGE CODE IS .IPCTR. OFFSETS THAT FOLLOW ARE +;RELATIVE TO WORD CONTAINING .IPCTR. + +.VMCOD==:0 ;CODE FOR THIS MESSAGE + ; IS SUBCODE OF .IPCTR FUNCTION + .VMABT==:1 ;ABORT CLOSE + .VMICN==:2 ;INTERNAL ERROR (HOPEFULLY NOT USED) + .VMERR==:3 ;LABEL R/W ERROR + .VMVSM==:4 ;VOLUME SWITCH + .VMSTS==:5 ;UNIT STATUS CHANGE (NOT USED YET) + .VMUNL==:6 ;UNIT UNLOAD + .VMREW==:7 ;REWIND +.VSMTN==:1 ;MT NUMBER +.VSFLG==:2 ;FLAGS + VS%FLG==:-1B17 ;FLAGS PART OF WORD + VS%WRT==:1B0 ;WRITE PREVIOUS VOLUME WAS OPENED FOR WRITE + VS%COD==:777777 ;CODE + .VSMNV==:1 ;MOUNT NTH VOLUME + .VSFST==:2 ;MOUNT FIRST VOLUME + .VSLST==:3 ;MOUNT LAST VOLUME + .VSMRV==:4 ;MOUNT RELATIVE VOLUME NUMBER (SIGNED) + .VSFLS==:5 ;FORCE LABELED TAPE VOLUME-SWITCH +.VSCNT==:3 ;VOLUME NUMBER (SIGNED IF VS%MRV IS ON) + +.MOLVF==:32 ;LOAD DEVICE'S VFU +.MORVF==:33 ;READ VFU FILE NAME +.MOLTR==:34 ;LOAD TRANSLATION RAM +.MORTR==:35 ;READ RAM FILE NAME +.MOSTS==:36 ;SET SOFTWARE STATUS +.MORST==:37 ;READ SOFTWARE STATUS + MO%LPC==1 ;PAGE COUNTER OVERFLOW + MO%LCI==2 ;CHARACTER INTERRUPT (HARD ERROR) + MO%LVF==4 ;VFU ERROR. PAPER MUST BE RE-ALIGNED + MO%LVU==20 ;LINE PRINTER HAS OPTICAL VFU + MO%RPE==40 ;RAM PARITY ERROR + + MO%RCK==:1 ;READ CHECK + MO%PCK==:2 ;PICK CHECK + MO%SCK==:4 ;STACK CHECK + MO%HEM==:10 ;HOPPER EMPTY + MO%SFL==:20 ;STACKER FULL + + MO%FNX==:1B17 ;NON-EXISTENT DEVICE + MO%OL==:1B16 ;DEVICE IS OFF-LINE + MO%HE==:1B15 ;HARDWARE ERROR + MO%SER==:1B14 ;SOFTWARE ERROR + MO%IOP==:1B13 ;I/O IN PROGRESS + MO%EOF==:1B12 ;END OF FILE +; 1B11 ;RESERVED + MO%FER==:1B10 ;FATAL ERROR + MO%LCP==:1B0 ;LOWER CASE PRINTER + MO%RLD==:1B1 ;FRONT-END WAS RELOADED +.MOFLO==:40 ;FLUSH OUTPUT + +;SEE SETJB FOR VARIOUS ARGUMENT VALUES + +.MOSNT==:34 ;SET TTY NON-TERMINAL STATUS + .MOSMN==:1 ;NO SYSTEM MESSAGES(I.E. SUPPRESS) + .MOSMY==:0 ;YES SYSTEM MESSAGES(DEFAULT) +.MORNT==:35 ;READ TTY NON-TERMINAL STATUS + +;PTY MTOPR NUMBERS + +.MOAPI==:24 ;ASSIGN PTY INTERRUPT CHANNELS + MO%WFI==:1B0 ;ENABLE WAITING FOR INPUT + MO%OIR==:1B1 ;ENABLE OUTPUT IS WAITING + MO%SIC==:77B17 ;SOFTWARE INTERRUPT CHANNEL +.MOPIH==:25 ;TEST PTY INPUT HUNGRY + .MONWI==:0 ;NOT WAITING FOR INPUT + .MOWFI==:-1 ;WAITING FOR INPUT +.MOBAT==:26 ;SET BATCH BIT + .MOJCB==:1 ;JOB CONTROLLED BY BATCH + .MONCB==:0 ;JOB NOT CONTROLLED BY BATCH + + +;TTY MODE DEFINITIONS + +.MORLW==:30 ;READ WIDTH +.MOSLW==:31 ;SET WIDTH +.MORLL==:32 ;READ LENGTH +.MOSLL==:33 ;SET LENGTH +.MOSIG==:36 ;SET "IGNORE INPUT WHEN INACTIVE" BIT +.MORBM==:37 ;READ 128 CHARACTER BREAK MASK + + MO%WN1==:776117,,777740 ;BIT DEFINITIONS FOR NON-FORMATTING CONTROL + MO%WN2==:0 ;FOR ASCII CODES 40-777 + MO%WN3==:0 ;FOR ASCII CODES 100-137 + MO%WN4==:20 ;FOR ASCII CODES 137-177 + + MO%WF1==:001260,,000420 ;FORMATTING CONTROL BITS + MO%WF2==:0 ;FOR ASCII CODES 40-77 + MO%WF3==:0 ;FOR ASCII CODES 100-137 + MO%WF4==:20 ;FOR ASCII CODES 140-177 + + MO%WP1==:000400,,400 ;PUNCTUATION BIT DEFINITIONS + MO%WP2==:777774,,001760 ; FOR ASCII CODES 40-77 + MO%WP3==:400000,,000760 ; FOR ASCII CODES 100-137 + MO%WP4==:400000,,000760 ; FOR ASCII CODES 140-177 + + MO%WA1==:400 ;ALPHANUMERICS DEFINITIONS + MO%WA2==:000003,,776000 ; FOR ASCII CODES 40-77 + MO%WA3==:377777,,777000 ; FOR ASCII CODES 100-137 + MO%WA4==:377777,,777020 ; FOR ASCII CODES 140-177 +.MOSBM==:40 ;SET 128 CHARACTER BREAK MASK +.MORFW==:41 ;READ FIELD WIDTH +.MOSFW==:42 ;SET FIELD WIDTH +.MOXOF==:43 ;SET/CLEAR XOFF/XON HANDLING + .MOOFF==:0 ;TURN OFF XON/XOFF PROCESSING + .MOONX==:1 ;TURN ON XON/XOFF PROCESSING +.MORXO==:44 ;READ VALUE OF XOFF BIT +.MOSLC==:45 ;SET LINE COUNTER +.MORLC==:46 ;READ LINE COUNTER +.MOSLM==:47 ;SET LINE COUNTER MAXIMUM +.MORLM==:50 ;READ LINE COUNTER MAXIMUM +.MOTPS==:51 ;PSI FOR NON-CONTROLLING TERMINAL +.MOPCS==:52 ;SET PAGE PAUSE CHARACTER +.MOPCR==:53 ;READ PAGE PAUSE CHARACTER +.MORTF==:54 ;READ TERMINAL FLAGS +.MOSTF==:55 ;SET/CLEAR TERMINAL FLAGS + MO%NUM==:1B34 ;REFUSE USER-MESSAGES + MO%NTM==:1B35 ;INHIBIT NON-JOB OUTPUT +.MOTCE==:56 ;SET TWO CHARACTER ESCAPE SEQUENCE +.MORTC==:57 ;READ TWO CHARACTER ESCAPE SEQUENCE +.MOCTM==:60 ;~6.0 IS THIS A CTERM TTY +.MOTXT==:61 ;~6.0 REMOTE TEXTI% +.MOHUP==:62 ;[7436] Hangup remote line +.MOUHU==:63 ;[7436] Unhangup (raise DTR) on remote line + +;NET MTOPR NUMBERS + +.MOACP==:20 ;TOPS20AN ;ACCEPT CONNECTION ON SOCKET +.MOSND==:21 ;TOPS20AN ;SEND ALL CURENTLY BUFFERED BYTES +.MOSIN==:22 ;TOPS20AN ;SEND INS/INR COMMAND +.MOAIN==:24 ;TOPS20AN ;ASSIGN INS/INR AND FSM PSI CHANNELS + MO%NIN==:77B5 ;TOPS20AN ;INS/INR SOFTWARE INTERRUPT CHANNEL + MO%FSM==:77B17 ;TOPS20AN ;FSM CHANGE OF STATE INTERRUPT CHANNEL + + +;DEFINITIONS FOR DECNET + +.MOACN==:24 ;ASSIGN CONNECT INTERRUPT CHANNEL + MO%CDN==:777B8 ;CONNECT INTERRUPT CHANNEL + MO%INA==:777B17 ;INTERRUPT MESSAGE CHANNEL + MO%DAV==:777B26 ;DATA AVAILABLE CHANNEL + .MONCI==:777 ;NO CHANGE + .MOCIA==:776 ;CLEAR INTERRUPT ASSIGNMENT + +.MORLS==:25 ;READ LINK STATUS + MO%CON==:1B0 ;LINK IS CONNECTED + MO%SRV==:1B1 ;LINK IS A SERVER + MO%WFC==:1B2 ;WAITING FOR A CONNECT + MO%WCC==:1B3 ;WAITING FOR THIS LINK TO CONFIRM + MO%EOM==:1B4 ;EOM PRESENT IN INPUT BUFFER + MO%ABT==:1B5 ;CONNECTION ABORTED + MO%SYN==:1B6 ;SYNCH DI RECIEVED + MO%INT==:1B7 ;INT MESSAGE AVAILABLE + MO%LWC==:1B8 ;LINK WAS CONNECTED +.MORHN==:26 ;READ HOST NAME +.MORTN==:27 ;READ TASK NAME +.MORUS==:30 ;READ USER DATA +.MORPW==:31 ;READ PASSWORD +.MORAC==:32 ;READ ACCOUNT +.MORDA==:33 ;READ OPTIONAL DATA +.MORCN==:34 ;READ CONNECT OBJECT NUMBER +.MORIM==:35 ;READ INTERRUPT MESSAGE +.MOSIM==:36 ;SEND INTERRUPT MESSAGE +.MOROD==:37 ;READ OBJ-DESC OF CONNECTION +.MOCLZ==:40 ;CLOSE/REJECT A CONNECTION +.MOCC==:41 ;ACCEPT A CONNECTION +.MORSS==:42 ;READ SEGMENT SIZE +.MOANT==:43 ;ATTACH NETWORK TERMINAL +.MOSNH==:44 ;SET NETWORK HOST + .SHTTY==:1 ;ARG BLOCK - TTY IDENT + .SHESC==:2 ; - FLAGS,,ESC CHAR + SH%LPM==:1B0 ; FLAG - LOCAL PAGE MODE +.MOSLP==:45 ;~6.0 Set link parameters + .SLPSS==:1 ;~6.0 Segment size + .SLPFC==:2 ;~6.0 Flow control option + MO%RFC==:7B17 ;~6.0 Remote flow control + MO%LFC==:7B35 ;~6.0 Local flow control + NSF.C0==:1 ;~6.0 No flow control + NSF.CS==:2 ;~6.0 Segment flow control + NSF.CM==:3 ;~6.0 Message flow control +.MORLP==:46 ;~6.0 Read link parameters +.MOSLQ==:47 ;~6.0 Set link quotas + .SLQIP==:1 ;~6.0 Percentage for input + .SLQLQ==:2 ;~6.0 Link quota + .SLQIG==:3 ;~6.0 Input goal +.MORLQ==:50 ;~6.0 Read link quotas +.MORFT==:51 ;6.1 Read format of source process name + .FMTT0==:0 ; Format type 0 + .FMTT1==:1 ; Format type 1 + .FMTT2==:2 ; Format type 2 + +;DEFINITIONS FOR ATS + +;FUNCTION CODES FOR MTOPR ARE IN COLUMN 1 + +.MOAMO==:1 ;SET MODE WORD + .MOAMM==:1 ;MESSAGE MODE + .MOADM==:2 ;DATA MODE +.MOAAT==:2 ;ACQUIRE TERMINAL + MO%AER==:1B0 ;HTN FIELD CONTAINS AN ERROR CODE +.MOASI==:3 ;ENABLE INTERRUPTS + MO%IFL==:777B8 ;FUNCTION TO BE PERFORMED + .MOAAI==:0 ;ASSIGN INTERRUPT CHANNEL + .MOADI==:1 ;DEASSIGN INTERRUPT CHANNEL + MO%IEV==:777B17 ;EVENT BEING ASSIGNED OR DEASSIGNED + .MOADT==:0 ;DATA ARRIVAL + .MOAST==:1 ;STATUS ARRIVAL + MO%ACH==:777777B35 ;CHANNEL NUMBER +.MORCD==:4 ;GET STATUS + MO%WDV==:777B35 ;WHICH DEVICES TO REPORT ON + .MOALD==:0 ;ALL TERMINALS + .MOCHG==:1 ;TERMINALS WHOSE STATUS HAS CHANGED + .MOLST==:2 ;TERMINALS SPECIFIED IN LIST + MO%ARM==:1B0 ;ASK THE RESOURCE MANAGER + MO%MDA==:1B1 ;MORE DATA AVAILABLE FOR THIS JFN + AT%OPN==:1B0 ;HTN IS OPEN AND USABLE + AT%TCL==:1B1 ;NRM CLOSED TERMINAL VIA STATUS-REPORT + AT%DHT==:1B2 ;DEASSIGNING HTN + AT%TXF==:1B3 ;TERMINAL IS XOFF'D + AT%UND==:1B4 ;DEVICE REQUESTED IS UNDEFINED + AT%NAV==:1B5 ;DEVICE REQUESTED IS NOT AVAILABLE + AT%OFL==:1B6 ;DEVICE REQUESTED IS OFFLINE + AT%FUL==:1B7 ;SERVER IS FULL + AT%UNS==:1B8 ;DEVICE TYPE IS UNSUPPORTED + AT%REJ==:1B9 ;NODE NRM REJECTED THE REQUEST + AT%MIE==:1B10 ;MONITOR INTERNAL ERROR (NODE OR HOST) + AT%STF==:1B11 ;VT62 START-UP FAILED + AT%CRJ==:1B12 ;CONNECTION WAS REJECTED + AT%NDP==:1B13 ;DATA PIPE IS NOT OPEN + AT%SER==:777777B35 ;STATUS REPORT ERROR CODE (18 BITS) +.MOADE==:5 ;DEASSIGN TERMINAL + MO%AAB==:1B0 ;DON'T SEND REMAINING DATA + +;FUNCTION CODES FOR AYDIN DISPLAY MTOPR + +.MOFLE==:0 ;FLUSH ERRORS +.MORER==:1 ;RETURN AYDIN ERROR CODE +.MOWAT==:2 ;WAIT FOR ACTIVITY TO STOP + MO%RWC==:777777B17 ;REMAINING WORD COUNT + MO%LER==:777777B35 ;LAST AYDIN ERROR CODE + +;DEFS FOR MTU JSYS + +;FUNCTIONS: + +.MTNVV==:1 ;SET NO VOLUME VALID + .MTCNT==:0 ;COUNT WORD + .MTCOD==:1 ;ERROR CODE + .MTPTR==:2 ;SP TO OPERATOR RESPONSE + +.MTRAL==:2 ;READ ALL LABELS + .MTVL1==:1 ;SP TO VOL1 AREA + .MTVL2==:2 ;SP TO VOL2 AREA + .MTHD1==:3 ;SP TO HDR1 AREA + .MTHD2==:4 ;SP TO HDR2 AREA +.MTASI==:3 ;RETURN MT TO MTA ASSOCIATION + .MTPHU==:1 ;RETURN MTA UNIT NUMBER HERE + .MTNUL==:-1 ;NO ASSIGNMENT CODE +.MTCVV==:4 ;CLEAR VV + +;MUTIL JSYS FUNCTION CODES + +.MUENB==:1 ;ENABLE PID FOR RECEIVING +.MUDIS==:2 ;DISABLE PID FROM RECEIVING +.MUGTI==:3 ;GET PID OF [SYSTEM]INFO +.MUCPI==:4 ;CREATE A PRIVATE INFO FOR A JOB +.MUDES==:5 ;DESTROY A PID +.MUCRE==:6 ;CREATE A PID +.MUSSQ==:7 ;SET SEND AND RECEIVE QUOTAS +.MUCHO==:10 ;CHANGE OWNER OF A PID +.MUFOJ==:11 ;FIND OWNER'S JOB NUMBER +.MUFJP==:12 ;FIND JOB'S PIDS +.MUFSQ==:13 ;FIND SEND AND RECEIVE QUOTAS +.MUFFP==:15 ;FIND FORK'S PIDS +.MUSPQ==:16 ;SET PID QUOTA +.MUFPQ==:17 ;FIND PID QUOTA +.MUQRY==:20 ;QUERY +.MUAPF==:21 ;ASSOCIATE A PID WITH A FORK +.MUPIC==:22 ;PUT PID ON AN INTERRUPT CHANNEL +.MUDFI==:23 ;DEFINE PID OF [SYSTEM]INFO +.MUSSP==:24 ;SET SYSTEM PID TABLE +.MURSP==:25 ;READ SYSTEM PID TABLE +.MUMPS==:26 ;GET MAXIMUM PACKET SIZE +.MUSKP==:27 ;SET PID TO RECEIVE KILLED PID MESSAGE +.MURKP==:30 ;READ PID THAT RECEIVES KILLED PID MESSAGES +.MUSPS==:31 ;Get system maximum packet size + + +;SYSTEM PID TABLE INDEX VALUES + +.SPIPC==:0 ;PID OF IPCC +.SPINF==:1 ;PID OF INFO +.SPQSR==:2 ;PID OF QUASAR +.SPMDA==:3 ;PID OF QSRMDA +.SPOPR==:4 ;PID OF OPERATOR JOB (ORION) +.SPNSR==:5 ;PID OF NETSER +.SPCUS==:6 ;PID OF CUSTOM APPLICATION (used in QUEUE%) +.SDIPC==:7 ;PID OF DEBUG IPCC (used in QUEUE%) +.SDINF==:10 ;PID OF DEBUG INFO (used in QUEUE%) +.SDQSR==:11 ;PID OF DEBUG QUASAR (used in QUEUE%) +.SDMDA==:12 ;PID OF DEBUG QSRMDA (used in QUEUE%) +.SDOPR==:13 ;PID OF DEBUG ORION (used in QUEUE%) +.SDNSR==:14 ;PID OF DEBUG NETSER (used in QUEUE%) +.SDCUS==:15 ;PID OF DEBUG CUSTOM APPLICATION(used in QUEUE%) +.SPNEB==:16 ;[7.1080] PID of NEBULA +.SDNEB==:17 ;[7.1080] PID of debug NEBULA + +;NI% + +; Function codes for NI% JSYS + + .EIOPN==:1 ; Open a Portal + .EICLO==:2 ; Close a Portal + .EIRCV==:3 ; Post a Receive Buffer + .EIRRQ==:4 ; Read Receive Queue + .EIXMT==:5 ; Transmit a Datagram + .EIRTQ==:6 ; Read Transmit Queue + .EIEMA==:7 ; Enable a Multicast + .EIDMA==:10 ; Disable a Multicast + .EIRPL==:11 ; Read Portal List + .EIRCL==:12 ; Read Channel List + .EIRPC==:13 ; Read Portal Counters + .EIRCC==:14 ; Read Channel Counters + .EIRCI==:15 ; Read Channel Information + .EISCS==:16 ; Set Channel State + .EISCA==:17 ; Set Channel Address + .EIGET==:20 ; Obtain ownership of the channel + .EIREL==:21 ; Release ownership of the channel + .EIRPI==:22 ; Read Portal Information + + .EIMAX==:22 ; Maximum function value + +; Ethernet Channel states + + .EISVG==:1 ; Virgin - has never run before + .EISRE==:2 ; Reload - reload requested + .EISCR==:3 ; Can't Reload - reload request timed out + .EISIN==:4 ; Init - waiting for response to first command + .EISRN==:5 ; Run - channel is running and can accept commands + .EISDP==:6 ; Dump - a dump has been requested + .EISDR==:7 ; Dump & Reload - dump followed by a reload request + .EISBK==:10 ; Broken - channel cannot be initialized + .EISOF==:11 ; Off - channel is off + .EISRR==:12 ; Reload Requested - make KNILDR run + + .EISMX==:12 ; Maximum state + +; Argument block for NI% JSYS + + .EILEN==:0 ; Length of this argument block + EI%LEN==:<777777,,000000> ; Mask for length field + .EIFCN==:0 ; Function code + EI%FCN==:<000000,,777777> ; Mask for function code field + .EIFLG==:1 ; Flags + EI%FLG==:<777777,,000000> ; Mask for all flags + EI%BLK==:1B0 ; Function should block + EI%TBA==:1B1 ; Transmit Buffers Available + EI%RBA==:1B2 ; Receive Buffers Available + EI%ZRO==:1B3 ; Zero Counters + EI%PAD==:1B4 ; Use Padding + EI%GBL==:1B5 ; Use Global Portal IDs + .EIPID==:1 ; Portal ID + EI%PID==:<000000,,777777> ; Mask for portal ID + .EICHN==:2 ; Channel number + EI%CHN==:<777777,,000000> ; Mask for channel number + .EIJOB==:2 ; Job # + EI%JOB==:<777777,,000000> ; Mask for job # + .EIPRO==:2 ; Protocol type + EI%PRO==:<000000,,777777> ; Mask for protocol type + .EIPSI==:3 ; PSI channels + EI%TCH==:<777700,,000000> ; Transmit completion channel + EI%RCH==:<000077,,770000> ; Receive completion channel + EI%SCH==:<000000,,007777> ; Status change channel + .EISTA==:4 ; Ethernet channel status + EI%RUN==:1B0 ; Channel is running + EI%SST==:<000000,,777000> ; Channel substate + EI%EXS==:<000000,,000777> ; Channel external state + .EIBCP==:5 ; Buffer descriptor chain pointer + .EIPHY==:5 ; Physical Ethernet address + EI%PHY==:<777777,,777777> ; Mask for physical address + .EIAR1==:6 ; Argument 1 + .EIAR2==:7 ; Argument 2 + .EIHRD==:7 ; Hardware (builtin) Ethernet address + EI%HRD==:<777777,,777777> ; Mask for above + .EIBMX==:10 ; Maximum size of NI% arg block + +; Buffer Descriptor Block + +; Transmit usage Receive usage + + .BXLEN==:0 ; Length of block + .BXNXT==:1 ; Pointer to next Buffer Descriptor Block + .BXBSZ==:2 ; Length of buffer Length of Datagram + .BXBFA==:3 ; BP to start of buf BP to start of Datagram + .BXBID==:5 ; Buffer ID + .BXSTA==:6 ; Status + BX%VAL==:1B0 ; This block is valid (return only) + BX%STA==:777777 ; Status mask + .BXDAD==:7 ; Destination Address + .BXSAD==:11 ; Not applicable Source Address + .BXPRO==:13 ; Protocol Type + .BXBMX==:14 ; Maximum size of BD block + + +; Structured form of previous blocks + + MSKSTR EILEN,.EILEN,EI%LEN ; Length + MSKSTR EIFCN,.EIFCN,EI%FCN ; Function code + MSKSTR EIFLG,.EIFLG,EI%FLG ; Flags + MSKSTR EIBLK,.EIFLG,EI%BLK ; Function should block + MSKSTR EITBA,.EIFLG,EI%TBA ; Transmit Buffers Available + MSKSTR EIRBA,.EIFLG,EI%RBA ; Receive Buffers Available + MSKSTR EIZRO,.EIFLG,EI%ZRO ; Zero Counters + MSKSTR EIPAD,.EIFLG,EI%PAD ; Use padding + MSKSTR EIGBL,.EIFLG,EI%GBL ; Use Global Portal IDs + MSKSTR EIPID,.EIPID,EI%PID ; Portal ID + MSKSTR EICHN,.EICHN,EI%CHN ; Channel number + MSKSTR EIPRO,.EIPRO,EI%PRO ; Protocol type + MSKSTR EIPSI,.EIPSI,-1 ; Mask for all PSI fields + MSKSTR EITCH,.EIPSI,EI%TCH ; Transmit complete interrupt channel + MSKSTR EIRCH,.EIPSI,EI%RCH ; Receive complete interrupt channel + MSKSTR EISCH,.EIPSI,EI%SCH ; Status change interrupt channel + MSKSTR EISTA,.EISTA,-1 ; Mask for the entire status word + MSKSTR EIRUN,.EISTA,EI%RUN ; Channel is running + MSKSTR EISST,.EISTA,EI%SST ; Channel substate + MSKSTR EIEXS,.EISTA,EI%EXS ; Channel external state + MSKSTR EIBCP,.EIBCP,-1 ; Buffer descriptor chain pointer + MSKSTR EIAR1,.EIAR1,-1 ; Argument 1 + MSKSTR EIJOB,.EIJOB,EI%JOB ; Job # + MSKSTR EIPHY,.EIPHY,EI%PHY ; Physical Ethernet address + MSKSTR EIHRD,.EIHRD,EI%HRD ; Hardware Ethernet address + MSKSTR EIAR2,.EIAR2,-1 ; Argument 2 + +; Buffer descriptor block + + MSKSTR BXNXT,.BXNXT,-1 ; Pointer to next Buffer Descriptor Block + MSKSTR BXBSZ,.BXBSZ,-1 ; Byte Count Length of Datagram + MSKSTR BXBFA,.BXBFA,-1 ; BP to Start of Buffer BP to Start of Datagram + MSKSTR BXBID,.BXBID,-1 ; Buffer ID + MSKSTR BXVAL,.BXSTA,BX%VAL ; This block is valid + MSKSTR BXSTA,.BXSTA,BX%STA ; Status + MSKSTR BXDAD,.BXDAD,-1 ; Destination Address + MSKSTR BXSAD,.BXSAD,-1 ; Not applicable Source Address + MSKSTR BXPRO,.BXPRO,-1 ; Protocol Type + +; Read Channel Counters + + .ECCNT==:0 ; Number of words written into this block + .ECSLZ==:.ECCNT+1 ; Seconds since last zeroed + .ECBYR==:.ECSLZ+1 ; Bytes received + .ECBYS==:.ECBYR+1 ; Bytes sent + .ECDGR==:.ECBYS+1 ; Datagrams received + .ECDGS==:.ECDGR+1 ; Datagrams sent + .ECMBR==:.ECDGS+1 ; Multicast bytes received + .ECMDR==:.ECMBR+1 ; Multicast datagrams received + .ECDSD==:.ECMDR+1 ; Datagrams sent, initially deferred + .ECDS1==:.ECDSD+1 ; Datagrams sent, single collision + .ECDSM==:.ECDS1+1 ; Datagrams sent multiple collisions + .ECSF==:.ECDSM+1 ; Send failures + .ECSFM==:.ECSF+1 ; Send failure bit mask + EC%LOC==:1B24 ; Loss of carrier + EC%XBP==:1B25 ; Xmit buffer parity error + EC%RFD==:1B26 ; Remote failure to defer + EC%XFL==:1B27 ; Xmitted frame too long + EC%OC==:1B28 ; Open circuit + EC%SC==:1B29 ; Short circuit + EC%CCF==:1B30 ; Collision detect check failed + EC%EXC==:1B31 ; Excessive collisions + .ECRF==:.ECSFM+1 ; Receive failure + .ECRFM==:.ECRF+1 ; Receive failure bit mask + EC%FLE==:1B27 ; Free list parity error + EC%NFB==:1B28 ; No free buffers + EC%FTL==:1B29 ; Frame too long + EC%FER==:1B30 ; Framing error + EC%BCE==:1B31 ; Block check error + .ECUFD==:.ECRFM+1 ; Unrecognized frame destination + .ECDOV==:.ECUFD+1 ; Data overrun + .ECSBU==:.ECDOV+1 ; System buffer unavailable + .ECUBU==:.ECSBU+1 ; User buffer unavailable + .ECBMX==:.ECUBU+1 ; Max size of this block + +; Read Portal Counters + + .EPCNT==:0 ; Number of words written into this block + .EPSLZ==:.EPCNT+1 ; Seconds since last zeroed + .EPBYR==:.EPSLZ+1 ; Bytes received + .EPDGR==:.EPBYR+1 ; Datagrams received + .EPBYS==:.EPDGR+1 ; Bytes sent + .EPDGS==:.EPBYS+1 ; Datagrams sent + .EPUBU==:.EPDGS+1 ; User buffer unavailable + .EPBMX==:.EPUBU+1 ; Max size of this block + + +;NODE + +.NDSLN==:0 ;SET LOCAL NODE NAME +.NDGLN==:1 ;GET LOCAL NODE NAME + .NDNOD==:0 ;POINTER TO NODE NAME +.NDSNM==:2 ;SET LOCAL NODE NUMBER + .NDMAX==:377 ;MAXIMUM NODE NUMBER +.NDGNM==:3 ;GET LOCAL NODE NUMBER +.NDSLP==:4 ;SET LOOPBACK ON PORT + .NDPRT==:0 ;PORT TO SET IN LOOPBACK +.NDCLP==:5 ;CLEAR LOOPBACK ON PORT +.NDFLP==:6 ;FIND LOOPBACK PORT + ND%LPR==1B0 ;LOOPBACK RUNNING + ND%LPA==1B1 ;LOOPBACK ASSIGNED TO PORT +.NDSNT==:7 ;SET NETWORK TOPOLOGY INFORMATION + .NDNNO==:0 ;NUMBER OF NODES REPRESENTED IN BIT MASK + .NDMSK==:1 ;FIRST WORD OF REACHABLE NODES BIT MASK +.NDGNT==:10 ;GET NETWORK TOPOLOGY INFORMATION + .NDNND==:0 ;NUMBER OF NODE BLOCK POINTERS FOLLOWING + .NDCNT==:1 ;NUMBER OF WORDS IN A NODE BLOCK + .NDBK1==2 ;FIRST ADDRESS OF A NODE BLOCK + + ;NODE BLOCK DEFINITIONS + .NDNAM==:0 ;POINTER TO ASCIZ NODE NAME + .NDSTA==:1 ;NODE STATE + .NDSON==:0 ;ON + .NDSOF==:1 ;OFF + .NDNXT==:2 ;POINTER TO ASCIZ NEARER NEIGHBOR STRING + .NDNBS==:3 ;NODE BLOCK SIZE + +.NDSIC==:11 ;SET TOPOLOGY CHANGE INTERRUPT CHANNEL + .NDCHN==:0 ;CHANNEL NUMBER +.NDCIC==:12 ;CLEAR NETWORK TOPOLOGY INTERRUPT +.NDGVR==:13 ;GET NSP VERSION INFORMATION + .NDNVR==:0 ;NUMBER OF VERSIONS RETURNED + .NDCVR==:1 ;POINTER TO COMMUNICATONS VERSION BLOCK + .NDRVR==:2 ;POINTER TO ROUTING VERSION BLOCK + + .NDVER==:0 ;VERSION NUMBER + .NDECO==:1 ;ECO NUMBER + .NDCST==:2 ;CUSTOMER LEVEL +.NDGLI==:14 ;GET LINE INFORMATION + .NDNLN==:0 ;<# OF ENTRIES FOLLOWING>,,<# LINE RETURNED> + .NDCNT==:1 ;NUMBER OF WORDS IN A LINE BLOCK + + ; LINE BLOCK DEFINITION + .NDLNM==:0 ;NSP PORT (LINE) NUMBER + .NDLST==:1 ;STATE OF LINE + .NDLON==:1 ;ON + .NDLOF==:2 ;OFF + .NDLCN==:3 ;CONTROLLER LOOPBACK + .NDLCB==:4 ;CABLE LOOPBACK + .NDLND==:2 ;BYTE POINTER NODE AT END OF LINE + .NDLSZ==:3 ;SIZE OF BLOCK +.NDVFY==:15 ;VERIFY NODE NAME + .NDFLG==:1 ;FLAGS RETURNED BY MONITOR + ND%EXM==:1B0 ;NODE SPECIFIED EXACTLY MATCHES A KNOWN NODE + ND%LGL==:1B1 ;NODE NAME IS A LEGAL NODE NAME + ND%RCH==:1B2 ;NODE IS REACHABLE + ND%RUK==:1B3 ;Reachability of node is unknown (out of area) +.NDRNM==:16 ;GIVEN A NODE NUMBER, RETURN THE NODE NAME +.NDCIN==:17 ;GET PER-CONNECTION INFORMATION + BEGSTR NB + HWORD RTW ;0 NUMBER OF WORDS RETURNED + HWORD RQW ;0 NUMBER OF WORDS REQUESTED + WORD JOB ;1 JOB NUMBER OF THIS DATA + WORD CHN ;2 CHANNEL NUMBER + HWORD OBJ ;3 RECEIVER OBJECT TYPE OR -1 + FIELD STA,6 ;3 SESSION CONTROL STATE (LINK STATE) + FIELD XFL,3 ;3 TRANSMIT FLOW CONTROL OPTION (FLOW STATUS) + FIELD RFL,3 ;3 RECEIVE FLOW CONTROL OPTION (FLOW STATUS) + HWORD GOL ;4 RECEIVE DATA REQUEST GOAL + HWORD INQ ;4 INPUT QUOTA FOR LINK + HWORD OTQ ;5 OUTPUT QUOTA FOR LINK + HWORD DNA ;5 DESTINATION NODE ADDRESS (REMOTE HOST NAME) + HWORD SSZ ;6 SEGMENT SIZE (BYTE COUNT IN SEGMENT) + HWORD RSN ;6 REASON FOR DISCONNECT OR REJECT (16 BITS) + HWORD LLA ;7 LOCAL LINK ADDRESS (LINK ID) + HWORD RLA ;7 REMOTE LINK ADDRESS (LINK ID) + HWORD PKS ;10 PACKETS SENT OUT (SEGMENT COUNTER) + HWORD PKR ;10 PACKETS RECEIVED (SEGMENT COUNTER) + FIELD TYP,1 ;11 OPEN TYPE: 0=PASSIVE 1=ACTIVE + FIELD VER,3 ;11 VERSION OF REMOTE NSP (0=3.2, 1=3.1, 2=4.0) + FIELD JFN,13 ;11 JFN ASSOCIATED WITH CHANNEL + HWORD FRK ;11 FORK NUMBER + ENDSTR +.NDRDB==:20 ;READ DECNET DATA BLOCKS + .NDRBT==:0 ;TABLE TO RETURN TO USER: + .NDBTB==:0 ; GENERAL TABLE + .NDBSJ==:1 ; SESSION JOB BLOCK + .NDBSL==:2 ; SESSION LINK BLOCK + .NDBEL==:3 ; END-USER LAYER LINK BLOCK + .NDBRC==:4 ; ROUTER'S RCB + .NDBCT==:5 ; CTERM DATA BLOCK + .NDRBD==:1 ;DESTINATION OF DATA, IN USER SPACE + .NDRBJ==:2 ;1ST ARGUMENT FOR FINDING TABLE + .NDRBC==:3 ;2ND ARGUMENT FOR FINDING TABLE + +.NDSDP==:21 ;Set DECnet initialization parameters + .NDPRM==:0 ;Parameter to set + .NDRTR==:0 ; Routing type + .NDMXA==:1 ; Maximum address + .NDMXB==:2 ; Maximum buffers + .NDDBL==:3 ; Default buffers per link + .NDBSZ==:4 ; Buffer size + .NDFLO==:5 ; Flow control type + .NDVAL==:1 ;Parameter value + RNT.L1==:4 ; Level-1 router + RNT.NR==:5 ; Non-routing + FCM.NO==:0 ; No flow control + FCM.SG==:1 ; Segment flow control + +.NDINT==:22 ;Insert node table + .NDNNN==:0 ; Number of node definitions + .NDNTA==:1 ; Node table address + +;NOUT + +NO%MAG==:1B0 ;OUTPUT MAGNITUDE +NO%SGN==:1B1 ;OUTPUT SIGN +NO%LFL==:1B2 ;LEADING FILLER +NO%ZRO==:1B3 ;FILL WITH ZERO'S +NO%OOV==:1B4 ;OUTPUT ON COLUMN OVERFLOW +NO%AST==:1B5 ;OUTPUT ASTERISKS ON OVERFLOW +NO%COL==:177B17 ;NUMBER OF COLUMNS TO USE +NO%RDX==:777777 ;RADIX + + +;NTINF% JSYS + +.NWABC==:0 ;ARGUMENT BLOCK COUNT (INCLUDES THIS WORD) +.NWFNC==:1 ;FUNCTION CODE + .NWRRH==:0 ; RETURN REMOTE HOST INFORMATION +.NWLIN==:2 ;TTY DESIGNATOR, JOB # OR -1 FOR THIS JOB +.NWNNP==:3 ;BYTE POINTER TO STORE NODE NAME +.NWTTF==:4 ;TERMINAL TYPE AND FLAGS + ; B0-B8 FLAGS + NW%NNN==:1B0 ; NO NODE NAME KNOWN + ; B9-B17 NETWORK TYPE + NW%NNT==:0 ; NON NETWORK TERMINAL + NW%TCP==:1 ; INTERNET TCP + NW%DNA==:2 ; DECNET + NW%LAT==:3 ; LAT + ; B18-B35 LINE TYPE + NW%UND==:0 ; UNDEFINED TERMINAL TYPE + NW%FE==:1 ; FRONT END TERMINAL + NW%PT==:2 ; PSUEDO TERMINAL + NW%MC==:3 ; NRT + NW%TV==:4 ; TVT + NW%CH==:5 ; CTERM + NW%LH==:6 ; LAT +.NWNNU==:5 ;NODE NUMBER WORD 1 +.NWNU1==:6 ;NODE NUMBER WORD 2 + + + +;NTMAN% ARGUMENT BLOCK + +.NTCNT==:0 ;NUMBER OF WORDS IN ARGUMENT BLOCK +.NTENT==:1 ;ENTITY + .NTNOD==:0 ;NODE + .NTLIN==:1 ;LINE + .NTLOG==:2 ;LOGGING + .NTCKT==:3 ;CIRCUIT + .NTMOD==:4 ;MODULE + .NTARE==:5 ;AREA +.NTEID==:2 ;BYTE POINTER TO ENTITY ID +.NTFNC==:3 ;FUNCTION + LOWFNC==:-3 ;VALUE OF FIRST FUNCTION VALUE + .NTSLM==:-4 ;~6.0 Set global logging mask + .NTPSI==:-3 ;SET PSI CHANNEL FOR READING EVENTS + .NTMAP==:-2 ;MAP NODE NUMBER/NODE NAME + .NTREX==:-1 ;RETURN EXECUTOR NODE ID + .NTSET==:0 ;SET PARAMETER + .NTCLR==:1 ;CLEAR PARAMETER + .NTZRO==:2 ;ZERO ALL COUNTERS + .NTSHO==:3 ;SHOW SELECTED ITEMS + .NTSZC==:4 ;SHOW AND ZERO ALL COUNTERS + .NTRET==:5 ;RETURN LIST OF ITEMS + .NTEVQ==:6 ;PROCESS THE EVENT QUEUE +.NTSEL==:4 ;SELECTION CRITERION + + ;SELECTORS FOR .NTSHO FUNCTION + + .NTSUM==:0 ;SUMMARY + .NTSTA==:1 ;STATUS + .NTCHA==:2 ;CHARACTERISTICS + .NTCOU==:3 ;COUNTERS + .NTEVT==:4 ;EVENT + .NTCST==:5 ;CIRCUIT STATE + + ;SELECTORS FOR .NTRET FUNCTION + + .NTKNO==:-1 ;KNOWN ITEMS + .NTACT==:-2 ;ACTIVE ITEMS + .NTLOP==:-3 ;LOOP + .NTADJ==:-4 ;ADJACENT ITEMS + .NTSGN==:-5 ;SIGNIFICANT ITEMS + +.NTQUA==:5 ;BYTE POINTER TO FUNCTION QUALIFIER +.NTBPT==:6 ;BYTE POINTER TO PARAMETER OR LIST DATA +.NTBYT==:7 ;NUMBER OF BYTES IN RETURNED DATA +.NTERR==:10 ;ERROR RETURN STATUS + + ;MISCELLANEOUS NTMAN% SYMBOLS + + .NTARG==:11 ;LENGTH OF NTMAN% ARGUMENT BLOCK + .NDALN==:2 ;NUMBER OF BYTES IN A NODE ADDRESS + .NDPLN==:2 ;NUMBER OF BYTES IN A PARAMETER NUMBER + .NDAMX==:^D255 ;MAXIMUM NODE ADDRESS + .NDNMX==:7 ;MAXIMUM NUMBER OF BYTES IN A NODE NAME + +;NTMAN% Return Codes + + NESUC%==:1 ;SUCCESS + NEUFO%==:^D-1 ;UNRECOGNIZED FUNCTION OR OPTION + NEIMF%==:^D-2 ;INVALID MESSAGE FORMAT + NEPRV%==:^D-3 ;PRIVILEGE VIOLATION. + NEMPE%==:^D-5 ;MANAGEMENT PROGRAM ERROR + NEUPT%==:^D-6 ;UNRECOGNIZED PARAMETER TYPE + NEURC%==:^D-8 ;UNRECOGNIZED COMPONENT + NEINI%==:^D-9 ;INVALID IDENTIFICATION + NELCE%==:^D-10 ;LINE COMMUNICATION ERROR + NECWS%==:^D-11 ;COMPONENT IN WRONG STATE + NERES%==:^D-15 ;RESOURCE ERROR + NEIPV%==:^D-16 ;INVALID PARAMETER VALUE + NENRM%==:^D-20 ;NO ROOM (OR SLOT ALREADY TAKEN) + NEPNA%==:^D-22 ;PARAMETER NOT APPLICABLE + NEPVL%==:^D-23 ;PARAMETER VALUE TOO LONG + NEOPF%==:^D-25 ;OPERATION FAILURE + NEFNS%==:^D-26 ;FUNCTION NOT SUPPORTED + NEIPG%==:^D-27 ;INVALID PARAMETER GROUPING + NEPAM%==:^D-29 ;PARAMETER MISSING + + OF%FDT==:1B33 ;FORCE DATE UPDATE + +;ODCNV -- SEE IDCNV FOR BITS + + +;ODTIM + +OT%NDA==:1B0 ;DO NOT OUTPUT DATE +OT%DAY==:1B1 ;OUTPUT DAY OF WEEK +OT%FDY==:1B2 ;OUTPUT NUMERIC MONTH +OT%NMN==:1B3 ;OUTPUT NUMERIC MONTH +OT%FMN==:1B4 ;OUTPUT MONTH IN FULL +OT%4YR==:1B5 ;OUTPUT 4-DIGIT YEAR +OT%DAM==:1B6 ;OUTPUT DAY AFTER MONTH +OT%SPA==:1B7 ;OUTPUT SPACES IN DATE +OT%SLA==:1B8 ;OUTPUT SLASHES IN DATE +OT%NTM==:1B9 ;DO NOT OUTPUT TIME +OT%NSC==:1B10 ;DO NOT OUTPUT SECONDS +OT%12H==:1B11 ;OUTPUT 12-HOUR FORMAT +OT%NCO==:1B12 ;DO NOT OUTPUT COLON +OT%TMZ==:1B13 ;OUTPUT TIME ZONE +OT%SCL==:1B17 ;SUPPRESS COLUMNIZATION + + +;ODTNC -- SEE IDCNV FOR BITS + + +;OPEN - TCP connection establishment + +;AC1 LH flags: +TCP%JS==1B0 ; JCN Supplied +TCP%WT==1B1 ; Wait for completion +TCP%FS==1B5 ; Force Synchronization (active open) +TCP%PS==1B6 ; Persistent open +TCP%ST==1B7 ; Return statistics (STAT) +TCP%SY==1B8 ; Symbolic name list given (STAT) +TCP%SC==1B8 ; Secure connection (OPEN, SEND) +TCP%HP==1B9 ; High priority (OPEN, SEND) +TCP%VT==1B10 ; TCP Virtual Terminal (OPEN) +TCP%TV==1B11 ; TVT Supplied (STAT) +TCP%NT==1B12 ; Return AOBJN pointer over TVTs (STAT) +TCP%IX==1B13 ; Connection index supplied (STAT) +TCP%NI==1B14 ; Return AOBJN pointer over connections (STAT) +TCP%SD==1B15 ; Return STAT definitions instead of values (STAT) +TCP%ET==1B16 ; ERROR info flag +TCP%PT==1B17 ; Packet trace flag + +; The connection block format is + +.TCPLH==^D0 ;reserved Local host (internet format), bits 5-35 +.TCPLP==^D1 ; Local port, bits 20-35 +.TCPFH==^D2 ; Foreign host (internet format), bits 5-35 +.TCPFP==^D3 ; Foreign port, bits 20-35 +.TCPOP==^D4 ; LH - Address of IP options, or 0 if none + ; RH - Address of TCP options, or 0 if none + .TCPOW==^D10 ; Size (w) of each. Both are read with a POINT 8,adr +.TCPIP==^D5 ; IP parameters (Flag=3B1, TTL=377B17, TOS=377B35) +.TCPCS==^D6 ; Size of connection block + +;OPENF + +OF%BSZ==:77B5 ;BYTE SIZE +OF%MOD==:17B9 ;MODE +OF%HER==:1B18 ;HALT ON IO ERROR +OF%RD==:1B19 ;READ +OF%WR==:1B20 ;WRITE +OF%EX==:1B21 ;EXECUTE (RESERVED FOR THE FUTURE) +OF%APP==:1B22 ;APPEND +OF%RDU==:1B23 ;READ UNRESTRICTED +OF%THW==:1B25 ;THAWED +OF%AWT==:1B26 ;ALWAYS WAIT +OF%PDT==:1B27 ;PRESERVE DATES +OF%NWT==:1B28 ;NEVER WAIT +OF%RTD==:1B29 ;RESTRICTED +OF%PLN==:1B30 ;SET TO DISABLE LINE NUMBER CHECKING FOR + ; NON-LINE NUMBER FILES +OF%DUD==:1B31 ;DON'T UPDATE TO DISK BY DDMP +OF%OFL==:1B32 ;ALLOW OPENING THE DEVICE EVEN IF OFFLINE +OF%FDT==:1B33 ;FORCE DATE UPDATE +OF%RAR==:1B34 ; Wait if file is off-line + + + +;PDVOP MANIPULATES PROGRAM DATA VECTORS + +;FUNCTION CODES ACCEPTED IN AC1: + +.POGET==:0 ;GET A SET OF PDVAS (PROGRAM DATA VECTOR ADDRESSES) +.POADD==:1 ;ADD A SET OF PDVAS +.POREM==:2 ;REMOVE A SET +.PONAM==:3 ;GET NAME OF A PROGRAM +.POVER==:4 ;GET VERSION NUMBER OF A PROGRAM +.POLOC==:5 ;LOCATE PDVS HAVING SPECIFIED NAME + +;ARG BLOCK OFFSETS FOR BLOCK ADDRESSED BY AC2 + +.POCT1==:0 ;SIZE OF ARG BLOCK INCLUDING THIS WORD +.POPHD==:1 ;PROCESS HANDLE +.POCT2==:2 ;SIZE OF DATA BLOCK (AND SIZE OF RETURNED DATA) +.PODAT==:3 ;ADDRESS OF DATA BLOCK +.POADR==:4 ;SMALL ADDRESS OF DATA VECTOR + +.POADE==:5 ;LARGE ADDRESS OF DATA VECTOR ADDRESS RANGE + +;OFFSETS DEFINED WITHIN PROGRAM DATA VECTORS + +.PVCNT==:0 ;Length of vector +.PVNAM==:1 ;Address of a word-aligned ASCIZ program name +.PVSTR==:2 ;Program starting address [OBSOLETE] +.PVEXP==:2 ;Pointer to exported information block +.PVREE==:3 ;Program reenter address +.PVVER==:4 ;Program version number +.PVMEM==:5 ;Address of a block describing program memory +.PVSYM==:6 ;Address of the program symbol table +.PVCTM==:7 ;Time of program compilation +.PVCVR==:10 ;Version number of compiler +.PVLTM==:11 ;Time of program loading +.PVLVR==:12 ;Version number of LINK +.PVMON==:13 ;Address of a monitor data block +.PVPRG==:14 ;Address of a program data block +.PVCST==:15 ;Address of a customer-defined block + +;BLOCK DESCRIBING PROGRAM MEMORY (POINTED TO BY WORD .PVMEM) + +.MMLEN==:0 ;LENGTH OF TABLE INCLUDING THIS WORD +.MMDAT==:0 ;FIRST SUBTABLE WORD + MM%ACC==777777B17 ;ACCESS BITS + MM%WR==1B3 ;WRITABLE (ONLY NAMED BIT IN MM%ACC) + MM%LEN==777777B35 ;SUBTABLE BLOCK LENGTH +.MMLOW==:1 ;BEGINNING OF CONTIGUOUS BLOCK OF MEMORY +.MMHGH==:2 ;END OF CONTIGUOUS BLOCK OF MEMORY + +;PMAP BIT DEFINITIONS + +PM%CNT==:1B0 ;RH WORD CONTAINS A COUNT +PM%MVP==:1B1 ;MOVE PAGE INSTEAD OF INDIRECT POINTER + ; (NOT IMPLEMENTED +PM%RD==:1B2 ;READ +PM%WT==:1B3 ;WRITE +PM%WR==:1B3 ; (ANOTHER NAME FOR ABOVE) +PM%EX==:1B4 ;EXECUTE (RESERVED FOR THE FUTURE) +PM%RWX==:7B4 ;CONVENIENT ABBREV FOR RD+WT+EX +PM%PLD==:1B5 ;PRELOAD PAGES BEING MAPPED +PM%IND==:1B6 ;USE INDIRECT PTRS (RESERVED FOR THE FUTURE) +PM%TPU==:1B8 ;TRAP TO USER + ; (NOT IMPLEMENTED -- OBSOLETE) +PM%CPY==:1B9 ;COPY ON WRITE +PM%EPN==:1B10 ;EXTENDED PAGE NUMBER (18 BITS) +PM%ABT==:1B11 ;ABORT UNMAP. +PM%RPT==:777777B35 ;REPEAT COUNT + + +;PMCTL - PHYSICAL MEMORY CONTROL + +.MCRCE==:0 ;READ CACHE ENABLE +.MCSCE==:1 ;SET CACHE ENABLE + .MCCST==:0 ;ARGLIST OFFSET FOR CACHE STATE + MC%CEN==:1 ;CACHE ENABLED +.MCRPS==:2 ;READ PAGE STATUS +.MCSPS==:3 ;SET PAGE STATUS + .MCPPN==:0 ;ARGLIST OFFSET FOR PHYSICAL PAGE NUMBER + .MCPST==:1 ;ARGLIST OFFSET FOR PAGE STATE + .MCPSA==:0 ;PAGE AVAILABLE + .MCPSS==:1 ;PAGE IN TRANSITION STATE + .MCPSO==:2 ;PAGE OFFLINE + .MCPSE==:3 ;PAGE OFFLINE DUE TO ERROR +.MCRME==:4 ;READ MEMORY ERROR INFORMATION + .PMMER==:1 ;MOS MEMORY ERROR + .PMMTP==:0 ;ENTRY HEADER AND TYPE + .PMMRG==:1 ;ERROR REGISTER + .PMMSY==:2 ;SYNDROME + .PMMBN==:3 ;BLOCK NUMBER + .PMMSB==:4 ;SPARE BIT NUMBER + .PMMEA==:5 ;ERROR ADDRESS + .PMMSN==:6 ;START OF SERIAL NUMBERS + .PMMNS==:4 ;# OF SERIAL NUMBERS TO STORE + + +;PRARG - PROCESS ARGUMENTS + +;FUNCTION CODE DEFINITIONS + +.PRARD==:1 ;READ ARGUMENT BLOCK +.PRAST==:2 ;SET ARGUMENT BLOCK + + +;QUEUE JSYS - ARG AND OFFSET DEFINITIONS + + ;Definition of a QUEUE% argument block + + .QUFNC==:0 ;FLAGS+LENGTH OF RESP BLOCK,,FUNCTION + + QF%FLG==:777B8 ;FLAG BITS + QU%NRS==:1B0 ;DON'T WAIT FOR RESPONSE (GOOD OR BAD) + QU%DBG==:1B1 ;WANT TO USE DEBUGGING PID FOR THIS FUNCTION + QF%RSP==:777B17 ;LENGTH OF RESPONSE BLOCK + QF%FNC==:777777B35 ;FUNCTION CODE + + .QUPRT==:1 ;PRINT FILE ------ + .QUCDP==:2 ;PUNCH CARDS | + .QUPTP==:3 ;PUNCH PAPER TAPE |--FOR FILES + .QUPLT==:4 ;PLOT FILE | + .QUBAT==:5 ;BATCH FILE ------ + ;CODES 6 & 7 RESERVED FOR TOPS-10 + .QUMNT==:10 ;MOUNT VOLUME SET + .QUDIS==:11 ;DISMOUNT VOLUME SET + .QUWTO==:12 ;MESSAGE TO OPERATOR /NOWAIT + .QUWTR==:13 ;MESSAGE TO OPERATOR BUT WAIT FOR RESP + ;CODES 14 & 15 RESERVED FOR TOPS-10 + .QUCUS==:16 ;USE CUSTOM APPLICATION PID + + + + .QURSP==:1 ;ADDRESS OF RESPONSE BLOCK UNLESS QF.RSP=0 + .QUARG==:2 ;BEGINNING OF ARGUMENT SUB-BLOCKS + + .QATYP==:0 ;FIRST WORD OF ARGUMENT SUB-BLOCKS + + QA%IMM==:1B0 ;IF BIT IS ON, NEXT WORD IS IMMED. VALUE + ;IF OFF, NEXT WORD IS POINTER TO ANOTHER BLOCK + QA%LEN==:777B17 ;LENGTH OF OTHER ARG BLOCK (QA.IMM = 0) + QA%TYP==:777777B35 ;ARGUMENT TYPE (IN EITHER CASE) + + .QADAT==:1 ;DATA IF QA.IMM = 1, + ; ELSE POINTER TO DATA BLOCK + + + + ;ARGUMENT SUB-BLOCK TYPES (VALUES POSSIBLE FOR QA.TYP) + + .QBFIL==:10 ;FILE-SPEC BLOCK + .QBCOP==:11 ;# OF COPIES + .QBFRM==:12 ;FORMS TYPE + .QBFMT==:13 ;FORMAT OF FILE + + .QBFAS==:1 ;ASCII + .QBFFR==:2 ;FORTRAN + .QBFCB==:3 ;COBOL + .QBFAI==:4 ;AUGMENTED IMAGE + .QBFSA==:5 ;STREAM ASCII + .QNF11==:6 ;ELEVEN + .QBFIM==:7 ;IMAGE + .QBF8B==:10 ;8-BIT ASCII + + .QBODP==:14 ;OUTPUT DISPOSITION /DISP: + .QBUNT==:15 ;UNIT TYPE /UPPER, /LOWER, /GENERIC, /UNIT: + + .QBULC==:1 ;LOWER CASE PRINTER + .QBUUC==:2 ;UPPER CASE PRINTER + .QBUPH==:3 ;PHYSICAL UNIT (UNIT # IN LH) + .QBUGN==:4 ;GENERIC DEVICE + + + + .QBAFT==:16 ;/AFTER: BLOCK + .QBLIM==:17 ;LIMIT BLOCK (/TIME:, /PAGES:,...) + .QBUNQ==:20 ;/UNIQUE BLOCK + + .QBUNO==:1 ;NO + .QBUYE==:2 ;YES + + .QBRES==:21 ;/RESTART BLOCK + + .QBRNO==:1 ;NO + .QBRYE==:2 ;YES + + .QBLOG==:22 ;/OUTPUT LOG (LOG, NOLOG, ERROR) + + .QBLNL==:1 ;NO LOG FILE + .QBLLG==:2 ;ALWAYS LOG FILE + .QBLLE==:3 ;LOG ONLY ON ERROR + + .QBACT==:23 ;/ACCOUNT BLOCK + .QBFNC==:24 ;RESERVED FOR DEC + .QBNOD==:25 ;/NODE BLOCK + .QBNAM==:26 ;SIXBIT USER-NAME BLOCK (12 CHARS MAX) + .QBOID==:27 ;OWNER'S PPN, 36 BIT USED-ID BLOCK + .QBNOT==:30 ;/NOTIFY BLOCK + + .QBNTY==:1 ;NOTIFY TERMINAL WHEN JOB COMPLETES + .QBNML==:2 ;RESERVED FOR DEC + .QBNJB==:3 ;RESERVED FOR DEC + + .QBBLT==:31 ;/BATLOG: BLOCK + + .QBBND==:1 ;APPEND OUTPUT LOG FILE + .QBBDE==:2 ;SUPERSEDE OUTPUT LOG FILE + .QBBSP==:3 ;SPOOL OUTPUT LOG FILE + + .QBJBN==:32 ;SIXBIT JOB NAME + .QBCDI==:33 ;CONNECTED DIRECTORY BLOCK (36 BIT DIR-ID) + .QBNTE==:34 ;/NOTE: BLOCK, SIXBIT (12 CHARS MAX) + .QBBGN==:35 ;/BEGIN: BLOCK + .QBPRI==:36 ;/PRIORITY: BLOCK + .QBVSN==:37 ;ASCIZ VOLUME SET NAME + .QBMSG==:40 ;WTO/WTOR MESSAGE BLOCK + .QBTYP==:41 ;PRIVELEGED WTO/WTOR MESSAGE BLOCK + + + + ;BLOCK DEFINITIONS FOR MOUNT/DISMOUNT + ; JSYS ARG BLOCKS MUST BE ORDERED AS FOLLOWS: + ; + ; .QBVSN ;VOLUME SET NAME FOR FIRST VOL SET + ; .QBXXX ;... + ; .QBXXX ;...ANY OF THE FOLLOWING BLOCKS IN ANY ORDER + ; .QBXXX ;... + ; .QBVSN ;VOL SET NAME FOR NEXT VOL SET... + ; .QBXXX ;... + ; .QBXXX ;...ANY OF THE FOLLOWING PARAM BLOCKS IN ANY + ; .QBXXX ;...ORDER + ; . ;... + ; . + ; . + ; + ; FOR DISMOUNT, ONLY THE .QBVSN AND .QBMFG BLOCKS ARE VALID, + ; AND QUASAR WILL ONLY PROCESS 1 VOLUME SET AT A TIME. + ; FOR A /NOTIFY BLOCK, USE .QBNOT + + .QBDEN==:42 ;TAPE DENSITY BLOCK + .QBTRK==:43 ;TAPE TRACK BLOCK + + .QBDR9==:1 ;WANT 9 TRACK DRIVE + .QBDR7==:2 ;WANT 7 TRACK DRIVE + + .QBLTP==:44 ;LABEL TYPE BLOCK + .QBRMK==:45 ;ASCIZ REMARK BLOCK + .QBVOL==:46 ;SIXBIT TAPE VOLUME LIST BLOCK (63 VOLIDS MAX) + .QBLNM==:47 ;VOL SET LOGICAL NAME BLOCK (TOPS-10 ONLY) + .QBMFG==:50 ;MOUNT/DISMOUNT FLAG BLOCK + + QB%PAS==:1B0 ;STR TO PASSIVE SEARCH LIST (ACTIVE IS DEF) + QB%EXC==:1B1 ;WANT EXCLUSIVE/SINGLE ACCESS (SHARE IS DEF) + QB%NOC==:1B2 ;WANT /NOCREATE (CREATE IS DEF) + QB%DSK==:1B3 ;THIS IS A STRUCTURE REQUEST (UNKNOWN IS DEF) + QB%TAP==:1B4 ;THIS IS A TAPE REQUEST (UNKNOWN IS DEF) + QB%WLK==:1B5 ;WANT VOL SET WRITE LOCKED + QB%WEN==:1B6 ;WANT VOL SET WRITE ENABLED + QB%REM==:1B7 ;ASK OPR TO REMOVE STR ON DISMOUNT + + + ;Codes 51 and 52 are reserved for TOPS-10 use + + .QBDTY==:53 ;Display type (Used with WTO) + + .QBCHK==:1 ;BUGCHK display (monitor use only) + .QBINF==:2 ;BUGINF display (monitor use only) + .QBSYS==:3 ;SYSTEM messages (monitor use only) + .QBEVT==:4 ;DECNET EVENT messages + .QBDLK==:5 ;DECNET LINK messages + .QBDMX==:5 ;[7.1248] Set to max display value + + .QBSNA==:54 ;SNA PARAMETERS BLOCK + + QU%TABS==:1B0 ;Preserve tabs in file + QU%NXL==:1B1 ;Do not translate data + QU%RCL==:777B35 ;Record length + + .QBDFG==:55 ;Display flags (used with WTO) + + QU%SJI==:1B0 ;Suppress job info + QU%NFO==:1B1 ;Do not format display + QU%NDA==:1B2 ;Do not include dashes in type display + + +;Response block definitions from Galaxy components + + .QRTYP==:0 ;Length,,Type of resp (not used by QUEUE%) + .QRFLG==:1 ;Flags word of response + QU%NTB==:1B1 ;No Text Block in response + QU%CFE==:1B2 ;Component Fatal Error + .QRWD0==:2 ;0 in ACK response ===| + .QRWD1==:3 ; " |= (not used by QUEUE%) + .QRWD2==:4 ;1 in ACK response ===| + .QRLEN==:5 ;Length of text block (in LH) + .QRTXT==:6 ;Beginning of text + + + + +;RCUSR AND RCDIR + +; FLAGS SUPPLIED ON CALL + +RC%PAR==:1B14 ;PARTIAL RECOGNITION IS ALLOWED +RC%STP==:1B15 ;STEP WILDCARD (RCDIR ONLY) +RC%AWL==:1B16 ;ALLOW WILDCARDS (RCDIR ONLY) +RC%EMO==:1B17 ;EXACT MATCH ONLY + +; FLAGS RETURNED + +RC%DIR==1B0 ;FILES-ONLY DIRECTORY +RC%ANA==1B1 ;ALPHANUMERIC ACCOUNTS ALLOWED +RC%RLM==1B2 ;REPEAT LOGIN MESSAGE +RC%NOM==:1B3 ;NO MATCH FOUND +RC%AMB==:1B4 ;AMBIGUOUS +RC%NMD==:1B5 ;NO MORE DIRS - RETURNED IF STP IS REQUESTED +RC%WLD==:1B6 ;WILDCARD DIR WAS INPUT + + + +;RCVIN - IP receive datagram + +;AC1 flags: +RIQ%NW==1B0 ; Return with Error code -1 if no message is waiting + ; Otherwise wait for a message + +; Message buffer format: +.INQBH==^D0 ; Buffer head, LH set to actual length, RH max length + ; Lengths include buffer header (IP + message + .INQIH) +.INQIH==^D1 ; First word of IP header and message + +;RCVOK + +.RCFCJ==:0 ;FUNCTION CODE,, JOB NUMBER +.RCUNO==:1 ;USER NUMBER +.RCCDR==:2 ;CONNECTED DIRECTORY +.RCRQN==:3 ;REQUEST NUMBER +.RCNUA==:4 ;NUMBER OF USER ARGS +.RCARA==:5 ;POINTER TO USER ARGS +.RCCAP==:6 ;CURRENT CAPABILITIES +.RCTER==:7 ;TERMINAL NUMBER +.RCRJB==:10 ;REQUESTED JOB + +;RDTTY AND TEXTI + +RD%BRK==:1B0 ;BREAK ON REGULAR BREAK SET +RD%TOP==:1B1 ;BREAK ON TOPS10 BREAK SET +RD%PUN==:1B2 ;BREAK ON PUNCTUATION +RD%BEL==:1B3 ;BREAK ON END OF LINE +RD%CRF==:1B4 ;SUPPRESS CR (RETURNS LF ONLY) +RD%RND==:1B5 ;RETURN IF NOTHING TO DELETE +RD%JFN==:1B6 ;JFNS GIVEN FOR SOURCE +RD%RIE==:1B7 ;RETURN ON INPUT (BUFFER) EMPTY +RD%BBG==:1B8 ;BEGINNING OF (DEST) BUFFER GIVEN +RD%BEG==:1B9 ;RETURN IMMEDIATELY WHEN TYPIST EDITS TO .RDBKL +RD%RAI==:1B10 ;RAISE LOWERCASE INPUT +RD%SUI==:1B11 ;SUPPRESS ^U INDICATION +RD%BTM==:1B12 ;BREAK CHARACTER TERMINATED INPUT +RD%BFE==:1B13 ;RETURNED BECAUSE BUFFER EMPTY +RD%BLR==:1B14 ;BACKUP LIMIT REACHED +RD%NED==:1B15 ;DISABLE EDITING CHARACTERS IN USER BREAK MASK +RD%CON==:1B16 ;~6.0 CONTINUATION READ + +;TEXTI ARG BLOCK + +.RDCWB==:0 ;COUNT OF WORDS IN BLOCK +.RDFLG==:1 ;FLAGS +.RDIOJ==:2 ;IO JFNS +.RDDBP==:3 ;DEST BYTE POINTER +.RDDBC==:4 ;DEST BYTE COUNT +.RDBFP==:5 ;TOP OF BUFFER POINTER +.RDRTY==:6 ;RETYPE (^R) POINTER +.RDBRK==:7 ;BREAK SET MASK POINTER +.RDBKL==:10 ;BACKUP LIMIT POINTER + + +;RECV - TCP buffer receive + +; The header block format is +.TCPBF==^D0 ; Buffer flag word, RH for use by user +TCP%ER==1B0 ; ERROR +TCP%LE==1B1 ; Local error flag (0 is remote) +TCP%PE==1B2 ; Permanent error (0 is temporary) +TCP%EC==37B7 ; Error code w/o flags +TCP%DN==1B12 ; DONE +TCP%UR==1B15 ; URGENT data +TCP%EL==1B16 ;obsolete ; PUSH buffered data +TCP%PU==1B16 ; PUSH buffered data +TCP%WM==1B17 ; WORD mode (unimplemented) +.TCPBA==^D1 ; Buffer address, data in bits 0-31 +.TCPBC==^D2 ; Buffer octet count + ; Octets to send, octets unsent (SEND) + ; Octets available, octets unused (RECV) +.TCPBO==^D3 ; Buffer option addresses + .TCPOW==^D10 ; Buffer option address word count +.TCPBI==^D4 ; Buffer IP info +.TCPBS==^D5 ; Size of buffer header + + +;RFSTS + +RF%LNG==:1B0 ;LONG FORM OF RFSTS CALL, ARG BLOCK IN 2 +RF%PRH==:777777B35 ;PROCESS HANDLE + +;RFSTS ARG BLOCK + +.RFCNT==:0 ;XWD COUNT OF WORDS RETURNED, + ; MAXIMUM WORDS TO RETURN +.RFPSW==:1 ;PROCESS STATUS WORD +.RFPFL==:2 ;PROCESS' PC FLAGS +.RFPPC==:3 ;PROCESS' PC +.RFSFL==:4 ;STATUS FLAGS FOR PROCESS: + RF%EXO==1B0 ;PROCESS IS EXECUTE-ONLY + +;PROCESS STATUS WORD + +RF%FRZ==:1B0 ;PROCESS IS FROZEN +RF%STS==:377777B17 ;PROCESS STATUS CODE + .RFRUN==:0 ;RUNNABLE + .RFIO==:1 ;DISMISSED FOR I/O + .RFHLT==:2 ;HALTED + .RFFPT==:3 ;FORCED PROCESS TERMINATION + .RFWAT==:4 ;WAITING FOR INFERIOR PROCESS + .RFSLP==:5 ;SLEEP + .RFTRP==:6 ;JSYS TRAPPED + .RFABK==:7 ;ADDRESS BREAK FREEZE + .RFSIG==:10 ;SIGNAL JFN FREEZE +RF%SIC==:777777B35 ;SOFTWARE INTERRUPT CHANNNEL + + +;RFTAD/SFTAD + +.RSWRT==:0 ;WRITE DATE WORD +.RSCRV==:1 ;CREATION DATE WORD +.RSREF==:2 ;REFERENCE DATE WORD +.RSCRE==:3 ;INTERNAL SYSTEM WRITE DATE WORD +.RSTDT==:4 ; Tape write date word +.RSNET==:5 ; Online expiration date/interval word +.RSFET==:6 ; Offline expiration date/interval word + + +;RMAP + +RM%RD==1B2 ;READ ACCESS ALLOWED +RM%WR==:1B3 ;WRITE ACCESS ALLOWED +RM%EX==:1B4 ;EXECUTE ACCESS ALLOWED +RM%PEX==:1B5 ;PAGE EXISTS +RM%CPY==:1B9 ;COPY ON WRITE + +;RSMAP/SMAP + +SM%RD==:1B2 ;READ ACCESS ALLOWED +SM%WR==:1B3 ;WRITE ACCESS ALLOWED +SM%EX==:1B4 ;EXECUTE ACCESS ALLOWED +SM%RWX==:SM%RD!SM%WR!SM%EX ;CONVENIENT ABBREV FOR RD+WT+EX +SM%IND==:1B6 ;INDIRECT POINTER + + +;RPACS/SPACS BIT DEFINITIONS + +PA%RD==:1B2 ;READ ACCESS ALLOWED +PA%WT==:1B3 ;WRITE ACCESS ALLOWED +PA%WR==:1B3 ; (ANOTHER NAME FOR ABOVE) +PA%EX==:1B4 ;EXECUTE ACCESS ALLOWED + ; (RESERVED FOR THE FUTURE) +PA%PEX==:1B5 ;PAGE EXISTS +PA%IND==:1B6 ;INDIRECT POINTER +PA%TPU==:1B8 ;TRAP TO USER + ; (NOT IMPLEMENTED -- OBSOLETE) +PA%CPY==:1B9 ;COPY ON WRITE +PA%PRV==:1B10 ;PRIVATE +P1%RD==:1B20 ;READ ACCESS ALLOWED IN 1ST POINTER +P1%WR==:1B21 ;WRITE ACCESS ALLOWED IN 1ST POINTER +P1%WT==:1B21 ; (ANOTHER NAME FOR ABOVE) +P1%EX==:1B22 ;EXECUTE ACCESS ALLOWED IN 1ST POINTER + ; (RESERVED FOR THE FUTURE) +P1%PEX==:1B23 ;PAGE EXISTS IN 1ST POINTER +P1%CPY==:1B27 ;COPY-ON-WRITE IN 1ST POINTER + + + +;RSCAN + +.RSINI==:0 ;MAKE RESCAN BUFFER AVAILABLE FOR INPUT +.RSCNT==:1 ;COUNT CHARACTERS LEFT TO READ FROM RESCAN BUFFER + + +;RTIW + +RT%DIM==:1B0 ;DEFERRED TERMINAL INTERRUPT MASK GIVEN +RT%PRH==:777777 ;PROCESS HANDLE + + +;SCTTY + +.SCRET==:0 ;RETURN DESIGNATOR (CTTY) FOR FORK +.SCSET==:1 ;SET SCTTY FOR FORK +.SCRST==:2 ;CLEAR FORK CTTY (RESTORE JOB CTTY) + +;SCVEC + +.SVEAD==:0 ;ENTRY ADDRESS +.SVINE==:1 ;INITIAL ENTRY FOR SETUP +.SVGET==:2 ;ENTRY ADDRESS FOR GET SHARE FILE ROUTINE +.SV40==:3 ;ADDRESS TO GET LOCATION 40 +.SVRPC==:4 ;ADDRESS TO GET RETURN PC +.SVMAK==:5 ;ENTRY FOR MAKE SHARE FILE ROUTINE +.SVCST==:6 ;2 WORD BLOCK FOR CONTROL-C/START PROCESSING + + +;SDVEC + +.SDEAD==:0 ;ENTRY ADDRESS +.SDINE==:1 ;INITIAL ENTRY +.SDVER==:2 ;DMS VERSION +.SDDMS==:3 ;ADDRESS TO STORE DMS JSYS +.SDRPC==:4 ;ADDRESS TO STORE RETURN PC + + + +;SETJB FUNCTION CODES + +.SJDEN==:0 ;SET DEFAULT MAGTAPE DENSITY + .SJDDN==:0 ;SYSTEM DEFAULT DENSITY + .SJDN2==:1 ;200 BPI + .SJDN5==:2 ;556 BPI + .SJDN8==:3 ;800 BPI + .SJD16==:4 ;1600 BPI + .SJD62==:5 ;6250 BPI +.SJPAR==:1 ;SET DEFAULT MAGTAPE PARITY + .SJPRO==:0 ;ODD PARITY + .SJPRE==:1 ;EVEN PARITY +.SJDM==:2 ;SET DEFAULT MAGTAPE DATA MODE + .SJDDM==:0 ;SYSTEM DEFAULT DATA MODE + .SJDMC==:1 ;CORE DUMP MODE + .SJDM6==:2 ;SIX BIT BYTE MODE (FOR 7-TRACK DRIVES) + .SJDMA==:3 ;ANSI ASCII MODE (7 BITS IN 8 BIT BYTE) + .SJDM8==:4 ;INDUSTRY COMPATIBLE MODE + .SJDMH==:5 ;HI-DENSITY MODE (9 EIGHT BIT + ; BYTES IN 2 WORDS) +.SJRS==:3 ;SET DEFAULT MAGTAPE RECORD SIZE +.SJDFS==:4 ;SET DEFERRED SPOOLING + .SJSPI==:0 ;IMMEDIATE MODE SPOOLING + .SJSPD==:1 ;DEFERRED MODE SPOOLING +.SJSRM==:5 ;SET JOB SESSION REMARK +.SJT20==:6 ;DECLARE WHETHER TOPS20 COMMAND LEVEL OR NOT +.SJDFR==:7 ; Set default job retrieval mode + .SJRFA==:0 ; OPENF should always fail + .SJRWA==:1 ; OPENF should always request & wait +.SJBAT==:10 ;SET BATCH FLAGS AND STREAM + ;SEE .JIBCH FOR FIELD DEFINITIONS +.SJLLO==:11 ;SET JOB LOCATION +.SJBSN==:12 ;[7258]Set batch sequence number +.SJBJN==:13 ;[7258]Set batch Job name +.SJBID==:14 ;[7258]Set batch request ID + + +;SFORK + +SF%CON==:1B0 ;CONTINUE PROCESS, IGNORE PC IN AC2 +SF%PRH==:777777B35 ;PROCESS HANDLE + +;SFPTR + +SF%LSN==:1B0 ;[7322]LSN flag bit, 1=include 0=ignore + + +;SFUST + +.SFAUT==:0 ;SET AUTHOR STRING +.SFLWR==:1 ;SET LAST WRITER STRING + + + +;SMON FUNCTION CODES AND BIT DEFINITIONS (SYSTEM FLAGS) + +.SFFAC==:0 ;ALLOW FACT ENTRIES +.SFCDE==:1 ;CHECKDISK FOUND ERRORS +.SFCDR==:2 ;CHECKDISK RUNNING +.SFMST==:3 ;MANUAL START IN PROGRESS +.SFRMT==:4 ;REMOTE LOGINS ALLOWED +.SFPTY==:5 ;PTY LOGINS ALLOWED +.SFCTY==:6 ;CTY LOGIN ALLOWED +.SFOPR==:7 ;OPERATOR IN ATTENDANCE +.SFLCL==:10 ;LOCAL LOGINS ALLOWED +.SFBTE==:11 ;BIT TABLE ERRORS FOUND ON STARTUP +.SFCRD==:12 ;USER CAN CHANGE DIRECTORY CHARACTERISTICS +.SFNVT==:13 ;TOPS20AN ;NVT LOGIN ALLOWED +.SFWCT==:14 ;WHEEL LOGIN ON CTY ALLOWED +.SFWLC==:15 ;WHEEL LOGIN ON LOCAL TERMINALS ALLOWED +.SFWRM==:16 ;WHEEL LOGIN ON REMOTE TERMINALS ALLOWED +.SFWPT==:17 ;WHEEL LOGIN ON PTY'S ALLOWED +.SFWNV==:20 ;TOPS20AN ;WHEEL LOGIN ON NVT'S ALLOWED +.SFUSG==:21 ;USAGE FILE IN USE +.SFFLO==:22 ;FULL LATENCY OPTIMIZATION + ;CAUTION: SETTING THIS REQUIRES THAT THE + ; SYSTEM BE AT REVISION LEVEL 10, AND + ; THAT RH20 BOARD M8555 BE AT REVISION LEVEL D. + ; OTHERWISE, THE FILE-SYSTEM MAY BE DAMAGED. + +.SFMTA==:23 ;MAGTAPE ALLOCATION ENABLED +.SFMS0==:24 ;SYSTEM MESSAGE LEVEL 0 +.SFMS1==:25 ;SYSTEM MESSAGE LEVEL 1 +.SFBGS==:26 ;CTY OUTPUT MESSAGES +.SFMCB==:27 ;DECNET LOGINS ALLOWED +.SFDPR==:30 ;Disk preallocation enabled +.SFLAT==:31 ;[7327]LAT LOGINs are allowed. +.SFWLT==:32 ;[7327]WHEEL LOGINs on LAT terminals are allowed +;BELOW ARE FUNCTION CODES THAT DO NOT MAP DIRECTLY INTO BITS + + +.SFNTN==:44 ;TOPS20AN ;NETWORK ON/OFF CONTROL +.SFNDU==:45 ;TOPS20AN ;NET DOWN/UP REQUEST +.SFNHI==:46 ;TOPS20AN ;NET HOST TABLE INITIALIZE +.SFTMZ==:47 ;SET TIME ZONE THIS SYSTEM IS IN +.SFLHN==:50 ;TOPS20AN ;SET LOCAL HOST NUMBER OF THIS NET SITE +.SFAVR==:51 ;ACCOUNT VALIDATION ON/OFF +.SFSTS==:52 ;ENABLE/DISABLE STATUS REPORTING +.SFSOK==:53 ;GETOK/GIVOK DEFAULT SETTING +.SFMCY==:54 ;SET MAX ORDINARY OFFLINE EXP PERIOD +.SFRDU==:55 ;READ DATE UPDATE FUNCTION +.SFACY==:56 ;SET MAX ARCHIVE EXP PERIOD +.SFRTW==:57 ;SET [NO] RETRIEVAL WAITS NON-0 = NO WAIT +.SFTDF==:60 ;TAPE MOUNT CONTROLS + MT%UUT==1B0 ;UNLOAD UNREADABLE TAPES +.SFWSP==:61 ;WORKING SET PRELOADING +.SFDST==:62 ;Daylight Saving Time method + .DSTAU==0 ;Perform automatic DST changeover + .DSTNV==1 ;Never perform DST conversion + .DSTAL==2 ;Always perform DST conversion + +; SMON CODE 63 IS CURRENTLY UNUSED + +.SFMSD==:64 ;SET DISK DRIVE (UN)AVAILABLE FOR MSCP SERVER + .SVCNT==0 ;COUNT OF WORDS IN BLOCK + .SVTYP==1 ;DRIVE TYPE AND FLAGS + SV%DDU==1B0 ;DRIVE IS TO BE UNAVAILABLE + .SVDSH==2 ;HIGH ORDER SERIAL NUMBER + .SVDSN==3 ;LOW ORDER SERIAL NUMBER +.SFSPR==:65 ;SET SPEAR EVENT COUNTER +.SFCOT==:66 ;CARRIER OFF TIME +.SFHU0==:67 ;HANGUP ACTION IF NOT LOGGED IN +.SFHU1==:70 ;HANGUP ACTION IF LOGGED IN +.SFXEC==:71 ;EXEC FLAGS WORD + XC%FST==1B0 ; DON'T ALLOW /FAST OPTION TO LOGIN +.SFSEA==:72 ;SET ETHERNET ADDRESS +.SFDCD==:73 ;SET DON'T CARE DISK +.SFLTS==:74 ;SET LAT-STATE +.SFCLU==:75 ;[7.1076] Enabling/disabling CLUDGR SYSAP +.SFTMG==:76 ;[7.1076] Enabling/disabling remote send alls +.SFOFS==:77 ;[7.1063]Set offline structures timer +.SFLGS==:100 ;[7.1112]Set Login Structure state +.SFMPL==:101 ;[7.1231] Minimum password length + + .SDF%C==7777B11 ;CHANNEL FORMAT + .SDF%K==7777B23 ;CONTROLLER FORMAT + .SDF%U==7777B35 ;UNIT FORMAT +;DEFINITIONS FOR .SFDCD ARE THE SAME AS CODE 64 + +SF%FAC==:1B<.SFFAC> ;FACT ENTRIES ALLOWED +SF%CDE==:1B<.SFCDE> ;CHECKDISK FOUND ERRORS +SF%CDR==:1B<.SFCDR> ;CHECKDISK RUNNING +SF%MST==:1B<.SFMST> ;MANUAL START IN PROGRESS +SF%RMT==:1B<.SFRMT> ;REMOTE LOGINS ALLOWED +SF%PTY==:1B<.SFPTY> ;PTY LOGINS ALLOWED +SF%CTY==:1B<.SFCTY> ;CTY LOGIN ALLOWED +SF%OPR==:1B<.SFOPR> ;OPERATOR IN ATTENDANCE +SF%LCL==:1B<.SFLCL> ;LOCAL LOGINS ALLOWED +SF%BTE==:1B<.SFBTE> ;BIT TABLE ERRORS FOUND ON STARTUP +SF%CRD==:1B<.SFCRD> ;USER CAN CHANGE DIRECTORY CHARACTERISTICS +SF%NVT==:1B<.SFNVT> ;TOPS20AN ;NVT LOGINS ALLOWED +SF%USG==:1B<.SFUSG> ;USAGE FILE IN USE +SF%FLO==:1B<.SFFLO> ;FULL LATENCY OPTIMIZATION IN USE + ;CAUTION: SETTING THIS REQUIRES THAT THE + ; SYSTEM BE AT REVISION LEVEL 10, AND + ; THAT RH20 BOARD M8555 BE AT REVISION LEVEL D. + ; OTHERWISE, THE FILE-SYSTEM MAY BE DAMAGED. +SF%MTA==:1B<.SFMTA> ;MAGTAPE ALLOCATION ENABLED +SF%MS0==:1B<.SFMS0> ;SYSTEM MESSAGE LEVEL 0 +SF%MS1==:1B<.SFMS1> ;SYSTEM MESSAGE LEVEL 1 +SF%BGS==:1B<.SFBGS> ;CTY OUTPUT MESSAGES +SF%MCB==:1B<.SFMCB> ;DECNET LOGINS ALLOWED +SF%DPR==:1B<.SFDPR> ;Disk preallocation enabled +SF%LAT==:1B<.SFLAT> ;[7327]LAT LOGINs + +SF%EOK==:1B0 ;ENABLE ACCESS CHECKING +SF%DOK==:1B1 ;ALLOW ACCESS IF CHECKING DISABLED + + +;SINM JSYS DEFINITIONS + +SI%TMG==:1B0 ;TRUNCATE MESSAGE +SI%EOM==:1B1 ;END-OF-MESSAGE FOUND + +;SIR JSYS (NEW FORM) + +SI%VER==:7B17 ;VERSION OF SIR IN T1 +SI%LEV==:77B5 ;LEVEL FIELD IN CHNTAB +SI%ADR==:7777,,-1 ;ADDRESS OF INTERRUPT ROUTINE IN CHNTAB + +;SKED JSYS + + .SACNT==:0 ;ARGUMENT BLOCK OFFSET FOR COUNT + + ;FUNCTION CODES + +.SKRBC==:1 ;READ BIAS CONTROL KNOB + .SAKNB==:1 ;OFFSET FOR KNOB VALUE +.SKSBC==:2 ;SET BIAS CONTROL KNOB +.SKRCS==:3 ;READ SHARE OF A CLASS + .SACLS==:1 ;CLASS + .SASHR==:2 ;SHARE + .SAUSE==:3 ;USE + .SA1ML==:4 ;1 MINUTE LOAD AVERAGE + .SA5ML==:5 ;5 MINUTE LOAD AVERAGE + .SA15L==:6 ;15 MINUTE LOAD +.SKSCS==:4 ;SET SHARE OF A CLASS +.SKICS==:5 ;START OR STOP CLASS SCHEDULING + .SACTL==:1 ;WORD FOR CONTROL BITS +.SKSCJ==:6 ;SET CLASS OF A JOB + .SAJOB==:1 ;JOB + .SAJCL==:2 ;CLASS OF JOB + .SAWA==:3 ;WA ON/OFF SWITCH +.SKRJP==:7 ;READ CLASS PARAMETERS FOR A JOB + .SAJSH==:3 ;JOB'S SHARE ALLOTMENT + .SAJUS==:4 ;JOB'S CURRENT USE + .SACSH==:5 ;JOB'S CLASS SHARE + .SACLU==:6 ;JOB'S CLASS UTILIZATION +.SKBCR==:10 ;READ CLASS SETTING FOR BATCH JOBS + .SABCL==:1 ;BATCH CLASS +.SKBCS==:11 ;SET CLASS FOR BATCH JOBS +.SKBBG==:12 ;RUN BATCH JOBS ON DREGS QUEUE + .SADRG==:1 ;WORD TO SPECIFY DREGS OR NOT +.SKDDC==:13 ;SET SYSTEM CLASS DEFAULT + .SADCL==:1 ;DEFAULT CLASS WORD +.SKRCV==:14 ;READ STATUS + SK%ACT==:1B0 ;CLASS BY ACCOUNTS + SK%WDF==:1B1 ;WITHHOLD WINDFALL + SK%STP==:1B2 ;CLASS SCHEDULER OFF + SK%DRG==:1B3 ;BATCH JOBS ARE BEING RUN ON DREGS QUEUE + +;SJPRI, SPRIW - PRIORITY WORD + +JP%RTG==:177B17 ;RUN TIME GUARANTEE PERCENTAGE +JP%SYS==:1B18 ;SYSTEM FORK (PRIORITY ABOVE ALL CLASSES) +JP%MNQ==:77B29 ;MINIMUM QUEUE +JP%MXQ==:77B35 ;MAXIMUM QUEUE + +;SNOOP JSYS DEFINITIONS + +;SNOOP FUNCTION CODES + +.SNPLC==:0 ;LOCK CODE INTO MONITOR VIRT MEMORY +.SNPLS==:1 ;LOCK DOWN THE SWAPPABLE MONITOR +.SNPDB==:2 ;DEFINE A BREAK POINT +.SNPIB==:3 ;INSERT THE BREAK POINTS +.SNPRB==:4 ;REMOVE THE BREAK POINTS +.SNPUL==:5 ;UNLOCK AND RELEASE ALL SNOOP RESOURCES +.SNPSY==:6 ;LOOK UP A MONITOR SYMBOL +.SNPAD==:7 ;LOOK UP ADDRESS IN SYMBOL TABLE + +;SOUTM JSYS DEFINITIONS + +SO%WMG==1B0 ;WRITE END-OF-MESSAGE + +;SPLFK JSYS DEFINITIONS + +SF%EXT==:1B0 ;SPLFK EXTENDED FUNCTION + + ;DEFINITION FOR SF%CON IS AT SFORK ABOVE +SF%GO==:1B1 ;FLAG TO START AT ENTRY VECTOR ADDRESS +SF%ADR==:1B2 ;FLAG TO START AT PC ADDRESS + +.SFLEN==:0 ;LENGTH OF ARGUMENT BLOCK +.SFCOD==:1 ;FUNCTION CODE + +.SFUNS==:1 ;UNSPLICE AND START FUNCTION + .SFUIN==:2 ;NEW INFERIOR + .SFUFL==:3 ;FLAGS + .SFUA1==:4 ;ENTRY VECTOR ADDRESS OR PC FLAGS + .SFUA2==:5 ;PC ADDRESS + +;SPOOL JSYS FUNCTION CODES + +.SPLDI==:0 ;DEFINE AN INPUT SPOOLING DEVICE +.SPLSD==:1 ;SET DIRECTORY OF SPOOLED DEVICE +.SPLRD==:2 ;READ DIRECTORY OF SPOOLED DEVICE + +;FLAGS IN SPOOL MESSAGE ON LOGOUT AND SPOOLED FILE CLOSE + +SP%BAT==:1B0 ;JOB IS A BATCH JOB +SP%DFS==:1B1 ;SPOOLING IS DEFERRED +SP%ELO==:1B2 ;JOB EXECUTED LGOUT JSYS ITSELF +SP%FLO==:1B3 ;JOB FORCED TO LOG OUT BY TRAP IN TOP FK +SP%OLO==:1B4 ;OTHER JOB AIMED LGOUT AT THIS ONE + +;SPOOL ARGUMENT BLOCK + +.SPLDV==:0 ;DEVICE DESIGNATOR +.SPLNA==:1 ;NAME STRING +.SPLDR==:1 ;DIRECTORY NUMBER +.SPLGN==:2 ;GENERATION NUMBER + + +;SSAVE + +SS%NNP==777777B17 ;NEGATIVE NUMBER OF PAGES +SS%CPY==:1B18 ;ALLOW COPY-ON-WRITE +SS%UCA==:1B19 ;USE CURRENT ACCESS +SS%RD==:1B20 ;ALLOW READ ACCESS +SS%WR==:1B21 ;ALLOW WRITE ACCESS +SS%EXE==:1B22 ;ALLOW EXECUTE ACCESS +SS%EPN==:1B23 ;TABLE ENTRY IS TWO WORDS (PAGE NUMBER IN SECOND WORD) +SS%FPN==:1B27+377B35 ;FIRST PAGE NUMBER + + +;STCMP + +SC%LSS==:1B0 ;T1 LESS THAN T2 +SC%SUB==:1B1 ;T1 SUBSTRING OF T2 +SC%GTR==:1B2 ;T1 GREATER THAN T2 + + + +;STDIR + +ST%DIR==:1B0 ;FILES ONLY DIRECTORY +ST%ANA==:1B1 ;ALPHANUMERIC ACCOUNTS +ST%RLM==:1B2 ;REPEAT LOGIN MESSAGE + + +;STIW + +ST%DIM==:1B0 ;SET DEFERRED INTERRUPT MASK +ST%PRH==:777777B35 ;PROCESS HANDLE + +;SWTRP DEFINITIONS + +SW%NMI==:1B0 ;NO MONITOR INTERVENTION (KC ONLY) +.SWART==:0 ;SET ARITHMETIC TRAP +.SWRAT==:1 ;READ ARITHMETIC TRAP +.SWLUT==:2 ;SET LUUO ADDRESS +.SWRLT==:3 ;READ LUUO ADDRESS +.SWSPD==:4 ;SET PDL OVERFLOW TRAP +.SWRPD==:5 ;READ PDL OVERFLOW TRAP + .ARPFL==:0 ;OFFSET IN TRAP BLOCK FOR PC FLAGS + .AROPC==:1 ;OFFSET FOR OLD PC VALUE + .AREFA==:2 ;OFFSET FOR E + .ARNPC==:3 ;OFFSET FOR NEW PC WORD + +;TBADD AND TBDEL + +TB%ABR==:1B0 ;ABBREVIATIONS PRESENT IN KEYWORD TABLE + + +;TBLUK + +TL%NOM==:1B0 ;NO MATCH +TL%AMB==:1B1 ;AMBIGUOUS +TL%ABR==:1B2 ;LEGAL ABBREVIATION +TL%EXM==:1B3 ;EXACT MATCH + + +;TFORK + +;FUNCTION CODES IN LH AC1 + +.TFSET==:0 ;SET TRAPS AS SPEC'D BY BIT TABLE +.TFRAL==:1 ;REMOVE ALL TRAPS SET BY THIS FORK +.TFRTP==:2 ;REMOVE TRAPS SET BY THIS FORK +.TFSPS==:3 ;SET JSYS TRAP PSI CHAN IN LH(2) +.TFRPS==:4 ;READ JSYS TRAP PSI CHAN INTO LH(2) +.TFTST==:5 ;TEST IF SELF MONITORED +.TFRES==:6 ;REMOVE TRAPS FROM ALL INFERIORS, CLR PSI +.TFUUO==:7 ;SET UUO TRAPS FOR FORK +.TFSJU==:8 ;SET BOTH UUO AND JSYS TRAPS +.TFRUU==:9 ;REMOVE UUO TRAPS + +;TIMER DEFINITIONS + +.TIMRT==:0 ;SET TIME LIMIT +.TIMEL==:1 ;SET ELAPSED TIME CLOCK +.TIMDT==:2 ;SET DATE & TIME CLOCK +.TIMDD==:3 ;DELETE AN EXPLICT DATE & TIME CLOCK +.TIMBF==:4 ;DELETE ALL ENTIRES BEFORE D&T +.TIMAL==:5 ;DELETE ALL (INCLUDES TIME LIMIT) + + + +;TLINK + +TL%CRO==:1B0 ;CLEAR REMOTE TO OBJECT LINK +TL%COR==:1B1 ;CLEAR OBJECT TO REMOTE LINK +TL%EOR==:1B2 ;ESTABLIST OBJECT TO REMOTE LINK +TL%ERO==:1B3 ;ESTABLISH REMOTE TO OBJECT LINK +TL%SAB==:1B4 ;SET ACCEPT BIT FOR OBJECT +TL%ABS==:1B5 ;ACCEPT BIT STATE +TL%STA==:1B6 ;SET OR CLEAR ADVICE +TL%AAD==:1B7 ;ACCEPT ADVICE +TL%OBJ==:777777B35 ;OBJECT DESIGNATOR + + +;TTMSG +TT%REM==:1B1 ;[7.1076] Remote send indicator +.TTCIN==:37B17 ;[7.1076] CI node designator +.CSALL==:37B17 ;[7.1076] Send to all nodes mnemonic +.TTTTY==:777777B35 ;[7.1076] Terminal destined for message + +;UFPGS + +UF%NOW==:1B0 ;NO WAIT ON UPDATE +UF%FSH==:1B1 ;[7.1081] Flush incore copy of pages + +;UTEST FUNCTION CODES + +.UTSET==:0 ;START TESTING +.UTCLR==:1 ;STOP TESTING AND RETURN RESULTS + +;UTEST ARGUMENT BLOCK + +.UTADR==:0 ;STARTING ADDRESS OF CODE +.UTLEN==:1 ;LENGTH OF CODE +.UTMAP==:2 ;START OF BIT MAP + +;USAGE + +.USENT==:0 ;WRITE ENTRY +.USCLS==:1 ;CLOSE OUT CURRENT FILE +.USCKP==:2 ;PERFORM CHECKPOINT +.USLGI==:3 ;LOGIN +.USLGO==:4 ;LOGOUT +.USSEN==:5 ;SESSION END +.USCKI==:6 ;SET CHECKPOINT INTERVAL +.USENA==:7 ;ENABLE ACCOUNT VALIDATION +.USCAS==:10 ;CHANGE ACCOUNTING SHIFT NOW +.USSAS==:11 ;SET AUTOMATIC ACCOUNTING SHIFT CHANGE TIMES +.USRAS==:12 ;READ AUTOMATIC ACCOUNTING SHIFT CHANGE TIMES + ;TABLE ENTRY FORMAT FOR .USSAS/.USRAS: + US%DOW==:177B6 ;DAY-OF-WEEK BITS + US%SSM==:777777 ;TIME IN SECONDS SINCE MIDNIGHT + +;UTFRK + +UT%TRP==:1B0 ;ITRAP (OR DO ERJMP/ERCAL) TRAPPED JSYS + + +;WILD FUNCTIONS + +.WLSTR==:0 ;COMPARE TWO STRINGS +.WLJFN==:1 ;COMPARE TWO JFNS + +;WILD FLAGS AND BITS + +WL%LCD==:1B0 ;DON'T CONVERT LOWER CASE TO UPPER CASE +WL%NOM==:1B0 ;STRINGS DID NOT MATCH +WL%ABR==:1B1 ;NON-WILD STRING IS ABBREVIATION OF WILD STRING +WL%DEV==:1B1 ;DEVICE FIELD DID NOT MATCH +WL%DIR==:1B2 ;DIRECTORY FIELD DID NOT MATCH +WL%NAM==:1B3 ;NAME FIELD DID NOT MATCH +WL%EXT==:1B4 ;FILE TYPE DID NOT MATCH +WL%GEN==:1B5 ;GENERATION NUMBER DID NOT MATCH + +;WSMGR defs + +.WSCLR==:1 ;Clear working set +.WSRMV==:2 ;Remove selected entries +.WSGET==:3 ;Prefault selected pages +.WSRWS==:4 ;Read working set + +;ARGUMENT BLOCK OFFSETS FOR XSIR AND XRIR JSYS'S + +.SICNT==:0 ;LENGTH OF BLOCK +.SILVT==:1 ;ADDRESS OF LEVEL TABLE +.SICHT==:2 ;ADDRESS OF CHANNEL TABLE + + +;SCHEDULER CONTROL FLAGS (JSYS NOT YET DEFINED) + +SK%CYT==:1B18 ;CYCLE TIME +SK%IOC==:1B19 ;IO QUANTUM CHARGE +SK%HT1==:1B20 ;LIMIT HOLD TIME +SK%HT2==:1B21 ;NO HOLD TIME AFTER SKIPPED FORK +SK%HQR==:1B22 ;HIGH QUEUE FORK HAVE PRIORITY UNDER LOAD +SK%CL1==:1B23 ;CLASS SKED, USE NORMAL QUEUE PRIORITIES IF 1 +;SK%BQE==:1B24 ;BALSET QUEUE ON ENTRY +SK%RSQ==:1B25 ;QUICK RESCHEDULE ON WAKEUPS +SK%RQ1==:1B26 ;REQUEUE TO QUEUE 1 +SK%TTP==:1B27 ;TTY PREFERENCE +SK%WCF==:1B28 ;WAIT CREDIT PROPORTIONAL TO LOAD AV +SK%TOP==:1B29 ;TTY OUTPUT PREFERENCE + +;XSSEV, XGSEV + +.XSEVC==:0 ;TOPS10 COMPATIBILITY VECTOR +.XSEVD==:1 ;RMS VECTOR + +XS%EEV==:1B1 ;ENTENDED ENTRY VECTOR + +;*********************************************** +;GENERAL FIELD AND VALUE DEFINITIONS +;USED BY MANY JSYSES +;*********************************************** + + +;GENERAL FORK HANDLES + +.FHSLF==:400000 ;SELF + FH%EPN==:1B19 ;EXTENDED PAGE NUMBER +.FHSUP==: ;SUPERIOR +.FHTOP==: ;TOP IN JOB +.FHSAI==: ;SELF AND INFERIORS +.FHINF==: ;INFERIORS +.FHJOB==: ;ALL IN JOB + + +;FIELDS OF JFN MODE WORD + +TT%OSP==:1B0 ;OUTPUT SUPPRESS +TT%MFF==:1B1 ;MECHANICAL FORMFEED PRESENT +TT%TAB==:1B2 ;MECHANICAL TAB PRESENT +TT%LCA==:1B3 ;LOWER CASE CAPABILITIES PRESENT +TT%LEN==:177B10 ;PAGE LENGTH +TT%WID==:177B17 ;PAGE WIDTH +TT%WAK==:17B23 ;WAKEUP FIELD +TT%WK0==:1B18 ;WAKEUP CLASS 0 (UNUSED) +TT%IGN==:1B19 ;IGNORE TT%WAK ON SFMOD +TT%WKF==:1B20 ;WAKEUP ON FORMATING CONTROL CHARS +TT%WKN==:1B21 ;WAKEUP ON NON-FORMATTING CONTROLS +TT%WKP==:1B22 ;WAKEUP ON PUNCTUATION +TT%WKA==:1B23 ;WAKEUP ON ALPHANUMERICS +TT%ECO==:1B24 ;ECHOS ON +TT%ECM==:1B25 ;ECHO MODE +TT%ALK==:1B26 ;ALLOW LINKS +TT%AAD==:1B27 ;ALLOW ADVICE (NOT IMPLEMENTED) +TT%DAM==:3B29 ;DATA MODE +.TTBIN==:0 ;BINARY +.TTASC==:1 ;ASCII +.TTATO==:2 ;ASCII AND TRANSLATE OUTPUT ONLY +.TTATE==:3 ;ASCII AND TRANSLATE ECHOS ONLY +TT%UOC==:1B30 ;UPPER CASE OUTPUT CONTROL +TT%LIC==:1B31 ;LOWER CASE INPUT CONTROL +TT%DUM==:3B33 ;DUPLEX MODE +.TTFDX==:0 ;FULL DUPLEX +.TT0DX==:1 ;NOT USED, RESERVED +.TTHDX==:2 ;HALF DUPLEX (CHARACTER) +.TTLDX==:3 ;LINE HALF DUPLEX +TT%PGM==:1B34 ;PAGE MODE +TT%CAR==:1B35 ;CARRIER STATE + + + +;DIRECTORY PROTECTION DEFINITIONS (3 6-BIT FIELDS: OWNER, GROUP, WORLD) + +DP%RD==:40 ;READING DIRECTORY IS ALLOWED +DP%CN==:10 ;CONNECT TO DIR, OR CHANGE PROT/ACCOUNT +DP%CF==:4 ;CREATING FILES IN DIR IS ALLOWED + +;FILE PROTECTION DEFINITIONS (3 6-BIT FIELDS: OWNER, GROUP, WORLD) + +FP%DIR==:2 ;DIRECTORY LISTING +FP%APP==:4 ;APPEND +FP%EX==:10 ;EXECUTE +FP%WR==:20 ;WRITE +FP%RD==:40 ;READ + + +;INPUT AND OUTPUT IDENTIFIERS + +.PRIIN==:100 ;PRIMARY INPUT +.PRIOU==:101 ;PRIMARY OUTPUT +.NULIO==:377777 ;NULL DESIGNATOR +.SIGIO==:677777 ;SIGNAL JFN +.CTTRM==:777777 ;JOB'S CONTROLLING TERMINAL +.DVDES==:600000 ;UNIVERSAL DEVICE CODE +.TTDES==:400000 ;UNIVERSAL TERMINAL CODE + + +;MAGTAPE DEVICE STATUS BITS + +MT%ILW==:1B18 ;ILLEGAL WRITE +MT%DVE==:1B19 ;DEVICE ERROR +MT%DAE==:1B20 ;DATA ERROR +MT%SER==:1B21 ;SUPPRESS ERROR RECOVERY PROCEDURES +MT%EOF==:1B22 ;EOF (FILE MARK) +MT%IRL==:1B23 ;INCORRECT RECORD LENGTH +MT%BOT==:1B24 ;BEGINNING OF TAPE +MT%EOT==:1B25 ;END OF TAPE +MT%EVP==:1B26 ;EVEN PARITY +MT%DEN==:3B28 ;DENSITY (0 IS 'NORMAL') +.MTLOD==:1 ;LOW DENSITY (200 BPI) +.MTMED==:2 ;MEDIUM DENSITY (556 BPI) +.MTHID==:3 ;HIGH DENSITY (800 BPI) +MT%CCT==:7B31 ;CHARACTER COUNTER +MT%NSH==:1B32 ;DATA MODE OR DENSITY NOT SUPPORTED BY HARDWARE + + +;DEVICE DATA MODES + +.DMASC==:1 ;ASCII +.DMIMG==:10 ;IMAGE +.DMIMB==:13 ;IMAGE BINARY +.DMBIN==:14 ;BINARY + + + +;DEFINED PSI CHANNELS + +RADIX 5+5 + +.ICAOV==:6 ;ARITHMETIC OVERFLOW +.ICFOV==:7 ;FLOATING OVERFLOW +.ICPOV==:9 ;PDL OVERFLOW +.ICEOF==:10 ;END OF FILE +.ICDAE==:11 ;DATA ERROR +.ICQTA==:12 ;QUOTA/DISK EXCEEDED +.ICTOD==:14 ;TIME OF DAY (NOT IMPLEMENTED) +.ICILI==:15 ;ILLEG INSTRUCTION +.ICIRD==:16 ;ILLEGAL READ +.ICIWR==:17 ;ILLEGAL WRITE +.ICIEX==:18 ;ILLEGAL EXECUTE (NOT IMPLEMENTED) +.ICIFT==:19 ;INFERIOR FORK TERMINATION +.ICMSE==:20 ;MACHINE SIZE EXCEEDED +.ICTRU==:21 ;TRAP TO USER (NOT IMPLEMENTED) +.ICNXP==:22 ;NONEXISTENT PAGE REFERENCED + + + +;TERMINAL TYPE NUMBERS + +.TT33==:0 ;MODEL 33 +.TT35==:1 ;MODEL 35 +.TT37==:2 ;MODEL 37 +.TTEXE==:3 ;EXECUPORT +.TTDEF==:^D8 ;DEFAULT +.TTIDL==:^D9 ;IDEAL +.TTV05==:^D10 ;VT05 +.TTV50==:^D11 ;VT50 +.TTL30==:^D12 ;LA30 +.TTG40==:^D13 ;GT40 +.TTL36==:^D14 ;LA36 +.TTV52==:^D15 ;VT52 +.TT100==:^D16 ;VT100 +.TTL38==:^D17 ;LA38 +.TT120==:^D18 ;LA120 +.TT125==:^D35 ;VT125 +.TTK10==:^D36 ;VK100 - GIGI +.TT102==:^D37 ;VT102 +.TTH19==:^D38 ;H19 +.TT131==:^D39 ;VT131 +.TT200==:^D40 ;VT200 +.TT300==:^D52 ;VT300 [7424] + +;DEFINED TERMINAL CODES + +.TICBK==:0 ;BREAK +.TICCA==:1 ;^A +.TICCB==:2 ;^B +.TICCC==:3 ;^C +.TICCD==:4 ;^D +.TICCE==:5 ;^E +.TICCF==:6 ;^F +.TICCG==:7 ;^G +.TICCH==:8 ;^H +.TICCI==:9 ;^I +.TICCJ==:10 ;^J +.TICCK==:11 ;^K +.TICCL==:12 ;^L +.TICCM==:13 ;^M +.TICCN==:14 ;^N +.TICCO==:15 ;^O +.TICCP==:16 ;^P +.TICCQ==:17 ;^Q +.TICCR==:18 ;^R +.TICCS==:19 ;^S +.TICCT==:20 ;^T +.TICCU==:21 ;^U +.TICCV==:22 ;^V +.TICCW==:23 ;^W +.TICCX==:24 ;^X +.TICCY==:25 ;^Y +.TICCZ==:26 ;^Z +.TICES==:27 ;ESC +.TICRB==:28 ;RUBOUT +.TICSP==:29 ;SPACE +.TICRF==:30 ;CARRIER OFF +.TICTI==:31 ;TYPEIN +.TICTO==:32 ;TYPEOUT +.TITCE==:33 ;TWO CHARACTER ESCAPE SEQUENCE + + +RADIX 8 + +;CAPABILITIES + +SC%CTC==:1B0 ;CONTROL-C +SC%GTB==:1B1 ;GETAB +SC%MMN==:1B2 ;MAP MONITOR +SC%LOG==:1B3 ;LOGGING FUNCTIONS +SC%MPP==:1B4 ;MAP PRIVILEGED PAGES +SC%SDV==:1B5 ;SPECIAL DEVICES +SC%SCT==:1B6 ;ASSIGN TTY AS CONTROLLING FOR FORK (SCTTY) + +SC%SUP==:1B9 ;SUPERIOR ACCESS + +SC%FRZ==:1B17 ;FREEZE ON TERMINATING CONDITIONS + +SC%WHL==:1B18 ;WHEEL +SC%OPR==:1B19 ;OPERATOR +SC%CNF==:1B20 ;CONFIDENTIAL INFORMATION ACCESS +SC%MNT==:1B21 ;MAINTENANCE +SC%IPC==:1B22 ;IPCF PRIVILEGES +SC%ENQ==:1B23 ;ENQ/DEQ PRIVILEGES +SC%NWZ==:1B24 ;TOPS20AN ;NET WIZARD PRIVILEGES (ASNSQ, ETC.) +SC%NAS==:1B25 ;TOPS20AN ;NETWORK ABSOLUTE SOCKET PRIVILEGE +SC%DNA==:1B26 ;DECNET ACCESS ALLOWED +SC%ANA==:1B27 ;TOPS20AN ;ARPANET ACCESS ALLOWED +SC%SEM==:1B28 ;[7.1077]SEMI-OPR PRIVILEGES + +;OUTMODED NAMES FOR BITS IN DIRECTORY MODE WORD - USE CD%XXX +;EQUIVALENTS + +MD%FO==:CD%DIR ;FILES ONLY DIRECTORY +MD%SA==:CD%ANA ;STRING ACCOUNT ALLOWED +MD%RLM==:CD%RLM ;REPEAT LOGIN MESSAGE + + + +;FDB DEFINITIONS + + +.FBHDR==:0 ;HEADER WORD + FB%LEN==:177B35 ;LENGTH OF THIS FDB +.FBCTL==:1 ;FLAGS + FB%TMP==:1B0 ;FILE IS TEMPORARY + FB%PRM==:1B1 ;FILE IS PERMANENT + FB%NEX==:1B2 ;FILE DOES NOT HAVE AN EXTENSION YET + FB%DEL==:1B3 ;FILE IS DELETED + FB%NXF==:1B4 ;FILE IS NONEXISTENT + FB%LNG==:1B5 ;FILE IS A LONG FILE + FB%SHT==:1B6 ;FILE HAS COMPRESSED PAGE TABLE + FB%DIR==:1B7 ;FILE IS A DIRECTORY FILE + FB%NOD==:1B8 ;FILE IS NOT TO BE DUMPED BY BACKUP SYSTEM + FB%BAT==:1B9 ;FILE HAS AT LEAST ONE BAD PAGE IN IT + FB%SDR==:1B10 ;THIS DIRECTORY HAS SUBDIRECTORIES + FB%ARC==:1B11 ; File has archive status + FB%INV==:1B12 ; File is invisible + FB%OFF==:1B13 ; File is offline + FB%FCF==:17B17 ;FILE CLASS FIELD + .FBNRM==:0 ;NON-RMS + .FBRMS==:1 ;RMS FILES + FB%NDL==:1B18 ;FILE CANNOT BE DELETED + FB%WNC==:1B19 ;LAST WRITE NOT CLOSED + FB%FOR==:1B20 ;FORTRAN DATA FILE +.FBEXL==:2 ;LINK TO FDB OF NEXT EXTENSION +.FBADR==:3 ;DISK ADDRESS OF INDEX BLOCK +.FBPRT==:4 ;PROTECTION OF THE FILE +.FBCRE==:5 ;TIME AND DATE OF LAST WRITE +.FBUSE==:6 ;LAST WRITER ,, AUTHOR (OBS) +.FBAUT==:6 ;POINTER TO AUTHOR STRING +.FBGEN==:7 ;GENERATION ,, DIR # + FB%GEN==:777777B17 ;GENERATION NUMBER +.FBDRN==:7 ;GENERATION ,, DIR # + FB%DRN==:777777 ;DIR NUMBER +.FBACT==:10 ;ACCOUNT +.FBBYV==:11 ;RETENTION+BYTE SIZE+MODE ,, # OF PAGES + FB%RET==:77B5 ;RETENTION COUNT + FB%BSZ==:77B11 ;BYTE SIZE + FB%MOD==:17B17 ;LAST OPENF MODE + FB%PGC==:777777 ;PAGE COUNT +.FBSIZ==:12 ;EOF POINTER +.FBCRV==:13 ;TIME AND DATE OF CREATION OF FILE +.FBWRT==:14 ;TIME AND DATE OF LAST USER WRITE +.FBREF==:15 ;TIME AND DATE OF LAST NON-WRITE ACCESS +.FBCNT==:16 ;# OF WRITES ,, # OF REFERENCES +.FBBK0==:17 ;BACKUP WORDS (5) +.FBBK1==:20 +.FBBK2==:21 +.FBBBT==:22 ; Bits,,#pages in offline file + AR%RAR==:1B1 ; Request archive by user + AR%RIV==:1B2 ; Request invol migration by system + AR%NDL==:1B3 ; Do not delete contents of file when archived + AR%NAR==:1B4 ; Please don't migrate this file + AR%EXM==:1B5 ; File exempt from migration + AR%1ST==:1B6 ; 1st pass of archive/collection run complete + AR%RFL==:1B7 ; Retrieve failed + AR%WRN==:1B8 ; USER WARNED OF APPROACHING EXPIRATION + AR%RSN==:7B17 ; Reason pushed offline + .AREXP==:1 ; File expired + .ARARR==:2 ; Archive was requested + .ARRIR==:3 ; Migration was requested + AR%PSZ==:777777 ; RH is pg count when file went offline +.FBNET==:23 ; On-line expiration date/interval +.FBUSW==:24 ;USER SETTABLE WORD +.FBGNL==:25 ;LINK TO NEXT GENERATION FILE +.FBNAM==:26 ;POINTER TO NAME BLOCK +.FBEXT==:27 ;POINTER TO EXTENSION BLOCK +.FBLWR==:30 ;POINTER TO LAST WRITER STRING +.FBTDT==:31 ; Archive or collection date & time +.FBFET==:32 ; Offline expiration date/interval +.FBTP1==:33 ; Tape ID for run 1 tape +.FBSS1==:34 ; Saveset #,,Tape file # for run 1 tape +.FBTP2==:35 ; Tape ID for run 2 tape +.FBSS2==:36 ; Saveset #,,Tape file # for run 2 tape + +.FBLN0==:30 ;LENGTH OF VERSION 0 FDB +.FBLN1==:31 ;LENGTH OF VERSION 1 FDB +.FBLXT==:37 ; Minimum length for archive/virtual dsk sys +.FBLEN==:37 ;LENGTH OF THE FDB + +;CARD READER DEFINITIONS + +.CRILC==:"\" ;ILLEGAL CHARACTER CODE + +;A WORD IS DISTINGUISHED FROM A BYTE POINTER BY THE VALUE 5 IN BITS 0-2 +;USE THESE DEFINITIONS TO TEST FOR A NUMBER AS FOLLOWS: +; LOAD AC,NMFLG,LOC +; CAIE AC,NUMVAL + +NMFLG==:7B2 +NUMVAL==:5 + + +;MAGTAPE LABEL TYPES + +.LTUNL==:1 ;UNLABELED +.LTANS==:2 ;ANSI STANDARD +.LTEBC==:3 ;EBCDIC +.LTT20==:4 ;TOPS-20 +.LTMAX==:4 ;MAXIMUM LABEL TYPE + +;MAGTAPE LABEL STATES + +.LSUNL==:0 ;UNLABELLED VOLUME +.LSPRI==:1 ;PRIVATE VOLUME +.LSSCR==:2 ;SCRATCH VOLUME +.LSUSC==:3 ;USER SCRATCH VOLUME + +; MAGTAPE DRIVE TYPES + +.TMDR9==:1 ;9-TRACK +.TMDR7==:2 ;7-TRACK +.TMDMX==:2 ;MAXIMUM DRIVE-TYPE VALUE + + + +;DEFINITIONS FOR COMMUNICATIONS PROTOCOLS + +;DEFINE THE SUPPORTED PROTOCOL TYPES + +.VN20F==:0 ;RSX20F PROTOCOL +.VNMCB==:1 ;MCB DECNET PROTOCOL +.VND60==:2 ;DN60 PROTOCOL +.VNDDC==:2 ;DDCMP PROTOCOL +.VNMOP==:3 ;MOP (DDCMP MAINTENANCE) MODE +.VNCNL==:4 ;CONTROLLER LOOPBACK +.VNCBL==:5 ;CABLE LOOPBACK + +;DEFINE BITS USED WHEN RELOADING AN -11 + +RM%ROM==:1B0 ;IF SET, ACTIVATE ROM + +;*********************************************** +;GENERAL FIELD AND VALUE DEFINITIONS +;USED BY TOPS20AN JSYS'S +;*********************************************** + +;HOST STATUS BITS + +HS%UP==1B0 ;HOST IS UP +HS%VAL==1B1 ;VALID STATUS +HS%DAY==7B4 ;DAY WHEN UP IF DOWN +HS%HR==37B9 ;HOUR +HS%MIN==17B13 ;5 MIN INTERVAL +HS%RSN==17B17 ;REASON +HS%SRV==1B18 ;HOST IS SERVER +HS%USR==1B19 ;HOST IS USER +HS%NCK==1B20 ;HOST NAME STRING WAS NICKNAME +HS%STY==77B26 ;SYSTEM TYPE MASK +HS%NEW==1B27 ;HOST DOES NEW PROTOCOL +HS%NAM==1B28 ;HOST HAS NAME +HS%SLF==1B29 ;HOST IS AN ALIAS FOR ME +HS%NET==1B30 ;HOST IS REALLY A NETWORK NAME +HS%GAT==1B31 ;HOST IS REALLY A GATEWAY + +.HS10X==1B26 ;TENEX +.HSITS==2B26 ;ITS +.HSDEC==3B26 ;TOPS-10 +.HSTIP==4B26 ;TIP +.HSMTP==5B26 ;MTIP +.HSELF==6B26 ;ELF +.HSANT==7B26 ;ANTS +.HSMLT==10B26 ;MULTICS +.HST20==11B26 ;TOPS-20 +.HSUNX==12B26 ;UNIX +.HSNET==13B26 ;Network +.HSFUZ==14B26 ;Fuzzballs +.HSVMS==15B26 ;VMS +.HSTAC==16B26 ;TAC +.HSDOS==17B26 ;MSDOS + + ;TCP OPENF% IO MODES +.TCMWD==0 ;[7.1263] Default mode, same as .TCMWI +.TCMWI==1 ;WAIT BEFORE RETURN, INTERACTIVE SEND +.TCMWH==2 ;WAIT BEFORE RETURN, HIGH THROUGHPUT +.TCMII==3 ;RETURN IMMEDIATE, INTERACTIVE SEND +.TCMIH==4 ;RETURN IMMEDIATE, HIGH THROUGHPUT + +;TCOPR JSYS + +TCOPRM==0 ;INITIAL HIGH TCOPR FUNCTION +TCOPS1==100 ;LOW SPECIAL TCOPR FUNCTION +TCOPSM==0 ;INITIAL HIGH SPECIAL TCOPR FUNCTION + +DEFINE DEFTCO(N,O,F),< +N==O +IFB ,,> +IFNB ,,>> + + ;TCOPR FUNCTION CODES +DEFTCO .TCRCS,0 ;READ CONNECTION STATE +DEFTCO .TCSUD,1 ;SEND URGENT DATA +DEFTCO .TCPSH,2 ;PUSH LOCAL DATA +DEFTCO .TCSPA,3 ;SET PASSIVE ACTIVE FLAG +DEFTCO .TCSPP,4 ;SET PERSISTANCE PARAMETERS +DEFTCO .TCSTP,5 ;SET TIMEOUT PARAMETERS +DEFTCO .TCSRP,6 ;SET RETRANSMISSION PARAMETERS +DEFTCO .TCSTS,7 ;SET TYPE OF SERVICE +DEFTCO .TCSSC,10 ;SET SECURITY AND COMPARTMENT LEVELS +DEFTCO .TCSHT,11 ;SET HANDLING RESTRICTIONS AND TRANSMISSION + ;CONTROL FIELDS +DEFTCO .TCSPC,12 ;SET PSI CHANNELS +DEFTCO .TCRTW,13 ;READ A WORD FROM THE TCB +DEFTCO .TCSIL,14 ;SET THE INTERRUPT LEVEL FOR BUFFERS +DEFTCO .TCLSR,15 ;SET THE LOOSE ROUTE +DEFTCO .TCSSR,16 ;SET THE STRICT ROUTE +DEFTCO .TCRLB,17 ;READ LOWER BOUND FOR RETRANSMISSION +DEFTCO .TCSLB,20 ;SET UPPER BOUND FOR RETRANSMISSION +DEFTCO .TCRUB,21 ;READ UPPER BOUND FOR RETRANSMISSION +DEFTCO .TCSUB,22 ;SET UPPER BOUND FOR RETRANSMISSION +DEFTCO .TCSFN,23 ;SEND A FIN WITHOUT AN ABORT%. + + ;SPECIAL TCOPR FUNCTIONS +DEFTCO .TCRDL,100,S ;READ DEFAULT LOWER BOUND +DEFTCO .TCSDL,101,S ;SET DEFAULT LOWER BOUND +DEFTCO .TCRDU,102,S ;READ DEFAULT UPPER BOUND +DEFTCO .TCSDU,103,S ;SET DEFAULT UPPER BOUND + +TC%TPU==770000,,000000 ;Urgent data channel +TC%TER==007700,,000000 ;Error channel +TC%TSC==000077,,000000 ;State change channel +TC%TXX==000000,,777777 ;Unused (must be 77) fields + +;Connection States (from GDSTS) + +.TCNOT==0 ;not synch'ed +.TCFIN==2 ;fin sent or received +.TCSYA==4 ;synchable +.TCSYS==5 ;synch sent or received +.TCSYN==7 ;synch'ed + +;IPOPR JSYS + +IPOPRM==0 +DEFINE DEFIPO(N,O),< +N==O +IFG ,> + + ;IPOPR FUNCTIONS +DEFIPO .IPSNT,0 ;SET A NETWORK ON OR OFF +DEFIPO .IPRNT,1 ;READ A NETWORK STATE +DEFIPO .IPINI,2 ;INITIALIZE ARPANET HOST NAME TABLES +DEFIPO .IPGWY,3 ;INITIALIZE ARPANET GATEWAY TABLES +DEFIPO .IPRIB,4 ;READ STATUS OF INTERNET BYPASS +DEFIPO .IPSIB,5 ;SET STATUS OF INTERNET BYPASS +DEFIPO .IPNIP,6 ;IP ON THE NI - ENABLE/DISABLE NI IP PORTAL +DEFIPO .IPNAP,7 ;IP ON THE NI - ENABLE/DISABLE NI ARP PORTAL +DEFIPO .IPIGH,10 ;IP ON THE NI - RELOAD NI IP GHT +DEFIPO .IPRGH,11 ;IP ON THE NI - RETURN NI IP GHT TABLE +DEFIPO .IPRIC,12 ;IP ON THE NI - RETURN NI IP PORTAL COUNTERS +DEFIPO .IPRAC,13 ;IP ON THE NI - RETURN NI ARP PORTAL COUNTERS + + SUBTTL SCS% JSYS definitions + + SUBTTL SCS% function codes + + .SS1ST==0 + .SSCON==0 ;Connect + .SSLIS==1 ;Listen + .SSREJ==2 ;Reject + .SSDIS==3 ;Disconnect + .SSSDG==4 ;Send datagram + .SSQRD==5 ;Queue datagram buffers + .SSSMG==6 ;Send message + .SSQRM==7 ;Queue message buffers + .SSCSP==10 ;Connect state poll + .SSRCD==11 ;Retrieve connection data + .SSSTS==12 ;Status info on connection + .SSRMG==13 ;Receive message + .SSMAP==14 ;Map a buffer + .SSUMP==15 ;Unmap a buffer + .SSSND==16 ;Send data + .SSREQ==17 ;Request data + .SSAIC==20 ;Add interrupt channels + +; This function is now performed by DIAG + .SSRPC==21 ;Return port counters + + .SSRDG==22 ;Receive datagram + .SSACC==23 ;Accept a connection + .SSGDE==24 ;Get entry from data queue + .SSEVT==25 ;Get entry from event queue + .SSCRD==26 ;Cancel receive datagram + .SSCRM==27 ;Cancel receive message + .SSGLN==30 ;Get local node number + +; These functions are now performed by DIAG% + .SSMDR==31 ;Maintainance data read + .SSMDS==32 ;Maintainance data send + .SSSRS==33 ;Start remote system + .SSRRS==34 ;Reset remote system + + .SSRBS==35 ;Return buffer sizes + .SSRPS==36 ;Return path status information + + .SSLST==36 ;The symbol for the highest function code + + SUBTTL SCS% JSYS -- Random constants + + SQ%CDT==4 ;Number of words in connection data + SQ%SBL==20 ;Length of the System Block list + + SUBTTL SCS% argument block format definitions + +; !=======================================================! +;.SQLEN ! Words processed ! Length of block ! +; !-------------------------------------------------------! +; \ \ +; \ Function dependent arguments \ +; \ \ +; !=======================================================! +; + .SQLEN==0 ;Base word of every argument block + MSKSTR (SC%WDP,<>,<-1,,0>) ;Words processed mask + MSKSTR (SC%LOB,<>,<0,,-1>) ;Length of block + + SUBTTL SCS% argument block format definitions -- .SSCON + +; !=======================================================! +;.SQLEN ! Words processed ! Length of block ! +; !-------------------------------------------------------! +;.SQSPN ! Byte pointer to source process name ! +; !-------------------------------------------------------! +;.SQDPN ! Byte pointer to destination process name ! +; !-------------------------------------------------------! +;.SQSYS ! Node # of destination ! SYSAP field of connect ID ! +; !-------------------------------------------------------! +;.SQCDT ! Address of connection data ! +; !-------------------------------------------------------! +;.SQAMC ! Address of message buffer chain ! +; !-------------------------------------------------------! +;.SQADC ! Address of datagram buffer chain ! +; !-------------------------------------------------------! +;.SQRCI ! Returned connect ID ! +; !=======================================================! +; + .SQSPN==.SQLEN+1 ;Byte pointer to source process name + .SQDPN==.SQSPN+1 ;Byte pointer to destination process name + .SQSYS==.SQDPN+1 ;Node number and SYSAP conn_id bits + MSKSTR (SC%SBI,<>,<-1,,0>) ;Node number mask + MSKSTR (SC%CIB,<>,<0,,-1>) ;Conn_id bits + + .SQCDT==.SQSYS+1 ;Address of initial connection data + .SQAMC==.SQCDT+1 ;Address of message buffer chain + .SQADC==.SQAMC+1 ;Address of message buffer chain + .SQRCI==.SQADC+1 ;Returned CONNECT_ID + + .LBCON==.SQRCI+1 ;Length of block + SUBTTL SCS% argument block format definitions -- .SSLIS + +; !=======================================================! +;.SQLEN ! Words processed ! Length of block ! +; !-------------------------------------------------------! +;.SQSPN ! Byte pointer to source process name ! +; !-------------------------------------------------------! +;.SQDPN ! Byte pointer to destination process name ! +; !-------------------------------------------------------! +;.SQSYS ! Node # of destination ! SYSAP field for CID ! +; !-------------------------------------------------------! +;.SQLCI ! Returned connect ID ! +; !=======================================================! +; + .SQLCI==.SQSYS+1 ;Returned CONNECT_ID + + .LBLIS==.SQLCI+1 ;Length of listen block + SUBTTL SCS% argument block format definitions -- .SSACC + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQCDA ! Pointer to connection data ! +; !=======================================================! +; + + .SQCID==.SQLEN+1 ;Connect ID + .SQCDA==.SQCID+1 ;Pointer to connection data + + .LBACC==.SQCDA+1 + SUBTTL SCS% argument block format definitions -- .SSREJ + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQREJ ! Rejection reason ! +; !=======================================================! +; + .SQREJ==.SQCID+1 ;Rejection reasons + + .LBREJ==.SQREJ+1 + SUBTTL SCS% argument block format definitions -- .SSDIS + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQDIS ! Disconnect reason ! +; !=======================================================! +; + .SQDIS==.SQCID+1 ;Disconnect reason + + .LBDIS==.SQDIS+1 + SUBTTL SCS% argument block format definitions -- .SSSDG + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQAPT ! Address of datagram text ! +; !-------------------------------------------------------! +; .SQLPT ! Length (word for high den, bytes for ind compat) ! +; !-------------------------------------------------------! +; .SQFLG ! Flags ! OPS ! +; !=======================================================! +; + .SQAPT==.SQCID+1 ;Address of packet text + .SQLPT==.SQAPT+1 ;Length of packet text + .SQFLG==.SQLPT+1 ;Flags and optional path spec + + MSKSTR (SC%FLG,<>,<-1,,777700>) ;Flags mask + MSKSTR (SC%MOD,<>,<200000,,0>);Mode flag 0=ind. compat + ; 1=high density + MSKSTR (SC%OPS,<>,<0,,77>) ;Optional path spec mask + .SSAPS==0 ;Auto path select + .SSPTA==1 ;Use path A + .SSPTB==2 ;Use path B + .SSLOW==.SSAPS ;Range of valid path + .SSHGH==.SSPTB ; spec values + + + .LBSDG==.SQFLG+1 ;Length of block + +; Note, .SSSMG has the same format as .SSSDG, hence + + .LBSMG==.LBSDG + + .SQTXT==0 ;Offset to start of user data + ; Note: This definition is here to provide + ; upward compatability with older programs + ; New code should not use it + SUBTTL SCS% argument block format definitions -- .SSQRD + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQAFB ! Address of first buffer on buffer chain ! +; !=======================================================! +; + .SQAFB==.SQCID+1 ;Address of first buffer on chain. First word + ; of each buffer is pointer to next buffer on + ; chain. Last buffer has first word of zero. + + .LBQRD==.SQAFB+1 + + +; Note: .SSQRM and .SSQRD have the same format + + .LBQRM==.LBQRD ;Make a length symbol for .SSQRM + SUBTTL SCS% argument block format definitions -- .SSCRD + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQADB ! Address of buffer to dequeue ! +; !=======================================================! +; + .SQADB==.SQCID+1 ;Address of buffer to dequeue + + .LBCRD==.SQADB+1 + + +; Note: .SSCRD and .SSCRM have the same format + + .LBCRM==.LBCRD + SUBTTL SCS% argument block format definitions -- .SSCSP + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! ------------ +; .SQCST ! Connection state ! ^ +; !-------------------------------------------------------! ! +; .SQDCI ! Destination connect ID ! ! +; !-------------------------------------------------------! Returned +; .SQBDN ! Byte pnter to dest process name (user provided) ! data +; !-------------------------------------------------------! ! +; .SQSBI ! Node number of destination ! ! +; !-------------------------------------------------------! ! +; .SQREA ! Source disconnect reasons ! Dest disconnect reasons ! v +; !=======================================================! ------------ +; + .SQCST==.SQCID+1 ;Connection state + .SQDCI==.SQCST+1 ;Destination connect ID + .SQBDN==.SQDCI+1 ;Byte pointer to destination process name + .SQSBI==.SQBDN+1 ;Node number of destination + .SQREA==.SQSBI+1 ;Reason codes + MSKSTR (SC%SDR,<>,<-1,,0>) ;Source disconnect reason + MSKSTR (SC%DDR,<>,<0,,-1>) ;Dest disconnect reason + + .LBCSP==.SQREA+1 + SUBTTL SCS% argument block format definitions -- .SSRCD + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Optional connect ID ! +; !-------------------------------------------------------! +; .SQOSB ! Optional system block index ! +; !-------------------------------------------------------! ----------- +; .SQVCS ! Virtual circuit state ! Port number ! ^ +; !-------------------------------------------------------! ! +; .SQSAD \ \ ! +; \ System address (6 8-bit bytes, word aligned) \ ! +; \ \ ! +; !-------------------------------------------------------! ! +; .SQMDD ! Maximum destination datagram size ! ! +; !-------------------------------------------------------! ! +; .SQMDM ! Maximum destination message size ! Returned +; !-------------------------------------------------------! data +; .SQDST ! Destination software type ! ! +; !-------------------------------------------------------! ! +; .SQDSV ! Destination software version ! ! +; !-------------------------------------------------------! ! +; .SQDSE ! Destination software edit level ! ! +; \ \ ! +; !-------------------------------------------------------! ! +; .SQDHT ! Destination hardware type ! ! +; !-------------------------------------------------------! ! +; .SQDHV ! Destination hardware version ! ! +; \ \ ! +; \ \ ! +; !-------------------------------------------------------! ! +; .SQNNM \ Destination port name \ ! +; \ \ ! +; !-------------------------------------------------------! ! +; .SQPCW \ Port characteristics \ ! +; !-------------------------------------------------------! ! +; .SQLPN ! Local port number ! v +; !=======================================================! ----------- +; + .SQOSB==.SQCID+1 ;Optional system block index + .SQVCS==.SQOSB+1 ;Remote port number and virtual circuit state + MSKSTR (SC%VCS,<>,<-1,,0>) ;Virtual circuit state + VC.CLO==0 ;CLOSED + VC.STS==1 ;START SENT + VC.STR==2 ;START RECEIVED + VC.OPN==3 ;OPEN + MSKSTR (SC%PRT,<>,<0,,-1>) ;Remote port number + + .SQSAD==.SQVCS+1 ;Remote system address + + .SQMDD==.SQSAD+2 ;Max dest DG size + + .SQMDM==.SQMDD+1 ;Max remote mess size + + .SQDST==.SQMDM+1 ;Dest software type + + .SQDSV==.SQDST+1 ;Destination software version + + .SQDSE==.SQDSV+1 ;Destination software edit number + + .SQDHT==.SQDSE+2 ;Destination hardware type + + .SQDHV==.SQDHT+1 ;Destination hardware version + + .SQNNM==.SQDHV+3 ;Destination port name + + .SQPCW==.SQNNM+2 ;Destination port characteristics + + .SQLPN==.SQPCW+1 ;Local port number + + .LBRCD==.SQLPN+1 ;Length of this block + SUBTTL SCS% argument block format definitions -- .SSSTS + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQFST ! Flags ! Connect state ! ------------ +; !-------------------------------------------------------! Returned +; .SQSBR ! Reserved ! Node number of remote ! data +; !=======================================================! ------------ + + .SQFST==.SQCID+1 ;Returned data + MSKSTR (SC%FST,<>,<-1,,0>) ;Status flags + MSKSTR (SC%MSA,<>,<400000,,0>) ;Message available flag + MSKSTR (SC%DGA,<>,<200000,,0>) ;Datagram available flag + MSKSTR (SC%DTA,<>,<100000,,0>) ;DMA transfer complete + MSKSTR (SC%EVA,<>,<040000,,0>) ;Event pending flag + MSKSTR (SC%STS,<>,<0,,-1>) ;State of the connection + ; Possible states + SQ%CLO==1 ;Closed (CLOSED) + SQ%LIS==2 ;Listening (LISTENING) + SQ%CSE==3 ;Connect request was sent (CONNECT_SENT) + SQ%CRE==4 ;Connect request was received (CONNECT_REC) + SQ%CAK==5 ;Connect response was received (CONNECT_ACK) + SQ%ACS==6 ;Accept request was sent (ACCEPT_SENT) + SQ%RJS==7 ;Reject request was sent (REJECT_SENT) + SQ%OPN==10 ;Connection is open (OPEN) + SQ%DSE==11 ;Disconnect request was sent (DISCONNECT_SENT) + SQ%DRE==12 ;Disconnect request received (DISCONNECT_REC) + SQ%DAK==13 ;Disconnect response received (DISCONNECT_ACK) + SQ%DMC==14 ;Waiting for discon response (DISCONNECT_MATCH) + SQ%HIS==14 ;Highest value for a connect state + + + .SQSBR==.SQFST+1 ;Node number of remote note + MSKSTR (SC%NST,<.SQBSR>,<0,,-1>) ;Mask for node number + + .LBSTS==.SQSBR+1 + SUBTTL SCS% argument block format definitions -- .SSRMG + +; !=======================================================! +;.SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! ----------- +;.SQCID ! Connect ID ! ^ +; !-------------------------------------------------------! ! +;.SQARB ! Address of returned buffer ! ! +; !-------------------------------------------------------! Returned data +;.SQDFL ! Flags ! Node number of remote ! ! +; !-------------------------------------------------------! ! +;.SQLRP ! Length of returned packet ! v +; !=======================================================! ----------- +; + .SQARB==.SQCID+1 ;Address of returned buffer + .SQDFL==.SQARB+1 ;Flags and node number of remote system + ; See .SSSDG for definition of the flag bits + MSKSTR (SC%FRM,<.SQDFL>,<-1,,0>) ;Mask for flags + MSKSTR (SC%NRM,<.SQDFL>,<0,,-1>) ;Mask for node number + + .SQLRP==.SQDFL+1 ;Length of returned msg, words if high den + ; bytes if industry compat + + .LBRMG==.SQLRP+1 + + +; Note: .SSRMG and .SSRDG have the same format + + .LBRDG==.LBRMG + SUBTTL SCS% argument block format definitions -- .SSMAP + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQXFL ! Flags ! +; !-------------------------------------------------------! +; .SQBNA ! Returned buffer name ! (Returned) +; !-------------------------------------------------------! +; / / +; / Buffer length and address pairs / +; / / +; !=======================================================! +; +; Buffer length and address paris have the following format: +; +; !=======================================================! +; .SQBLN ! Length in bytes/words of memory block ! +; !-------------------------------------------------------! +; .SQBAD ! Address of memory for DMA transfer ! +; !=======================================================! +; + .SQXFL==.SQLEN+1 ;Flags + MSKSTR (SQ%DMD,<.SQXFL>,<000000,,000003>) ;Mask for mode field + SQ%DIC==0 ;Industry compatable mode + SQ%DCD==1 ;Core dump mode (Unsupported) + SQ%DHD==2 ;High density mode + SQ%ILL==3 ;The dissallowed value + SQ%CVD==:1B32 ;Do not clear the valid bit. + SQ%WRT==:1B33 ;Read/Write - If set, host memory iw writable. + .SQBNA==.SQXFL+1 ;Returned buffer name + + .SQBLN==0 ;Length of buffer segment + ; Length in bytes for industry compatable mode + ; Length in words for high density mode + + .SQBAD==.SQBLN+1 ;Address of buffer segment + SUBTTL SCS% argument block format definitions -- .SSUMP + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQNAM ! Buffer name of buffer to unmap ! +; !=======================================================! +; + .SQNAM==.SQLEN+1 ;Buffer name to unmap + + .LBUMP==.SQNAM+1 + SUBTTL SCS% argument block format definitions -- .SSSND/.SSREQ + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID for which transfer is to be done ! +; !-------------------------------------------------------! +; .SQSNM ! Buffer name of send buffer ! +; !-------------------------------------------------------! +; .SQRNM ! Buffer name of receive buffer ! +; !-------------------------------------------------------! +; .SQOFS ! Xmit offset ! Receive offset ! +; !=======================================================! +; + .SQSNM==.SQCID+1 + .SQRNM==.SQSNM+1 + .SQOFS==.SQRNM+1 + ;Offsets are in words for high density and bytes for all other modes. + MSKSTR (SQ%TXO,<.SQOFS>,<-1,,0>) ;XMIT offset + MSKSTR (SQ%RXO,<.SQOFS>,<0,,-1>) ;Receieve offset + + .LBSND==.SQOFS+1 + + +; Note: .SSSND and .SSREQ have the same format + + .LBREQ==.LBSND + SUBTTL SCS% argument block format definitions -- .SSMDR/.SSMDS + +COMMENT \ + +This function is now performed by the DIAG% JSYS. + +; The following is the format of the block for mainataince data send/request. +; +; +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +; .SQMSS ! Buffer name of send buffer ! +; !-------------------------------------------------------! +; .SQMSR ! Buffer name of receive buffer ! +; !-------------------------------------------------------! +; .SQMOF ! Xmit offset ! Receive offset ! +; !-------------------------------------------------------! +; .SQMDT ! Unused ! Target node number ! +; !=======================================================! +; + .SQMSS==.SQLEN+1 ;Name of source buffer + .SQMSR==.SQMSS+1 ;Name of destination buffer + .SQMOF==.SQMSR+1 ;Transfer offsets + .SQMDT==.SQMOF+1 ;Target node number + + .LBMDS==.SQMDT+1 ;Length of this block + + +;Note: .SSMDS and .SSMDR have the same format + + .LBMDR==.LBMDS ;REQ block is identical +\ + SUBTTL SCS% argument block format definitions -- .SSRPC + +COMMENT \ + +This function is now performed by the DIAG% JSYS + +; !=======================================================! +; .SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! ----------- +; .SQMCV ! Microcode version ! ^ +; !-------------------------------------------------------! ! +; .SQPAA ! Path A ACK count ! ! +; !-------------------------------------------------------! ! +; .SQPAN ! Path A NAK count ! ! +; !-------------------------------------------------------! ! +; .SQPAR ! Path A no response count ! ! +; !-------------------------------------------------------! ! +; .SQPBA ! Path B ACK count ! ! +; !-------------------------------------------------------! Returned +; .SQPBN ! Path B NAK count ! data +; !-------------------------------------------------------! ! +; .SQPBR ! Path B no response count ! ! +; !-------------------------------------------------------! ! +; .SQNDD ! Number of dropped datagrams ! ! +; !-------------------------------------------------------! ! +; .SQNPT ! Number of packets transmitted ! ! +; !-------------------------------------------------------! ! +; .SQNPR ! Number of packets received ! ! +; !-------------------------------------------------------! ! +; .SQPOR ! Designated port ! v +; !=======================================================! ----------- +; + .SQMCV==.SQLEN+1 ;Microcode version + .SQPAA==.SQLEN+1 ;Path A ACK count + .SQPAN==.SQPAA+1 ;Path A NAK count + .SQPAR==.SQPAN+1 ;Path A no response count + .SQPBA==.SQPAR+1 ;Path B ACK count + .SQPBN==.SQPBA+1 ;Path B NAK count + .SQPBR==.SQPBN+1 ;Path B no response count + .SQNDD==.SQPBR+1 ;Number of dropped datagrams + .SQNPT==.SQNDD+1 ;Number of packets transmitted + .SQNPR==.SQNPT+1 ;Number of packets received + .SQPOR==.SQNPR+1 ;Designated port (which port we are counting) + + .LBRPC==.SQPOR+1 + +\ + SUBTTL SCS% argument block format definitions -- .SSGLN + +; The follwoing are the definitions for the "get local node number" function of +;SCS%. +; +; !=======================================================! +;.SQLEN ! Processed words ! Length of block ! +; !-------------------------------------------------------! +;.SQLNN ! Local CI node number ! Returned data +; !=======================================================! +; + .SQLNN==.SQLEN+1 ;Returned node number + + .LBGLN==.SQLNN+1 + SUBTTL SCS% argument block format definitions -- .SSRBS + +; !=======================================================! +; .SQLEN ! Number of words processed ! Length of block ! +; !-------------------------------------------------------! +; .SQLMG ! Length (in words) of message buffers ! +; !-------------------------------------------------------! +; .SQLDG ! Length (in words) of datagram buffers ! +; !=======================================================! +; + .SQLMG==.SQLEN+1 ;Size (words) of smallest acceptable MSG buffer + .SQLDG==.SQLMG+1 ;Size (words) of smallest acceptable DG buffer + + .LBRBS==.SQLDG+1 + SUBTTL SCS% argument block format definitions -- .SSAIC + +; There are no symbols defined for the .SSAIC argument block since the +;argument order is determined by the user. I.E. the following blocks +;may be specified in any order. +; +; !=======================================================! +; ! Interrupt code ! PSI channel ! +; !=======================================================! +; +; The interrupt code is one of the interrupt classes listed below. +;The PSI channel is the channel to be used for that class of interrupt. +; + .SIDGA==0 ;Datagram available + .SIMSA==1 ;Message available + .SIDMA==2 ;DMA transfer complete + .SIPAN==3 ;All other events (includes all errors and + ;connection managament events) + + .SIHGH==.SIPAN ;Highest event code + SUBTTL SCS% argument block format definitions -- .SSGDE + +;This function retrieves the first entry from the data transfer complete queue. +; +; !=======================================================! +; .SQLEN ! Words processed ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID or -1 ! +; !-------------------------------------------------------! +; .SQBID ! Buffer ID whos transfer completed ! +; !=======================================================! +; + .SQBID==.SQCID+1 ;Buffer ID offset + + .LBGDE==.SQBID+1 + SUBTTL SCS% argument block format definitions -- .SSEVT + +; This function code returns the first entry on the event queue. +; +; !=======================================================! +; .SQLEN ! Words processed ! Length of block ! +; !-------------------------------------------------------! +; .SQCID ! Connect ID ! +; !-------------------------------------------------------! +; .SQESB ! Reserved ! Node number of remote ! +; !-------------------------------------------------------! +; .SQEVT ! Event code ! +; !-------------------------------------------------------! +; .SQDTA \ \ +; \ Event data \ +; \ \ +; !=======================================================! +; + .SQESB==.SQCID+1 ;Node number of remote system + + .SQEVT==.SQESB+1 ;Event code + + .SEVCC==1 ;Event code -- VC broken + ;.SQDTA contains the pertinant node number + + .SECTL==.SEVCC+1;Event code -- Connect to listen + ;.SQDTA contains four words of connection data + ;from the remote node + + .SECRA==.SECTL+1;Event code -- Connection was accepted + ;.SQDTA contains: + ; The data words are the remote's connection + ; data. + + .SECRR==.SECRA+1;Event code -- Connection was rejected + ; .SQDTA contains the reason code + + .SEMSC==.SECRR+1;Event code -- Message/datagram send complete + ;.SQDTA contains address of sent buffer + + .SELCL==.SEMSC+1;Event code -- Little credit left + ;.SQDTA contains number of credits required to + ; get you back over threshold + + .SENWO==.SELCL+1;Event code -- Node went offline + ;.SQDTA node # of system which went offline + + .SENCO==.SENWO+1;Event code -- Node came online + ;.SQDTA is node # of system which came online + + .SEOSD==.SENCO+1;Event code -- OK to send data + ;.SQDTA is not used here + + .SERID==.SEOSD+1;Event code -- Remote initiated disconnect + ;.SQDTA is unused here + + .SEPBC==.SERID+1;Event code -- Port broke connection + ;.SQDTA is unused + + .SECIA==.SEPBC+1;Event code -- Credit is available + ;.SQDTA is unsed here + + .SEMDC==.SECIA+1;Event code -- Maint data xfer complete + ;.SQDTA is the buffer name for the transfer + + .SEMAX==.SEMDC ;Largest event code + + .SQDTA==.SQEVT+1 ;Offset to event data + .SQEVD==4 ;Length in words of the event data area + + .LBEVT==.SQDTA+.SQEVD ;length of argument block + + ;Connection managment symbols - for .SECRR + + CM%CMT==^D1 ;A match was found for the CONNECT_REQUEST + CM%CNM==^D10 ;No match was found for the CONNECT_REQUEST + CM%NRE==^D18 ;No resources to process CONNECT_REQUEST + CM%NDS==^D26 ;Connection has been broken + CM%NRV==^D34 ;Reserved + + SUBTTL SCS% argument block format definitions -- .SSRPS + +; Argument block for returned path status information. +; +; !=======================================================! +; .SQLEN ! Number of words processed ! Length of arg block ! +; !-------------------------------------------------------! +; .SQRPN ! Target node number ! +; !-------------------------------------------------------! +; .SQRPS ! Path A status ! Path B status ! (Returned) +; !=======================================================! +; + .SQRPN==.SQLEN+1 ;Target node number for path info + MSKSTR (SQRPN,<.SQRPN>,<-1>) + .SQRPS==.SQRPN+1 ;Path status + MSKSTR (SQRPA,<.SQRPS>,<-1,,0>) ;Path A status + MSKSTR (SQRPB,<.SQRPS>,<0,,-1>) ;Path B status + SC%PBD==0 ;Path is bad + SC%PGD==1 ;Path is good + + .LBRPS==.SQRPS+1 ;Length of this block + SUBTTL XPEEK FUNCTION BLOCK DESCRIPTOR + +; THIS IS THE GENERAL FORMAT OF THE XPEEK% JSYS FUNCTION BLOCK +; +; !=======================================================! +; .XPABL ! LENGTH OF FUNCTION BLOCK ! +; !-------------------------------------------------------! +; .XPFNC ! FUNCTION CODE ! +; !-------------------------------------------------------! +; \ \ +; \ FUNCTION SPECIFIC DATA \ +; \ \ +; !=======================================================! + + .XPABL==0 ;LENGTH OF ARGUMENT BLOCK + .XPFNC==.XPABL+1 ;FUNCTION CODE + + SUBTTL XPEEK FUNCTION CODE DEFINITIONS - .XPPEK + +; THIS FUNCTION TRANSFERS WORDS FROM THE MONITOR'S ADDRESS SPACE TO THE +; USER'S ADDRESS SPACE. +; +; !=======================================================! +; .XPABL ! LENGTH OF FUNCTION BLOCK ! +; !-------------------------------------------------------! +; .XPFNC ! FUNCTION CODE (.XPPEK) ! +; !-------------------------------------------------------! +; .XPCN1 ! COUNT OF WORDS TO TRANSFER ! +; !-------------------------------------------------------! +; .XPCN2 ! COUNT OF WORDS TRANSFERRED ! +; !-------------------------------------------------------! +; .XPMAD ! LOCATION IN MONITOR ADDRESS SPACE ! +; !-------------------------------------------------------! +; .XPUAD ! LOCATION IN USER ADDRESS SPACE ! +; !=======================================================! + +.XPPEK==1 ;FUNCTION CODE + + .XPCN1==.XPFNC+1 ;COUNT OF WORDS TO TRANSFER + .XPCN2==.XPCN1+1 ;COUNT OF WORDS TRANSFERRED + .XPMAD==.XPCN2+1 ;LOCATION IN MONITOR TO START TRANSFER FROM + .XPUAD==.XPMAD+1 ;LOCATION IN USER SPACE TO TRANSFER TO + .XPLEN==.XPUAD+1 ;LENGTH OF ARGUMENT BLOCK + + SUBTTL XPEEK FUNCTION CODE DEFINITIONS - .XPJSB + +; THIS FUNCTION TRANSFERS WORDS FROM THE MONITOR'S ADDRESS SPACE TO THE +; USER'S ADDRESS SPACE USING THE JSB OF THE SPECIFIED JOB AND THE PSB +; OF THE TOP FORK IN THE SPECIFIED JOB. +; +; !=======================================================! +; .XPABL ! LENGTH OF FUNCTION BLOCK ! +; !-------------------------------------------------------! +; .XPFNC ! FUNCTION CODE (.XPJSB) ! +; !-------------------------------------------------------! +; .XPCN1 ! COUNT OF WORDS TO TRANSFER ! +; !-------------------------------------------------------! +; .XPCN2 ! COUNT OF WORDS TRANSFERRED ! +; !-------------------------------------------------------! +; .XPMAD ! LOCATION IN MONITOR ADDRESS SPACE ! +; !-------------------------------------------------------! +; .XPUAD ! LOCATION IN USER ADDRESS SPACE ! +; !-------------------------------------------------------! +; .XPJOB ! SYSTEM JOB NUMBER ! +; !=======================================================! + +.XPJSB==2 ;FUNCTION CODE + .XPJOB==.XPUAD+1 ;SYSTEM JOB NUMBER + + SUBTTL XPEEK FUNCTION CODE DEFINITIONS - .XPPSB + +; THIS FUNCTION TRANSFERS WORDS FROM THE MONITOR'S ADDRESS SPACE TO THE +; USER'S ADDRESS SPACE USING THE PSB OF THE SPECIFIED FORK AND THE JSB +; FOR THE JOB TO WHICH THE FORK IS ASSIGNED. +; +; !=======================================================! +; .XPABL ! LENGTH OF FUNCTION BLOCK ! +; !-------------------------------------------------------! +; .XPFNC ! FUNCTION CODE (.XPJSB) ! +; !-------------------------------------------------------! +; .XPCN1 ! COUNT OF WORDS TO TRANSFER ! +; !-------------------------------------------------------! +; .XPCN2 ! COUNT OF WORDS TRANSFERRED ! +; !-------------------------------------------------------! +; .XPMAD ! LOCATION IN MONITOR ADDRESS SPACE ! +; !-------------------------------------------------------! +; .XPUAD ! LOCATION IN USER ADDRESS SPACE ! +; !-------------------------------------------------------! +; .XPFRK ! SYSTEM FORK NUMBER ! +; !=======================================================! + +.XPPSB==3 ;FUNCTION CODE + .XPFRK==.XPUAD+1 ;SYSTEM FORK NUMBER + + +;ERROR CODE DEFINITIONS + + .ERBAS==:600000 ;BASE VALUE FOR ALL ERROR CODES + +DEFINE .ERCOD < + +.ERR (10,LGINX1,) +.ERR (11,LGINX2,) +.ERR (12,LGINX3,) +.ERR (13,LGINX4,) +.ERR (14,LGINX5,) +.ERR (20,CRJBX1,) +.ERR (21,CRJBX2,) +.ERR (22,CRJBX3,) +.ERR (23,CRJBX4,) +.ERR (24,CRJBX5,) +.ERR (25,CRJBX6,) +.ERR (26,CRJBX7,) +.ERR (35,LOUTX1,) +.ERR (36,LOUTX2,) +.ERR (45,CACTX1,) +.ERR (46,CACTX2,) +.ERR (50,EFCTX1,) +.ERR (51,EFCTX2,) +.ERR (52,EFCTX3,) +.ERR (55,GJFX1,) +.ERR (56,GJFX2,) +.ERR (57,GJFX3,) +.ERR (60,GJFX4,) +.ERR (61,GJFX5,) +.ERR (62,GJFX6,) +.ERR (63,GJFX7,) +.ERR (64,GJFX8,) +.ERR (65,GJFX9,) +.ERR (66,GJFX10,) +.ERR (67,GJFX11,) +.ERR (70,GJFX12,) +.ERR (71,GJFX13,) +.ERR (72,GJFX14,) +.ERR (73,GJFX15,) +.ERR (74,GJFX16,) +.ERR (75,GJFX17,) +.ERR (76,GJFX18,) +.ERR (77,GJFX19,) +.ERR (100,GJFX20,) +.ERR (101,GJFX21,) +.ERR (102,GJFX22,) +.ERR (103,GJFX23,) +.ERR (104,GJFX24,) +.ERR (107,GJFX27,) +.ERR (110,GJFX28,) +.ERR (111,GJFX29,) +.ERR (112,GJFX30,) +.ERR (113,GJFX31,) +.ERR (114,GJFX32,) +.ERR (115,GJFX33,) +.ERR (116,GJFX34,) +.ERR (117,GJFX35,) +.ERR (120,OPNX1,) +.ERR (121,OPNX2,) +.ERR (122,OPNX3,) +.ERR (123,OPNX4,) +.ERR (124,OPNX5,) +.ERR (125,OPNX6,) +.ERR (126,OPNX7,) +.ERR (127,OPNX8,) +.ERR (130,OPNX9,) +.ERR (131,OPNX10,) +.ERR (133,OPNX12,) +.ERR (134,OPNX13,) +.ERR (135,OPNX14,) +.ERR (136,OPNX15,) +.ERR (137,OPNX16,) +.ERR (140,OPNX17,) +.ERR (141,OPNX18,) +.ERR (142,OPNX19,) ;TOPS20AN +.ERR (143,OPNX20,) ;TOPS20AN +.ERR (144,OPNX21,) ;TOPS20AN +.ERR (145,OPNX22,) ;TOPS20AN +.ERR (150,DESX1,) +.ERR (151,DESX2,) +.ERR (152,DESX3,) +.ERR (153,DESX4,) +.ERR (154,DESX5,) +.ERR (155,DESX6,) +.ERR (156,DESX7,) +.ERR (157,DESX8,) +.ERR (160,CLSX1,) +.ERR (161,CLSX2,) +.ERR (165,RJFNX1,) +.ERR (166,RJFNX2,) +.ERR (167,RJFNX3,) +.ERR (170,DELFX1,) +.ERR (175,SFPTX1,) +.ERR (176,SFPTX2,) +.ERR (177,SFPTX3,) +.ERR (200,CNDIX1,) +.ERR (202,CNDIX3,) +.ERR (204,CNDIX5,) +.ERR (210,SFBSX1,) +.ERR (211,SFBSX2,) +.ERR (215,IOX1,) +.ERR (216,IOX2,) +.ERR (217,IOX3,) +.ERR (220,IOX4,) +.ERR (221,IOX5,) +.ERR (222,IOX6,) +.ERR (240,PMAPX1,) +.ERR (241,PMAPX2,) +.ERR (245,SPACX1,) +.ERR (250,FRKHX1,) +.ERR (251,FRKHX2,) +.ERR (252,FRKHX3,) +.ERR (253,FRKHX4,) +.ERR (254,FRKHX5,) +.ERR (255,FRKHX6,) +.ERR (260,SPLFX1,) +.ERR (261,SPLFX2,) +.ERR (262,SPLFX3,) +.ERR (263,SPLBTS,) +.ERR (264,SPLBFC,) +.ERR (267,GTABX1,) +.ERR (270,GTABX2,) +.ERR (271,GTABX3,) +.ERR (273,RUNTX1,) +.ERR (275,STADX1,) +.ERR (276,STADX2,) +.ERR (300,ASNDX1,) +.ERR (301,ASNDX2,) +.ERR (302,ASNDX3,) +.ERR (320,ATACX1,) +.ERR (321,ATACX2,) +.ERR (322,ATACX3,) +.ERR (323,ATACX4,) +.ERR (324,ATACX5,) +.ERR (332,STDVX1,) +.ERR (335,DEVX1,) +.ERR (336,DEVX2,) +.ERR (337,DEVX3,) +.ERR (345,MNTX1,) +.ERR (346,MNTX2,) +.ERR (347,MNTX3,) +.ERR (350,TERMX1,) +.ERR (351,TLNKX1,) +.ERR (352,ATIX1,) +.ERR (353,ATIX2,) +.ERR (356,TLNKX2,) +.ERR (357,TLNKX3,) +.ERR (360,TTYX1,) +.ERR (361,RSCNX1,) +.ERR (362,RSCNX2,) +.ERR (363,CFRKX3,) +.ERR (365,KFRKX1,) +.ERR (366,KFRKX2,) +.ERR (367,RFRKX1,) +.ERR (370,HFRKX1,) +.ERR (371,GFRKX1,) +.ERR (373,GETX1,) +.ERR (374,GETX2,) +.ERR (375,TFRKX1,) +.ERR (376,TFRKX2,) +.ERR (377,SFRVX1,) +.ERR (407,NOUTX1,) +.ERR (410,NOUTX2,) +.ERR (411,TFRKX3,) +.ERR (414,IFIXX1,) +.ERR (415,IFIXX2,) +.ERR (416,IFIXX3,) +.ERR (424,GFDBX1,) +.ERR (425,GFDBX2,) +.ERR (426,GFDBX3,) +.ERR (430,CFDBX1,) +.ERR (431,CFDBX2,) +.ERR (432,CFDBX3,) +.ERR (433,CFDBX4,) +.ERR (434,CFDBX5,) +.ERR (440,DUMPX1,) +.ERR (441,DUMPX2,) +.ERR (442,DUMPX3,
) +.ERR (443,DUMPX4,) +.ERR (450,RNAMX1,) +.ERR (451,RNAMX2,) +.ERR (452,RNAMX3,) +.ERR (453,RNAMX4,) +.ERR (454,BKJFX1,) +.ERR (460,TIMEX1,