There are no other files named glxver.x19 in the archive.
SUBTTL GLXVER -- GLXLIB Edit History and Version file
; COPYRIGHT (c) 1975,1976,1977,1978,1979,1980,1981,1982,
; DIGITAL EQUIPMENT CORPORATION
; ALL RIGHTS RESERVED.
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
; BY DIGITAL EQUIPMENT CORPORATION.
; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
SUBTTL GLXVER GLXLIB Version file
; Assembly Instructions:
; COMPILE GLXVER+GLXMAC
LODLEV==5 ;INCREMENT TO FORCE RECOMPILE OF LIBRARY
%%.GLX==10 ;INCREMENT TO FORCE RECOMPILE OF ALL PROGRAMS
; *** N o t e Edit Levels here must match MODULE EDIT NUMBER
; Symbol MOD'EDT Where MOD is the 3 character
; abbreviation for the module (i.e. MAC would be
; MACEDT, IPC would be IPCEDT etc.)
;The load of the library = the sum of the module edits
GLXLOD==:001577 ;Sum of GLX module edits
;Following are Module edit definitions. Each line should appear
; GLX MOD,EDT,LOD,GCO,WHO,DATE,NOTE
;Where: MOD is 3 character module abbreviation
; EDT is Edit level for module (must match module)
; LOD The GLXLOD sum after application of the edit
; GCO The Galaxy Change Order number (0 if no GCO)
; WHO initials of person who installed this edit
; DATE date edit was installed
; NOTE a one line note to be displayed when the module is assembled
; (e.g. GLX FOO,15,PJT,19-Nov-78,? Requires New GLXSCN
; would cause "? Requires New GLXSCN" to be printed
; when GLXFOO is assembled)
;When Marking and edit for a module, Just put ";;" before the
;existing edit information to keep it as a comment. Then insert the
;new edit information on the line preceeding the line just commented.
;The VEREDT editor does this all for you
DEFINE MODULES <
;; The error recovory for the SAVE. function in GLXLIB doesn't work
GLX MAC,520,1577,10636,PERK, 7-Jun-88,
;; The error recovory for doing the SAVE. in GLXCOM doesn't work correctly.
GLX COM,62,1576,10636,PERK, 7-Jun-88,
;; Fix GLXLIB so it does a SAVE. when a stopcode is encountered.
;; New CJB format - text strings to be shoved down FRCLIN
;; In the stopcode processor, test IP.STP before trying to send
;; the stopcode text to ORION.
;; Support for VT330 and VT340
;; Remove VRTPRV and all references to it. It is no
;; longer needed.
;; Return ambiguous match if zero length atom buffer
;; on a partial keyword match where CM%NOR is set.
;; Change K%SOUT references to OUTSTRs to avoid ill mem
;; refs if GLXLIB doesn't initialize.
;; Fix more OPR ILMs by passing string addresses in
;; the correct ACs and resolving fake (TOPS-20) byte
;; pointers of the form -1,,addr.
;;GLX SCN,134,1564,10567,DPM, 4-Sep-87,
;; Remove reference to FTFLBK.
;; Remove FTFLBK conditionals.
;; I%KJOB writes in read-only page
;; Add error code DNP and beef up I%CJOB and I%KJOB.
;;GLX INT,114,1557,10545,LW, 2-Aug-87,
;;GLX MAC,513,1557,10545,LW, 2-Aug-87,
;; Add I%CJOB and I%KJOB routines in GLXINT and support definitions in GLXMAC.
;; Add .VERSION pseudo-ops to PROLOG and GLXVER.
;; Add partial recognition for keywords and switches.
;; Fix F%DREL so that it uses a genuine RENAME block when doing FILOP. deletes.
;; Fix STOPCD processor problems
;;GLX COM,57,1550,10484,JAD, 6-Jan-87,
;; Implement STOPCD and change all $STOP to STOPCD.
;; Allow positioning to EOF byte (as returned by F%CHKP) in F%POS
;; Allow callers to invoke their privileges when calling C%SEND.
;; Remove un-needed system PID for NEBULA
;;GLX MAC,506,1531,10412,JAD, 5-Jun-86,
;; Fix break chars appearing in UQS terminated by <CR>
;; Create object type for "network queue controller".
;; Add support for TB%ABR flag in S%TBAD and S%TBDL.
;; Invent system PID for NEBULA.
;; Return GLXLIB version number from I%INIT
;; Handle indirect command files (via "@") on the -10 correctly.
;; Parse full path spec with .CMDIR
;; Don't clobber returned TF value in COMN1.
;; Don't use P for BLTing ACs, if using PSI system. Use 0 instead.
;;GLX SCN,124,1517,10354,NT, 7-Jan-86,
;; Add a new help file processor called .HELPF which will replace
;; P$HELP. It has the same calling sequences, but will return
;; standard GLXLIB error codes on errors.
;;GLX MAC,502,1516,10335,DPM, 4-Dec-85,
GLX UTL,2,1516,10335,DPM, 4-Dec-85,
;; Create GLXUTL which will contain modules that reside in
;; GLXLIB.REL, but not in the high segment.
;;GLX UTL,1,1514,10335,DPM, 4-Dec-85,
;; Fix TRMTYP documentation, and several other small
;; in the macro.
;; Fix some FTFLBK problems.
;; Don't wait for escape sequences if processing a TAKE file.
;; Allow NCP to accept node names which start with numbers.
;; Fix up HIBERing for input after MCO 12482.
;;GLX INT,110,1507,10298,RCB, 7-Oct-85,
;;GLX KBD,100,1507,10298,RCB, 7-Oct-85,
;; Add PID index for system mailer.
;; Move .RETE back under CDO macro in ENTVEC.
;; Finish MCO 11845.
;; Restore MIC fakery for 7.02 under FTFLBK
;; Fix RDH word handling
;; Don't allow a project or programmer number to
;; be zero when parsing a PPN.
;; Make PPN defaulting work for .CMUSR function.
;; Avoid jobs getting stuck in 'TO'. Don't prompt
;; if job is detached and there's no prompt string.
;; Fix bugs in COMND JSYS simulator:
;; 1. Allow question mark in .CMTXT and .CMUQS fields.
;; 2. Advance to next fiels when ESCAPE typed following
;; a token or user-id (PPN).
;; 3. Handle ? in .CMFLD functions where ? is not a
;; break character (not fixed on the -20 yet).
;;GLX SCN,117,1475,10269,DPM, 1-Aug-85,
;; Clean up symbol tables and CREF listings by purging and
;; XCREFing generated symbols and internal subroutine macros
;; used by the parsing macros.
;; Fix more fallback code for C%PIDH.
;; Add new parse flag CM%WLA to allow accounting-style
;; wildcarding (# and %) when parsing PPNs.
;; Fix fallback code that GETTABs .GTPID
;; Fixed line-feed echo just after DELETE
;; Don't stopcode if detached and can't set break mask.
;; Include DQS support, remove duplicate object type definitions
;;GLX MAC,474,1465,10228,JAD, 6-Jun-85,
;; Allow interrupts to be received during type in, allow sleep until line input.
;; Fix field termination cleanup on PPN parsing.
;; Return RDH words through F%INFO.
;; Fix question mark help when reading wildcarded PPNs.
;; Add GLXFUN support
;; Add module GLXFUN to provide FUNCT. entry points
;; Reserve object types .OTXER and .OTFCH for Xerox and
;; microfiche spoolers.
;; Add VK100 to the table of known terminal types
;; Add support for $AHELP (additional, not replacement help) in parse blocks.
;; Fixed double CRLF on <DEL><CR> sequence on input.
;; Save S1 around call to CMDOUT since S1 needed to check for TAB after output.
;; Remove code that tried to make GLXKBD work under
;; MIC. MCO 11845 to the 703 monitor fixes the problem.
;; Fix loose ends: Remove ^C from break mask, Take out stop-code from K%SOUT.
;; Add support for setting the new RDH fields in
;; the extended LOOKUP/ENTER block.
;;GLX FIL,112,1445,10144,DPM, 5-Feb-85,
;;GLX MAC,466,1445,10144,DPM, 5-Feb-85,
;; Fix undeserved NFP stopcode when IB.NPF was on.
;;GLX MEM,31,1443,10143,RCB, 5-Feb-85,
;; Fix yet another problem with echoing.
;; Add support for parsing network filespecs.
;; Change FAL object description from "File Access Listener"
;; to "Fal-Stream".
;; Fix problem with echo getting turned off if user typed too many deletes.
;;GLX KBD,66,1435,10116,, 5-Nov-84,
;; In CREDAT, try to create data pages on disk if can't create them
;; in core.
;; Fix problem where PT.USE was getting left on in PAGTBL for
;; non-existant pages.
;; Add GLXSCN routines S%U2DT (CNTDT) and S%DT2U (CNVDT) to entry vectror.
;; Fix fallback code.
;; Rearranged keypad escape sequence processing.
;; Include 7.02 fallback code under feature test
;; Add routine K%ECHO to turn on/off echoing during parsing.
;; Add new routines to support the new [SYSTEM]INFO process,
;; which is part of QUASAR. Also update to take advantage of
;; 7.03 enhancements to IPCF usage, and fix several minor but
;; irritating bugs along the way.
;; Add $SUBCM macro to allow the parsing of TOPS-20
;; style sub-commands from within an application
;; Fix parse failures caused by DBP routine not
;; backing up the byte pointer correctly when
;; pointers other than 7-bits are used.
;;GLX SCN,107,1415,10070,DPM, 9-Aug-84,
;; General cleanup and enhancements of TOPS-10
;; parsing features. Included in this edit is
;; the ability to parse a possibly wildcarded
;; PPN using the .CMUSR function.
;;GLX MAC,456,1414,10066,DPM, 4-Aug-84,
;;GLX SCN,106,1414,10066,DPM, 4-Aug-84,
;; Add new special PID index for [SYSTEM]CATALOG
;;GLX MAC,454,1411,10047,DPM,16-Jul-84,Support for EVENT queue and object.
;;GLX MAC,453,1410,10053,NT,16-Jul-84,Add support for VT2x0 terminals.
;; Teach the keyboard handler to use the new TOPS-10 terminal break mask. Teach
;; the COMND. simulator to call the handler correctly.
;; Make command completion for abbreviations work right. (i.e. complete the
;; command not the abbreviation.)
;; Make certain routines reside in GLXINI to avoid the entry vector
;; overhead. Presently these are only the subroutine return routines.
;; Begin version 2. Bump major edit number in GLXVER by one. Bump edit
;; number in GLXMAC by enough to start the edits at 1400. The reason for
;; jump being that it facilitates Autopath source management.
;; Add object type .OTEVT for the Event Queue
;; Pick up the pieces of GLXFIL edit 110, the channel release code
;; was dropped on the floor.
;; Fix bug in rename code that did not allow
;; SFD to SFD renames, this bug broke VEREDT
;; and release channel after the LOOKUP
;; so we do not run out.
;;GLX FIL,110,1172,10032,CTK, 4-May-84,
;; GLXFIL EDIT 106 introduced a DATE-75 bug and the FILOP RENAME
;; is not done correctly. So, add code and revamp the F%REN
;; Fix $DEFAULTing of tokens when CRLF is typed instead of token.
;;GLX SCN,103,1170,10020,LWS, 3-Apr-84,
;; The F%REN routine does not preserve the RB.MOD field
;; value for the renamed file, but sets it to zero (.IOASC).
;; This cause problems for SPROUT because plot data files
;; may not be ASCII and a /DISPOSE:RENAME will exercise
;; the bug.
;; Add ability to set error codes in the packet descriptor block
;; and return full complement of priv bits about the receiver.
;; Handle NUL: for structure name in FILOP. uuo at OPNC.2
;; in GLXFIL, this caused QUASAR CRL and RRF stopcodes.
;;GLX FIL,105,1164,0,CTK, 1-Mar-84,
;; Fix bug in XCMDEV where ":" was a valid device name. Add
;; error code NDN (Null device name given).
;;GLX MAC,241,1163,0,LWS, 1-Mar-84,
;;GLX SCN,102,1163,0,LWS, 1-Mar-84,
;; Fix problem with "delete char" on hard copy terminals.
;;GLX KBD,62,1161,0,NT, 9-Feb-84,
;; Increased monitor free core usage could be attributed to
;; the fact that GLXIPC always sends 510 word packets to the
;; GOPHER. Make it send exact length packets instead.
;;GLX IPC,65,1160,0,DPM, 8-Feb-84,
;; Before doing input in K%BIN, if under MIC control, check to
;; see if MIC is still under control.
;; Make GLXSCN obey a $ALTERNATE that points to a $CRLF
;; when prompting for string input.
;;GLX SCN,101,1156,0,LWS, 4-Jan-84,
;; PRINTX warning message if null arg supplied to $DEFAULT macro.
;; Hopefully will prevent unexpected BDS stopcodes.
;;GLX MAC,240,1155,0,LWS, 4-Jan-84,
;; Fix problems parsing numeric fields with "+" or "-" embedded.
;;GLX SCN,100,1154,0,LWS, 3-Jan-84,
;; Define new ERR code, IFB, for indirect files that
;; contain too many chars for internal parsing buffer.
;; Don't allow default filenames for indirect files.
;; Don't ABS when indirect file is too long for buffer.
;; Fix problem parsing "-". Skip following spaces, EOL or not.
;; Handle page marks in LSN files correctly..F%IBYT.
;;GLX FIL,104,1150,0,LWS, 7-Nov-83,
;; Make sure device TTY is really a TTY in K%OPEN.
;;GLX KBD,60,1147,0,LWS, 7-Nov-83,
;; Fix TRMTYP macro to fix terminal keypad command.
;; SPR 10-34243 24-OCT-83/NT
;; NUMIN drops the sign bit of a 12 digit octal number.
;; Correct illegal memory reference problem when using
;; the F%nOPN routines and other non problem coding errors.
;; SPR 10-33434,10-34187
;; Correct error in CPU test routine.
;; SPR 10-33433
;; Add support for all terminals known to the monitor.
;;GLX MAC,235,1136,0,CTK, 2-Jun-83,
;; Fix GLXTXT EDIT # 52, TEXT.2 routine must preserve TF AC.
;;GLX TXT,53,1135,0,CTK, 8-Apr-83,
;; BATCON IST crashes in $TEXT macro. Stack may be damaged if
;; an interrupt occures when P AC is poorly defined. This patch
;; may resolve other GALAXY componet IST crashes.
;; Fix 2 problems dealing with command scanning... (on the 10)
;; Save ACs before entering K%TXTI in case we need to interrupt the processing
;; then restore the ACs if we do need to interrupt.
;; During the interrupt code, check for a ^U and the set some of the pointers
;; to reflect the true state (one simular to an initial state)
;; Fix bogus and multiple definitions of SZ.BUF and SZ.OBF.
;;GLX FIL,102,1132,1427,, 8-Jul-82,
;;GLX MAC,234,1132,1427,, 8-Jul-82,
;; Insure all packets get received by setting MSGFLG early.
;; Clear junk in AC so unprived user doesn't get IPCF message
;; priv bits set after MRECV.
;;GLX IPC,63,1127,1372,DPM, 7-Jun-82,
;; Make GLXSCN-10 handle CM%NSF
;;GLX MAC,233,1126,1371,DPM, 7-Jun-82,
;;GLX SCN,73,1126,1371,DPM, 7-Jun-82,
;; Interrupt level stack too small. Increase from 30 to 50 words.
;;GLX MAC,232,1124,1243,TJW, 3-Mar-82,
;; Remove IJU stopcode when a zero PPN is encountered
;; FNDLST was modified to not stopcode but to just return
;; an error. However, no-one ever checks to see if the
;; call to FNDLST suceeded or not which could cause all sorts
;; of bad things to happen. Add a check after each call to
;; check for good'ness.
;; Define TOPS-10 PC flags.
;; Invent routine .CPUTY to return CPU type.
;; Dont reset PT.ADR when restarting, so GLXMEM doesnt stopcode.
;; Make Date/time terminators work.
;; Remove I%RLIM and references to MEMLIM since the new
;; PFH doesn't require us to set our physical limits.
;; Fix handling of recursive stopcodes.
;;GLX COM,52,1111,0,WSM, 6-Jan-82,
;;GLX INT,104,1111,0,WSM, 6-Jan-82,
;; Define symbols .CHLAB ("<") and .CHRAB (">").
;; Make lots of global symbols local.
;;GLX MAC,226,1107,1136,DPM, 4-Jan-82,
;; Made S%DATI routines common to the -20 as well as the -10.
;; Remove reference to old PFH symbols, and fix problem of M%CLNC not
;; getting called enought to reduce core size.
;; Delete file attribute block symbols in GLXFIL. They
;; already exist in GLXMAC.
;; Clean up and simplify M%IPRM. Allow it to give error returns.
;; Remove GLXLNK stopcodes and replace them with error returns.
;; The new error codes are ERENF$ (Linked list entry not found)
;; and ERNSL$ (No such linked list).
;;GLX LNK,10,1074,1090,DPM, 7-Dec-81,
;;GLX MAC,222,1074,1090,DPM, 7-Dec-81,
;; Remove GLXPFH. Memorize current VIRT and PHY core limits
;; at GLXMEM initialization time. Set the PHY core limit low
;; and request a timer interrupt to invoke the system PFH.
;; Add new GLXINT routine I%RLIM to reset the core limits. Make
;; I%EXIT cann I%RLIM for free.
;;GLX INT,102,1072,1088,DPM, 7-Dec-81,
;;GLX MAC,221,1072,1088,DPM, 7-Dec-81,
;;GLX MEM,23,1072,1088,DPM, 7-Dec-81,
;; Add a missing POPJ P,. Clean up TOPS-20 file accsss
;; checking. Don't checkpoint a file at INTREL. There
;; might not be a valid IFN setup.
;; Don't turn PSI on and off around effective address
;; calculations. This save several hundred UUOs typically.
;; Fix FNDNAM bug and make sure we always return the pid in S1
;; Remove stopcode and insert CEI error for
;; I%ION and I%IOFF.
;; CEI = Can't enable/disable interrupt system
;; At CMRAT2+7 jump off to put the character back into the atom
;; buffer before returning
;;GLX SCN,70,1062,0,AWC, 9-Sep-81,
;; Do not GETTAB the WATCH bits, just clear them.
;; Do not initialize the entry vector if already initialized.
;; Fix race condition where character can be lost due to interrupt processing.
;;GLX KBD,56,1057,0,DEK, 8-Jul-81,
;; Correct the length of FILOP., LOOKUP/ENTER/RENAME and
;; PATH. UUO blocks.
;; MAKE SURE THAT K%INIT ALWAYS CALLS MAKBUF ON THE -20.
;; ALSO MAKE SURE THAT K%FLSH HAS CORRECT CHARACTER COUNT
;; WHEN SOUT'ING.
;; Try to fix date/time scanning
;; Make [,] return logged in PPN
;; Prevent race where AC 'P' may not have a good PDL
;; pointer and we get an interrupt. Turn off the PSI
;; system before doing effective address calculation
;; and turn it back on when we're done.
;; Fix a bad byte pointer at MAKPTR+ a few that caused lost
;; Add support for setting file attributes.
;; Make $SAVE work on indexed variables
;; Correct TOPS-10 break character set.
;; Turn off WATCH when we detach from FRCLIN.
;; Fix up PDL overflow trapping on the -20.
;; Don't allow .ZCHNK to zero the ACs.
;; Add a field in the FOBs for protection codes, and support
;; physical-only RENAMEs.
;; Add FRB.FL flag word for F%REN arg block
;;GLX FIL,74,1040,0,AWC, 4-May-81,
;;GLX MAC,214,1040,0,AWC, 4-May-81,
;; Add FB.PHY to allow physical-only OPENs.
;;GLX FIL,73,1036,0,DPM, 4-May-81,
;;GLX MAC,213,1036,0,DPM, 4-May-81,
;; Fix date/time scanning on TOPS-10.
;;GLX SCN,66,1034,0,DPM, 4-May-81,
;; Restore ACs that .STOP trashes before processing the
;; reason ITEXT block.
;; Clean up messy TOPS-10 user name output in ^R display.
;; Map a couple more LOOKUP/ENTER/RENAME error codes.
;; Fix some more PFH bugs...
;; Have Tarl fix all remaining PFH bugs...
;; Set .JBHRL (RH) so DDT will believe .JBHSO
;; Rewrite for TOPS20 support.
;;GLX INI,17,1022,0,DEK, 6-Apr-81,
;; Add END GLXOTS statement so we can initialize
;;GLX OTS,7,1021,0,DEK, 6-Apr-81,
;; Add part of missing HOSS edit (SPR #20-14262) to allow in-your-behalf
;; renames and deletes work correctly.
;;GLX FIL,71,1020,0,DPM, 3-Apr-81,
;; Fixed date/time parsing by delimiting date and time
;; with space.
;;GLX SCN,65,1017,0,DLC, 2-Apr-81,
;; Allow colon to be used to separate date and time
;;GLX SCN,64,1016,0,DEK, 1-Apr-81,
;; Fix QAR 10-05695; F%CHKP lost data.
;; Get rid of fake colon for date/time scanner
;; Change $RETT to POPJ at ACTQ.3+5 since entry
;; vector is not yet set up.
;; More work to make GLXSCN work under MIC.
;; Rearrange AC usage at CMND.2 to avoid TOPS20 release 4 bug where COMND
;; JSYS clobbers T2.
;; TOPS-20 compatibility. Remove references to .JBHGH and CORG.
;; Replace with .JBHSO
;; Enter TSG fixes for SPRs 20-14773 & 20-14728
;; Change GLXIPC to use DEBUGW instead of .JBOPS
;; Change GLXFIL to move the tops10 conditional for F%INFO to the right place
;; Fix Stevens QAR on memory management loop. Allow calls to
;; M%GMEM of greater then CNK.PM*PAGSIZ words.
;; Have the PDL overflow trap set up a PDL before stopcoding.
;; Have the stopcode routine set up its own PDL since it never
;; knows how much room is on the stack.
;;GLX COM,46,1003,0,DPM, 9-Mar-81,
;;GLX INT,75,1003,0,DPM, 9-Mar-81,
;; Comment out the reference to the MONSYM version number until MONSYM has
;; one to reference.
;;GLX MAC,211,1001,0,DPM, 3-Mar-81,
;; Make GLXLIB reentrant once again (broken by previous PFH changes).
;;GLX MEM,17,1000,0,TARL, 3-Mar-81,
;;GLX PFH,14,1000,0,TARL, 3-Mar-81,
;; Add future time and past time to make MIDNIGHT (among other things) work
;; Change F%INFO to return correct creation date on TOPS10.
;; Add DEVSIZ to get disk buffer length.
;; Add code to make GLXPFH a real page fault handler.
;; Fix IPRM.1 to do the correct thing for both TOPS10 and TOPS20
;;GLX IPC,57,767,0,TJW, 5-Feb-81,
;; Fix a bug in SNDSYS which caused the library to look at the
;; wrong message when processing messages from SYSTEM[IPCC]. This
;; is because the special PID index for [IPCC] is 0 and the recieve
;; code was just loading the index (which is 0 for non system messages)
;; and doing the compare. Since they were equal, SNDSYS assumed it had
;; recieved the correct message, but in fact it had not.
;;GLX IPC,56,766,0,AWC, 4-Feb-81,
;; Add .POPJ1 to the entry vector to allow SKIP returns.
;;GLX COM,45,765,0,DPM, 2-Feb-81,
;;GLX MAC,207,765,0,DPM, 2-Feb-81,
;; Fix bug in $TEXT macros that would not allow a decimal number
;; to be used as a field width (missing ^D).
;; Prevent IFN, BPN, and ILM stopcodes caused by routine STAC.
;; Delete second definition of the FLD macro. It was
;; incorrect anyway.
;; Turn off PSI interrupts at the start of stopcode processing
;; and turn them back on when completed.
;; Only type out "% GLXIPC alternate..." when debugging.
;; Call STKVAR and TRVAR with a PUSHJ, not a JSP
;; so it will work in a non-zero section.
;; Expand file and I/O error codes and messages for TOPS-10.
;;GLX FIL,63,754,0,DPM, 9-Jan-81,
;;GLX MAC,203,754,0,DPM, 9-Jan-81,
;; Move linked list initialization above IPCF initialization
;;GLX INT,73,752,0,AWC, 9-Jan-81,
;; Fix a problem with SNDSYS flushing the IPCF queue when
;; searching for the response from [SYSTEM]IPCC
;;GLX IPC,53,751,0,AWC, 9-Jan-81,
;; Add new bit IB bit (IB.NPF) to allow a program to disable GLXPFH.
;;GLX INT,72,750,0,DPM, 6-Jan-81,
;;GLX MAC,202,750,0,DPM, 6-Jan-81,
;;GLX MEM,15,750,0,DPM, 6-Jan-81,
;; Add missing PORTALs and cosmetic fixes in stopcode output.
;; SEE EDIT 11
;; *** Restructure GLXLIB ***
;; The main thrust of these edits was to structure GLXLIB in such
;; a way to make it wasy for a user to cause his/her/its program
;; to GETSEG or link the library without having to recompile either
;; the user program, GLXMAC or the library. Other nice side effects
;; include allowing the library to be linked with user code in
;; the high segment, and structuring the entry vector so that it
;; will support the library living in a non-zero section. Note that
;; a lot of library work is still required for extended addressing
;; to work at all. Changing the entry vector now merely prevents an
;; incompatible change in the future. This is in no way, a
;; commitment by Digital Equipment Corporation to provide extended
;; addressing facilities in the library. Due to the new style
;; entry vector, a user program need not be recompiled or relinked
;; should the high segment origin move. The following changes
;; were made:
;; GLXMAC 1) Rework PROLOG macro completely.
;; 2) .NODDT the following symbols:
;; $CALL $RET
;; $RETT $RETF
;; $RETIT $RETIF
;; JUMPT JUMPF
;; SKIPT SKIPF
;; 3) Remove CORG, DORG and VORG symbols and make code
;; smart snough to figure the stuff out. This allows
;; the PSECT origins set by LINK switches really
;; 4) Define $RETE so that a PUSHJ gets generated
;; instead of a JSP. This will allow extended
;; addressing to work someday.
;; GLXCOM 1) Call .RETE via a PUSHJ instead of a JSP. This
;; allows extended addressing to be used someday.
;; 2) GLXVRS is no longer external.
;; 3) Define global symbols CRSHAC (TOPS-10) and BUGACS
;; (TOPS-20) to point to .SACS. This causes FILDDT
;; to automatically load the ACs from .SACS.
;; GLXLNK The PHASE/DEPHASE stuff around the linked list offset
;; definitions confused MACRO (and me) when the library
;; was TWOSEG'ed. Remove the PHASE/DEPHASE and redefine
;; the symbols another way.
;; GLXINI 1) Rework CDO macro to generate a table that kinda
;; parallels the high segment entry vector and call
;; it ENTVEC just tocunfuse things. This is required
;; for extended addressing and saves and incompatible
;; change later on.
;; 2) If the program is execute-only do a physical-only
;; GLXINT 1) Define I%INIT in GLXINT. Note that it's also
;; defined in GLXINI, but since you don't link both,
;; it doesn't matter.
;; 2) Remove definition for I%INI1 since it is no longer
;; 3) Once again, set up the APR trap here. Remove I%APRT
;; since it is no longer needed.
;; 4) Add routine EXOCHK to check for execute-only
;; operation and set global flag EXOFLG. Currently,
;; the only place this is checked is in the memory
;; manager/page fault handler.
;; 5) Move data page creation out of here and into
;; GLXOTS. It's not needed if the library is linked
;; with the user program.
;; 6) Move the compatibility check out of here and into
;; GLXOTS. Anyone who links the library in with
;; their program should never have to worry about
;; version skews.
;; 7) Take call to SETPFH out of here and make it part
;; of the memory manager initialization code.
;; GLXMEM 1) Do PFH initialization here instead of in PFH.
;; This includes mapping core and marking all symbol
;; table pages.
;; 2) Create a non-sharable page and BLT the PFH into it.
;; 3) As part of PFH setup, add new routine PFHADR to
;; tell the page fault handler where some of the
;; memory manager data base lives.
;; 4) Add PFHRET kludge to allow the page fault handler
;; to return to the library when execute-only is in
;; 5) Copy NODDT routine here from PFH.
;; GLXOTS 1) Do compatibility check here instead of GLXINT.
;; 2) Create data pages here instead of GLXINT.
;; 3) Rework CDO macro. Don't PUSHJ to the unimplemented
;; stopcode since this may not work if execute-only.
;; 4) Create new stopcodes and global symbols so that
;; any module may call them. The stopcodes are:
;; .UNRTN::STOPCD(UNR,HALT,,<Unimplemented routine executed>),
;; .OBRTN::STOPCD(OBR,HALT,,<Obsolete routine executed>), and
;; .OORTN::STOPCD(OOR,HALT,,<OTS only routine executed>).
;; GLXPFH 1) Remove PFHDAT PSECT. This is no longer needed since
;; PFH is moved to a non-sharable page separate from
;; the rest of the library.
;; 2) Put all the initialization code into GLXMEM.
;; 3) Since relocatable PSECTs aren't implemented, PFH
;; can't directly reference memory manager data from
;; within the PHASEd code. All references must be
;; calculated. This is only a pain for PAGTBL
;; references. All others are indirect.
;; 4) Use the PFHRET kludge in GLXMEM to return to
;; execute-only library.
;; 5) Stopcodes in PFH don't work and probably could
;; never be made to. On catastrophic errors, just
;; print a simple message and die (see $DIE macro).
;; Prevent PFH stopcodes by moving PFHACS into the PFHDAT PSECT.
;; Allow job numbers to be used for PIDs. Invent new
;; bit in the IB flag word and code in GLXIPC to support
;; this functionality. With this change, no Galaxy
;; component will be dependant on SYSINF (except when
;; Set Operator priv for messages received from system components when debugging
;; Yet another attempt to make the Galaxy scanner work under MIC.
;;GLX KBD,51,725,0,DPM, 9-Dec-80,
;; *** Make GLXLIB run execute-only ***
;; This massive edit will break all existing programs that use
;; the library, even if execute-only is turned off. This occurs
;; for several reasons; Data pages are not merged, but created
;; on the fly; interrupt routines are not entered via a JSR. The
;; The following changes were made:
;; GLXMAC 1) Add "not-known-to-DDT" hardware mnemonics. GLXLIB
;; needs the PORTAL definition.
;; 2) Remove indirection from entry vector references.
;; 3) Change $BGINT so it does a $CALL instead of a JSR.
;; GLXINT 1) Add new routine CREDAT to create the library's data
;; pages (if they don't already exist).
;; 2) Add new entry point I%APRT for APR traps. Note that
;; this MUST be set up by GLXINI prior to calling
;; GLXOTS Change entry vectors to include PORTAL instructions.
;; GLXINI 1) Set up APR trap prior to call to I%INI1.
;; 2) Remove code to merge GLXLIB data pages.
;; GLXPFH Set up PFHBEG on a call to SETPFH.
;; GLXCOM Add PORTAL instructions to all return points within
;; the many AC/variable save co-routines. This includes
;; the STKVAR and TRVAR routines, and calls to the user
;; error processor (pointed to by IB.ERR).
;;GLX COM,40,724,0,DPM, 2-Dec-80,
;;GLX INI,13,724,0,DPM, 2-Dec-80,
;;GLX INT,67,724,0,DPM, 2-Dec-80,
;;GLX MAC,177,724,0,DPM, 2-Dec-80,
;;GLX OTS,5,724,0,DPM, 2-Dec-80,
;;GLX PFH,7,724,0,DPM, 2-Dec-80,
;; Too many people don't know what their doing. Even more believe
;; the TOPS-10 monitor calls manual. GLXLIB is one of several
;; programs that don't know how to read the local date/time
;; correctly. Do it the right way.
;; Globalize FTFTS flag defined in GALCNF
;; Change PROLOG macro to .REQUEST REL:GLXINI instead of getting
;; it from DSK:. This is consistant with all other TOPS-10 cusps.
;; Delete CSF stopcode in WRTBUF and just .RETF (SPR 20-14724)
;; Fix XCMTOK so it understands TOPS20-style string pointers.
;;GLX SCN,60,712,0,DLC, 9-Nov-80,
;; Fix XCMTAD so it handles date/time fields before end of line. [QAR 10-4894]
;;GLX SCN,57,711,0,PJT, 6-Nov-80,
;; Fix indirect files, make continuation lines in them work, etc.
;;GLX SCN,56,710,0,DLC, 6-Nov-80,
;; Remove unwanted LALL [QAR 10-4899]
;;GLX MAC,174,707,0,PJT, 5-Nov-80,
;; Move argument block information including data types from
;; ORNMAC and QSRMAC to GLXMAC.
;;GLX MAC,173,706,0,DEK, 3-Nov-80,
;; Add ac FB to the FB$CHN check in F%REL.
;; On TOPS20, if the CHKAC fails, return 'protection failure'
;; instead of stopcoding.
;; Define error code ERFIO$ for "file is offline".
;; Remove edit 161 which declared entry vector points to be external.
;; Only dump ACs and stack if IB.STP set.
;; Fix clobberage of S1 at K%OPEN which caused TTY to always be
;; opened image mode on TOPS20.
;;GLX KBD,50,700,0,DLC, 2-Oct-80,
;; Changed I%SLP to accept TOPS10 hiber bits and
;; could therefore change K%BIN to do I%SLP instead
;; of HIBER. This is to ultimatly fix OPR to wake
;; up on the 10 due to terminal inactivity.
;;GLX INT,65,677,0,DEK, 2-Oct-80,
;;GLX KBD,47,677,0,DEK, 2-Oct-80,
;; Delete IB.DET (GLXLIB defaults to detach if started on FRCLIN)
;; Fix 2 bugs... Issue $FATAL error if no IPCF privs and
;; SYSINF not running; Do not send $FATAL errors to ORION.
;; Delete the code to reset the terminal mode
;; done in SETVT5
;; Add new bit in the IB (IB.DET) to force job to
;; detach if started up on FRCLIN.
;; Restore original meaning of BATFLG to mean BATCH only. Always request
;; character instead of doing hiber in K%BIN if BATFLG is set.
;; Fix bugs in K%OPEN for TOPS20 which caused CGT stopcode
;; Don't try to page out symbols in the high seg.
;; Make TYPRMT a noop if output designator (.CMIOJ) not the TTY.
;; At TXTL.4, if TXTINP fails, update caller's arg block before returning.
;; Always set a terminal type in K%INIT to prevent ILM stopcodes
;; when editing characters are typed with no terminal type set.
;; Make K%TXTI use pointer in .RDIOJ when RD%JFN in .RDFLG is not set
;; Remove edit 25 which caused K%BIN to sleep when terminal is a PTY.
;; This caused IPCF interupts on TOPS10 to be delayed until a character
;; was typed.
;; Repair edit 54 to allow F%REW to win for short files instead of returning
;; [QAR 10-4626] Fix I%TIMR so that .TIMBF function checks the
;; PC word correctly.
;; Add definition for .CMFLT and .CMTAD
;; Repair edit 33 so that it sleeps until output is done.
;; Add support for TOPS-10's VT61 TTYs.
;; When a ^H is typed (after the first character in a line),
;; handle it like the TOPS-10 monitor does.
;; Don't set up the page fault handler if the user doesn't
;; have virtual memory privs. Determine this by GETTABing
;; the user's maximum limits (table .GTMVL) and checking
;; this value.
;; On TOPS-10, don't trash AC 'TF' on an APR trap.
;; Change the meaning of BATFLG to mean any random PTY, not
;; just a Batch PTY.
;;GLX KBD,34,646,0,DPM, 8-Sep-80,
;; Modify edit 32 so that we don't loop continuously , but
;; wait a tick or two between TRMOP.'s.
;; Fix SFD printer to not type useless commas.
;; Allow output to spooled devices; after all, they are disks.
;; On TOPS20, have M%INIT start scanning from c(.JBFF), not page zero.
;; Add .OTFAL and rename .OTXFR to .OTFTS
;; Don't print null paths (as in [10,3572,,,,,])
;; .REQUEST library if impure instead of .REQUIRE.
;; At TYPRMT, don't type CRLF unless terminal not at left margin.
;; On TOPS10, make K%TPOS wait for all terminal output to cease
;; before checking horizontal position.
;; Move $DATA statements outside of code so that IMPURE GLXPFH doesn't blow up
;; Add new routines K%BUFF, K%FLSH, and K%OPEN.
;; Change K%INIT to open the TTY on the -20 if IB.OCT
;; is lit. Also save the channel or JFN of the TTY
;; and the UDX or device designator in global storage.
;; Add entries K%BUFF and K%FLSH for buffering output.
;; Add K%OPEN routine.
;; Change RETMEM to light the PT.USE bit as well as clearing
;; the PT.INI bit. This is to avoid stopcoding with
;; BPN when we do the M%RMEM.
;; Zero out our own $DATA space for GLXKBD.
;; Zero out $DATA space for GLXSCN.
;; Zero out our $DATA space like everyone else.
;; Remove definition of D%BEG from GLXOTS since we don't
;; need it any more
;; Make GLXLNK zero out its $DATA space the same way all
;; the other modules do.
;; Make C%INIT zero out its $DATA space and not zero
;; out individual locations.
;; Change T%INIT to zero out its $DATA space.
;; Change GLXFIL to zero out its own $DATA space instead of
;; only the IFN table on initialization.
;; Allow GLXMEM to do its own data page zeroing. Make sure
;; that the stuff needed for restarts is not zeroed. Comment
;; out the in-line zeroing that should be done at init time.
;; Remove the CREDAT section of I%INI1. This now allows the
;; individual library module to do their own $DATA initialization.
;; We now zero our own $DATA space. Also remove D%END.
;; SPR 20-14563 Fix F%POS loop problem. Return EOF if positioning
;; to the last byte of the last page of a file.
;; Make S%CMND check for ^Z as a special break character.
;; This allows programs to exit on ^Z (TOPS-10 style
;; program exit character).
;; Fix bugs in I%HOST/CNVNOD so that we can run with
;; monitors built without network support.
;; Plug security leak that allowed JACCT'ed programs to grab a
;; private copy of GLXLIB.
;; If BATCH, do not reset keypad mode on initialization
;; Moved the REN.2: label up 2 instructions so that the
;; FILOP. channel is closed if it was open'd
;; Fix a bug caused by edit 157. Make GLXINI generate global library
;; symbols by adding a : to the ..ASGN macro definition.
;; Define CNVNOD and fix JI.LOC to return sixbit node name
;; Define CNVNOD to convert node numbers to octal etc
;; Also make JI.LOC return sixbit node name for TOPS10
;; Change GLXTXT to call CNVNOD to convert node numbers to octal and vice versa
;; add ji.tlc to i%jinf to return terminal physical location
;; Return the located node string if requested in the PIB
;; for TOPS10. (ala TOPS20)
;; define md.sop, md.rop, md.lop priv flags for the mdb and c%recv
;; Fix a bug in I%TIMR when called from I%SLP
;; Fix a bug in T%TEXT so that default IB routine is used if users specifies
;; no routine in call
;; Fix ..ASGN definition in PROLOG macro for GLXINI if GLXPURE is off
;; Fix .STKST so that it will handle skip returns
;; Add check to execute timer revents if requested
;; Remove CNTDT routine since it lives in GLXSCN with CNVDT
;; Fix date/time parsing routines
;; Fixed phantom reference to T4 in F%REN
;; Delete <CRLF> pair when rubbout is seen
;; Add I%TIMR routine to handle timer events
;; Fixed .STOP so that CONTINUE typed after a stopcode
;; won't cause ?Ill UUO at user PC 000000
;; Rework error processing to use globally defined errors
;; Make error definitions for S%CMND as part of general galaxy errors
;; Change I%EXIT to logout job if not logged in
;; Fix a bug in justification if last argument in ITEXT
;; Add new $TEXT macros for performance improvement at compile time
;; Rework logic for deceiding where to get the OTS on
;; TOPS-10. Also add SFD support.
;; make changes to GLXFIL so that in OPNCOM, if the
;; FILOP. open fails, we release the extended channel
;; before returning. Also, make INTREL always call
;; RELFB to release the file data base.
;; Changed SZ.PAK from ^D50 to PAGSIZ-1 so that very large
;; packets from [SYSTEM]GOPHER will be recieved ok.
;; Don't output any help text if JFN is for Null IO (in-core parse)
;; Don't output multiple OR, OR if alternatives are invisible
;; MAKE ENTRY VECTOR SYMBOLS IN GLXINI GLOBAL
;; Fix some caps in XCMDEV
;; Change WTO block processors to allow arguments to be passed in TF
;; .XCREF and SUPPRESS all symbols created by macros in GLXLIB
;; via the %xxx construct at the macro definition.
;; Fix device, node parse so char following terinator gets used.
;; Add LA120 to TRMTYP macro for the -10
;; Change XCMDEV to require : as terminator, and supply it for recognition.
;; Change XCMNOD to require :: or _ as terminator, and supply :: for escape.
;; Initialize LINPTR in the $TEXT initialization code.
;; Make PUTU out out some text if DIRST fails (-20 only)
;; On the 10, if the MERGE for library data pages fails, don't
;; $STOP, since this would only cause an ?Ill mem ref. Just OUTSTR and EXIT
;; Change CMPDAT to use T3 instead of P1 to prevent illegal memory reference
;; Added entry for S%DATI to parse a date/time
;; Added check to K%BIN to avoid HIBER if running under BATCH.
;; Add $ERRTXT macro for OPRPAR
;; Added definitions for $RETIT and $RETIF Psuedo ops
;; Add external library entry S%NUMI to parse an ASCIZ number and error
;; codes ERRAD$ and ERNUM$
;; Add external entry for S%NUMI to parse a number
;; ADD .FDNAT, .FDLOC, .FDNET AND .FDFRN FD TYPE DEFINITIONS
;; 1) Add support for IPCF send to a name.
;; 2) -10, If sending to [SYSTEM]GOPHER, never send a page.
;; Fixed bug in RDPATH and changed CMRFLD to test break set before checking
;; special characters like ? and ESCAPE to accomodate CM%BRK bit
;; Changed SETFD to correctly remember actual path in lookup/enter block
;; Merge in PARUNV to GLXMAC
;; Changing calling convention for CNTDT to use S1 and S2
;; ADD SUPPORT FOR .CMTAD IN GLXSCN
;; Add symbols on -10 for the .CMTAD function in GLXSCN
;; CHANGE CALLING CONVENTION TO NUMIN ROUTINE TO CONFORM
;; TO STANDARD GALAXY ROUTINES USING S1 AND S2
;; SUPPORT OUTPUT FILES ON THE -10 WITH COMND, NULL INPUT AND OUTPUT,
;; AND CM%BRK ON THE -10
;; Add MAPERR code for the -20 and change INTREL to do a
;; RLJFN on the -20 if the CLOSF fails (OPENF failed but
;; GTJFN succeeded).
;; Change F%DEL to do F%AOPN instead of F%OOPN
;; Change F%DREL CHKAC on TOPS20 to check for write access
;; instead of directory access.
;; SUPPORT THE VT100 KEYPAD.
;; Change the Unrecognized Control Character Message to Ambiguous and
;; adjust the casing on all error messages
;; Fix F%DEL to do F%OOPN so we get write access check
;; on user's behalf instead of read.
;; Make F%REN give back IFN if file structure is different
;; DO NOT ALLOW NULL NODE NAMES
;; Make F%CHKP return 0 for an input file which has not
;; yet been read.
;; Don't page out symbols until first timer trap,
;; and then do it with 1 or two PAGE. UUOs
;; Fix F%DREL to lite PRV bit and exit through INTREL on errors.
;; Fix CHKIFN to prevent 'Illegal IFN Stopcode' for valid IFN's.
;; Make F%REW & F%POS not loop forever when positioning null files.
;; Make F%REW & F%POS return FDE if GETBUF returns FDE.
;; Added code to adjust Greenwich time to local time
;; inline on the 20 thus avoiding expensive calls to
;; ODTIM. It is expected that this change will greatly
;; reduce the overhead involved in outputting dates/times.
;; TOPS10... fix K%INIT to not tell monitor of terminal type which
;; we just got from the monitor!
;; Fix .ZCHNK to exit if calling count is zero
;; Fix the padding of nulls on output to not add any if
;; on a full word boundary.
;; Change the text of the GLXLIB incompatible message.
;; Change GLXINT incompatible GLXLIB to just a call to K%SOUT
;; instead of $FATAL since library is not initialized. Change I%EXIT
;; to remove the $FATAL for same reason. Also define %%.GLX in all
;; non-library modules and have GLXINI reference it external.
;; Add code for .MSFLG in the WTO macros
;; Make GLXVRS symbol external and on the -20
;; Save the STOPCODE name in the File Spec Name
;; USED TRVARS TO PROVIDE SPACE FOR STRING USED IN GTJFN
;; CHANGED THE GET SO THAT IT BRINGS IN THE ENTIRE EXE
;; FILE INSTEAD OF SELECTED PAGES
;; Change the $FATAL message on version skew to show the
;; version numbers.
;; CHANGE F%REN SO THAT IF THE SECOND IFN GET
;; FAILS, IT RELEASES THE FIRST BEFORE RETURNING
;; AN ERROR
;; Remove REL: from require of GLXINI in GLXMAC
;; 1) Most of our stuff will be hard to link
;; 2) Anyone else can just as easliy define DSK: as DSK:, REL:
;; TOPS10.. Make K%INIT use extended channel instead of F%FCHN
;; and make K%STYP tell the monitor about the change
;; Fix -10 LDLEB to not make a path block if caller gives 0 for a PPN
;; even if the passed FB is long enough to contain a path block
;; Fixed -10 OPNERR to RELFB so IFNTAB slots don't disappear
;; Change .REQUIRE to REL:GLXINI so that people can easily link in.
;; 1) Move PFH into the library.
;; 2) Rearrange $DATA so that it puts library data in a PSECT DATA
;; 3) Add the GLXPURE assembly switch so that the library can be linked
;; into a low segment.
;; Add a new module GLXPFH.
;; Fix WTO range check stopcode to give a hint of where things went wrong
;; Changed the text description of .OTMNT to 'Device"
;; Modified PROB in GLXTXT to output units for .OTMNT as sixbit
;; CHANGE THE SEND QUOTA CODE TO ADD THE SEND QUOTA REQUESTED
;; TO THE CURRENT QUOTA INORDER TO GET THE NEW SEND QUOTA.
;; CORRECT THE EXTRA LINE APPEARING AFTER ? ON HELP. THIS INCLUDES
;; THE EXTRA ONE ON SOME KEYWORD/SWITCH TABLES
;; -10,Use job number as PID when conversing with INFO to
;; get PIDs of debugging components.
;; Add Support for L%APOS - Position to a link via its address.
;; -10,Make erase to end of screen work for VT05s.
;; Broken when installing TRMTYP macros.
;; -10, Clear EOF after USETI to EOF during position
;; request which would change buffers
;; On the -10, don't try to release the channel if the OPEN fails.
;; Since the channel isn't assigned until the OPEN wins, we'd release
;; channel 0!! (Broke BATCON)
;; Fix output code on the -20 to zero the remainder of the last word written in
;; the buffer before writing the buffer out.
;; Fix a library bug in memory manager. Make .ZCHNK zero
;; the correct number of words if length is 1. Make DCT.MN=1.
;; Fix a bug in wait logic for debugging system if component does not
;; yet exist.
;; Remove WT.SJI from being set on WTOR if ACK code specified. Also,
;; change $ACK to lite WT.SJI
;; Write system PID table after setting MYPID. This way, we don't
;; send to IPCC with 0 for a PID to write the table.
;; Fix expansion of TRMTYP so TTTAB has 0 in RH for non-video terminal
;; TOPS10 - Set up job number as PID when getting a pid
;; Fix object block BLT in WTO logic
;; Make TRMTYP macro which will expand parse tables, sixbit tables,
;; cursor control tables, etc. Use it in GLXKBD, and in OPR, ORNMAC, OPRCMD.
;; fix SAVCRS to put null on end of CRASH name.
;; Disallow Send with 0 PID.
;; In C%SEND, return ERARG$ if the message length is 0.
;; Fix WTO action routines so that args in S1, S2 work.
;; Added .OTDBM for DBMS system.
;; Made MAXPAK global in IPC.
;; Made I%WTO send a packet whenever possible.
;; Make MAPERR save the TOPS20 system error code in .LGERR,
;; not the GALAXY system error code. We still return the
;; GALAXY error code in S1 as before.
;; ADD NEW WTO SUPPORT ROUTINES FOR APPLICATION CODE AND
;; OBJECT TYPE BLOCK
;; Fix some bugs and make LSN processing faster
;; fix CM%NOP to return true on the -20
;; Fix a problem in the file positioning code which caused holes in
;; some files.
;; Fixed a bug in PROLOG to define entry vector offsets with ^O
;; Make IFNs start at 1 rather than 0.
;; Rework GLXFIL to resolve a number of internal problems and
;; cleanup the code.
;; Fix bug in ITEXT expansion of $FATAL and don't allow $FATAL to enter DDT
;; CORRECT MAXIMUM PID SETTING PROBLEM
;; Change PROLOG to process GLXINI as a library component and Equate entry
;; vector symbols in GLXINI.
;; Change PROLOG to DEFINE library entry points as MACROS for non library
;; components. This allows Pseudo instructions which reference the entry
;; vector locations to be simple OPDEFS
;; Changed $CALL $RETT $RETF to simple OPDEFS
;; Change LOAD, STORE, INCR, DECR and ZERO to skip structure stuff if called
;; without a possible structure name.
;; Changed SAVE macro calls to $SAVE
;; Changed LOAD, STORE, INCR, DECR and ZERO macros to skip structure check
;; if called with no possible structure
;; Added $FATAL processing to Stopcode processor
;;GLX COM,25,365,0,PJT, 8-Mar-79,
;; FIX SETTING OF MAXIMUM NUMBER OF PIDS TO READ THEM FIRST AND
;; ADD IN THE REQUESTED AMOUNT.
;;GLX IPC,31,364,0,MLB, 8-Mar-79,
;; Move .BGINT into Prolog macro so that $BGINT can be used in
;; the Library
;;GLX MAC,114,363,0,MLB, 7-Mar-79,
;; MAKE C%KPID WORK (SORT OF) FOR NAMED PIDS ON THE -10.
;; ALSO KILL QUASARS PID AT END OF IPCF TESTER.
;;GLX IPC,30,362,0,DC, 7-Mar-79,
;; Enable Panic Channels on the -20 if PSI setup and
;; Save Crashes on the -20 if sending Stopcodes to
;; ORION and not debugging.
;; The File Spec for the SAVE is in SAVBUF a global area in GLXSCN
;;GLX COM,24,361,0,MLB, 7-Mar-79,
;;GLX INT,33,361,0,MLB, 7-Mar-79,
;;GLX SCN,27,361,0,MLB, 7-Mar-79,
;; Change Stopcode to use new ^E function for last -20 Error Code
;;GLX COM,23,356,0,MLB, 6-Mar-79,
;; Correct -10 Problem with ^B to check Node name and
;; Node Number to determine if at the same Node
;;GLX TXT,30,355,0,MLB, 6-Mar-79,
;; Change ^E to get buffer dynamicly and accept -2
;; for last TOPS20 error code
;;GLX TXT,27,354,0,MLB, 6-Mar-79,
;; Add processing to ^Q to allow ^Q/KEYTAB(S1),LHMASK/ to generate an asciz
;; pointer using the address specified in the left half of KEYTAB(S1)
;;GLX TXT,26,353,0,PJT, 5-Mar-79,
;; Removed name display from $FATAL and $WARN
;;GLX MAC,113,352,0,PJT, 2-Mar-79,
;; Added C%PIDJ library entry to return Pid's job number
;; Added C%PIDJ library entry to return Pid's job number
;; Preserve RCVMDB+MDB.MS during SNDSYS so C%REL will work properly in DEBUG
;; Make getting maximum packet size a part of C%INIT even if no PIB is specified
;; in IB
;; ADD CODE TO AVOID LOSING DATA ON REWIND OF SHORT FILES
;; Extend DEFSTR and MSKSTR definitions to allow index specification
;; within the LOCN field.
;; ADDED A STOPCODE TO GLXTXT FOR BAD ^E FUNCTION AND DISPLAYED
;; THE VALUE. THIS PREVENTS SKEW WITH NEW MONITOR DEFINED SYMBOLS
;; AND THE NEEDED VALIDITY CHECKING.
;; Added code to allow indexing and indirect on ^Q qualifier in $TEXT and ITEXT
;; Added $KWTOR macro for killing outstanding $WTOR requests.
;; ADD IB.PRG IN THE IB TO HOLD PROGRAM NAME
;;GLX COM,22,340,0,MLB, 9-Feb-79,
;;GLX INT,32,340,0,MLB, 9-Feb-79,
;; ADD ENTRY FOR MAXIMUM SMALL PACKET SIZE C%MAXP AND
;; WHEN DEBUGING TYPE OUT THE BECOMMING PID MESSAGE
;;GLX IPC,24,336,0,MLB, 5-Feb-79,
;;GLX MAC,107,336,0,MLB, 5-Feb-79,
;; ALLOW ^E ON THE -20 TO EXPAND 20 ERROR CODES.
;; THOSE CODES GREATER THAN 600000
;; Remove PJUMPN in tops10 conditional (replace with JUMPN)
;; Removed extra CRLF's from macro definitions of $TEXT, ITEXT, $WARN, $FATAL,
;; $STOP and a newly defined macro $ERROR.
;; Added module name display to $FATAL, $WARN and $ERROR
;; Bump edit number by 1 since I removed GLXWTO from GLXVER.
;; WTOEDT was 1, so the sum got off by 1 upon this removal
;; Fixed WTPJBN (WTO job number block processor) to
;; load a real WT.JOB code
;; Change FLD to look exaclty like INSVL.
;; Fixed DEFSTR and MSKSTR definitions to allow LOAD and STORE to function
;; as GETLIM and STOLIM currently do.
;; Fixed .STKST and .TRSET to operate properly so STKVAR and TRVAR will work
;; Change internal WTO opcodes from WT.xxx to WO.xxx
;; so we don't conflict with ORNMAC bit definitions
;; CHANGE WTO JOB BLOCK NAME TO WJB SO DON'T CONFLICT WITH
;; WT.JOB IN ORNMAC
;;GLX INT,27,323,0,DC, 9-Jan-79,
;;GLX MAC,101,323,0,DC, 9-Jan-79,
;; FIX GJBLOC ON THE -20
;;GLX INT,26,321,0,MLB, 9-Jan-79,
;; Changed $SET to operate with DEFSTR and MSKSTR defined structures.
;; The still operate with non-stucture offsets and masks
;;GLX MAC,100,320,0,PJT, 8-Jan-79,
;; Removed usage of PJUMPE opdef
;;GLX MEM,11,317,0,PJT, 5-Jan-79,
;; Removed usage of PJUMPE opdef
;;GLX TXT,22,316,0,PJT, 5-Jan-79,
;; Removed usage of PJUMPE and PJMPGE opdefs
;;GLX FIL,21,315,0,PJT, 5-Jan-79,
;; Removed ASUBR support code.
;;GLX COM,20,314,0,PJT, 4-Jan-79,
;; Removed JX* macros, PJUM* macros, ASUBR macros.
;;GLX MAC,77,313,0,PJT, 4-Jan-79,
;; Make BTA $STOP use new ITEXT
;;GLX TXT,21,312,0,DC, 4-Jan-79,
;; Restore S1,S2,TF after WTO
;;GLX INT,25,311,0,DC, 4-Jan-79,
;; Take advantage of new $STOP in BPN, IQN, etc
;;GLX INT,24,310,0,DC, 4-Jan-79,
;;GLX MEM,10,310,0,DC, 4-Jan-79,
;;GLX TXT,20,310,0,DC, 4-Jan-79,
;; Make $STOP generate ITEXT instead of ASCIZ.
;; Make $STOP do a real $WTO, if desired.
;;GLX COM,17,305,0,DC, 4-Jan-79,
;; Add a global version fetch routine
;;GLX INT,23,304,0,DC, 4-Jan-79,
;; Rework IB, install!PIB
;;GLX INT,22,303,0,DC, 4-Jan-79,
;;GLX IPC,23,303,0,DC, 4-Jan-79,
;;GLX KBD,14,303,0,DC, 4-Jan-79,
;;GLX MAC,76,303,0,DC, 4-Jan-79,
;; Remove I%IWTO, I%SWTO, I%WTO finish new $WTO macros and support code
;;GLX INT,21,277,0,DC, 4-Jan-79,
;;GLX MAC,75,277,0,DC, 4-Jan-79,
;; Remove I%%WTO routines, begin rework of $WTO and support code
;;GLX INT,20,275,0,DC, 4-Jan-79,
;;GLX MAC,74,275,0,DC, 4-Jan-79,
;; MODIFY ? FOR TABLES WITH ONLY ONE ELEMENT IN THEM
;; Added symbols .OTXFR, and .OTBIN.
;; Change meaning of DEBUGW so -1 is on, 0 is off.
;; Debugging names are now based on SPIDS, not on IB.PRG
;; Add S%SIXB to entry vector, and support code in GLXSCN
;;GLX MAC,72,270,0,DC, 6-Dec-78,
;;GLX SCN,25,270,0,DC, 6-Dec-78,
;; FIX NODE FUNCTION TO SAVE RESULT WHEN CM%PO IS SET
;;GLX SCN,24,266,0,MLB, 6-Dec-78,
;; FIX ^N TO TAKE NODE NAME ON THE -10
;;GLX TXT,17,265,0,MLB, 5-Dec-78,
;; FIX GLXTXT ^R BUG IN -10 NAME OUTPUT OF ZERO SECOND WORD
;;GLX TXT,16,264,0,MLB, 4-Dec-78,
;; Fix S%TBLK to save the P regs
;;GLX SCN,23,263,0,DC, 1-Dec-78,
;; FIX $ACK CODE TO LITE WT.SJI TO SUPPRESS JOB INFO DISPLAY
;; CONVERT TO USE I%JINF
;; ADD I%JINF CALL TO LIBRARY
;; FIX CMDEV FUNCTIONS AND ADD ITEXT FOR EXPANDING ERRORS.
;; ALSO LET NODE TAKE PARSE ONLY
;; Change ^R Display
;; REORGANIZE THE SYSTEM PID TABLE AND REMOVE SP.IPC FROM -20
;; ADD STOPCODE TO ^R PROCESSING FOR BAD USER INFO IN JIB
;; ADD I%HOST TO THE LIBRARY
;;GLX INT,14,250,0,MLB, 9-Nov-78,
;;GLX MAC,67,250,0,MLB, 9-Nov-78,
;; Change Stopcode to use $HALT instead of I%EXIT to exit without a reset
;;GLX COM,16,246,0,, 9-Nov-78,
;; Fix a S%TBAD Bug had wrong AC for GETER return
;;GLX SCN,21,245,0,, 9-Nov-78,
;; ADD A NEW TEXT QUALIFIER ^R FOR DISPLAYING A JOB INFORMATION BLOCK AS
;; NOW DEFINED IN GLXMAC
;;GLX MAC,66,244,0,, 8-Nov-78,
;;GLX TXT,12,244,0,, 8-Nov-78,
;; Changed ERICA$ to ERARG$
;; Added 'PULSAR' to special pid name table for TOPS10
;; Spelling fixes -- cosmetics
;; Changed $CALL to do range check for entry vector
;; Defined VMAX as last absolute location of entry vector
;; Fix a bug with the new F%OBUF with APPEND mode.
;; FIXED RECIVE LOGIC TO CLEAR RECIEVE PAGE AFTER A SUCCESSFULL
;; PAGE RECIEVE
;; Rewrite F%OBUF, Move QUOTA EXCEEDED code to -10 dependent area.
;; Delete QUOTA EX code from F%OBYT.
;; Changed JUMPT,JUMPF,SKIPT,SKIPF definitions to OPDEFS
;; Changed JUMPT and SKIPT to JUMPN and SKIPN
;; fixed SNDSYS and KILPID in TOPS20 code to work properly
;; Add special pid indexes for FILDAE, PULSAR, Accounting
;; Added .OTMNT for Mount requests
;; Added .RET to entry vector as .POPJ
;; Changed $CALL to OPDEF [PUSHJ P,@] for non-library components
;; Redefined SAVE macro to use co-routines
;; Added symbols for GLXMEM (CNK.PM and AVLPAG)
;; Removed reference to ALTOPR in Stop code processor
;; Cleaned up .SAVE8 routine
;; Added range check for FD size in OPNCOM
;; Changed I%INIT to appear as an entry vector (e.g. jfcl .+1)
;; to support PUSHJ P,@I%INIT in new $CALL definition
;; Handle send errors for I%SOPR if user doesn't want send
;; errors returned
;; Support Multiple Interrupt levels on the 20
;; Fixed Startup race and cleaned up Debugging system
;; Added errors ERICA$ Invalid Calling Argument
;; Modified C%SEND to clear entry in internal Pid table
;; if send to system pid fails. This allows retry and
;; also allows a component to pick up a new system pid.
;; Modified K%INIT to use IIB instead of Calling Args
;; Add garbage collection to GMEM and RMEM when request
;; exceeds number of pages available
;; Changed T%INIT to use IIB set up be I%INI1
;;GLX WTO,1,0,0,DC,18-Oct-78 ;;Removed since GLXWTO is a red herring
> ;END DEFINE MODULES
;Macro to Define MOD'$WHO and MOD'$NOTE which will print the
;information in this file for the particular module if the
;edit levels do not match what is stated in glxver.
;Adds the Edit level for the module to the edit level of GLXVER
;Also makes MOD'EDT Internal so LINK can Check for skew
DEFINE GLX (MOD,NUM,LOD,GCO,WHO,DATE,NOTE) <
MOD'EDT==NUM ;DEFINE UNIVERSAL EDIT LEVEL
INTERN MOD'EDT ;LET LINK CHECK FOR SKEW
GLXEDT==GLXEDT+MOD'EDT ;ADD EDIT LEVEL OF MODULE TO GLXEDT
DEFINE MOD'$WHO (ACTNUM) <
PRINTX GLXVER GLX'MOD Edit(NUM) by WHO on DATE
PRINTX GLX'MOD Actual Edit(ACTNUM)
> ;END DEFINE MOD'$WHO
DEFINE MOD'$NOTE <
PRINTX NOTE (From GLXVER)
> ;END IFNB NOTE
> ;END DEFINE MOD'$NOTE
> ;END DEFINE GLX
IF1,< ;Only define things on first pass
GLXVER==5 ;MAJOR LIBRARY VERSION NUMBER
GLXMIN==0 ;MINOR LIBRARY VERSION NUMBER
GLXWHO==0 ;CUSTOMER VERSION
GLXEDT==0 ;INITIALIZE EDIT LEVEL TO ZERO
MODULES ;COMPUTE ACTUAL VALUE FOR GLXEDT
IFN <GLXEDT-GLXLOD>,<PRINTX %GLXLOD doesn't equal sum of module edits>
EXP GLXVRS ;SET VERSION
IFDEF .MCRV.,< .VERSION <GLXVRS>>
;Macro to be invoked by Prolog for Galaxy Library Components
;CHKEDT will compare edit level in Glxver to Edit level in
;Component and Flag any Descrepencies
DEFINE CHKEDT (MOD) <
IF1, <%%EDT==MOD'EDT> ;;SAVE GLXVER EDIT LEVEL FOR PASS 2
IF2, <IFN <%%EDT-MOD'EDT>,<
PRINTX ? Edit Number Doesn't Match GLXVER in GLX'MOD
MOD'$WHO(\MOD'EDT)> ;;SHOW WHO DID IT
MOD'$NOTE ;;SHOW NOTE IF ANY
INTERN MOD'EDT ;;LET LINK CHECK SKEW FOR MODULE
INTERN LODLEV ;;AND LIBRARY LOAD LEVEL
; PURGE %%EDT> ;END IF2
> ;END CHKEDT
IF2 , <PURGE MODULES,GLX,WHO,NOTE>