Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - info/jsys4gm.info
There are no other files named jsys4gm.info in the archive.

File: JSYS4GM	Node: Top	Up: (DIR)

This file contains chapter 3 of the Monitor Calls Reference Manual 
(version 4-Prelimnary), JSYS'S A* to F*, in INFO format.

* Menu:

* ACCES: (JSYS4AF)ACCES, (552) Specifies access to a directory 3-1
* ADBRK: (JSYS4AF)ADBRK, (570) Controls address breaks 3-3
* AIC: (JSYS4AF)AIC, (131) Activates software interrupt channels 3-5
* ALLOC: (JSYS4AF)ALLOC, (520) Allocates a device 3-5
* ARCF: (JSYS4AF)ARCF, (247) Archive/virtual disk operations x-xx
* ASND: (JSYS4AF)ASND, (70) Assigns a device 3-6
* ASNSQ: (JSYS4AF)ASNSQ, (752) Assigns ARPANET special message queue x-xx
* ATNVT: (JSYS4AF)ATNVT, (274) Creates ARPANET Network Virtual Terminal Connection x-xx
* ATACH: (JSYS4AF)ATACH, (116) Attachs a terminal to a job 3-7
* ATI: (JSYS4AF)ATI, (137) Assigns a terminal code to an interrupt channel 3-8
* BIN: (JSYS4AF)BIN, (50) Performs byte input 3-9
* BKJFN: (JSYS4AF)BKJFN, (42) Backs up pointer by one byte 3-10
* BOOT: (JSYS4AF)BOOT, (562) Performs functions required for loading front-end software 3-10
* BOUT: (JSYS4AF)BOUT, (51) Performs byte output 3-14
* CACCT: (JSYS4AF)CACCT, (4) Changes account designator 3-15
* CFIBF: (JSYS4AF)CFIBF, (100) Clears the input buffer 3-15
* CFOBF: (JSYS4AF)CFOBF, (101) Clears the output buffer 3-16
* CFORK: (JSYS4AF)CFORK, (152) Creates an inferior process 3-16
* CHFDB: (JSYS4AF)CHFDB, (64) Changes a File Descriptor Block 3-17
* CHKAC: (JSYS4AF)CHKAC, (521) Checks access to a file 3-18
* CIS: (JSYS4AF)CIS, (141) Clears the interrupt system 3-19
* CLOSF: (JSYS4AF)CLOSF, (22) Closes a file 3-20
* CLZFF: (JSYS4AF)CLZFF, (34) Closes the process' files 3-21
* COMND: (JSYS4AF)COMND, (544) Parses a command 3-22
* CRDIR: (JSYS4AF)CRDIR, (240) Creates, changes, or deletes a directory 3-38
* CRJOB: (JSYS4AF)CRJOB, (2) Creates a job 3-42
* CRLNM: (JSYS4AF)CRLNM, (502) Defines or deletes a logical name 3-47
* CVHST: (JSYS4AF)CVHST, (276) Converts ARPANET host number to primary name x-xx
* CVSKT: (JSYS4AF)CVSKT, (275) Converts ARPANET local socket to absolute form x-xx
* DEBRK: (JSYS4AF)DEBRK, (136) Dismisses current software interrupt 3-48
* DELDF: (JSYS4AF)DELDF, (67) Expunges deleted files 3-48
* DELF: (JSYS4AF)DELF, (26) Deletes files 3-49
* DELNF: (JSYS4AF)DELNF, (317) Retains specified number of generations of a file 3-50
* DEQ: (JSYS4AF)DEQ, (514) Removes request from resource queue 3-51
* DEVST: (JSYS4AF)DEVST, (121) Translates a device designator to a string 3-53
* DFIN: (JSYS4AF)DFIN, (234) Inputs double-precision floating point number 3-53
* DFOUT: (JSYS4AF)DFOUT, (235) Outputs double-precision floating point number 3-54
* DIAG: (JSYS4AF)DIAG, (530) Reserves or releases hardware channels 3-55
* DIBE: (JSYS4AF)DIBE, (212) Dismisses until input buffer is empty 3-56
* DIC: (JSYS4AF)DIC, (133) Deactivates software interrupt channels 3-57
* DIR: (JSYS4AF)DIR, (130) Disables software interrupt system 3-57
* DIRST: (JSYS4AF)DIRST, (41) Translates a directory number to a string 3-58
* DISMS: (JSYS4AF)DISMS, (167) Dismisses the process 3-59
* DOBE: (JSYS4AF)DOBE, (104) Dismisses until output buffer is empty 3-59
* DSKAS: (JSYS4AF)DSKAS, (244) Assigns disk addresses 3-60
* DSKOP: (JSYS4AF)DSKOP, (242) Specifies disk transfers in hardware terms 3-61
* DTACH: (JSYS4AF)DTACH, (115) Detaches a terminal from a job 3-62
* DTI: (JSYS4AF)DTI, (140) Deassigns a terminal code 3-62
* DUMPI: (JSYS4AF)DUMPI, (65) Reads data in unbuffered data mode 3-63
* DUMPO: (JSYS4AF)DUMPO, (66) Writes data in unbuffered data mode 3-64
* DVCHR: (JSYS4AF)DVCHR, (117) Retrieves device characteristics 3-65
* EFACT: (JSYS4AF)EFACT, (5) Makes an entry in the FACT file 3-66
* EIR: (JSYS4AF)EIR, (126) Enables software interrupt system 3-67
* ENQ: (JSYS4AF)ENQ, (513) Places request in resource queue 3-67
* ENQC: (JSYS4AF)ENQC, (515) Obtains status of resource queue 3-73
* EPCAP: (JSYS4AF)EPCAP, (151) Enables process capabilities 3-76
* ERSTR: (JSYS4AF)ERSTR, (11) Converts error number to string 3-77
* ESOUT: (JSYS4AF)ESOUT, (313) Outputs an error string 3-78
* FFFFP: (JSYS4AF)FFFFP, (31) Finds first free page in file 3-78
* FFORK: (JSYS4AF)FFORK, (154) Freezes processes 3-79
* FFUFP: (JSYS4AF)FFUFP, (211) Finds first used page in file 3-79
* FLHST: (JSYS4AF)FLHST, (277) Flushes an ARPANET host x-xx
* FLIN: (JSYS4AF)FLIN, (232) Inputs floating-point number 3-80
* FLOUT: (JSYS4AF)FLOUT, (233) Outputs floating-point number 3-80
* GACCT: (JSYS4GM)GACCT, (546) Gets current account designator 3-81
* GACTF: (JSYS4GM)GACTF, (37) Gets account designator of file 3-81
* GCVEC: (JSYS4GM)GCVEC, (300) Gets entry vector of compatibility package 3-82
* GDSKC: (JSYS4GM)GDSKC, (214) Gets disk count 3-83
* GDSTS: (JSYS4GM)GDSTS, (145) Gets device's status 3-83
* GDVEC: (JSYS4GM)GDVEC, (542) Gets entry vector of RMS 3-84
* GET: (JSYS4GM)GET, (200) Gets a save file 3-84
* GETAB: (JSYS4GM)GETAB, (10) Gets a word from a monitor table 3-85
* GETER: (JSYS4GM)GETER, (12) Returns the last error in a process 3-86
* GETJI: (JSYS4GM)GETJI, (507) Gets specified job information 3-86
* GETNM: (JSYS4GM)GETNM, (177) Returns the program name currently being used 3-87
* GETOK%: (JSYS4GM)GETOK%, (574) Requests access to a protected resource x-xx
* GEVEC: (JSYS4GM)GEVEC, (205) Gets entry vector 3-88
* GFRKH: (JSYS4GM)GFRKH, (164) Gets process handle 3-88
* GFRKS: (JSYS4GM)GFRKS, (166) Gets process structure 3-89
* GFUST: (JSYS4GM)GFUST, (550) Returns author and last writer name strings 3-90
* GIVOK%: (JSYS4GM)GIVOK%, (576) Grants access to a protected resource x-xx
* GJINF: (JSYS4GM)GJINF, (13) Gets current job information 3-91
* GNJFN: (JSYS4GM)GNJFN, (17) Gets the next JFN 3-91
* GPJFN: (JSYS4GM)GPJFN, (206) Gets the primary JFNs 3-92
* GTAD: (JSYS4GM)GTAD, (227) Gets current date and time 3-93
* GTDAL: (JSYS4GM)GTDAL, (305) Gets disk allocation of a directory 3-93
* GTDIR: (JSYS4GM)GTDIR, (241) Gets information of directory entry 3-94
* GTFDB: (JSYS4GM)GTFDB, (63) Gets a File Descriptor Block 3-95
* GTJFN Long Form: (JSYS4GM)GTJFN-long, (20) Gets a JFN Short Form 3-96 Long Form 3-103
* GTJFN Short Form: (JSYS4GM)GTJFN-short, (20) Gets a JFN Short Form 3-96 Long Form 3-103
* GTRPI: (JSYS4GM)GTRPI, (172) Get trap information 3-107
* GTRPW: (JSYS4GM)GTRPW, (171) Gets trap words 3-108
* GTSTS: (JSYS4GM)GTSTS, (24) Gets a file's status 3-109
* GTTYP: (JSYS4GM)GTTYP, (303) Gets the terminal type number 3-109
* HALTF: (JSYS4GM)HALTF, (170) Halts the current process 3-110
* HFORK: (JSYS4GM)HFORK, (162) Halts a process 3-110
* HPTIM: (JSYS4GM)HPTIM, (501) Returns values of high precision clocks 3-111
* HSYS: (JSYS4GM)HSYS, (307) Halts the system 3-111
* IDCNV: (JSYS4GM)IDCNV, (223) Inputs date and time conversion 3-112
* IDTIM: (JSYS4GM)IDTIM, (221) Inputs date and time 3-113
* IDTNC: (JSYS4GM)IDTNC, (231) Inputs date/time without converting 3-115
* IIC: (JSYS4GM)IIC, (132) Initiates software interrupts on specified channels 3-116
* INLNM: (JSYS4GM)INLNM, (503) Lists job's logical names 3-117
* JFNS: (JSYS4GM)JFNS, (30) Translates a JFN to a string 3-117
* KFORK: (JSYS4GM)KFORK, (153) Kills a process 3-119
* LGOUT: (JSYS4GM)LGOUT, (3) Kills a job 3-120
* LNMST: (JSYS4GM)LNMST, (504) Converts a logical name to a string 3-121
* LOGIN: (JSYS4GM)LOGIN, (1) Logs in a job 3-121
* LPINI: (JSYS4GM)LPINI, (547) Loads VFU or translation RAM 3-122
* MRECV: (JSYS4GM)MRECV, (511) Receives an IPCF message 3-123
* MSEND: (JSYS4GM)MSEND, (510) Sends an IPCF message 3-125
* MSFRK: (JSYS4GM)MSFRK, (312) Starts a process in monitor mode 3-129
* MSTR: (JSYS4GM)MSTR, (555) Performs structure-dependent functions 3-129
* MTALN: (JSYS4GM)MTALN, (774) Associates magnetic tape drive with logical unit number 3-142
* MTOPR: (JSYS4GM)MTOPR, (77) Performs device-dependent functions 3-142
* MTU%: (JSYS4GM)MTU%, (600) Performs various functions for MT: devices x-xx
* MUTIL: (JSYS4GM)MUTIL, (512) Performs IPCF control functions 3-153
* NIN: (JSYS4NR)NIN, (225) Inputs an integer number 3-158
* NODE: (JSYS4NR)NODE, (567) Performs network utility functions 3-158
* NOUT: (JSYS4NR)NOUT, (224) Outputs an integer number 3-158
* ODCNV: (JSYS4NR)ODCNV, (222) Outputs date and time conversion 3-159
* ODTIM: (JSYS4NR)ODTIM, (220) Outputs date and time 3-160
* ODTNC: (JSYS4NR)ODTNC, (230) Outputs date/time without converting 3-162
* OPENF: (JSYS4NR)OPENF, (21) Opens a file 3-163
* PBIN: (JSYS4NR)PBIN, (73) Inputs the next byte 3-166
* PBOUT: (JSYS4NR)PBOUT, (74) Outputs the next byte 3-167
* PEEK: (JSYS4NR)PEEK, (311) Obtains monitor data 3-167
* PLOCK: (JSYS4NR)PLOCK, (561) Locks physical pages 3-168
* PMAP: (JSYS4NR)PMAP, (56) Maps pages 3-168.1
* PMCTL: (JSYS4NR)PMCTL, (560) Controls physical memory 3-171
* PPNST: (JSYS4NR)PPNST, (557) Translates project-programmer number to string 3-173
* PRARG: (JSYS4NR)PRARG, (545) Reads/sets process argument block 3-174
* PSOUT: (JSYS4NR)PSOUT, (76) Outputs a string 3-174
* RCDIR: (JSYS4NR)RCDIR, (553) Translates string to directory number 3-175
* RCM: (JSYS4NR)RCM, (134) Reads the channel word mask 3-178
* RCVIM: (JSYS4NR)RCVIM, (751) Retrieves message from ARPANET special message queue x-xx
* RCVOK%: (JSYS4NR)RCVOK%, (575) Retrieves access request from GETOK queue x-xx
* RCUSR: (JSYS4NR)RCUSR, (554) Translates string to user number 3-179
* RDTTY: (JSYS4NR)RDTTY, (523) Reads data from primary input designator 3-180
* RELD: (JSYS4NR)RELD, (71) Releases a device 3-182
* RELSQ: (JSYS4NR)RELSQ, (753) Deassigns ARPANET special message queue x-xx
* RESET: (JSYS4NR)RESET, (147) Resets/initializes the current process 3-183
* RFACS: (JSYS4NR)RFACS, (161) Reads process' ACs 3-183
* RFBSZ: (JSYS4NR)RFBSZ, (45) Reads files's byte size 3-184
* RFCOC: (JSYS4NR)RFCOC, (112) Reads file's control character output 3-184
* RFMOD: (JSYS4NR)RFMOD, (107) Reads a file's mode 3-185
* RFORK: (JSYS4NR)RFORK, (155) Resumes a process 3-185
* RFPOS: (JSYS4NR)RFPOS, (111) Reads terminal's position 3-186
* RFPTR: (JSYS4NR)RFPTR, (43) Reads file's pointer position 3-187
* RFRKH: (JSYS4NR)RFRKH, (165) Releases a process handle 3-187
* RFSTS: (JSYS4NR)RFSTS, (156) Reads a process' status 3-188
* RFTAD: (JSYS4NR)RFTAD, (533) Reads file's time and dates 3-189
* RIN: (JSYS4NR)RIN, (54) Performs random input 3-190
* RIR: (JSYS4NR)RIR, (144) Reads software interrupt table addresses 3-191
* RIRCM: (JSYS4NR)RIRCM, (143) Reads inferior reserved channel mask 3-191
* RLJFN: (JSYS4NR)RLJFN, (23) Releases JFNs 3-192
* RMAP: (JSYS4NR)RMAP, (61) Obtains a handle on a page 3-192
* RNAMF: (JSYS4NR)RNAMF, (35) Renames a file 3-193
* ROUT: (JSYS4NR)ROUT, (55) Performs random output 3-194
* RPACS: (JSYS4NR)RPACS, (57) Reads a page's accessibility 3-195
* RPCAP: (JSYS4NR)RPCAP, (150) Reads process capabilities 3-196
* RSCAN: (JSYS4NR)RSCAN, (500) Accepts a new string or uses the last string as input 3-196

* RTFRK: (JSYS4NR)RTFRK, (322) Returns the handle of a process suspended because of a monitor call intercept 3-198
* RTIW: (JSYS4NR)RTIW, (173) Reads terminal interrupt word 3-198
* RUNTM: (JSYS4NR)RUNTM, (15) Returns runtime of process or job 3-199
* RWM: (JSYS4NR)RWM, (135) Reads waiting channel interrupt word mask 3-199
* RWSET: (JSYS4NR)RWSET, (176) Releases the working set 3-200
* SACTF: (JSYS4SZ)SACTF, (62) Sets account designator of file 3-200
* SAVE: (JSYS4SZ)SAVE, (202) Saves a file as nonsharable 3-201
* SCTTY: (JSYS4SZ)SCTTY, (324) Changes controlling terminal 3-202
* SCVEC: (JSYS4SZ)SCVEC, (301) Sets entry vector of compatibility package 3-203
* SDSTS: (JSYS4SZ)SDSTS, (146) Sets device's status 3-204
* SDVEC: (JSYS4SZ)SDVEC, (543) Sets entry vector of RMS 3-205
* SETER: (JSYS4SZ)SETER, (336) Sets the last error in a process 3-206
* SETJB: (JSYS4SZ)SETJB, (541) Sets job parameters 3-206
* SETNM: (JSYS4SZ)SETNM, (210) Sets program name 3-208
* SETSN: (JSYS4SZ)SETSN, (506) Sets system name for a process 3-208
* SEVEC: (JSYS4SZ)SEVEC, (204) Sets entry vector 3-208
* SFACS: (JSYS4SZ)SFACS, (160) Sets process' ACs 3-209
* SFBSZ: (JSYS4SZ)SFBSZ, (46) Sets file's byte size 3-209
* SFCOC: (JSYS4SZ)SFCOC, (113) Sets file's control character output 3-210
* SFMOD: (JSYS4SZ)SFMOD, (110) Sets a file's mode 3-211
* SFORK: (JSYS4SZ)SFORK, (157) Starts a process 3-211
* SFPOS: (JSYS4SZ)SFPOS, (526) Sets terminal's position 3-212
* SFPTR: (JSYS4SZ)SFPTR, (27) Sets file's pointer position 3-212
* SFRKV: (JSYS4SZ)SFRKV, (201) Starts process using its entry vector 3-213
* SFTAD: (JSYS4SZ)SFTAD, (534) Sets file's time and dates 3-214
* SFUST: (JSYS4SZ)SFUST, (551) Sets author and last writer name strings 3-215
* SIBE: (JSYS4SZ)SIBE, (102) Skips if input buffer is empty 3-216
* SIN: (JSYS4SZ)SIN, (52) Performs string input 3-216
* SINM: (JSYS4SZ)SINM, (571) Reads data from block-mode terminals x-xx
* SINR: (JSYS4SZ)SINR, (531) Performs record input 3-218
* SIR: (JSYS4SZ)SIR, (125) Sets software interrupt table addresses 3-219
* SIRCM: (JSYS4SZ)SIRCM, (142) Sets inferior reserved channel mask 3-220
* SIZEF: (JSYS4SZ)SIZEF, (36) Gets the size of a file 3-221
* SJPRI: (JSYS4SZ)SJPRI, (245) Sets job's priority 3-221
* SKED%: (JSYS4SZ)SKED%, (577) Performs services relating to the class scheduler x-xx
* SKPIR: (JSYS4SZ)SKPIR, (127) Tests the state of the software interrupt system 3-222
* SNDIM: (JSYS4SZ)SNDIM, (750) Sends a message to ARPANET special message queue x-xx
* SMON: (JSYS4SZ)SMON, (6) Sets monitor flags 3-222
* SNOOP: (JSYS4SZ)SNOOP, (516) Performs system analysis 3-223

* SOBE: (JSYS4SZ)SOBE, (103) Skips if output buffer is empty 3-227
* SOBF: (JSYS4SZ)SOBF, (175) Skips if output buffer is full 3-227
* SOUT: (JSYS4SZ)SOUT, (53) Performs string output 3-228
* SOUTM: (JSYS4SZ)SOUTM, (572) Writes data to block mode terminals x-xx
* SOUTR: (JSYS4SZ)SOUTR, (532) Performs record output 3-229
* SPACS: (JSYS4SZ)SPACS, (60) Sets a page's accessibility 3-230
* SPJFN: (JSYS4SZ)SPJFN, (207) Sets the primary JFNs 3-231
* SPLFK: (JSYS4SZ)SPLFK, (314) Splices a process structure 3-232
* SPOOL: (JSYS4SZ)SPOOL, (517) Defines and initializes input spooling 3-232
* SPRIW: (JSYS4SZ)SPRIW, (243) Sets the priority word 3-234
* SSAVE: (JSYS4SZ)SSAVE, (203) Saves a file as sharable 3-235
* STAD: (JSYS4SZ)STAD, (226) Sets system date and time 3-236
* STCMP: (JSYS4SZ)STCMP, (540) Compares two strings 3-237
* STDEV: (JSYS4SZ)STDEV, (120) Translates string to device designator 3-237
* STI: (JSYS4SZ)STI, (114) Simulates terminal input 3-238
* STIW: (JSYS4SZ)STIW, (174) Sets terminal interrupt word 3-239
* STO: (JSYS4SZ)STO, (246) Simulates terminal output 3-240
* STPAR: (JSYS4SZ)STPAR, (217) Sets terminal parameters 3-241
* STPPN: (JSYS4SZ)STPPN, (556) Translates string to project-programmer number 3-242
* STSTS: (JSYS4SZ)STSTS, (25) Sets a file's status 3-242
* STTYP: (JSYS4SZ)STTYP, (302) Sets the terminal type number 3-243
* SWJFN: (JSYS4SZ)SWJFN, (47) Swaps two JFNs 3-244
* SWTRP%: (JSYS4SZ)SWTRP%, (573) Traps for arithmetic underflow or overflow conditions x-xx
* SYERR: (JSYS4SZ)SYERR, (527) Writes data to the system error file 3-244
* SYSGT: (JSYS4SZ)SYSGT, (16) Returns information for a system table 3-245
* TBADD: (JSYS4SZ)TBADD, (536) Adds entry to command table 3-245
* TBDEL: (JSYS4SZ)TBDEL, (535) Deletes entry from command table 3-246
* TBLUK: (JSYS4SZ)TBLUK, (537) Looks up entry in command table 3-246
* TEXTI: (JSYS4SZ)TEXTI, (524) Reads input from a terminal or a file 3-248
* TFORK: (JSYS4SZ)TFORK, (321) Sets and removes monitor call intercepts 3-252
* THIBR: (JSYS4SZ)THIBR, (770) Blocks the current job 3-254
* TIME: (JSYS4SZ)TIME, (14) Returns time system has been up 3-254
* TIMER: (JSYS4SZ)TIMER, (522) Sets time limit for a job 3-255
* TLINK: (JSYS4SZ)TLINK, (216) Controls terminal linking 3-256
* TMON: (JSYS4SZ)TMON, (7) Tests monitor flags 3-258
* TTMSG: (JSYS4SZ)TTMSG, (775) Sends a message to a terminal 3-259
* TWAKE: (JSYS4SZ)TWAKE, (771) Wakes a specified job 3-259
* UFPGS: (JSYS4SZ)UFPGS, (525) Updates file's pages 3-260
* USAGE: (JSYS4SZ)USAGE, (564) Writes entries into the accounting data file 3-260
* USRIO: (JSYS4SZ)USRIO, (310) Places program in user I/O mode 3-262
* UTEST: (JSYS4SZ)UTEST, (563) Test monitor routines 3-263
* UTFRK: (JSYS4SZ)UTFRK, (323) Resumes a process suspended because of a monitor call intercept 3-264
* VACCT: (JSYS4SZ)VACCT, (566) Validates an account 3-265
* WAIT: (JSYS4SZ)WAIT, (306) Dismisses process until interrupt occurs 3-266
* WFORK: (JSYS4SZ)WFORK, (163) Waits for processes to terminate 3-266
* WILD%: (JSYS4SZ)WILD%, (565) Compares wild and non-wild strings x-xx


Node: GACCT	Previous: (JSYS4AF)FLOUT	Next: GACTF	Up: Top
			     GACCT     JSYS 546

   Returns the current account for the specified job.

   RESTRICTIONS:    some  functions  require   Confidential   Information
		    Access, WHEEL, or OPERATOR capabilities enabled.
   ACCEPTS IN AC1:  job number, or -1 for current job

	      AC2:  byte pointer to  string  where  alphanumeric  account
		    designator (if any) is to be stored

   RETURNS     +1:  always, with updated pointer to account string in AC2

   The GACCT monitor call  requires  the  process  to  have  Confidential
   Information	Access,  WHEEL,  or  OPERATOR  capability  enabled if the
   specified job number is not for the current job.

   The CACCT monitor call can be used  to  change  the	account  for  the
   current job.

   Generates an illegal instruction interrupt on error conditions below.

   GACCT ERROR MNEMONICS:

   GACCX1:   invalid job number

   GACCX2:   no such job

   GACCX3:   Confidential Information Access capability required
   (GACTF)
   


Node: GACTF	Previous: GACCT	Next: GCVEC	Up: Top
			     GACTF     JSYS 37

   Returns the account designator to which the specified  file	is  being
   charged.

   ACCEPTS IN AC1:  JFN

	      AC2:  byte pointer to  string  in  caller's  address  space
		    where account string (if any) is to be stored

   RETURNS     +1:  failure, error code in AC1

	       +2:  success,  account  string  returned,  updated  string
		    pointer in AC2

	       +3:  success, 5B2+account number returned in AC2

   The SACTF monitor call can be used to set the  account  designator  to
   which the file is to be charged.

   GACTF ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX7:    JFN cannot refer to output wildcard designators

   GACTX1:   file is not on multiple-directory device

   GACTX2:   file expunged

   GACTX3:   internal format of directory is incorrect


Node: GCVEC	Previous: GACTF	Next: GDSKC	Up: Top
			     GCVEC     JSYS 300

   Returns the entry vector and the UUO locations for  the  compatibility
   package.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, entry vector length  in  the  left	half  and
		    entry  vector  address  in the right half of AC2, and
		    UUO location in the left half and PC location in  the
		    right half of AC3.
   (GCVEC)
   

   If use of the compatibility package has been disabled, AC2 contains -1
   on return.  If the compatibility package is not available, AC2 and AC3
   contain 0 on return.

   The SCVEC monitor call can be used to set the  entry  vector  for  the
   compatibility package.

   GCVEC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle


Node: GDSKC	Previous: GCVEC	Next: GDSTS	Up: Top
			     GDSKC     JSYS 214

   Returns  information  on  the  given  structure's   disk   usage   and
   availability.  This call is useful in determining storage usage.

   ACCEPTS IN AC1:  device  designator,  must  be  a  designator  for	a
		    structure.	If the generic designator DSK:	is given,
		    the connected structure is assumed.

   RETURNS     +1:  always, number of pages in use in AC1, and number  of
		    pages not in use in AC2.

   GDSKC ERROR MNEMONICS:

   DEVX1:    invalid device designator


Node: GDSTS	Previous: GDSKC	Next: GDVEC	Up: Top
			     GDSTS     JSYS 145

  Returns the status of a device for user I/O.  (Refer  to  Section  2.4
  for	the descriptions of the status bits.) This call requires that the
  device be opened.

  Also, this call will not return the status of  a  device  for  monitor
  I/O.   For  example, if GDSTS is executed after a tape mark is written
  (a monitor I/O operation) the GDSTS call will return the status of the
  last user record written.

   ACCEPTS IN AC1:  JFN

   RETURNS     +1:  always, device-dependent  status  bits  in	AC2,  and
   (GDSTS)
   

		    device-dependent  information  in  AC3.  For magnetic
		    tape, AC3 contains the positive count  of  number  of
		    hardware  bytes actually transferred in the left half
		    and zero in the right half.  For  the  line  printer,
		    AC3  contains  the	last  value  of  the page counter
		    register, or -1 if there is no page counter register.

  For ARPANET, the call/return sequence is:

  ACCEPTS IN AC1:  JFN

  RETURNS     +1:  always,  for  network  connection-files,  the  values
		    returned are:

	      AC2:  connection state (octal values 01 thru 16) in bits	0
		    thru 3

	      AC3:  foreign host number (octal)

	      AC4:  foreign socket number (octal)

   The GDSTS call is a no-op for devices without device-dependent  status
   bits.

   The SDSTS monitor call can be used  to  set	the  status  bits  for	a
   particular device.

   Generates an illegal instruction interrupt on error conditions below.

   GDSTS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open


Node: GDVEC	Previous: GDSTS	Next: GET	Up: Top
			     GDVEC     JSYS 542

   Returns the entry vector for the Record Management System (RMS).

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, entry vector length in the left half and  the
		    entry vector address in the right half of AC2.
   (GDVEC)
   

   The SDVEC monitor call can be used to set the entry vector for RMS.

   Generates an illegal instruction interrupt on error conditions below.

   GDVEC ERROR MNEMONICS:

   ILINS5:   RMS facility is not available


Node: GET	Previous: GDVEC	Next: GETAB	Up: Top
			      GET     JSYS 200

   Gets  a  save  file,  copying  or  mapping  it  into  the  process  as
   appropriate,  and  updates  the  process'  entry vector from the file.
   This call can be executed for  either  sharable  or	nonsharable  save
   files  that	were  created  with  the  SSAVE  or  SAVE  monitor  call,
   respectively.  The file must not be open.

   ACCEPTS IN AC1:  process handle in left half, and flag bits and a  JFN
		    in right half.

	      AC2:  lowest process page number in left half, and  highest
		    process page number in right half.	This controls the
		    parts of memory that are loaded when GT%ADR is on.

   RETURNS     +1:  always

   The defined flag bits in AC1 are as follows:

      Bit    Symbol		      Meaning

      19     GT%ADR	    Use the memory address limits given  in  AC2.
			    If this bit is off, all existing pages of the
			    file (according to its directory) are mapped.

      20     GT%PRL	    Preload the pages being  mapped  (i.e.,  move
			    the  pages	immediately.) If this bit is off,
			    the pages are read in from the disk when they
			    are referenced.

      21     GT%NOV	    Do not overlay existing pages and  do  return
			    an error.  If this bit is off, existing pages
			    will be overlaid.

      22     GT%FL2	    Read additional flag bits  specified  in  AC3
			    (reserved for future development).

   The JFN is given in bits 24 through 35 of AC1.

  The following table demonstrates how  mapping  occurs  when	different
  page  numbers  are supplied in AC2.	A dash indicates that a particlar
   (GET)
   

  save file page was not mapped into the process.  Also, note that  page
  0 of the save file (the directory page) is never mapped.

	     AC2	 File	 Process
	     Contents	 Page	 Page

	     0,,4	 0	 -

			 1	 0

			 2	 1

			 3	 2

			 4	 3

			 5	 4

	     2,,4	 0	 -

			 1	 -

			 2	 -

			 3	 2

			 4	 3

			 5	 4

   When the GET call is executed for a sharable save file, pages from the
   file  are  mapped into pages in the process, and the previous contents
   of the process' page are overwritten.  If the file contains	data  for
   only  a  portion  of  the  process' page, the remainder of the page is
   zeroed.  Pages of the process not used by the file are unchanged.

   When the GET call is executed for a nonsharable save file,  individual
   words  of  the  file  are written into the process.	Since these files
   usually do not have words containing all zeros, a  GET  call  executed
   for a nonsharable file never clears memory.

   The GET call never loads the accumulators.

   Can cause several  software	interrupts  or	process  terminations  on
   certain file conditions.

  A GET call performed on an execute-only process is illegal unless  the
  process  is	.FHSLF.  If the JFN specified in the GET call refers to a
  file for which the user only has execute-only access, then the process
  specified must be a virgin process.
   (GET)
   

  Generates an illegal instruction interrupt on error conditions below.

   GET ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

  FRKHX8:   illegal to manipulate an execute-only process

   GETX1:    invalid save file format

   GETX2:    system Special Pages Table full

   GETX3:    illegal to overlay existing pages

   SSAVX1:   illegal to save files on this device

   OPNX2:    file does not exist

   All file errors can occur.


Node: GETAB	Previous: GET	Next: GETER	Up: Top
			     GETAB     JSYS 10

   Returns a word from the specified system  table.   (Refer  to  Section
   2.3.2.)

   ACCEPTS IN AC1:  index into table in the left half, and  table  number
		    in the right half

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, 36-bit word from the specified table in AC1

   If -1 is given as the index, this call returns  the	negative  of  the
   length of the specified table.

   The table number can be obtained with the SYSGT  call.   However,  the
   recommended	procedure is to use the symbol definition from the MONSYM
   file for the table number.  (Refer to Appendix A for the system  table
   definitions.)

   The GETAB monitor call requires the process to have	GETAB  capability
   available, but not enabled (SC%GTB in the process capability word).

   Note: The  following tables  are  not a  complete  list of  all  GETAB
   tables.  These are ones  used for the Ethernet  and are not  otherwise
   readily available

     .PUPPA==:62		; PUP PARAMETER TABLE
     .PUPRO==:63		; HOST NUMBER AND ROUTING TABLE
     .PUPLS==:64		; LOCAL SOCKET NUMBERS,
     .PUPLN==:65		; LOCAL NET/HOST NUMBERS, BSP LINKAGE
     .PUPFP==:66		; FOREIGN PORTS
     .PUPSW==:67		; PUP STATUS WORD
     .PUPBU==:70		; STORAGE REGION FOR PUP DATA
     .PUSTA==:71		; STATISTCS
     .PUPBG==:72		; PUP BUG COUNT HASH TABLE
     .NVTPU==:73		; PUP NVT INFO (TTYPUP WORD IN DYNAMIC DATA)

   GETAB ERROR MNEMONICS:

   GTABX1:   invalid table number

   GTABX2:   invalid table index

   GTABX3:   GETAB privileges required


Node: GETER	Previous: GETAB	Next: GETJI	Up: Top
			     GETER     JSYS 12
   (GETER)
   

   Returns the most recent error condition encountered in a process.  The
   most recent error is always saved in the Process Storage Block.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, process handle in left half of AC2	and  most
		    recent error condition in right half of AC2.

   The SETER monitor call can be used to set  the  last  error	condition
   encountered in a process.

   GETER ERROR MNEMONICS:

   LSTRX1:  process has not encountered any errors


Node: GETJI	Previous: GETER	Next: GETNM	Up: Top
			     GETJI     JSYS 507

   Returns information for the specified job.

   ACCEPTS IN AC1:  job number, or -1  for  current  job,  or  400000+TTY
		    number

	      AC2:  negative of the length of the block in which to store
		    the  information  in the left half, and the beginning
		    address of the block in the right half

	      AC3:  word number (offset) of first entry desired from  job
		    information table

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, with updated pointer in  AC2  and	requested
		    entries stored in specified block

   When a terminal designator is given in AC1, the  information  returned
   is for the job running on that terminal.

   The system begins copying the entries from the job information  table,
   starting  with  the offset given in AC3, into the address specified in
   the right half of AC2.  The number of  entries  copied  is  minus  the
   number given in the left half of AC2 or is the number remaining in the
   table, whichever is smaller.  Because AC2 is updated on  a  successful
   return, it cannot be used for the returned data.

   The format of the job information table is as follows:

	Word	  Symbol	 Meaning

	 0	  .JIJNO    Job number
	 1	  .JITNO    Job's terminal number (-1 means  the  job  is
   (GETJI)
   

			    detached)
	 2	  .JIUNO    Job's user number
	 3	  .JIDNO    Job's connected directory number
	 4	  .JISNM    Subsystem name (SIXBIT)
	 5	  .JIPNM    Program name (SIXBIT)
	 6	  .JIRT     Run time
	 7	  .JICPJ    Controlling PTY job number (-1 means the  job
			    is not controlled by a PTY)
	 10	  .JIRTL    Run time limit (as set by the TIMER call)
			    A zero means no time limit is in effect.
	 11	  .JIBAT    Job is controlled by Batch, if -1 (as set  by
			    the MTOPR call)
	 12	  .JIDEN    Default for magnetic tape density (as set  by
			    the SETJB call)
	 13	  .JIPAR    Default for magnetic tape parity (as  set  by
			    the SETJB call)
	 14	  .JIDM     Default for magnetic tape data mode  (as  set
			    by the SETJB call)
	 15	  .JIRS     Default number for magnetic tape record  size
			    in bytes (as set by the SETJB call)
	 16	  .JIDFS    Deferred spooling in effect, if 1 (as set  by
			    the SETJB call)
	 17	  .JILNO    Job's logged-in directory number
	 20	  .JISRM    Byte pointer to area to receive job's session
			    remark.  This pointer is supplied by the user
			    before issuing the GETJI call.
	 21	  .JILLN    Job's last login date and time
	 22	  .JISRT    Job CPU time at start of  last  session.   To
			    compute  CPU  time for this session, subtract
			    .JISRT  value  from  current  job  CPU   time
			    (.JIRT).
	 23	  .JISCT    Console time at start of  last  session.   To
			    compute  the  console  time for this session,
			    subtract .JISCT value  from  current  console
			    time (obtainable with RUNTM monitor call).
	 24	  .JIT20    Indicates if job is at EXEC level or  program
			    level.  (-1 = EXEC, 0 = program)
	 25	  .JISTM    Returns  time  when  job  was  created  (when
			    CTRL/C was performed).  -1 is returned if the
			    system time and date were not  set	when  the
			    job started.

   GETJI ERROR MNEMONICS:

   GTJIX1:   invalid index

   GTJIX2:   invalid terminal line number

   GTJIX3:   invalid job number

   GTJIX4:   no such job
   (GETNM)
   


Node: GETNM	Previous: GETJI	Next: GETOK%	Up: Top
			     GETNM     JSYS 177

   Returns the name of the program currently being used by the job.  This
   name  will  have  been  declared  previously  with  the SETNM or SETSN
   monitor call.

   RETURNS     +1:  always, SIXBIT name of program in AC1


Node: GETOK%	Previous: GETNM	Next: GEVEC	Up: Top
			    GETOK%     JSYS 574

  Requests  approval  for  the  specified  system  resource   from   the
  installation's access-control program.

  ACCEPTS IN AC1:  function code

	      AC2:  address of argument block (if required)

	      AC3:  length of the argument block (the maximum permissable
		    length is specified by symbol .GOKMC)

	      AC4:  requested for job

  RETURNS     +1:  always, 0 or 1B18 set to zero in first word of status
		    block if access granted

		    1B18 set to one +  error  number  in  first  word  of
		    status block if request denied

		    Function Codes:

	Code	  Symbol		       Meaning
   (GETOK%)
   

	 1	  .GOASD    Assign a device

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Error block address
			     1	   .GEADD   Device  designator	(returned
					    by STDEV JSYS)

	 2	  .GOCAP    Enable capabilities  (right  half  privileges
			    only)

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GENCP   New capability word

	 3	  .GOCJB    Allow CRJOB JSYS to be executed

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address

	 4	  .GOLOG    Allow LOGIN

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GELUN   User number

	 5	  .GOCFK    Allow CFORK (only done after Nth fork)

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEFCT   Number of  forks  already  in
					    use by job

	 6	  .GOTBR    Set terminal baud rate

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GELIN   Line number
   (GETOK%)
   

			     2	   .GESPD   Line speed

	 7	  .GOLGO    Allow logout when the directory is over quota

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEUSD   Number of pages used
			     2	   .GEQUO   Quota
			     3	   .GERLG   Job requesting logout  or  -1
					    for this job

	 10	  .GOENQ    Allow setting of ENQ quota

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEEQU   Desired quota
			     2	   .GEEUN   Job number request is for  or
					    -1 for this job

	 11	  .GOCRD    Allow directory creation

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address

	 12	  .GOSMT    Allow MOUNT of structure

			    Must be given once	to  increment  the  mount
			    count and once to decrement the mount count.

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GESDE   Device  designator	(returned
					    by STDEV JSYS)

	 13	  .GOMDD    Allow entry to MDDT

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address

	 14	  .GOCLS    Verify scheduler class assignment for a job
   (GETOK%)
   

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEJOB   Job number
			     2	   .GECLS   Class desired

	 15	  .GLCL0    Set scheduler class at login

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEJOB   Job
			     2	   .GECLS   Class desired

	 16	  .GOMTA    MT:  access request

			    Argument block (user specified):

			    Word   Symbol   Contents

			     0	   .GEERB   Status block address
			     1	   .GEACC   Access code from HDR1 label
			     2	   .GEUSN   User number
			     3	   .GEUNT   MT:  unit number
			     4	   .GEACD   Desired access bits
			     5	   .GELTP   Label type

	 400000+n Customer reserved functions

  Status block format (returned):

	Word 0: 	    1B18 + Error number if access denied
			    or zero if access granted

			    Note that some  access-control  programs  may
			    return  a  value  in word 0 even if access is
			    granted.  In that  case,  1B18  set  to  zero
			    indicates access was granted.

	Word 1: 	    Byte  pointer  (optional,  depending  on  the
			    particular access-control program)

	Word 2: 	    Byte  count  (optional,  depending	 on   the
			    particular access-control program)

  The format of the status block for user-defined functions will  depend
  on the design of the particular access-control program.

  Generates an illegal instruction interrupt on error conditions below.
   (GETOK%)
   

  GETOK% ERROR MNEMONICS:

  ARGX04:   Argument block too small

  ARGX05:   Argument block too long

  MONX01:   Insufficient system resources

  GOKER1:   Illegal function

  GOKER2:   Request denied by Access Control Facility

  GOKER3:   Access control job already running


Node: GEVEC	Previous: GETOK%	Next: GFRKH	Up: Top
			     GEVEC     JSYS 205

   Returns the entry vector of the specified process.  (Refer to  Section
   2.7.3.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, specified process' entry vector word in AC2

   The SEVEC monitor call can be used to set the process' entry vector.

   Generates an illegal instruction interrupt on error conditions below.

   GEVEC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle


Node: GFRKH	Previous: GEVEC	Next: GFRKS	Up: Top
			     GFRKH     JSYS 164

   Gets a handle on a process that currently is not known to  the  caller
   but is known to another process.  The handle returned can then be used
   by the caller to refer to the desired process.

   ACCEPTS IN AC1:  process handle of the process that	knows  about  the
		    desired  process  and  that currently has a handle on
		    it.

	      AC2:  process handle used by the process in AC1 to refer to
		    the  desired process.  This handle must be a relative
		    handle (i.e., in the range 400000 to 400777) and must
		    refer to an existing process.
   (GFRKH)
   

   RETURNS     +1:  failure, with error code in AC1.

	       +2:  success, with a handle in AC1 that is usable  by  the
		    caller  to refer to the desired process.  This handle
		    is not the same as the one given  in  AC2  (i.e.,  is
		    different  from the one used by the process in AC1 to
		    refer to the desired process).

   Generates an illegal instruction interrupt on error conditions below.

   GFRKH ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX6:   all relative process handles in use

   GFRKX1:   invalid process handle


Node: GFRKS	Previous: GFRKH	Next: GFUST	Up: Top
			     GFRKS     JSYS 166

   Returns the process structure of the current job from a given  process
   downward.

   ACCEPTS IN AC1:  process handle of the starting point

	      AC2:  B0(GF%GFH) return relative process handles	for  each
			       process

		    B1(GF%GFS) return status for each process

	      AC3:  negative of the word count of the block in	which  to
		    store the structure in the left half, and the address
		    of the first word of the block in the right half

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, all process handles are returned

   The handle of  the  current	process  is  always  returned  as  .FHSLF
   regardless  of  the setting of GF%GFH.  Any user can specify a process
   handle of .FHTOP (i.e., start with the top level  process).	 However,
   the	user  must  have  WHEEL or OPERATOR capability enabled to specify
   .FHTOP and set GF%GFH;  otherwise, the setting of GF%GFH is ignored.

				Table format
   (GFRKS)
   

		 **********************************************
		 *		      * 		      *
   3 words	 *	parallel      *      inferior	      *
   per entry	 *	pointer       *      pointer	      *
		 *		      * 		      *
		 **********************************************
		 *		      * 		      *
		 *	superior      * process handle	      *
		 *	pointer       * or 0 if GF%GFH	      *
		 *		      * was off, or when no   *
		 *		      * more process handles  *
		 *		      * are left for the      *
		 *		      * process 	      *
		 *		      * 		      *
		 **********************************************
		 *					      *
   This word is  *		 status word		      *
   -1 if GF%GFS  *					      *
   is off.	 *					      *
		 **********************************************

				    NOTE

		  Pointers in table are  memory  addresses
		  of  other table entries, or 0 if no such
		  structure.

   The execution of the GFRKS call will be terminated before  the  entire
   structure  has  been  returned if either all handles are in use or the
   block in which to store the structure is too small.	If this  happens,
   as  much of the structure as possible is returned before an error code
   is generated.

   Generates an illegal instruction interrupt on error conditions below.

   GFRKS ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   FRKHX6:   all relative process handles in use

   GFKSX1:   area too small to hold process structure


Node: GFUST	Previous: GFRKS	Next: GIVOK%	Up: Top
			     GFUST     JSYS 550
   (GFUST)
   

   Returns the name of either the author of the file or the user who last
   wrote to the file.

   ACCEPTS IN AC1:  function code in the left half, and JFN of	the  file
		    in the right half

	      AC2:  pointer to the string in which to store the name

   RETURNS     +1:  always, with an updated string pointer in AC2

   The defined functions are as follows:

   Code      Symbol		      Meaning

     0	     .GFAUT    Return the name of the author of the file.

     1	     .GFLWR    Return the name of the user who last wrote to  the
		       file.

   The SFUST monitor call can be used to  set  the  name  of  either  the
   author of the file or the user who last wrote to the file.

   Generates an illegal instruction interrupt on error conditions below.

   GFUST ERROR MNEMONICS:

   GFUSX1:   invalid function

   GFUSX2:   insufficient system resources

   GFUSX3:   file expunged

   GFUSX4:   internal format of directory is incorrect

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open

   DESX7:    JFN cannot refer to output wildcard designators

   DESX8:    file is not on disk

   DESX10:   structure is dismounted

   DELFX6:   internal format of directory is incorrect

   DIRX2:    insufficient system resources

   DIRX3:    internal format of directory is incorrect
   (GIVOK%)
   


Node: GIVOK%	Previous: GFUST	Next: GJINF	Up: Top
			    GIVOK%     JSYS 576

  Allows  a  privileged   access-control   program   (written	 by   the
  installation)  to  allow  or  disallow  a  user  program's access to a
  specified system resource.

  RESTRICTIONS:    Requires enabled WHEEL or OPERATOR capability.

  ACCEPTS IN AC1:  Request number (from RCVOK% message)

	      AC2:  0 or 1B18 set to zero = request allowed
		    1B18 + error number = request denied

	      AC3:  pointer to ASCIZ string (maximum of 80 characters) or
		    0.	 This  string  is an error message or information
		    message to be returned to the user.

  RETURNS     +1:  always

  Returns an illegal instruction interrupt on error conditions below.

  GIVOK% ERROR MNEMONICS:

  CAPX1:    wheel or operator capability required

	     GOKER3:  Access control job already running


Node: GJINF	Previous: GIVOK%	Next: GNJFN	Up: Top
			     GJINF     JSYS 13

	     Returns information pertaining to the current job.

   RETURNS     +1:  always, with

		    AC1 containing the user number under which the job is
		    running.

		    AC2 containing the directory number to which the  job
		    is connected.

		    AC3 containing the job number.

		    AC4 containing the terminal number	attached  to  the
		    job, or -1 if no terminal is attached to job.


Node: GNJFN	Previous: GJINF	Next: GPJFN	Up: Top
			     GNJFN     JSYS 17
   (GNJFN)
   

   Assigns the JFN to the next file in a group of files  that  have  been
   specified  with  wildcard  characters.   The next file in the group is
   determined by searching  the  directory  in	the  order  described  in
   Section  2.2.3  (i.e.,  in  the  internal directory order).	The flags
   returned from the GTJFN call  are  given  to  the  GNJFN  call  as  an
   argument to indicate the fields of the file specification that contain
   wildcard characters.

   ACCEPTS IN AC1:  indexable file handle returned by GTJFN (i.e.,  flags
		    returned by GTJFN in the left half and the JFN in the
		    right half)

   RETURNS     +1:  failure, including no more files in the  group.   JFN
		    is	released if there are no more files in the group.
		    This return occurs on the first call to GNJFN  if  no
		    flags  indicating  wildcard fields are on in the left
		    half of AC1.

	       +2:  success, same JFN is assigned to the next file in the
		    group.   The following flags are set (if appropriate)
		    in the left half of AC1:

		      B13   GN%STR   structure changed
		      B14   GN%DIR   directory changed
		      B15   GN%NAM   name changed
		      B16   GN%EXT   file type changed

   The GNJFN call uses the flags returned in the left half of  AC1  on	a
   GTJFN  call	to  determine  the  fields  containing	wildcards and the
   default generation  number.	 Note  that  the  GNJFN  call  returns	a
   different  set  of  flags  in the left half of AC1 than the GTJFN call
   returns.  Because all calls to GNJFN should use the	flags  originally
   returned by GTJFN, programs must save the returned GTJFN flags for use
   in the GNJFN call.

   The file currently associated with the JFN must  be	closed	when  the
   GNJFN call is executed.

  A JFN will not be returned for a file on a regulated structure  unless
  the	MSTR  JSYS has been first used to increment the mount count.  All
  structures are regulated by default except the primary structure  (PS:
  on  most  systems)  or  any structure that has been made non-regulated
  with the MSTR JSYS.	A job must release all its JFNs for  a	regulated
  structure before it can decrement the mount count.

   GNJFN ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned
   (GNJFN)
   

   DESX4:    invalid use of terminal designator or string pointer

   GNJFX1:   no more files in this specification

   OPNX1:    file is already open

  STRX09:   prior structure mount required


Node: GPJFN	Previous: GNJFN	Next: GTAD	Up: Top
			     GPJFN     JSYS 206

   Returns the primary JFNs of the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, primary input JFN in the left  half  of  AC2,
		    and the primary output JFN in the right half of AC2.

   The SPJFN monitor call can be used to set the primary JFNs.	 If  this
   call has not been given, the GPJFN call returns -1 in AC2.

   Generates an illegal instruction interrupt on error conditions below.

   GPJFN ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle


Node: GTAD	Previous: GPJFN	Next: GTDAL	Up: Top
			     GTAD     JSYS 227

   Returns the current date in the internal  system  format.   (Refer  to
   Section 2.8.2.)

   RETURNS     +1:  always, day in the left half of AC1, and fraction  of
		    day in right half of AC1

   If the system does not have the current date set, AC1 contains -1.

   The STAD monitor call can be used to set the system's date.
   (GTDAL)
   


Node: GTDAL	Previous: GTAD	Next: GTDIR	Up: Top
			     GTDAL     JSYS 305

   Returns the disk allocation for the specified directory.

   ACCEPTS IN AC1:  directory  number	(-1   indicates   the	connected
		    directory)

   RETURNS     +1:  always, with

		    AC1  containing  the  working  disk   storage   limit
		    (logged-in quota) for the directory.

		    AC2 containing the number of pages being used.

		    AC3  containing  the  permanent  disk  storage  limit
		    (logged-out quota) for the directory.

   Generates an illegal instruction interrupt on error conditions below.

   GTDAL ERROR MNEMONICS:

   DIRX1:   invalid directory number

   DELFX6:  internal format of directory is incorrect


Node: GTDIR	Previous: GTDAL	Next: GTFDB	Up: Top
			     GTDIR     JSYS 241

   Returns information about the given directory.

   RESTRICTIONS:    some functions require WHEEL or OPERATOR capabilities
		    enabled.
   ACCEPTS IN AC1:  directory number

	      AC2:  address of argument block in caller's  address  space
		    in which to store the directory information

	      AC3:  byte pointer to string in which to store the password

   RETURNS     +1:  always, updated byte pointer in AC3

   The argument block returned to the caller is compatible with  the  one
   given  on  the  CRDIR call.	Word 0(.CDLEN) contains the length of the
   argument block in which  to	store  the  directory  information  being
   returned.   If  this word is zero, the length of the argument block is
   assumed to be 15 octal words long.  The password of the  directory  is
   placed  in  the  string  indicated  by  AC3, and word 1(.CDPSW) of the
   returned argument block points to this string.  Because the group list
   format  includes  a	count  word, the number of groups returned is one
   less than the count.  The group list is terminated by a zero word.
   (GTDIR)
   

   If the given directory number is zero, the GTDIR monitor call  returns
   the system default settings for the following directory parameters:

	working disk storage quota (.CDLIQ)
	permanent disk storage quota (.CDLOQ)
	default file protection (.CDFPT)
	default directory protection (.CDDPT)
	default file retention count (.CDRET)
	maximum number of subdirectories allowed (.CDSDQ)
	online expiration period (.CDDNE)
	offline expiration period (.CDDFE)

   Either one of the following	conditions  must  be  satisfied  for  the
   caller  to  obtain  all information (including the password) about the
   given directory.

	1.  The caller has WHEEL or OPERATOR capability enabled.

	2.  The caller is connected to the directory that is  immediately
	    superior to the given directory.

   To obtain all  information  other  than  the  password  of  the  given
   directory,  the  caller  must  have	at  least  owner  access  to  the
   directory.  (Refer  to  Section  2.2.6  for	a  description	of  owner
   access.)

   Generates an illegal instruction interrupt on error conditions below.

   GTDIR ERROR MNEMONICS:

   GTDIX1:   WHEEL or OPERATOR capability required

   GTDIX2:   invalid directory number


Node: GTFDB	Previous: GTDIR	Next: GTHST	Up: Top
			     GTFDB     JSYS 63

   Returns some or all of the file descriptor  block  for  the	specified
   file.  (Refer to Section 2.2.8 for the format of this block.)

   The GFUST monitor call must be used to obtain the name strings of  the
   author  of  the  file (.FBAUT) and of the user who last wrote the file
   (.FBLWR).  The GACTF monitor  call  is  used  to  obtain  the  account
   designator of the file (.FBACT).

   ACCEPTS IN AC1:  JFN

	      AC2:  number of words to be read in the left half  and  the
		    word  number (offset) of the first entry desired from
		    the file descriptor block in  the  right  half.   The
		    following instruction will set up AC2 for reading the
   (GTFDB)
   

		    entire FDB:

			 HRLZI AC2,.FBLEN

	      AC3:  address in caller's address  space	for  storing  the
		    data returned

   RETURNS     +1:  always

   The program receives an error (GFDBX2) if it requests more words  than
   there are words remaining in the FDB.

   The CHFDB monitor call can be used to change most words  in	the  file
   descriptor  block for a specified file.  Section 2.2.8 lists the words
   that can be changed with CHFDB.  The SFUST monitor  call  is  used  to
   change  the	name  strings  of the author (.FBAUT) and the last writer
   (.FBLWR).  The SACTF call is used to change the account designator  of
   the file (.FBACT).

   Generates an illegal instruction interrupt on error conditions below.

   GTFDB ERROR MNEMONICS:

   GFDBX1:   invalid displacement

   GFDBX2:   invalid number of words

   GFDBX3:   list access required

   DESX1:    invalid source/destination designator

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   DESX7:    JFN cannot refer to output wildcard designators


Node: GTHST	Previous: GTFDB	Next: GTJFN-LONG	Up: Top
			     GTHST     JSYS 273

  Obtains information about ARPANET hosts.

  RESTRICTIONS:    for ARPANET systems only

  ACCEPTS IN AC1:  function code

	      AC2:  function-specific argument

	      AC3:  function-specific argument
   (GTHST%)
   

	      AC4:  function-specific argument

  RETURNS     +1:  failure, error code in AC1

	       +2:  success, function-specific data returned in AC's

  Code     Symbol    Function

    0	    .GTHSZ    returns negative number of host names and  negative
		      length of HSTSTS table.

		      User supplied arguments:

		      None

		      Returned data:

		      AC2:   -number host names,,0
		      AC3:   -length of HSTSTS table,,0
		      AC4:   local  host  number  (in	32-bit	 Internet
			     format)

    1	    .GTHIX    Returns the name string associated with  the  host.
		      If the name returned is a nickname, HS%NCK is on in
		      the status word.

		      User supplied arguments:

		      AC2:   destination byte pointer
		      AC3:   index into name table (returned by GETAB)

		      Returned data:

		      AC2:   updated byte pointer
		      AC3:   host number
		      AC4:   host status

    2	    .GTHNS    Returns the primary name for the given host number

		      User supplied arguments:

		      AC2:   destination byte pointer
		      AC3:   host number

		      Returned data:

		      AC2:   updated byte pointer
		      AC3:   host number
		      AC4:   host status

    3	    .GTHSN    Translates the specified host name  string  to  its
		      host  number.  If the name specified is a nickname,
		      then HS%NCK will be on in the status word.

		      User supplied arguments:
   (GTHST%)
   

		      AC2:   source byte pointer

		      Returned data:

		      AC2:   updated byte pointer
		      AC3:   host number
		      AC4:   host status

    4	    .GTHHN    Return the current status of the given host

		      User supplied arguments:

		      AC3:   host number

		      Returned data:

		      AC3:   host number
		      AC4:   host status

    5	    .GTHHI    Return the host  number  and  status  of	the  host
		      having  the  specified  index  into the host status
		      table.

		      User supplied arguments:

		      AC3:   index into HSTSTS (returned by GETAB)

		      Returned data:

		      AC3:   host number
		      AC4:   host status

  Flags in host status word:

  Bits      Symbol    Meaning
  1B0	     HS%UP     Host is up
  1B1	     HS%VAL    Valid status
  7B4	     HS%DAY    Day when up if currently down
  37B9      HS%HR     Hour
  17B13     HS%MIN    5 minute interval
  17B17     HS%RSN    Reason
  1B18      HS%SRV    Host is server
  1B19      HS%USR    Host is user
  1B20      HS%NCK    Nickname
  77B26     HS%STY    System tape mask
  1B27      HS%NEW    RAS, RAR, RAP, etc

  1B26      .HS10X    TENEX
  2B26      .HSITS    ITS
  3B26      .HSDEC    TOPS-10
  4B26      .HSTIP    TIP
  5B26      .HSMTP    MTIP
  6B26      .HSELF    ELF
  7B26      .HSANT    ANTS
  10B26     .HSMLT    MULTICS
   (GTHST%)
   

  11B26     .HST20    TOPS-20
  12B26     .HSUNX    UNIX

  GTHST% ERROR MNEMONICS:

  ARGX02:   Invalid function

  GTHSX1:   Unknown host number

  GTHSX2:   No number for that host name

  GTHSX3:   No string for that host number

  GTJIX1:   Invalid index


Node: GTJFN-LONG	Previous: GTHST	Next: GTJFN-SHORT	Up: Top
			     GTJFN     JSYS 20
				 LONG FORM

   Returns a JFN for the specified file.  Accepts the  specification  for
   the	file  from  both a string in memory and from a file.  If both are
   given as arguments, the string is used first, and  then  the  file  is
   (GTJFN)
   

   used  if  more  fields are needed to complete the specification.  This
   form also allows the program to specify nonstandard values to be  used
   for omitted fields and to request the assignment of a specific JFN.

  A JFN will not be returned for a file on a regulated structure  unless
  the	MSTR  JSYS has been first used to increment the mount count.  All
  structures are regulated by default except the primary structure  (PS:
  on  most  systems)  or  any structure that has been made non-regulated
  with the MSTR JSYS.	A job must release all its JFNs for  a	regulated
  structure before it can decrement the mount count.

   ACCEPTS IN AC1:  0 in the left half, and address of the  beginning  of
		    the  argument  table in the caller's address space in
		    the right half

	      AC2:  byte pointer to ASCIZ file	specification  string  in
		    the caller's address space, or 0 if none

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, flags in the left half of AC1, and  the  JFN
		    assigned  in  the  right  half of AC1.  (This word is
		    called an indexable file handle and is given  to  the
		    GNJFN call as an argument.) Updated string pointer in
		    AC2, if pertinent.

   All I/O errors can occur.  These errors cause software  interrupts  or
   process terminations, and only a single return (+1) is given.

   The format of the argument table specified by the right half of AC1 is
   described  below.  Words 0 through 10 (.GJGEN-.GJJFN) must be supplied
   in the long form of the GTJFN call.	The remaining words are optional,
   and if they are supplied, B15(GJ%XTN) of word .GJGEN must be on.

   Word      Symbol		      Meaning

     0	     .GJGEN    Flag bits in the left half and  generation  number
		       in the right half.  (See below.)

     1	     .GJSRC    Input JFN in the left half and output JFN  in  the
		       right  half.   To  omit either JFN, specify .NULIO
		       (377777).

     2	     .GJDEV    Byte pointer to ASCIZ string  that  specifies  the
		       default	device to be used when none is given.  If
		       this word is 0,	the  user's  connected	structure
		       will be used.

     3	     .GJDIR    Byte pointer to ASCIZ string  that  specifies  the
		       default	directory  to be used when none is given.
		       If this word is 0, the user's connected	directory
		       will be used.
   (GTJFN)
   

     4	     .GJNAM    Byte pointer to ASCIZ string  that  specifies  the
		       default	filename  to  be used when none is given.
		       If this word is 0, either the string or the  input
		       JFN must supply the filename.

     5	     .GJEXT    Byte pointer to ASCIZ string  that  specifies  the
		       default	file  type to be used when none is given.
		       If this word is 0, the  null  file  type  will  be
		       used.

     6	     .GJPRO    Byte pointer to ASCIZ string  that  specifies  the
		       default	protection to be used when none is given.
		       If this word  is  0,  the  default  protection  as
		       specified  in  the  directory or the protection of
		       the next lower generation will be used.

     7	     .GJACT    Byte pointer to ASCIZ string  that  specifies  the
		       default account to be used when none is given.  If
		       this word is 0, the user's LOGIN  account  (unless
		       changed) will be used.

     10      .GJJFN    The JFN to associate with the  file  specification
		       if  flag  GJ%JFN  is set in word 0 (.GJGEN) of the
		       argument block.

     11      .GJF2     Extended argument block if B15(GJ%XTN)  is  on  in
		       the  left  half	of  .GJGEN.  This word contains a
		       second group of flags in the  left  half  and  the
		       count  of  the number of words following this word
		       in the argument block  in  the  right  half.   The
		       flags  in the left half specify additional control
		       over the GTJFN process.	The following  flags  are
		       defined:

		       B0(G1%RND) Return to the caller	if  the  filename
				  buffer  becomes  empty,  and	the  user
				  attempts to delete a	character.   This
				  can  occur if the user, when giving the
				  filename, types a  CTRL/U  or  types	a
				  DELETE  or CTRL/W and there are no more
				  characters in the buffer.

		       B2(G1%NLN) Filenames  cannot  be  longer  than	6
				  characters  and  file  types	cannot be
				  longer than 3 characters.  In addition,
				  the	 generation   number,	temporary
				  status, protection, and account  fields
				  cannot  be  specified  in the string or
				  the input data.

		       B3(G1%RCM) Return the confirmation message to  the
				  caller by placing it in the destination
				  buffer.

		       B4(G1%RIE) Return  to  the  caller  if  the  input
   (GTJFN)
   

				  buffer  becomes  empty,  and	the  user
				  attempts to delete a character.

		       B5(G1%IIN) Ignore  the  invisible  status  of  the
				  file.   If G1%IIN is not set, the GTJFN
				  will	ignore	files	that   have   the
				  invisible  bit  set (FB%INV in the FDB)
				  for subsequent JFN's.

     12      .GJCPP    Byte pointer to string where GTJFN is to store the
		       exact  copy  of the user's typescript (destination
		       string pointer).  This string will contain logical
		       names,  if  they  were typed by the user, and will
		       not contain the default fields  unless  they  were
		       generated through recognition.  This string allows
		       the caller to obtain a true  copy  of  the  user's
		       typescript.

     13      .GJCPC    Number  of  bytes  available  in  the  destination
		       string  pointed	to  by	.GTCPP	(word  12).  If a
		       pointer has been specified but this word is 0, the
		       monitor assumes the string contains 130 bytes.

     14      .GJRTY    Byte pointer to the text to  be	output	when  the
		       user  types  a CTRL/R (i.e., pointer to the CTRL/R
		       buffer).  This pointer  cannot  be  equal  to  the
		       pointer	given  in  AC2.  (Refer to the TEXTI call
		       for the definition of CTRL/R text.)

    15      .GJBFP    Byte pointer to the beginning of  the  destination
		       buffer.	(obsolete)

    16      .GJATR    Pointer to the file specification attribute block.

		       The attribute block has the following format:

		       Word    Contents

			0      Count  of   words   in	attribute   block
			       (including this word).
			1      Byte pointer to argument string.
			1+n    Byte pointer to argument string.

		       The ASCIZ argument strings are specified as:

		       keyword:attribute

		       The possible keywords and attribute values are  as
		       follows:

		       Keyword		  Attribute Value

		       A:		  Installation-defined	  account
					  string
		       BDATA:		  DECnet binary password
   (GTJFN)
   

		       BLOCK-LENGTH:	  Magnetic-tape block length
		       CHARGE:		  DECnet account string
		       DATA:		  DECnet optional data
		       EXPIRATION-DATE:   Magnetic-tape expiration date
		       FORMAT:		  Magnetic-tape  record   format.
					  The  argument may be one of the
					  following:

					  Argument   Meaning

					     F	     Fixed-length records
					     D	     Variable-length
						     records
					     S	     Spanned
					     U	     Binary  files   with
						     36-bits per word

		       OFF-LINE 	  NONE	-  display-only  keyword.
					  The attribute is set by setting
					  bit FB%OFF in  word  .FBCTL  of
					  the FDB block.
		       P:		  Octal file protection value
		       PASSWORD:	  DECnet password string
		       POSITION:	  File	 sequence    number    to
					  position magnetic-tape to.
		       RECORD-LENGTH:	  Magnetic-tape record length
		       T		  NONE	-  display-only  keyword.
					  The attribute is set by setting
					  bit GJ%TMP in  word  .GJGEN  of
					  the GTJFN block.
		       USERID:		  DECnet user ID string

   The flag bits accepted in the left half of  .GJGEN  (word  0)  of  the
   argument  block  are basically the same as those accepted in the short
   form of the GTJFN call.  The entire	set  of  bits  is  listed  below.
   (Refer  to  GTJFN - SHORT FORM for more detailed explanations of these
   bits.) The flags that are different	in  the  two  forms  are  GJ%JFN,
   GJ%XTN, GJ%FNS, and GJ%SHT.

      Bit    Symbol		      Meaning

       0     GJ%FOU    Create a new version of the file.

       1     GJ%NEW    The file must not exist.

       2     GJ%OLD    The file must exist.

       3     GJ%MSG    Type  a	message  if  the  user	presses  ESC   to
		       terminate input.

       4     GJ%CFM    Confirmation from the user is required.

       5     GJ%TMP    The file is temporary.

       6     GJ%NS     Search only the first specification in a  multiple
   (GTJFN)
   

		       logical name definition.

       7     GJ%ACC    The JFN cannot be accessed by inferior processes.

       8     GJ%DEL    Ignore the file deleted bit in the FDB.

      9-10   GJ%JFN    Associate the JFN supplied in .GJJFN (word 10)  of
		       the  argument  block  with the file specification.
		       The value of this field is interpreted as follows:

		       Value		   Meaning

		       0(.GJDNU) Ignore the JFN supplied.
		       2(.GJERR) Attempt to assign the JFN  supplied  and
				 return an error if it is not available.
		       3(.GJALT) Attempt to assign the JFN supplied  and,
				 if   it  is  not  available,  assign  an
				 alternate.

      11     GJ%IFG    The  file  specification  can   contain	 wildcard
		       characters.

      12     GJ%OFG    Associate the  JFN  with  the  file  specification
		       string and not the file itself.

      13     GJ%FLG    Return flags in AC1 on  successful  completion  of
		       the call.

      14     GJ%PHY    The physical device is to be used.

      15     GJ%XTN    The argument block contains more than  10  (octal)
		       words.

      16     GJ%FNS    This bit is ignored for the long form of the GTJFN
		       call.

      17     GJ%SHT    This bit must be off for  the  long  form  of  the
		       GTJFN call.

   The generation number given in the right half of .GJGEN  (word  0)  of
   the argument block can be one of the following:

      0(.GJDEF)  to indicate that the next higher generation number is to
		 be used if GJ%FOU is on, or to indicate that the highest
		 existing generation number is to be used  if  GJ%FOU  is
		 off.

      -1(.GJNHG) to indicate that the next higher generation number is to
		 be used if no generation number is supplied.

      -2(.GJLEG) to indicate that the lowest existing  generation  number
		 is to be used if no generation number is supplied.

      -3(.GJALL) to indicate that all generation numbers are to  be  used
		 and  that the JFN is to be assigned to the first file in
   (GTJFN)
   

		 the group, if no generation number  is  supplied.   (Bit
		 GJ%IFG must be on.)

      1-377777	 to indicate that the specified number is to be  used  as
		 the generation if no generation number is supplied.

   On a successful return, flags are returned in the left half of AC1  if
   flag  bit  GJ%IFG,  GJ%OFG,	or  GJ%FLG was on in the call.	The flags
   returned are the same as those returned in  the  short  form  call  of
   GTJFN.

   Refer to the short form of the  GTJFN  call	for  the  possible  error
   mnemonics.


Node: GTJFN-SHORT	Previous: GTJFN-LONG	Next: GTRPI	Up: Top
			     GTJFN     JSYS 20
				 SHORT FORM

   Returns a JFN for the specified file.  Accepts the  specification  for
   the	file  from  a string in memory or from a file, but not from both.
   The string can represent the complete specification for the file:

	dev:<directory>name.typ.gen;attributes

   One or more fields of the specification can be defined  by  a  logical
   name.   (Refer  to  Section 2.2.2.) If any fields are omitted from the
   specification, the system will provide the values shown below.

	device	     connected structure
		     See note below.

	directory    connected directory

					     NOTE

			 If   neither	device	 nor   directory   is
			 specified,  the  default  is  DSK:,  not the
			 user's  connected  directory.	  If   either
			 device  or directory is specified, the other
			 is   taken   from   the   user's   connected
			 directory.

	name	     no default;  this field must be specified
	type	     null
	generation   highest existing number if  the  file  is	an  input
		     file.   Next  higher number if the file is an output
   (GTJFN)
   

		     file.
	protection   protection of the next lower generation or  for  new
		     files, protection as specified in the directory.
	account      account  specified  when  user  logged  in,   unless
		     changed by the CACCT or SACTF call.

  A JFN will not be returned for a file on a regulated structure  unless
  the	MSTR  JSYS has been first used to increment the mount count.  All
  structures are regulated by default except the primary structure  (PS:
  on  most  systems)  or  any structure that has been made non-regulated
  with the MSTR JSYS.	A job must release all its JFNs for  a	regulated
  structure before it can decrement the mount count.

   The JFNS monitor call can be used to  obtain  the  file  specification
   string associated with a given JFN.

   ACCEPTS IN AC1:  flag bits in the left half,  and  default  generation
		    number in the right half

	      AC2:  source designator  from  which  to	obtain	the  file
		    specification.    (Refer   to  flag  bit  GJ%FNS  for
		    specific values.)

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, flags in the left half of AC1, and  the  JFN
		    assigned  in  the  right  half of AC1.  (This word is
		    called an indexable file handle and is given  to  the
		    GNJFN call as an argument.) Updated string pointer in
		    AC2, if pertinent.

   All I/O errors can occur.  These errors cause software  interrupts  or
   process terminations, and only a single return (+1) is given.

   The flag bits that can be specified in AC1 are described as follows.

			      GTJFN Flag Bits
			        

     Bit     Symbol			   Meaning

      0      GJ%FOU		 The file given is to be  assigned  the
				 next  higher  generation number.  This
				 bit indicates that a new version of  a
				 file  is to be created and is normally
				 set if the file is for output use.

      1      GJ%NEW		 The file specification given must  not
				 refer	to  an existing file (i.e., the
				 file must be a new file).
   (GTJFN)
   

      2      GJ%OLD		 The  file  specification  given   must
				 refer	to  an existing file (i.e., the
				 file must be an old file).

      3      GJ%MSG		 One of the appropriate messages is  to
				 be	printed    after    the    file
				 specification	is  obtained,  if   the
				 system  is  performing  recognition on
				 the file specification  and  the  user
				 ends his input by typing an ESC.

				 !NEW FILE!
				 !NEW GENERATION!
				 !OLD GENERATION!
				 !OK! if GJ%CFM (bit 4) is off
				 !CONFIRM! if GJ%CFM (bit 4) is on

      4      GJ%CFM		 Confirmation from  the  user  will  be
				 required  (if	GJ%FNS is on) to verify
				 that the file	specification  obtained
				 is  correct.  (See below for the valid
				 confirmation characters.)

      5      GJ%TMP		 The  file  specified  is   to	 be   a
				 temporary file.

      6      GJ%NS		 Only  the  first  specification  in  a
				 multiple logical name assignment is to
				 be searched for the file (i.e., do not
				 search  beyond  the  first  name  in a
				 multiple logical name assignment).

      7      GJ%ACC		 The  JFN  specified  is  not	to   be
				 accessed by inferior processes in this
				 job.	However,  another  process  can
				 access   the	file   by  acquiring  a
				 different JFN.  To  prevent  the  file
				 from	 being	  accessed   by   other
				 processes, the user's	program  should
				 set OF%RTD(B29) in the OPENF call.

      8      GJ%DEL		 Files marked  as  deleted  are  to  be
				 considered  by  the  system when it is
				 searching for a file to assign to  the
				 JFN.

     9-10    GJ%JFN		 These bits are off in the  short  form
				 of the GTJFN call.

     11      GJ%IFG		 The  file   specification   given   is
				 allowed  to  have  one  or more of its
				 fields  specified  with   a   wildcard
				 character  (* or %).  This bit is used
				 to process a group  of  files	and  is
				 generally  used  for input files.  The
   (GTJFN)
   

				 monitor verifies  that  at  least  one
				 value	 exists  for  each  field  that
				 contains a wildcard  and  assigns  the
				 JFN  to  the  first file in the group.
				 The monitor also verifies that  fields
				 not  containing  wildcards represent a
				 new  or  old  file  according	to  the
				 setting  of  GJ%NEW  and  GJ%OLD.  The
				 GNJFN call can then be used to  obtain
				 the next file in the group.  (Refer to
				 Section 2.2.3 for more information  on
				 wildcard     characters     in    file
				 specifications.)

     12      GJ%OFG		 The JFN is to be associated  with  the
				 given	file  specification string only
				 and  not  to  the  actual  file.   The
				 string may contain wildcard characters
				 (* or %) in one or more of its fields.
				 It  is checked for correct punctuation
				 between fields, but is not checked for
				 the  validity	of any field.  This bit
				 allows a JFN to be associated	with  a
				 file  specification  even  if the file
				 specification does  not  refer  to  an
				 actual  file.	The JFN returned cannot
				 be used to refer  to  an  actual  file
				 (e.g.,  cannot  be  used  in  an OPENF
				 call) but can be used	to  obtain  the
				 original input string (via JFNS).  The
				 fields in this string can then be used
				 in  a	GTJFN-long form call as program
				 defaults.  However,  if  the  original
				 string  contains  the	temporary  file
				 attribute (;T), this attribute is  not
				 "remembered"  and thus is not returned
				 on the JFNS call even though  the  bit
				 indicating  temporary	status (JS%TMP)
				 is set.  All other  fields  (including
				 the protection and account fields) can
				 be returned by JFNS.

     12      GJ%OFG		 When both B11(GJ%IFG) and  B12(GJ%OFG)
	     (Cont.)		 are on,  the  GTJFN  call  parses  the
				 specification	 given,  verifying  the
				 existence  of	each  field.   When   a
				 wildcard character appears in a field,
				 the GTJFN call  checks  the  remaining
				 fields  for  correct  punctuation  and
				 returns   a   JFN   for    the    file
				 specification	string	only.  That is,
				 once a wildcard character is seen, the
				 action  taken	is  identical  to  that
				 taken when only  B12(GJ%OFG)  is  set.
				 If  no  wildcard  character appears in
   (GTJFN)
   

				 the string, the action is the same  as
				 if both bits were off.

     13      GJ%FLG		 Flags are to be returned in  the  left
				 half of AC1 on a successful return.

    14      GJ%PHY		 Job-wide logical names (those	defined
				 by  the user) are to be ignored by the
				 monitor for this call.

     15      GJ%XTN		 This bit is off in the short  form  of
				 the GTJFN call.

     16      GJ%FNS		 The  contents	of  AC2   are	to   be
				 interpreted as follows:

				 1.  If this bit is on, AC2 contains an
				     input  JFN in the left half and an
				     output JFN in the right half.  The
				     input  JFN  is  used to obtain the
				     file    specification    to     be
				     associated   with	the  JFN.   The
				     output JFN is used to indicate the
				     destination for printing the names
				     of any  fields  being  recognized.
				     To omit either JFN, specify .NULIO
				     (377777).

				 2.  If this bit is off, AC2 contains a
				     byte pointer to an ASCIZ string in
				     memory that specifies the file  to
				     be associated with the JFN.

				 0(.GJDEF)    to indicate that the next
					      higher  generation number
					      of the file is to be used
					      if  GJ%FOU (bit 0) is on,
					      or to indicate  that  the
					      highest	       existing
					      generation number of  the
					      file  is	to  be	used if
					      GJ%FOU is off.

     18-35			 -1(.GJNHG)   to indicate that the next
     (Cont.)				      higher generation  number
					      of the file is to be used
					      if no  generation  number
					      is supplied.

				 -2(.GJLEG)   to  indicate   that   the
					      lowest	       existing
					      generation number of  the
					      file  is to be used if no
					      generation   number    is
					      supplied.
   (GTJFN)
   

				 -3(.GJALL)   to  indicate   that   all
					      generation numbers (*) of
					      the file are to  be  used
					      and that the JFN is to be
					      assigned	to  the   first
					      file  in the group, if no
					      generation   number    is
					      supplied.    (Bit  GJ%IFG
					      must be set.)

				 1-377777     to  indicate   that   the
					      specified      generation
					      number of the file is  to
					      be  used if no generation
					      number is supplied.

   The GTJFN monitor call always reads the  terminating  character  after
   the	file  specification  string.   (This character can be obtained by
   executing  the  BKJFN  call	followed  by  a  BIN  call.)  The   valid
   terminating characters are:

	line feed		      left parenthesis
	CTRL/L			      right parenthesis
	CTRL/Z			      plus sign
	carriage return 	      comma
	exclamation point	      slash
	double quotation marks	      equals sign
	number sign		      at sign (@)
	ampersand		      space
	single quotation mark	      ESC

   All	of  these  characters  except  for  ESC  are  also   confirmation
   characters  (refer  to  bit	GJ%CFM	above)	and are called confirming
   terminators.  If a confirming terminator is typed after the string,	a
   confirmation  message  will not be typed to the user nor will the user
   be required to confirm the string obtained, regardless of the  setting
   of GJ%MSG and GJ%CFM.

   On a successful return, the following flags are returned in	the  left
   half of AC1 if flag bit GJ%IFG, GJ%OFG, or GJ%FLG was on in the call.

		   Bits Returned on Successful GTJFN Call
		        

     Bit     Symbol			   Meaning

      0      GJ%DEV		 The   device	field	of   the   file
				 specification	  contained    wildcard
				 characters.

      1      GJ%UNT		 The   unit   field   of    the    file
				 specification	  contained    wildcard
				 characters.  This bit	will  never  be
   (GTJFN)
   

				 set  because  wildcard  characters are
				 not allowed in unit fields.

      2      GJ%DIR		 The  directory  field	of   the   file
				 specification	  contained    wildcard
				 characters.

      3      GJ%NAM		 The  filename	field	of   the   file
				 specification	  contained    wildcard
				 characters.

      4      GJ%EXT		 The  file  type  field  of  the   file
				 specification	  contained    wildcard
				 characters.

      5      GJ%VER		 The generation  number  field	of  the
				 file  specification contained wildcard
				 characters.

      6      GJ%UHV		 The  file   used   has   the	highest
				 generation number because a generation
				 number of 0 was given in the call.

      7      GJ%NHV		 The file  used  has  the  next  higher
				 generation number because a generation
				 number of 0 or -1  was  given	in  the
				 call.

      8      GJ%ULV		 The   file   used   has   the	 lowest
				 generation number because a generation
				 number of -2 was given in the call.

      9      GJ%PRO		 The  protection  field  of  the   file
				 specification was given.

     10      GJ%ACT		 The  account	field	of   the   file
				 specification was given.

     11      GJ%TFS		 The  file  specification  is	for   a
				 temporary file.

     12      GJ%GND		 Files marked for deletion will not  be
				 considered   when  assigning  JFNs  in
				 subsequent calls.  This bit is set  if
				 GJ%DEL was not set in the call.

    17      GJ%INV		 Invisible files will not be  considerd
				 when	assigning  JFNs  in  subsequent
				 calls.  This bit is set if  G1%IIN  is
				 not set (see long form GTJFN).

   GTJFN ERROR MNEMONICS:

   GJFX1:    desired JFN invalid
   (GTJFN)
   

   GJFX2:    desired JFN not available

   GJFX3:    no JFNs available

   GJFX4:    invalid character in filename

   GJFX5:    field cannot be longer than 39 characters

   GJFX6:    device field not in a valid position

   GJFX7:    directory field not in a valid position

   GJFX8:    directory terminating delimiter is not preceded by
	     a valid beginning delimiter

   GJFX9:    more than one name field is not allowed

   GJFX10:   generation number is not numeric

   GJFX11:   more than one generation number field is not allowed

   GJFX12:   more than one account field is not allowed

   GJFX13:   more than one protection field is not allowed

   GJFX14:   invalid protection

   GJFX15:   invalid confirmation character

   GJFX16:   no such device

   GJFX17:   no such directory name

   GJFX18:   no such filename

   GJFX19:   no such file type

   GJFX20:   no such generation number

   GJFX21:   file was expunged

   GJFX22:   insufficient system resources (Job Storage Block full)

   GJFX23:   exceeded maximum number of files per directory

   GJFX24:   file not found

   GJFX27:   file already exists (new file required)

   GJFX28:   device is not on-line

   GJFX30:   account is not numeric

   GJFX31:   invalid wildcard designator
   (GTJFN)
   

   GJFX32:   no files match this specification

   GJFX33:   filename was not specified
   GJFX34:   invalid character "?" in file specification

   GJFX35:   directory access privileges required

   GJFX36:   internal format of directory is incorrect

   GJFX37:   input deleted

   GJFX38:   file not found because output-only device was specified

   GJFX39:   logical name loop detected

   GJFX40:   undefined attribute in file specification

   GJFX41:   file name must not exceed 6 characters

   GJFX42:   file type must not exceed 3 characters

   GJFX43:   more than one ;T specification is not allowed

   GJFX44:   account string does not match

   GJFX45:   illegal to request multiple specifications for the same
	     attribute

   GJFX46:   attribute value is required

   GJFX47:   attribute does not take a value

   GJFX48:   GTJFN input buffer is empty

   GJFX49:   invalid attribute for this device

   GJFX51:   byte count too small

   IOX11:    quota exceeded or disk full

   DESX9:    invalid operation for this device

  STRX09:   prior structure mount required


Node: GTRPI	Previous: GTJFN	Next: GTNCP	Up: Top
			     GTRPI     JSYS 172

   Returns the paging trap information for the specified process.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, with
		    AC1 containing  number  of	pager  traps  (i.e.,  the
			number of times a trap has occurred to the pager)
			for designated	process  since	the  process  was
			started
		    AC2 containing  number  of	page  faults  (i.e.,  the
			number	of  times  a  trap has resulted in a page
			being swapped in) for  designated  process  since
			the process was started
		    AC3 containing time spent (in milliseconds)  in  page
			routines  by designated process since the process
			was started

   The number of pager traps will be greater than or equal to the  number
   of page faults.

   Generates an illegal instruction interrupt on error conditions below.

   GTRPI ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle
   (GTNCP)
   


Node: GTNCP%	Previous: GTRPI	Next: GTRPW	Up: Top
			    GTNCP%     JSYS 272

  Obtains information about the NCP.

  RESTRICTIONS:    for ARPANET systems only

  ACCEPTS IN AC1:  function code

	      AC2:	       function-specific argument

	      AC3:	       function-specific argument

	      AC4:	       function-specific argument

  RETURNS     +1:  failure, error code in AC1

	       +2:  success, function-specific data returned in AC's

  Code     Symbol    Function

    0	    .GTNSZ    returns negative number of NCP connections

		      User supplied arguments:

		      None

		      Returned data:

		      AC2:   -number NCP connections,,0
		      AC3:   -number NVTs ,, line number of first NVT

    1	    .GTNIX    Return connection number status

		      User supplied arguments:

		      AC2:   connection number
		      AC3:   30 bit address of storage block
		      AC4:   -length of  block	,,  first  data  item  to
			     return

			     Returned data:

			     (See format of block below)

    2	    .GTNNI    Return status of NVT line number (input connection)

		      User supplied arguments:

		      AC2:   NVT line number (input)
		      AC3:   30 bit address of storage block
		      AC4:   -length of  block	,,  first  data  item  to
			     return

			     Returned data:
   (GTNCP)
   

			     (See format of block below)

    3	    .GTNNO    Return status of NVT connection (output connection)

		      User supplied arguments:

		      AC2:   NVT line number (output)
		      AC3:   30 bit address of storage block
		      AC4:   -length of  block	,,  first  data  item  to
			     return

			     Returned data:

			     (See format of block below)

    4	    .GTNJF    Return status of JFN

		      User supplied arguments:

		      AC2:   JFN
		      AC3:   30 bit address of storage block
		      AC4:   -length of  block	,,  first  data  item  to
			     return

  Returned data:

  (See format of block below)

  Format of returned data block:

  Word      Symbol	       Contents

    0	     .NCIDX    NCP connection index
    1	     .NCFHS    Foreign host
    2	     .NCLSK    Local socket
    3	     .NCFSK    Foreign socket
    4	     .NCFSM    State of connection
    5	     .NCLNK    Link
    6	     .NCNVT    NVT, -1 if none
    7	     .NCSIZ    Byte size of connection
   10	     .NCMSG    MSG allocation
   11	     .NCBAL    Bit allocation
   12	     .NCDAL    Desired allocation
   13	     .NCBTC    Bits transferred
   14	     .NCBPB    Bytes per buffer
   15	     .NCCLK    Time-out countdown
   16	     .NCSTS    Connection status

  GTNCP ERROR MNEMONICS:

  ARGX02:   Invalid function

  GTJIX1:   Invalid index
   (GTNCP)
   

  GTNCX1:   Invalid network JFN

  GTNCX2:   Invalid or inactive NVT



Node: GTRPW	Previous: GTNCP%	Next: GTSTS	Up: Top
			     GTRPW     JSYS 171

   Returns the trap  words.   This  monitor  call  allows  a  program  to
   retrieve information about a previous read, write, or execute trap.

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, trap status word from  last  memory  trap  in
		    AC1, and last monitor call that had an error in AC2.

   The following bits are defined in the status word:

      B0(PF%USR)  page failure-user mode reference
      B5(PF%WRT)  page failure-write reference
      B14(TSW%RD) trap status-read (always on)
      B15(TSW%WT) trap status-write (same setting as B5)
      B16(TSW%EX) trap status-execute (always on)
      B17(TSW%MN) trap status-monitor mode reference (complement of B0)
      B18-B35	  address of reference that caused the trap

   This information allows a program to determine the exact  cause  of	a
   memory trap and/or the effective virtual address that caused the trap.
   This information is sufficient to enable the program to  continue,  if
   desired, when the cause of the trap has been removed.

   The contents of AC1 is 0 if there have been no memory traps.

   Generates an illegal instruction interrupt on error conditions below.

   GTRPW ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle


Node: GTSTS	Previous: GTRPW	Next: GTTYP	Up: Top
			     GTSTS     JSYS 24

   Returns the status of a file associated with a JFN.
   (GTSTS)
   

   ACCEPTS IN AC1:  JFN in the right half

   RETURNS     +1:  always, status in AC2.  If JFN is illegal in any way,
		    B10 of AC2 will be 0.

			      JFN STATUS WORD
			        

      B0(GS%OPN)  file is open
      B1(GS%RDF)  if file is open (i.e., bit 0 is on),	it  is	open  for
		  read access
      B2(GS%WRF)  if file is open, it is open for write access
      B3(GS%XCF)  if file is open, it is open for execute access
      B4(GS%RND)  if file is open, it is open for non-append access
      B7(GS%LNG)  file is longer than 512 pages
      B8(GS%EOF)  last read was past end of file
      B9(GS%ERR)  file may be in error (i.e.,  a  device  or  data  error
		  occurred)
      B10(GS%NAM) file specification is associated with this JFN
      B11(GS%AST) one or more fields of the  file  specification  contain
		  wildcard characters
      B12(GS%ASG) JFN is currently being assigned
      B13(GS%HLT) I/O errors are considered terminating conditions
      B17(GS%FRK) if file is open, it is open for restricted access
      B32-B35	  data mode of the file.  Refer to the OPENF monitor
      (GS%MOD)	  call description.

		       .GSNRM  normal data mode
		       .GSIMG  image mode
		       .GSDMP  dump mode

   If B0(GS%OPN) is not set on return, the file is not	opened,  and  the
   settings of bits 1 through 4 are indeterminate.

   The STSTS call can be used to set the status of a particular file.


Node: GTTYP	Previous: GTSTS	Next: GTWAA%		Up: Top
			     GTTYP     JSYS 303

   Returns the terminal type number  for  the  specified  terminal  line.
   (Refer to Section 2.4.3.4 for the terminal type numbers.)

   ACCEPTS IN AC1:  file designator (only terminal designators are legal)

   RETURNS     +1:  always,  terminal  type  number  in  AC2  and  buffer
		    allocation	 numbers   (#  of  input  buffers  to  be
		    allocated in left half, and # of output buffers to be
		    allocated in right half) in AC3.  AC1 is unchanged.

   The STTYP monitor call can be used to set the terminal type number for
   (GTTYP)
   

   a specified line.

   Generates an illegal instruction interrupt on error conditions below.

   GTTYP ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   TTYX01:   line is not active


Node: GTWAA%	Previous: GTTYP	Next: HALTF	Up: Top
			GTWAA%  JSYS 702

Get weekly account allocation information.  NOTE:  this is a temporary
jsys, and may not be defined in future releases.

ACCEPTS IN AC1:  directory or user number.

	   AC2:  function bits in left half,length of argument block
		 in the right.

		  B0	(wa%rd)  Get allocation information and store in
				 data block.  Note: if both wa%rd and wa%in
				 are set, the new information is returned in
				 the argument block.

		  B1	(wa%wr)  Update allocation information from data block.
	
		  B2	(wa%in)  Increment allocation information from data
				 block.  Note: if both wa%wr and wa%in are
				 set, wa%in is ignored.

	   AC3:   address of argument block

RETURNS:   +1:   Always, with B17 (wa%ft) of AC2 set if current time is in the
		 "free time" block.

This is a temporary jsys, and may not be defined in future releases.
The argument block may be up to eighteen words in length. Its format
is given below.

	.WALW==:0		weekly console (login) allocation
	.WACW==:1		weekly cpu allocation
	.WAPW==:2		weekly pages-printed allocation
	.WALA==:3		this week's console (login) allocation
	.WACA==:4		this week's cpu allocation
	.WAPA==:5		this week's pages-printed allocation
	.WALC==:6		console time charged this week
	.WACC==:7		cpu time charged
	.WAPC==:10		pages charged
	.WALU==:11		console time used (cumulative this week)
	.WACU==:12		cpu time used (cumulative this week)
	.WAPU==:13		pages used (cumulative this week)
	.WALQ==:14		console time chargeable (cumul. this quarter)
	.WACQ==:15		cpu time chargeable (cumulative this quarter)
	.WAPQ==:16		pages chargeable (cumulative this quarter)
	.WALT==:17		console time used (cum. this quarter)
	.WACT==:20		cpu time used (cum. this quarter)
	.WAPT==:21		pages printed (cum. this quarter)

GTWAA% ERROR MNEMONICS:

ILINS2: Undefined JSYS

CAPX1:  WHEEL or OPERATOR capability required

GTWAX1: Invalid function code

GTWAX2: Invalid argument block length

STRX02: Insufficient system resources

DELFX6:	Internal format of directory is incorrect

DATEX6: System date and time are not set


Node: HALTF	Previous: GTWAA%	Next: HANDS%	Up: Top
			     HALTF     JSYS 170

   Halts the current process and any inferior processes  of  the  current
   process.   Sets the process' PC to the next instruction after the call
   and saves it in the Process Storage Block (PSB) in case the process is
   continued.	The  user can continue the process by typing the CONTINUE
   command, which causes the process to start at the next instruction.

   Sets bits  1-17(RF%STS)  in	the  status  word  for	this  process  to
   2(.RFVPT).	Refer  to  the	RFSTS  monitor call for the format of the
   status word.

   If the top level process executes a HALTF call and does not have WHEEL
  or  OPERATOR  capability  enabled,  the job is logged out.  If the top
  level process executes a HALTF call and does have  WHEEL  or  OPERATOR
  capability enabled, control passes to mini-exec (MEXEC) level.


Node: HANDS%	Previous: HALTF		Next: HFORK	Up: Top
			HANDS%  JSYS 700

Used to access system tables efficiently.  Accepts a list of monitor
tables to be returned in their entirety to the user.

ACCEPTS IN AC1:	 Negative length of table in left half, address of table
		 in right half

RETURNS:    +1:	 Always, with the entirety of the specified system tables
		 transferred to the user's area.

The table entries are of the form <table number>,,<destination address>.

HANDS% ERROR MNEMONICS:

ARGX17:	Invalid argument block length

GTABX1:	Invalid table number

GTABX3:	GETAB capability required


Node: HFORK	Previous: HANDS%	Next: HPTIM	Up: Top
			     HFORK     JSYS 162

   Halts one or more inferior processes.  (Refer  to  the  HALTF  monitor
   call description to halt the current process.)

   ACCEPTS IN AC1:  process handle (inferior processes only)

   RETURNS     +1:  always

   Sets bits 1-17(RF%STS) in the status word(s) for addressed  process(s)
   to  2(.RFVPT).   Refer to the RFSTS monitor call for the format of the
   status word.

   Generates an illegal instruction interrupt on error conditions below.

   HFORK ERROR MNEMONICS:

   FRKHX1:   invalid process handle
   (HFORK)
   

   FRKHX2:   illegal to manipulate a superior process

   HFRHX1:   illegal to halt self with HFORK


Node: HPTIM	Previous: HFORK	Next: HSYS	Up: Top
			     HPTIM     JSYS 501

   Returns the	value  of  one	of  the  high  precision  system  clocks.
   Although  the main time base from interrupts generated by the internal
   system clock is in units of 1 millisecond, the clock provides  a  time
   base  in  units  of	10 microseconds.  The HPTIM monitor call provides
   access to the variables kept in these high precision units.

   ACCEPTS IN AC1:  number of the clock to read (see below)

   RETURNS     +1:  failure, error code in AC1

	       +2:  success,  with  AC1  containing  the  value  of   the
		    specified clock

   The numbers for currently-defined clocks are:

	0    .HPELP    Elapsed time since system startup.  (Refer to  the
		       TIME call for obtaining the time in milliseconds.)

	1    .HPRNT    CPU runtime for this process.  (Refer to the RUNTM
		       call for obtaining the time in milliseconds.)

   HPTIM ERROR MNEMONICS:

   HPTX1:    undefined clock number


Node: HSYS	Previous: HPTIM	Next: IDCNV	Up: Top
			     HSYS     JSYS 307

   Initiates an orderly shutdown of  the  timesharing  operation  of  the
   system.   This  call causes periodic notices of the impending shutdown
   to be issued to all terminals.  It also causes any jobs  still  logged
   in at the designated shutdown to be logged out.

   RESTRICTIONS:    requires WHEEL, OPERATOR, or MAINTENANCE capabilities
		    enabled
   ACCEPTS IN AC1:  shutdown time with the date and time in the  internal
		    format.  (Refer to Section 2.8.2.)

	      AC2:  date  and  time  in  internal  format   when   system
		    operation  will  resume  (or 0 if unknown).  Used for
   (HSYS)
   

		    advisory messages only.

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, shutdown procedure initiated

   The shutdown notice is issued immediately  to  all  terminals  if  the
   shutdown time is within two hours.  The notice is also sent two hours,
   one hour, 30 minutes, 10 minutes, 5 minutes, and one minute before the
   shutdown.

   The time when the system is expected to be placed back into	operation
   is not used directly by the monitor.  It is entered into a GTTAB table
   where it may be examined with the GETAB monitor call.

   HSYS ERROR MNEMONICS:

   CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required

   TIMEX1:   time cannot be greater than 24 hours

   TIMEX2:   downtime cannot be more than 7 days in the future


Node: IDCNV	Previous: HSYS	Next: IDLE%	Up: Top
			     IDCNV     JSYS 223

   Converts separate numbers for the local year,  month,  day,	and  time
   into  the  internal date and time format.  (Refer to Section 2.8.2 for
   more information on the internal format.)

   ACCEPTS IN AC2:  year  in  the  left   half,   and	numerical   month
		    (0=January) in the right half

	      AC3:  day of the month (0=first day) in the left half,  and
		    0 in the right half

	      AC4:  B0(IC%DSA) apply daylight savings  according  to  the
			       setting	of  B1(IC%ADS).   If  B0  is off,
			       daylight  savings  is  applied	only   if
			       appropriate for the date.

		    B1(IC%ADS) apply daylight savings  if  B0(IC%DSA)  is
			       on.

		    B2(IC%UTZ) use time zone in B12-B17.  If this bit  is
			       off, the local time zone is used.

		    B3(IC%JUD) interpret the number in the right half  of
			       AC2  as	being in Julian day format (Jan 1
			       is day 1).
   (IDCNV)
   

		    B12-B17    time zone  to  use  if  B2(IC%UTZ)  is on.
		    (IC%TMZ)   (Refer  to  Section  2.8.2  for	the  time
			       zones.)

		    B18-B35    local time in seconds since midnight.
		    (IC%TIM)

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, AC2 contains the internal date and time, and
		    AC3 contains

		    B0 and B2	on for compatibility with the ODCNV call

		    B1(IC%ADS)	on if daylight savings was applied

		    B12-B17	time zone used
		    (IC%TMZ)

   IDCNV ERROR MNEMONICS:

   DATEX1:   year out of range

   DATEX2:   month is not less than 12

   DATEX3:   day of month too large

   DATEX5:   date out of range

   TIMEX1:   time cannot be greater than 24 hours

   ZONEX1:   time zone out of range


Node: IDLE%	Previous: IDCNV		Next: IDTIM	Up: Top
			IDLE%  JSYS 701

Determines the idle time of a job.

ACCEPTS IN AC1:	 job number

RETURNS:   +1:	 always, with the number of milliseconds since any fork
		 of the job was last in the run queue in AC1.

IDLE% ERROR MNEMONICS:

ARGX08:	No such job


Node: IDTIM	Previous: IDLE%		Next: IDTNC	Up: Top
			     IDTIM     JSYS 221

   Inputs the date and time and converts them to the  internal	date  and
   time  format.   (Refer  to Section 2.8.2.) The IDTIM monitor call does
   not permit either the date or the time to be  entered  separately  and
   does  not  perform conversions for time zones other than the local one
   (unless the time zone is specified in the input string).  Refer to the
   IDTNC and IDCNV monitor calls descriptions for these functions.

   ACCEPTS IN AC1:  source designator

	      AC2:  format option flags (see below), 0 is the normal case

   RETURNS     +1:  failure, error code in AC2, updated string pointer in
		    AC1, if pertinent

	       +2:  success, updated string  pointer,  if  pertinent,  in
   (IDTIM)
   

		    AC1, and the internal format date and time in AC2

   The format option flags in AC2 specify the interpretation to  be  used
   when a date or time specification is ambiguous.

			     IDTIM Option Flags
			       

      B1(IT%NNM)  do not allow the month to be numeric and ignore B2-B3.

      B2(IT%SNM)  interpret the second number in the date  as  the  month
		  (e.g.,  6/2/76  is  interpreted  as Feb.  6, 1976).  If
		  this bit is off, the first number is interpreted as the
		  month (e.g., 2/6/76 is interpreted as Feb.  6, 1976).

      B3(IT%ERR)  return an error if the order of the day and month  does
		  not  agree  with  the setting of B2(IT%SNM) even though
		  the date can be successfully interpreted.  If this  bit
		  is off, a date which can be interpreted by assuming the
		  day and month are  in  the  opposite	order  than  that
		  specified   by   the	setting  of  B2(IT%SNM)  will  be
		  considered valid.   For  example,  if  B2-B3	are  off,
		  30/5/76 will be considered as a valid date.

      B7(IT%NIS)  seconds cannot be included in a time specification.

      B8(IT%AIS)  seconds must be included in a  time  specification  and
		  must be preceded by a colon.

		  If B7-B8 are both off, seconds are optional in  a  time
		  specification.   If specified, seconds must be preceded
		  by a colon.

      B9(IT%NAC)  colon cannot be used to separate hours and minutes.

      B10(IT%AAC) colon must be used to separate hours and minutes.

		  If B9-B10 are both off, a  colon  is	optional  between
		  hours and minutes.

      B11(IT%AMS) when	B7-B10	are  off,   always   interpret	 a   time
		  specification containing one colon as hhmm:ss.

      B12(IT%AHM) when	B7-B10	are  off,   always   interpret	 a   time
		  specification  containing one colon as hh:mm and return
		  an error if the first field is too large.  This differs
		  from	B7(IT%NIS)  in	that  seconds  can be included if
		  preceded by a second colon.

		  If B7-B12 are all off, a time specification  containing
		  one colon is interpreted as hh:mm if the first field is
		  small enough.  Otherwise it is interpreted as hhmm:ss.

      B14(IT%N24) do not allow the time to be specified in 24-hour format
		  (e.g.,  1520	for 3:20 in the afternoon) and make AM or
   (IDTIM)
   

		  PM specification mandatory.

      B15(IT%NTM) do  not  allow  the  time  specification   to   include
		  AM,PM,NOON, or MIDNIGHT.

      B16(IT%NTZ) do not allow a time zone to be specified.

   If AC2 is 0, the IDTIM call	accepts  any  reasonable  date	and  time
   formats.

   IDTIM ERROR MNEMONICS:

   DILFX1:   invalid date format

   TILFX1:   invalid time format

   DATEX1:   year out of range

   DATEX3:   day of month too large

   DATEX5:   date out of range

   All I/O  errors  are  also  possible.   These  errors  cause  software
   interrupts or process terminations as described under the BIN call.


Node: IDTNC	Previous: IDTIM	Next: IIC	Up: Top
			     IDTNC     JSYS 231

   Inputs the date and/or the time and converts it into separate  numbers
   for	the  local  year, month, day, or time.	The IDTNC call allows the
   date or time to be entered separately, which is not possible with  the
   IDTIM JSYS because neither one can be converted to the internal format
   without converting the other.  (Refer to Section 2.8.2.)

   ACCEPTS IN AC1:  source designator

	      AC2:  format option flags
		    In addition to the flags described in the IDTIM call,
		    the flags below can also be specified:

		    B0(IT%NDA) do not input the date  and  ignore  B1-B3.
			       If IT%NDA is off, the date must be input.

		    B6(IT%NTI) do not input the time and  ignore  B7-B16.
			       If IT%NTI is off, the time must be input.

   RETURNS     +1:  failure, error code in AC2, updated  string  pointer,
		    if pertinent, in AC1

	       +2:  success, updated string pointer, if pertinent, in AC1
   (IDTNC)
   

		    If the date was input,
		    AC2 contains the year in the left half, and the month
			(0=January) in the right half.
		    AC3 contains the day of the month  (0=first  day)  in
			the left half, and the day of the week (0=Monday)
			in the right half.

		    If the time was input,
		    AC4 contains
			B0(IC%DAS)  on if a  time  zone  was  input  (for
				    compatibility with the ODCNV call).
			B1(IC%ADS)  on if a daylight  savings  time  zone
				    was input.
			B2(IC%UTZ)  on if a time zone was input.
			B3(IC%JUD)  on if a number in Julian  day  format
				    was input.
			B12-B17     the  time  zone if one  was input, or
			(IC%TMZ)    the  local	time  zone  if	none  was
				    input.   (Refer  to Section 2.8.2 for
				    the time zones.)
			B18-B35     time as seconds since midnight.
			(IC%TIM)

   IDTNC ERROR MNEMONICS:

   DILFX1:   invalid date format

   TILFX1:   invalid time format

   All I/O  errors  are  also  possible.   These  errors  cause  software
   interrupts  or  process  terminations  as described under the BIN call
   description.

   The IDTNC call does not detect certain errors in date input,  such  as
   day	31  of	a  30-day  month.  These errors are detected by the IDCNV
   call.


Node: IIC	Previous: IDTNC	Next: INLNM	Up: Top
			      IIC     JSYS 132

   Initiates software interrupts on the specified channels in a  process.
   (Refer to Section 2.5.)

   ACCEPTS IN AC1:  process handle

	      AC2:  36-bit word
		    Bit n on  means  initiate  a  software  interrupt  on
		    channel n.

   RETURNS     +1:  always
   (IIC)
   

   Generates an illegal instruction interrupt on error conditions below.

   IIC ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

  FRKHX3:   invalid use of multiple process handle

  FRKHX8:   Illegal to manipulate an execute-only process


Node: INLNM	Previous: IIC	Next: JFNS	Up: Top
			     INLNM     JSYS 503

   Returns a logical name that is defined either for this job or for  the
   system.  (Refer to Section 2.2.2 and CRLNM and LNMST monitor calls.)

   ACCEPTS IN AC1:  function code in the left half, and  index	into  the
		    table of defined logical names in the right half

	      AC2:  byte pointer to the string for  storing  the  logical
		    name

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, updated string pointer in AC2

   The available functions are:

	Code	  Symbol	 Meaning

	  0	  .INLJB    List the logical names defined for this job

	  1	  .INLSY    List the logical names defined for the system

   INLNM ERROR MNEMONICS:

   INLNX1:   index is beyond end of logical name table

   INLNX2:   invalid function


Node: JFNS	Previous: INLNM	Next: KFORK	Up: Top
			      JFNS     JSYS 30

   Returns the file specification currently associated with the JFN.
   (JFNS)
   

   ACCEPTS IN AC1:  destination designator where the ASCIZ string  is  to
		    be written

	      AC2:  indexable file handle (refer to GTJFN), or pointer to
		    string

	      AC3:  format control bits to be  used  when  returning  the
		    string, or 0

	      AC4:  byte pointer to  string  containing  prefix  of  file
		    specification attribute

   RETURNS     +1:  always, updated string pointer, if pertinent, in AC1
   AC2 can have one of two formats, depending on B26(JS%PTR) in AC3.  The
   first  format  is  a word with either 0 or the flag bits returned from
   GTJFN in the left half and the JFN in the right half.  When	the  left
   half  is  0, the string returned is the exact specification associated
   with the JFN.  If the  given  JFN  is  associated  only  with  a  file
   specification  (i.e., it was obtained with B12(GJ%OFG) on in the GTJFN
   call), the string returned contains null fields for nonexistent fields
   or fields containing wildcards, and actual values for existent fields.
   When the left half is nonzero, the string returned  contains  wildcard
   characters  for  appropriate  fields  and 0, -1, or -2 as a generation
   number if the corresponding bit is on in the call.

   The second format (allowed only if B26(JS%PTR) of  AC3  is  on)  is	a
   pointer  to	the string to be returned.  This string is one field of a
   file specification.	The field is  determined  by  the  first  nonzero
   3-bit  field in AC3 or by the setting of B27(JS%ATR) or B28(JS%AT1) in
   AC3.  For example, if bits 6-8 (JS%NAM) of AC3 are nonzero,	then  the
   string  is interpreted as a filename field.	If B27(JS%ATR) is on, the
   string  is  interpreted  as	a  file  specification	 attribute.    If
   B28(JS%AT1) is on, the string is concatenated to the string pointed to
   by AC4, and a colon is inserted  between  the  two  strings.   In  all
   cases,  the	string	is  output to the destination designator, and the
   appropriate punctuation is added.

   AC3 contains control bits for formatting the  string  being	returned.
   B0-B20 are divided into 3-bit bytes, each byte representing a field in
   the file specification.  The value of the byte  indicates  the  output
   for that field.  The values are:

	0    (.JSNOF)  do not output this field
	1    (.JSAOF)  always output this field
	2    (.JSSSD)  suppress this field if it is the system default

   The bits that can be set in AC3 are as follows:

	B0-B2(JS%DEV)	output for device field
	B3-B5(JS%DIR)	output for directory field
	B6-B8(JS%NAM)	output for filename field (2 is illegal)
	B9-B11(JS%TYP)	output for file type field (2 is illegal)
	B12-B14(JS%GEN) output for generation number field
	B15-B17(JS%PRO) output for protection field
	B18-B20(JS%ACT) output for account field
   (JFNS)
   

	B21(JS%TMP)	return ;T if appropriate
	B22(JS%SIZ)	return size of file in pages
	B23(JS%CDR)	return creation date
	B24(JS%LWR)	return date of last write
	B25(JS%LRD)	return date of last read
	B26(JS%PTR)	AC2 contains pointer to the string being returned
	B27(JS%ATR)	return	 file	specification	 attributes    if
			appropriate
	B28(JS%AT1)	return the specific specification attribute whose
			prefix	is  indicated by the string pointed to in
			AC4.   This  bit  is  used  when  a  program   is
			processing  attributes	one at a time.	If JS%ATR
			is also set, all attributes will be returned.
	B29(JS%OFL)	return the "OFFLINE" attribute
	B32(JS%PSD)	punctuate the size and date fields
	B33(JS%TBR)	tab before all fields returned, except for  first
			field
	B34(JS%TBP)	tab before all fields that may be returned (i.e.,
			fields	whose  value  is given as 1 or 2), except
			for first field
	B35(JS%PAF)	punctuate all fields from device through ;T

   If B32-B35 are 0, punctuation between fields is not used.

   If AC3 is 0, the string is output in the format

	dev:<directory>name.typ.gen;T

   with  fields  the  same  as	system	defaults  not  returned  and  the
   protection (;P) and account (;A) attributes returned if B9(GJ%PRO) and
   B10(GJ%ACT) in AC2 are  on.	 The  temporary  attribute  (;T)  is  not
   returned  if the JFN is not associated with a file (refer to GJ%OFG in
   the GTJFN description) or the file is not temporary.

   The punctuation used on each field is shown below.

	dev:<directory>name.typ.gen;attribute
	,size,creation date,write date,read date

   The GTJFN or GNJFN monitor call is used to  associate  a  JFN  with	a
   given file specification string.

   Generates an illegal instruction interrupt on error conditions below.

   JFNS ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned

   DESX4:    invalid use of terminal designator or string pointer

   IOX11:    quota exceeded or disk full
   (KFORK)
   


Node: KFORK	Previous: JFNS	Next: LGOUT	Up: Top
			     KFORK     JSYS 153

   Kills one or more processes.  When a process is  killed,  all  private
   memory  acquired  by  the  process  and  its Process Storage Block are
   released.  Also, any JFNs the process has created  are  released,  and
   any	terminal  interrupt  assignments  that were acquired from another
   process are passed back.  (Note that because the  process  is  deleted
   asynchronously,  a  page of a file mapped into a lower process may not
   be unmapped before the KFORK call returns.)

   ACCEPTS IN AC1:  process handle

   RETURNS     +1:  always, unless the current process attempts  to  kill
		    itself

   The KFORK call will not release a process  handle  that  identifies	a
   process  already  killed  by another process.  In this case, the RFRKH
   call must be used to release the handle.

   The CFORK monitor call can be used to create an inferior process.

   Generates an illegal instruction interrupt on error conditions below.

   KFORK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   KFRKX1:   illegal to kill top level process

   KFRKX2:   illegal to kill self


Node: LGOUT	Previous: KFORK	Next: LNMST	Up: Top
			      LGOUT     JSYS 3

   Kills the specified	job  and  appends  an  accounting  entry  to  the
   accounting  data  file.   However, no entry is appended if the job was
   never logged in (i.e., a CTRL/C was typed, but no login occurred).

   RESTRICTIONS:    some functions require WHEEL or OPERATOR capabilities
		    enabled

   ACCEPTS IN AC1:  number of the job to be logged out,  or  -1  for  the
		    current job

   RETURNS     +1:  failure, error code in AC1
   (LGOUT)
   

	       +2:  success

   When a specific job number is given in AC1, it must refer to either	a
   PTY	job  controlled  by  the current job or a job logged in under the
   same user name as the current job.  Otherwise, to give a specific  job
   number,  the  process  must have WHEEL or OPERATOR capability enabled.
   An argument of -1 must be given if the  current  job  wishes  to  kill
   itself  (i.e.,  the job number given cannot be the same as the current
   job).  Note that this monitor call does not return if the argument  in
   AC1 is -1.

   The LGOUT monitor call outputs the time used (both CPU  and	console),
   the	job  number,  and the current date and time.  This information is
   output on the terminal to which the job being logged out is attached.

   LGOUT ERROR MNEMONICS:

   LOUTX1:   illegal to specify job number when logging out own job

   LOUTX2:   invalid job number

   LOUTX3:   WHEEL or OPERATOR capability required

   LOUTX4:   LOG capability required

   LOUTX5:   illegal to log out job 0


Node: LNMST	Previous: LGOUT	Next: LOGIN	Up: Top
			     LNMST     JSYS 504

   Translates a logical name to its original definition  string.   (Refer
   to Section 2.2.2 and the CRLNM and INLNM monitor calls descriptions.)

   ACCEPTS IN AC1:  function code

	      AC2:  pointer to the logical name

	      AC3:  pointer to the string where the original logical name
		    definition is to be written

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, updated string pointer in AC3

   The codes for the functions are as follows:

   0	.LNSJB	  Obtain the job-wide definition of the logical name.
   1	.LNSSY	  Obtain the system definition of the logical name.

   LNMST ERROR MNEMONICS:
   (LNMST)
   

   GJFX22:   insufficient system resources (Job Storage Block full)

   LNSTX1:   no such logical name

   LNSTX2:   invalid function


Node: LOGIN	Previous: LNMST	Next: LPINI	Up: Top
			      LOGIN     JSYS 1

   Logs a job into the system.	 Useful  for  logging  in  from  an  idle
   terminal on which a CTRL/C has been typed.

   ACCEPTS IN AC1:  36-bit user number under which user will log in

	      AC2:  pointer to beginning of password string

	      AC3:  account number in  bits  3-35  if  bits  0-2  are  5.
		    Otherwise  contains  a  pointer to an account string.
		    If a null byte is not seen, the string is  terminated
		    after 39 characters are processed.

   RETURNS     +1:  failure, error code in AC1

	       +2:  success, date and time of  last  login  (in  internal
		    system  format;   refer to Section 2.8.2) in AC1, and
		    updated string pointers, if  pertinent,  in  AC2  and
		    AC3.

   The LOGIN monitor call does not require a password if the  controlling
   terminal  is  a pseudo-terminal and the controlling job either has the
   WHEEL or OPERATOR capability enabled or is logged in as the same  user
   being logged in for this job.

   If the call is successful, an accounting  entry  is	appended  to  the
   accounting  data file.  If the account validation facility is enabled,
   the LOGIN call verifies  either  the  account  given  or  the  default
   account of the user being logged in.

   LOGIN ERROR MNEMONICS:

   LGINX1:   invalid account identifier

   LGINX2:   directory is "files-only" and cannot be logged in to

   LGINX3:   internal format of directory is incorrect

   LGINX4:   invalid password

   LGINX5:   job is already logged in

   LGINX6:   no more job slots available for logging in
   (LPINI)
   


Node: LPINI	Previous: LOGIN	Next: MDDT%	Up: Top
			     LPINI     JSYS 547

   Loads the direct access Vertical Formatting Unit (VFU) or  translation
   Random  Access  Memory  (RAM)  for  the  line  printer.   This call is
   executed at system startup by the program that configures the system.

   RESTRICTIONS:    requires WHEEL or OPERATOR capabilities enabled

   ACCEPTS IN AC1:  JFN of file containing VFU or RAM

	      AC2:  status bits in the left half, and  function  code  in
		    the right half

	      AC3:  unit number of line printer

   RETURNS     +1:  always

   The following status bit is currently defined.

       B0(MO%LCP)   Line printer is a lowercase printer.

   The available functions are as follows:

   Code      Symbol		 Meaning

    32	     .MOLVF    Load the VFU from the file indicated by the  given
		       JFN.

    34	     .MOLTR    Load the translation RAM from the  file	indicated
		       by the given JFN.

   The line printer must not be opened by any process when this  call  is
   executed.   If  a  condition  occurs that prevents the VFU or RAM from
   being loaded (e.g., the line printer is off line),  the  name  of  the
   file will be stored.  The VFU or RAM will then be loaded automatically
   the next time a process performs output to the line printer.

   Generates an illegal instruction interrupt on error conditions below.

   LPINI ERROR MNEMONICS:

   LPINX1:  invalid unit number

   LPINX2:  WHEEL or OPERATOR capability required

   LPINX3:  illegal to load RAM or VFU while device is OPEN


Node: MDDT%	Previous: LPINI	Next: METER%	Up: Top
			     MDDT%    JSYS 777
   (MDDT%)
   

  Transfers control to the MDDT program while preserving the context  of
  the	process  that  issued  the  MDDT% JSYS.  The terminal keyboard is
  activated and the user may enter commands to the MDDT program  or  may
  return to TOPS-20 command level by typing CTRL/C or CTRL/Z.

  RESTRICTIONS:  requires WHEEL or OPERATOR capabilities enabled

  The MDDT% JSYS accepts no arguments and does not return control to the
  issuing process (unless the user types MRETN$G).

  MDDT ERROR MNEMONICS:

  WHELX1:  WHEEL or OPERATOR capability required


Node: METER%	Previous: MDDT%		Next: MONRD%	Up: Top
			    METER%     JSYS 766

  Returns the value of the execution  accounting  meter  or  the  memory
  reference  accounting meter.  These values do not represent time as in
  "clock time";  rather, they represent the amount of time that the EBOX
  was busy and how many times the MBOX was referenced by the EBOX.

  RESTRICTIONS:    available only on KL10 hardware

  ACCEPTS IN AC1:  function code

  RETURNS     +1:  always, with 59-bit value in AC2 and AC3

  Function Codes:

  Code      Symbol		       Meaning

   1	     .MEREA	Read   process	 execution    accounting    meter
			doubleword.   Value  returned  is  EBOX busy time
			(number of EBOX ticks).

   2	     .MERMA	Read process  memory-reference	accounting  meter
			doubleword.   Value  returned  is  count  of MBOX
			references (number of MBOX ticks).

  The accounting meters have bits which allow executive PI overhead  and
  executive  non-PI  overhead	to  be	included in the doubleword count.
  These are turned off by default (the monitor must be  rebuilt  to  set
  them),  so  (by  default)  the EBOX count does not include the monitor
  overhead of paging, scheduling,  or	swapping.   The  count	primarily
  includes  only  the	EBOX  time  spent  executing the instructions and
  JSYS's in the user's  program.   However,  interrupts  caused  by  IO,
  paging,  swapping, etc can cause instruction restarts or require pager
  refills and these are included in the count.  Because these interrupts
  are dependent on a variety of system variables (such as load average),
   (METER%)
   

  subsequent timings of the same event will return varying count values.
  These  fluctuations	can  be "smoothed" by timing the event repeatedly
  and taking the average of the values returned.

  The MBOX reference count has  the  same  specifications  as	the  EBOX
  count,  and is subject to the same kind of fluctuations.  Cache hit/no
  hit introduces an additional source of  fluctuations.   Again,  timing
  the	event  repeatedly  and	taking the average of the values returned
  will "smooth" the counts.

  An event can be timed by an initial	execution  of  METER%,	a  DMOVEM
  instruction	to  save  the start value, and (after the event) a second
  execution of METER% followed by a DSUB instruction to find the elapsed
  number  of  ticks.	For  added accuracy, the average overhead for the
  timing sequence can be determined  and  subtracted  from  the  average
  count value for the timed interval.

  The following diagram illustrates the format of the value returned:

  !		  AC2		  !		AC3		 !
  !=============================================================!
  !	    High Order Part	  !0!  Low Order Part ! Reserved !
  !=============================================================!
  !0				35!0!1		    23!24      35!

  To form a  right-justified  doubleword  value  in  AC2  and	AC3,  the
  following instruction may be executed:

	ASHC AC2,-D12

  METER% ERROR MNEMONICS:

  ARGX02:  Invalid function code

  METRX1:  METER not implemented for this processor.


Node: MONRD%	Previous: METER%	Next: MRECV	Up: Top
                       MONRD%     JSYS 717


The MONRD% is used by non-privileged program to obtain  information  from
the JSB, PSB, a monitor symbol (restricted set of), and fork status.

ACCEPTS IN AC1:  function code

     AC2 through AC4:  dependent on the function (see description below)

RETURNS     +1:  always

Code  Symbol                         Meaning

  0   .RDTST     The test function is used in order to see if the  MONRD%
                 JSYS  is  implemented.   If  implemented, the JSYS will
                 return a value of .TSTNM (123456 octal).  (AC2 must  be
                 zero.)

  1   .RDSYM     The read symbol function will get the  definition  (the
                 address  in  the  monitor) of the SIXBIT symbol in AC1.
                 If successful AC2 will contain the  definition  of  the
                 symbol.

  2   .RDJSB     The read JSB function allows you to read the contents a
                 word  in  the  JSB  (Job  Storage  Block).  The word is
                 referenced by an  offset  (contained  in  AC3)  from  a
                 symbol  (the  SIXBIT  value  of  which is in AC2).  AC4
                 contains the  job  number.   (Symbols  implemented  are
                 listed  below.)  On  successful return AC2 will contain
                 the contents of that word.

  3   .RDPSB     The read  PSB  function  is  the  same  as  the  .RDJSB
                 function except that it allows you to read from the PSB
                 (Proccess Storage Block) and not the JSB.  AC4 contains
                 the system fork number.

  4   .RDSTS     The read fork status function  returns  the  same  fork
                 information  as  the RFSTS JSYS in AC2 (if successful).
                 AC2 (on entry) contains the absolute fork  number  (not
                 relative fork handle) of the fork in question.

Function: Test   Read symbol    Read JSB    Read PSB    Read fork status
AC1:     .RDTST   .RDSYM         .RDJSB      .RDPSB          .RDSTS
AC2:        0     sym-name      sym-name    sym-name       sys-fork-#
AC3:       --       --           offset      offset           --
AC4:       --       --           job-#     sys-fork-#         --

Where:   sym-name is the  SIXBIT  value  of  the  symbol  to  look  for;
         sys-fork-#  is  an  absolute fork number;  offset is the offset
         (from the symbol name);  job-# is the job number of  the  whose
         JSB or PSB to look at

                       Table of Symbols for MONRD%

	CAPENB	CAPMSK	DSKDTB	FILBYN	FILBYT	FILDDN	FILDNM	FILNEN
	FILSTS	FILVER	FILOFN	FILDEV	FKCNT	FKPTRS	FKRT	INTDF
	JOBNO	JSVAR	JSVARZ	KIMUU1	LSTERR	MAXJFN	MLJFN	NUFKS
	PPC	PSVAR	PSVARZ	RESQTL	RSCNBP	SYSFK	TRAPPC	TTFLG1
	TTFLGS	TTICT	TTLINK	TTOCT	UPDL	UTRPCT

Generates illegal instruction interrupt if not implemented.


Node: MRECV	Previous: MONRD%	Next: MSEND	Up: Top
			     MRECV     JSYS 511

   Retrieves an IPCF (Inter-Process Communication Facility) message  from
   the	process'  input queue.	Refer to the TOPS-20 Monitor Calls User's
   Guide  for  an  overview  and   description	 of   the   Inter-Process
   Communication Facility.

   RESTRICTIONS:    Requires WHEEL or IPCF capability enabled

   ACCEPTS IN AC1:  length of packet descriptor block
   (MRECV)
   

	      AC2:  address of packet descriptor block

   RETURNS     +1:  failure, error code in AC1

	       +2:  success.  The packet is retrieved and placed into the
		    block   indicated	by  word  .IPCFP  of  the  packet
		    descriptor block.  AC1 contains  the  length  of  the
		    next  entry  in  the  queue  in the left half and the
		    flags from the next packet in the right  half.   This
		    returned  word  is	called the associated variable of
		    the next entry in the queue.  If the queue is  empty,
		    AC1 contains 0.

   The format of the packet descriptor block is as follows:

	Word	  Symbol	      Meaning

	  0	  .IPCFL    Flags.    (Refer   to    the    MSEND    call
			    description.)

	  1	  .IPCFS    PID of sender.  The caller	does  not  supply
			    this  PID;	 the  system fills it in when the
			    packet is retrieved.

	  2	  .IPCFR    PID of receiver.  This  PID  can  be  one  of
			    three values:  a specific PID, -1 to retrieve
			    messages  for  any	PID  belonging	to   this
			    process,  or  -2 to retrieve messages for any
			    PID belonging to this job.	When -1 or -2  is
			    supplied,  messages  are not retrieved in any
			    particular order except that messages from	a
			    specific  PID  are	returned  in the order in
			    which they were received.

	  3	  .IPCFP    Pointer to	block  where  message  is  to  be
			    placed  (length  of  message in the left half
			    and address where message is to be placed  in
			    the right half).

	  4	  .IPCFD    User number of sender.

	  5	  .IPCFC    Enabled capabilities of sender.

	  6	  .IPCSD    Directory  number	of   sender's	connected
			    directory.

	  7	  .IPCAS    Account  string  of   sender.    The   caller
			    supplies  a  pointer  to  the block where the
			    account is to be placed.

   The caller (i.e., receiver) does not supply the information in words 4
   through  7;	 the  system  fills  in  the  words  when  the	packet is
   retrieved.  These words describe the sender at the  time  the  message
   was sent and permit the receiver to validate messages.
   (MRECV)
   

   Refer to the MSEND call description for the flags that can be  set  in
   word .IPCFL of the packet descriptor block.

   MRECV ERROR MNEMONICS:

   IPCFX1:   length of packet descriptor block cannot be less than 4

   IPCFX2:   no message for this PID

   IPCFX3:   data too long for user's buffer

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCF11:   WHEEL or IPCF capability required

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF16:   receive and message data modes do not match

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF31:   invalid page number

   IPCF32:   page is not private

   IPCF34:   cannot receive into an existing page


Node: MSEND	Previous: MRECV	Next: MSFRK	Up: Top
			     MSEND     JSYS 510

   Sends an IPCF (Inter-Process  Communication	Facility)  message.   The
   message  is	in  the  form  of  a packet and can be sent to either the
   specified PID or  the  system  process  <SYSTEM>INFO.   Refer  to  the
   TOPS-20  Monitor Calls User's Guide for an overview and description of
   the Inter-Process Communication Facility.

   RESTRICTIONS:    requires IPCF  capability  enabled.   Some	functions
   (MSEND)
   

		    require WHEEL capability enabled.

   ACCEPTS IN AC1:  length of packet descriptor block

	      AC2:  address of packet descriptor block

   RETURNS     +1:  failure, error code in AC1

	       +2:  success.  The packet is sent to the receiver's  input
		    queue.  Word .IPCFS of the packet descriptor block is
		    updated with the sender's PID.  This updating is done
		    in	case  the  PID	was being defaulted or created by
		    this call.

   The format of the packet descriptor block is as follows:

	Word	  Symbol		   Meaning

	  0	  .IPCFL    Flags.  (See below.)

	  1	  .IPCFS    PID of sender, or 0  if  no  PID  exists  for
			    sender.   This  word will be filled in by the
			    monitor if	the  caller  is  creating  a  PID
			    (i.e., flag bit IP%CPD is on).

	  2	  .IPCFR    PID  of  receiver,	or  0  if   receiver   is
			    <SYSTEM>INFO.

	  3	  .IPCFP    Pointer to message block (length  of  message
			    in	the  left  half  and  starting address of
			    message in the right half).  When a packet is
			    sent   to  <SYSTEM>INFO,  the  message  block
			    contains  the  request  being   made.    (See
			    below.)

   The	following  flags  are  defined	in  word  .IPCFL  of  the  packet
   descriptor  block.  These flags can be set on both the MSEND and MRECV
   calls.

   Flags Set By Caller
      

      B0(IP%CFB)  Do not block process if there are no	messages  in  the
		  queue.   If this bit is set, an error is given if there
		  are no messages.

     B1(IP%CFS)  Use, as the sender's PID, the  PID  obtained	from  the
		  address  specified  in word .IPCFS.  Setting bit IP%CFS
		  notifies the	monitor  that  word  .IPCFS  contains  an
		  address,  and  the  sender's	PID  is  located  in that
		  address.

      B2(IP%CFR)  Use, as the receiver's PID, the PID obtained	from  the
		  address  specified  in word .IPCFR.  Setting bit IP%CFR
		  notifies the	monitor  that  word  .IPCFR  contains  an
		  address,  and  the  receiver's  PID  is located in that
   (MSEND)
   

		  address.

      B3(IP%CFO)  Allow one send request above the quota.   (The  default
		  send quota is 2.)

      B4(IP%TTL)  Truncate the message, if it is larger  than  the  space
		  reserved.  If this bit is not set, an error is given if
		  the message is too large.

      B5(IP%CPD)  Create a PID to use as the sender's PID and  return  it
		  in word .IPCFS of the packet descriptor block.

      B6(IP%JWP)  Make the created PID be job wide (i.e., permanent until
		  the  job logs out).  If this bit is not set, the PID is
		  temporary until the process executes the RESET  monitor
		  call.  If B5(IP%CPD) is not set, B6 is ignored.

      B7(IP%NOA)  Do not allow other processes to use  the  created  PID.
		  If B5(IP%CPD) is not set, B7 is ignored.

      B18(IP%CFP) The packet is privileged.  (This bit can be set only by
		  a  process  with  WHEEL  capability  enabled.)  When	a
		  privileged sender sets this bit, the	MRECV  and  MUTIL
		  calls  return  it set for any reply.	An error is given
		  if this bit is set by the sender and	the  receiver  is
		  not privileged.

      B19(IP%CFV) The packet is a page	of  data.   Word  .IPCFP  of  the
		  packet  descriptor block contains 1000 in the left half
		  and the page number in the right half.   The	page  the
		  packet  is  being  sent  to, or is being received into,
		  must be private.

					   NOTE

		      When a process sends a page of data with MSEND,
		      that page is removed from the process' map.

   Flags Returned After Call
      

      B20(IP%CFZ) A zero-length message was sent, and the packet consists
		  of only the packet descriptor block.

      B24-B29	  Error code field for errors encountered by <SYSTEM>INFO
      (IP%CFE)	  during a send or receive request.

		  Code Symbol		   Meaning

		  15   .IPCPI	 insufficient privileges
		  16   .IPCUF	 invalid function
		  67   .IPCSN	 <SYSTEM>INFO needs name
		  72   .IPCFF	 <SYSTEM>INFO free space exhausted
   (MSEND)
   

		  74   .IPCBP	 PID has no name or is invalid
		  75   .IPCDN	 duplicate name has been specified
		  76   .IPCNN	 unknown name has been specified
		  77   .IPCEN	 invalid name has been specified

      B30-B32	  System and sender code.  This code can be set only by a
      (IP%CFC)	  process with	WHEEL  capability  enabled.   The  system
		  returns  the	code  so  that	a  nonprivileged user can
		  examine it.

		  Code Symbol		   Meaning

		  1    .IPCCC	 sent by <SYSTEM>IPCF
		  2    .IPCCF	 sent by system-wide <SYSTEM>INFO
		  3    .IPCCP	 sent by receiver's <SYSTEM>INFO

      B33-B35	  Field for  return of	special messages.  This field can
      (IP%CFM)	  be set only by a process with WHEEL capability enabled.
		  The	system	 returns   the	 information  so  that	a
		  nonprivileged user can examine it.

		  Code Symbol		   Meaning

		  1    .IPCFN	 Process' input queue contains	a  packet
				 that  could not be delivered to intended
				 PID.

   When the MSEND call is used to send	a  packet  to  <SYSTEM>INFO,  the
   message  portion  of the packet (i.e., the first three words) contains
   the request.  This request has the following format:

	Word	  Symbol		   Meaning

	  0	  .IPCI0    user-defined code in the left  half  and  the
			    function   (see  below)  <SYSTEM>INFO  is  to
			    perform in the right half.	The  user-defined
			    code  is  used to associate the response from
			    <SYSTEM>INFO with the appropriate request.

	  1	  .IPCI1    PID that is to receive  a  duplicate  of  the
			    response  from <SYSTEM>INFO.  If this word is
			    0,	the  response  is  sent   only	 to   the
			    originator of the request.

	  2	  .IPCI2    argument for the  requested  function.   (See
			    below.)

   The functions that can be requested of <SYSTEM>INFO, along with  their
   arguments, are as follows:

      Function	  Argument		   Meaning

      .IPCIW	  name		 Return  the  PID  associated  with   the
				 specified  name.  The PID is returned in
				 word .IPCI1.
   (MSEND)
   

      .IPCIG	  PID		 Return  the  name  associated	with  the
				 specified  PID.  The name is returned in
				 word .IPCI1.

      .IPCII	  name in	 Assign  the  specified  name  to the PID
		   ASCIZ	 belonging  to	the  process  making  the
				 request.   The  temporary  or	permanent
				 status of the PID is specified  by  flag
				 bit   IP%JWP(B6)   when   the	 PID  was
				 originally created.

      .IPCIJ	  name in	 Identical to the .IPCII function.
		   ASCIZ

      .IPCIS			 Disassociates all PIDs with names.  Used
				 by  the  monitor  on  a  RESET  or LGOUT
				 monitor  call.   This	function  is  not
				 available to user programs.

   MSEND ERROR MNEMONICS:

   IPCFX1:   length of packet descriptor block cannot be less than 4

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCFX6:   send quota exceeded

   IPCFX7:   receiver quota exceeded

   IPCFX8:   IPCF free space exhausted

   IPCFX9:   sender's PID invalid

   IPCF11:   WHEEL or IPCF capability required

   IPCF12:   no free PID's available

   IPCF13:   PID quota exceeded

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF19:   no PID for [SYSTEM]INFO

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined
   (MSEND)
   

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF31:   invalid page number

   IPCF32:   page is not private


Node: MSFRK	Previous: MSEND	Next: MSTR	Up: Top
			     MSFRK     JSYS 312

   Starts a process in monitor mode.  The MSFRK call is legal only if  it
   is  called  from  monitor mode or if the process has WHEEL or OPERATOR
   capability enabled.	 This  call  allows  job  0  to  create  multiple
   processes for handling various asynchronous monitor tasks.

   RESTRICTIONS:    requires WHEEL or OPERATOR capability enabled

   ACCEPTS IN AC1:  process handle

	      AC2:  36-bit PC word, with user mode and other flags in the
		    left half and the virtual address in the right half

   RETURNS     +1:  always

   Because the starting context of the process is undefined, the  process
   being started should execute the following sequence of instructions at
   its starting address:

	FBGN:	MOVSI 1,UMODF	 ;fake user PC
		MOVEM 1,FPC	 ;simulate the JSYS call
		MCENTR		 ;establish usual top-level JSYS context

   Generates an illegal instruction interrupt on error conditions below.

   MSFRK ERROR MNEMONICS:

   FRKHX1:   invalid process handle

   FRKHX2:   illegal to manipulate a superior process

   FRKHX3:   invalid use of multiple process handle

   CAPX1:    WHEEL or OPERATOR capability required


Node: MSTR	Previous: MSFRK	Next: MTALN	Up: Top
			     MSTR     JSYS 555
   (MSTR)
   

   Performs  various  structure-dependent  functions.	These	functions
   include   mounting	and   dismounting  structures,	incrementing  and
   decrementing mount counts for structures, and  setting  and	obtaining
   the status of structures.

  For regulated structures, the mount count must be  incremented  before
  access  rights  or JFNs can be given.  All structures are regulated by
  default except the primary structure (PS:  on  most	systems)  or  any
  structure declared non-regulated with the .MSSSS function of MSTR.

   RESTRICTIONS:    some functions require WHEEL or  OPERATOR  capability
		    enabled.	A  process  with  MAINTENANCE  capability
		    enabled  can  obtain  the  status  of  a  disk   unit
		    (functions .MSRNU and .MSRUS).

   ACCEPTS IN AC1:  length of the argument block in  the  left	half  and
		    function code in the right half

	      AC2:  address of the argument block

   RETURNS     +1:  always, with some functions  returning  data  in  the
		    argument   block.	 (Refer  to  individual  function
		    descriptions below.)

   Generates an illegal instruction interrupt on all error conditions.

   The available functions are summarized below.

   Function	  Symbol    Privileged		     Meaning
     Code

	0	  .MSRNU       Yes	   Return the status of the  next
					   disk unit.

	1	  .MSRUS       Yes	   Return the status of the given
					   disk unit.

	2	  .MSMNT       Yes	   Mount the given structure.

	3	  .MSDIS       Yes	   Dismount the given structure.

	4	  .MSGSS       No	   Return the status of the given
					   structure.

	5	  .MSSSS       Yes	   Change the status of the given
					   structure.

	6	  .MSINI       Yes	   Initialize	   the	    given
					   structure.

	7	  .MSIMC       No	   Increment the mount count  for
					   the	given  structure  for the
   (MSTR)
   

					   job.

	10	  .MSDMC       No	   Decrement the mount count  for
					   the	given  structure  for the
					   job.

	11	  .MSGSU       No	   Return the job numbers of  the
					   users of the given structure.

	13	  .MSICF       No	   Increment the mount count  for
					   the	given  structure  for the
					   given fork.

	14	  .MSDCF       No	   Decrement the mount count  for
					   the	given  structure  for the
					   given fork.

	15	  .MSOFL       Yes	   Receive  interrupt  when  disk
					   comes on-line.

	16	  .MSIIC       Yes	   Ignore  increment  check   for
					   structure use

   Obtaining the Status of the Next Disk Unit - .MSRNU
            

   This function returns the status of the next disk unit on the  system.
   The	next disk unit is determined by searching the current channel and
   looking for the next physical unit on that channel.

   The .MSRNU function accepts the channel, controller, and unit  numbers
   in  the  first three words of the argument block.  The first time this
   function is executed, the value for	each  of  these  numbers  is  -1.
   After successful completion of this function, the channel, controller,
   and unit numbers are updated, and the software information  about  the
   disk  drive	is  returned in the argument block.  To locate all drives
   available for mounting structures, the channel, controller,	and  unit
   numbers  returned  from  one  .MSRNU function call are supplied on the
   next one until all units on all channels have been searched.  When all
   units have been searched, the MSTR monitor call returns error MSTX18.

   The format of the argument  block,  whose  length  is  .MSRLN,  is  as
   follows:

   Word      Symbol			   Meaning

     0	     .MSRCH	    Channel number (0-7)

     1	     .MSRCT	    Controller number (reserved for  future  use,
			    must be -1)

     2	     .MSRUN	    Unit number (0-7)

     3	     .MSRST	    Returned  software	status	of   unit.    The
			    following status bits are defined:
   (MSTR)
   

			    B0(MS%MNT)	Unit  is  part	 of   a   mounted
					structure
			    B2(MS%DIA)	Unit is being used by an  on-line
					diagnostic program
			    B3(MS%OFL)	Unit is off line
			    B4(MS%ERR)	Unit  has  an  error   that   was
					detected during reading
			    B5(MS%BBB)	Unit has a  bad  BAT  block.   If
					this bit is on, the data returned
					in word .MSRSN (word  4)  and  in
					words	.MSRNS	 through   .MSRFI
					(words	 6   through	20)    is
					indeterminate.
			    B6(MS%HBB)	Unit has a bad HOME block
			    B7(MS%WLK)	Unit is write locked

			    B9-B17	Type of disk unit
			    (MS%TYP)
					1  .MSRP4   RP04
					5  .MSRP5   RP05
					6  .MSRP6   RP06
					7  .MSRP7   RPO7
					11 .MSRM3   RMO3

     4	     .MSRSN	    Byte pointer to  ASCIZ  string  in	which  to
			    store  the	structure  name.  This pointer is
			    updated on return.

     5	     .MSRSA	    Byte pointer to  ASCIZ  string  in	which  to
			    store  the	structure  alias.   The  alias is
			    usually the same as the structure name.   The
			    alias  is  returned, and the pointer updated,
			    only if the structure is on line.

     6	     .MSRNS	    Logical unit number within the  structure  of
			    this  unit	in  the  left half, and number of
			    units in the structure in the right half.

     7	     .MSRSW	    Number  of	pages  for   swapping	on   this
			    structure.

    10-12    .MSRUI	    Unit ID (3 words of ASCII)

    13-15    .MSROI	    Owner ID (3 words of ASCII)

    16-20    .MSRFI	    File system ID (3 words of ASCII)

    21	     .MSRSP	    Number of sectors per page

    22	     .MSRSC	    Number of sectors per cylinder

    23	     .MSRPC	    Number of pages per cylinder

    24	     .MSRCU	    Number of cylinders per unit
   (MSTR)
   

    25	     .MSRSU	    Number of sectors per unit

    26	     .MSRBT	    Number of bit words in bit table per cylinder

   The length of the argument block in words is given  by  symbol  .MSRLN
   (27).

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number

   MSTX18:   no more units in system

   MSTX27:   specified unit is not a disk

   CAPX2:    WHEEL, OPERATOR, or MAINTENANCE capability required

   Obtaining the Status of a Given Disk Unit - .MSRUS
            

   This function returns the status of the given disk unit.   It  accepts
   the	channel, controller, and unit numbers in the first three words of
   the argument block.	After successful completion of this function, the
   channel,  controller, and unit numbers are unchanged, and the software
   information about the given disk unit  is  returned	in  the  argument
   block.

   The difference between this function and the .MSRNU function  is  that
   .MSRUS  does  not search for the next disk unit but rather returns the
   status for the given unit.  The .MSRNU function searches for the  next
   disk unit and returns the status for that unit.

   The format of the argument  block  and  the	errors	possible  on  the
   failure  of	this  function	are  the same as described for the .MSRNU
   function.

   Mounting a Given Structure - .MSMNT
        

   This function brings the given structure on line and normally makes it
   available  for  general  use.   Any	structure  other  than the public
   structure PS:  must be brought  on  line  with  this  function.   (The
   public  structure  PS:   is	brought on line during the system startup
   procedure.)

   It is recommended that the .MSRNU (Read Next Unit) function	be  given
   first  to  locate  all units in the structure.  Then the .MSMNT (Mount
   (MSTR)
   

   Structure) function can be given to read and verify the HOME blocks of
   each  unit  and  to	mount the structure.  If one or more units of the
   structure are write-locked, the structure cannot  be  mounted  and  an
   error is given.

   The format of the argument block is as follows:

      Word   Symbol		      Meaning

	0    .MSTNM	    Pointer to the ASCIZ  string  containing  the
			    name of the structure.

	1    .MSTAL	    Pointer to the ASCIZ  string  containing  the
			    alias of the structure.

	2    .MSTFL	    Flag bits in the left half, and the number of
			    units  in the structure (.MSTNU) in the right
			    half.  The bits that can be set in	the  left
			    half are:

			    B0(MS%NFH)	If one	of  the  HOME  blocks  is
					incorrect,  do	not fix it and do
					return an error.  If this bit  is
					off and one of the HOME blocks is
					incorrect, the correct	block  is
					copied	into  the  bad HOME block
					and   the   mounting	procedure
					continues.

			    B1(MS%NFB)	If one of the BAT (Bad Allocation
					Table)	blocks	is  incorrect, do
					not  fix  it  and  do  return  an
					error.	 If  this  bit is off and
					one  of   the	BAT   blocks   is
					incorrect,  the  correct block is
					copied into the bad BAT block and
					the mounting procedure continues.

			    B2(MS%XCL)	Mount the structure for exclusive
					use by this job.  This bit is set
					by  a  system  program	when   it
					initializes   or  reconstructs	a
					structure.  If this bit  if  off,
					the   structure  is  mounted  for
					general use.

			    B3(MS%IGN)	Ignore correctable errors in  the
					bit   table   and   in	the  root
					directory  on	this   structure.
					This  bit  is  set  by	a  system
					program when it reconstructs  the
					root  directory on a structure or
					rebuilds the bit table.  If  this
					bit   is  off  and  an	error  is
					detected, this	function  returns
   (MSTR)
   

					an error.

	3    .MSTUI	    Beginning of unit information for  each  unit
			    in the structure.  The information is 3 words
			    long per unit, and the symbol for this length
			    is	.MSTNO.   The  first  3-word block is for
			    logical unit 0, and the last 3-word block  is
			    for  the  last  logical unit (.MSTNU-1).  The
			    offsets into the 3-word block are:

			    0	  .MSTCH   Channel number of unit

			    1	  .MSTCT   Controller  number	of   unit
					   (currently must be -1)

			    2	  .MSTUN   Unit number of unit

			    The number of  argument  words  per  unit  is
			    given by symbol .MSTNO (3).

   After successful completion of this function, the given  structure  is
   mounted  and  available  for  general use (unless bit MS%XCL was on in
   word .MSTFL of the argument block).

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTRX4:   insufficient system resources

   MSTRX5:   drive is not on line

   MSTRX6:   home blocks are bad

   MSTRX7:   invalid structure name

   MSTRX8:   could not get OFN for ROOT-DIRECTORY

   MSTRX9:   could not MAP ROOT-DIRECTORY

   MSTX10:   ROOT-DIRECTORY bad

   MSTX11:   could not initialize Index Table

   MSTX12:   could not OPEN Bit Table File

   MSTX13:   backup copy of ROOT-DIRECTORY is bad

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number
   (MSTR)
   

   MSTX17:   all units in a structure must be of the same type

   MSTX19:   unit is already part of a mounted structure

   MSTX20:   data error reading HOME blocks

   MSTX23:   could not write HOME blocks

   MSTX25:   invalid number of swapping pages

   MSTX27:   specified unit is not a disk

   MSTX30:   incorrect Bit Table counts on structure

   MSTX34:   unit is write-locked

   MSTX35:   too many units in structure

   MONX01:   insufficient system resources

   Dismounting a Given Structure - .MSDIS
        

   This function indicates that the given structure can be  removed  from
   the system.	Any mounted structure other than the public structure PS:
   can be dismounted with this function.  (The public structure  PS:   is
   dismounted at system shutdown.)

   Files that are open at the  time  this  function  is  executed  become
   inaccessible, and the jobs that had the files open receive an error if
   they reference them.  Jobs that have mounted  the  structure  or  have
   connected  to  or  accessed	a  directory  on the structure receive an
   informational message on the terminal.  This message is

	[STRUCTURE name:  HAS BEEN DISMOUNTED]

   The format of the argument block is as follows:

      Word   Symbol			   Meaning

	0    .MSDNM	    Pointer to ASCIZ string containing the  alias
			    of the structure, or device designator of the
			    structure.

   After successful completion of this function, the given  structure  is
   dismounted and can be physically removed from the system.

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted
   (MSTR)
   

   MSTX24:   illegal to dismount the Public Structure

   Obtaining the Status of a Given Structure - .MSGSS
           

   This function returns the status of a mounted structure.   The  caller
   supplies  the designators for the structure and for the storage of the
   structure's physical ID.  After successful  completion  of  the  call,
   data is returned in the appropriate words in the argument block.

   The format of the argument  block,  whose  length  is  .MSGLN,  is  as
   follows:

      Word   Symbol			   Meaning

	0    .MSGSN	    Byte pointer to ASCIZ string  containing  the
			    alias  of the structure, or device designator
			    of the structure.

	1    .MSGST	    Returned status word.  The status bits are:

			    B0(MS%PS)	This  structure   is   a   public
					structure.

			    B1(MS%DIS)	This	structure    is     being
					dismounted  and  no further mount
					count increments are allowed.

			    B2(MS%DOM)	This  structure  is  a	 domestic
					structure.

			    B3(MS%PPS)	This  structure  is  the   public
					structure.

			    B4(MS%INI)	This	structure    is     being
					initialized.

			    B6(MS%NRS)	Structure is non-regulated

	2    .MSGNU	    Number of units in structure.

	3    .MSGMC	    Mount count for this structure.   This  value
			    is	 determined   by  the  number  of  .MSIMC
			    (Increment Mount Count) functions  given  for
			    this   structure   by  all	users  since  the
			    structure was mounted.

	4    .MSGFC	    Open file count (i.e., number of open  files)
			    for this structure.

	5    .MSGSI	    Pointer to ASCIZ string in which to store the
			    structure's physical ID.

   The length of the argument block is given by symbol .MSGLN (6).
   (MSTR)
   

   After successful completion of this function, the status of the  given
   structure  is returned in the appropriate words of the argument block,
   and the pointer to the physical ID is updated to reflect the  returned
   string.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   Changing the Status of a Given Structure - .MSSSS
           

   This function changes the status of a mounted structure.   The  caller
   can change only two of the status bits in the structure's status word:
   status of being dismounted and status of being domestic.

   The format of the argument block, whose length is .MSSLN is:

      Word   Symbol			   Meaning

	0    .MSSSN	    Byte pointer to ASCIZ string  containing  the
			    alias  of the structure, or device designator
			    of the structure.

	1    .MSSST	    Word containing the new values for	the  bits
			    being changed.

	2    .MSSMW	    Mask containing the bits being changed.   The
			    bits that can be changed are

			    B1(MS%DIS)	Structure is being dismounted.

			    B2(MS%DOM)	Structure is domestic.

			    B6(MS%NRS)	Structure is non-regulated

   After successful completion of this function, the status of the  given
   structure  is  changed  according to the data supplied in the argument
   block.

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX22:   illegal to change specified bits

   Initializing a Given Structure - .MSINI
        
   (MSTR)
   

   This function creates a new structure or repairs an existing structure
   during normal system operation.  The caller has the option of creating
   a new file system, reconstructing the root directory,  writing  a  new
   set of HOME blocks on the structure, or rebuilding the index block.

   The format of the argument block is as follows:

      Word   Symbol			   Meaning

	0    .MSINM	    Byte pointer to ASCIZ string  containing  the
			    name of the structure.

	1    .MSIAL	    Byte pointer to ASCIZ string  containing  the
			    alias of the structure.

	2    .MSIFL	    Flag bits in B0-B11, function value  (MS%FCN)
			    in	B12-B17, and number of units in structure
			    (.MSINU) in B18-B35.  The flag bits are:

			    B0(MS%NFH)	Do not fix HOME block if  one  is
					incorrect and do return an error.
					This bit  can  be  on  only  with
					function .MSRRD.  (See below.)

			    B1(MS%NFB)	Do not fix BAT block  if  one  is
					incorrect and do return an error.

			    B2(MS%XCL)	Mount	 this	 structure    for
					exclusive  use	by  this job.  If
					this bit is off, the structure is
					mounted for general use.

			    B3(MS%IGN)	Ignore errors in  the  bit  table
					and in the root directory on this
					structure.  If this  bit  is  on,
					B2(MS%XCL) must also be on.

			    The function values that can be given are:

			    1	.MSCRE	Create a new file system

			    2	.MSRRD	Reconstruct the root directory

			    3	.MSWHB	Write a new set of HOME blocks

			    4	.MSRIX	Rebuild the index table

      3-5    .MSISU	    Beginning of unit information for  each  unit
			    in the structure.  The information is 3 words
			    long per unit, and the symbol for this length
			    is	.MSINO.   The  first  3-word block is for
			    logical unit 0, and the last 3-word block  is
			    for  the  last  logical unit (.MSINU-1).  The
			    offsets into the 3-word block are:
   (MSTR)
   

			    0	.MSICH	Channel number of unit

			    1	.MSICT	Controller   number    of    unit
					(currently must be -1)

			    2	.MSIUN	Unit number of unit

			    The number of arguments per unit is given  by
			    symbol .MSINO (3).

	6    .MSIST	    Status word (reserved for future use).

	7    .MSISW	    Number  of	pages  for   swapping	on   this
			    structure.

       10    .MSIFE	    Number  of	pages  for  the  front-end   file
			    system.

      11-13  .MSIUI	    Unit ID (3 words of ASCII)

      14-16  .MSIOI	    Owner ID (3 words of ASCII)

      17-21  .MSIFI	    File system ID (3 words of	ASCII)	(reserved
			    for future use)

       22    .MSIFB	    Number of pages for the file BOOTSTRAP.BIN.

   Words 6 through 16 (.MSIST through .MSIOI) of the argument block  must
   be  supplied when the MSTR call is being executed to create a new file
   system or to write  a  new  set  of	HOME  blocks.	After  successful
   completion  of  the	.MSCRE function, the structure is initialized and
   the following directories are created:

	<ROOT-DIRECTORY>
	<SYSTEM>
	<SUBSYS>
	<ACCOUNTS>
	<SPOOL>
	<OPERATOR>

   The following errors are possible on the failure of this function.

   MSTRX2:   WHEEL or OPERATOR capability required

   MSTRX3:   argument block too small

   MSTRX4:   insufficient system resources

   MSTRX5:   drive is not on line

   MSTRX6:   home blocks are bad

   MSTRX7:   invalid structure name

   MSTRX8:   could not get OFN for ROOT-DIRECTORY
   (MSTR)
   

   MSTRX9:   could not MAP ROOT-DIRECTORY

   MSTX10:   ROOT-DIRECTORY bad

   MSTX11:   could not initialize Index Table

   MSTX12:   could not OPEN Bit Table File

   MSTX13:   backup copy of ROOT-DIRECTORY is bad

   MSTX14:   invalid channel number

   MSTX15:   invalid unit number

   MSTX16:   invalid controller number

   MSTX17:   all units in a structure must be of the same type

   MSTX19:   unit is already part of a mounted structure

   MSTX20:   data error reading HOME blocks

   MSTX23:   could not write HOME blocks

   MSTX25:   invalid number of swapping pages

   MSTX26:   invalid number of Front-End-Filesystem pages

   MSTX27:   specified unit is not a disk

   MSTX28:   could not initialize Bit Table for structure

   MSTX29:   could not reconstruct ROOT-DIRECTORY

   MSTX30:   incorrect Bit Table counts on structure

   MONX01:   insufficient system resources

   Incrementing the Mount Count - .MSIMC
        

   Users  indicate  that  they	are  actively  using   a   structure   by
   incrementing  the  structure's  mount  count.   A  nonzero mount count
  informs the operator that the  structure  should  not  be  dismounted.
  Also,  an  IPCF  message  is sent to the Mountable Device Allocator to
  indicate that a user is using the structure.  The .MSIMC  function  is
   used to increment a structure's mount count.

  Note that incrementing the mount count is a requirement for	accessing
  files and directories on regulated structures.

   The job receives an error if the given structure is in the process  of
   being  dismounted  (i.e., a job has given the .MSSSS function with the
   MS%DIS bit on).
   (MSTR)
   

   The format of the argument block is as follows:

      Word   Symbol			   Meaning

	0    .MSDEV	    Byte pointer to ASCIZ string  containing  the
			    alias  of the structure, or device designator
			    of the structure.
	1    .MSJOB	    Number of job whose  mount	count  is  to  be
			    incremented.  This requires WHEEL or OPERATOR
			    capability to be enabled.

   After successful completion of this function, the mount count  of  the
   given structure has been incremented.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX33:   structure is unavailable for mounting

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

   STDVX1:   no such device

   STRX01:   structure is not mounted

   STRX02:   insufficient system resources

   Decrementing the Mount Count - .MSDMC
        

   This function indicates that the given structure is	no  longer  being
   used by the job executing the call.	If the job executing the call has
   previously incremented the mount count  for	this  structure  via  the
   .MSIMC   (Increment	 Mount	 Count)  function,  the  mount	count  is
   decremented.  If the job has not incremented the mount count, the  job
  receives  an  error.   If the structure is regulated, and the user has
  any assigned JFNs on the structure, is accessing the structure  or  is
  connected to the structure, an error is returned.

   The format of the argument block is as follows:

      Word   Symbol			   Meaning

	0    .MSDEV	    Byte pointer to ASCIZ string  containing  the
			    alias  of the structure, or device designator
			    of the structure.
	1    .MSJOB	    Number of job whose  mount	count  is  to  be
			    deccremented.    This   requires   WHEEL   or
			    OPERATOR capability to be enabled.
   (MSTR)
   

   The resource allocator receives an IPCF packet when	the  mount  count
   for	a structure is decremented.  The flag word (.IPCFL) of the packet
   descriptor block has a code of 1(.IPCCC) in	the  IP%CFC  field  (bits
   30-32).  This code indicates the message was sent by the monitor.  The
   first word of the packet data block contains  the  structure  dismount
   code  .IPCDS.  The second word contains the number of header words and
   the number of the job decrementing the mount count.	 The  third  word
   contains the device designator of the structure.  Thus,

	.IPCFL/<.IPCCC>B32

	DATA/.IPCDS
	DATA+1/number of header words (2),, job number
	DATA+2/device designator of structure

   After successful completion of this function, the mount count  of  the
   structure has been decremented and the IPCF message has been sent.

   The following errors are possible on the failure of this function.

   MSTRX3:   argument block too small

   MSTX21:   structure is not mounted

   MSTX32:   structure was not mounted

  MSTX36:   illegal while JFNs assigned

  MSTX37:   illegal while accessing or connected to a directory

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

   STDVX1:   no such device

   STRX01:   structure is not mounted

   STRX02:   insufficient system resources

   Obtaining the Users on a Given Structure - .MSGSU
           

   This function returns the job  numbers  of  the  users  of  the  given
   structure.	Users  of  a  structure  are  divided into three classes:
   users who have incremented the mount count (SMOUNT command), users who
   are	connected  to the structure (CONNECT command), and users who have
   accessed the structure (ACCESS command).   The  caller  specifies  the
   classes  of	users  for which information is to be returned by setting
   the appropriate bits in the argument block.

   The format of the argument block is as follows:

      Word   Symbol			   Meaning
   (MSTR)
   

	0    .MSUAL	    Byte pointer to ASCIZ string  containing  the
			    alias  of the structure, or device designator
			    of the structure.

	1    .MSUFL	    Flag bits in the left half and 0 in the right
			    half.  The bits that can be set are:

			    B0(MS%GTA)	Return users  who  have  accessed
					the structure.

			    B1(MS%GTM)	Return users who have incremented
					the mount count.

			    B2(MS%GTC)	Return users who are connected to
					the structure.

   After successful execution of this function, word 1 through	word  n+1
   (where  n  is  the  number  of  items  returned)  are updated with the
   following information.

      Word   Symbol			   Meaning

	1    .MSUFL	    Right half contains the number of  items  (n)
			    being returned.  Left half is unchanged.

	2    .MSUJ1	    Flag bits for the job in the left  half,  and
			    number of job in the right half.

	.		    .
	.		    .
	.		    .

      n + 1		    Flag bits for the job in the left  half,  and
			    number of job in the right half.

			    The bits returned for each	job  are  defined
			    as:

			    B0(MS%GTA)	Job has accessed structure.

			    B1(MS%GTM)	Job  has  incremented  the  mount
					count for structure.

			    B2(MS%GTC)	Job has connected to structure.

   The following errors are possible on the failure of this function.

   MSTRX1:   invalid function

   MSTRX3:   argument block too small

   STRX01:   structure is not mounted

   STDVX1:   no such device
   (MSTR)
   

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources
   Specifying word and bits to be modified - .MSHOM

   This function allows enabled WHEEL or OPERATOR program to specify word
   of homeblock of mounted structure to be modified, which bits should be
   modified, and what the new values should be.

   The format of the argument block is as follows:

      Word   Symbol			   Meaning

	0    .MSHNM	    Handle on alias such as pointer to string, or
			    device designator.

	1    .MSHOF	    Offset  specifying	which  word   should   be
			    changed.

	2    .MSHVL	    Value for new bits.

	3    .MSHMK	    Mask showing which bits should be changed.

   The following errors are possible on the failure of this function:

   MSTRX2:   insufficient privileges

   MSTRX3:   argument block too small

   MSTX21:   structure not mounted

	     any errors "MODHOM" routine returns

  Incrementing the Mount Count for the Fork - .MSICF
          

  This  function  and	the  next  one	(.MSDCF)  allow  job   forks   to
  independently  mount  and  dismount structures without contending with
  one another for control of the structure.  Note that when either a job
  mount  or  fork  mount  is  possible, the job mount is preferred as it
  incurs less overhead.

  This function indicates that a fork is actively using a structure.  If
  the	structure  is  being  dismounted, the job receives an error.  The
  format of the argument block is:

     Word   Symbol			   Meaning

	0    .MSDEV	    Pointer to ASCIZ string containing the  alias
			    of the structure, or device designator of the
			    structure.

  The following errors are possible on the failure of this function.

  MSTRX3:   argument block too small
   (MSTR)
   

  MSTX21:   structure is not mounted

  MSTX33:   structure is unavailable for mounting

  ARGX18:   invalid structure name

  MONX01:   insufficient system resources

  STDVX1:   no such device

  STRX01:   structure is not mounted

  STRX02:   insufficient system resources

  Decrementing the Mount Count for the Fork - .MSDCF
          

  This function and  the  previous  one  (.MSICF)  allow  job	forks  to
  independently  mount  and  dismount structures without contending with
  one another for control of the structure.  Note that when either a job
  mount  or  fork  mount  is  possible, the job mount is preferred as it
  incurs less overhead.

  This function indicates that a fork is no longer  using  a  structure.
  Note  that  if  a job-wide increment has been done, the fork may still
  access the structure.  The format of the argument block is:

     Word   Symbol			   Meaning

	0    .MSDEV	    Pointer to ASCIZ string containing the  alias
			    of the structure, or device designator of the
			    structure.

  The following errors are possible on the failure of this function.

  MSTRX3:   argument block too small

  MSTX21:   structure is not mounted

  MSTX32:   structure was not mounted

  MSTX36:   illegal while JFNs assigned

  MSTX37:   illegal while accessing or connected to a directory

   ARGX18:   invalid structure name

   MONX01:   insufficient system resources

   STDVX1:   no such device

   STRX01:   structure is not mounted

   STRX02:   insufficient system resources
   (MSTR)
   

  Receive Interrupt when Disk Comes On-line - .MSOFL
         

  This function specifies who is to receive an interrupt when
  a disk comes on-line.  It is provided for the Mountable
  Device Allocator in order to control the disks and inform the operator
  of structure status.  Only one process on the system will receive
  the interrupts.  The process using this JSYS must have WHEEL or
  OPERATOR
  capability enabled.	The argument block has the following format:

     Word   Symbol			   Meaning

	0    .MSCHN	    Place this process on a software interrupt
			    channel.
			    An interrupt is then generated when a disk
			    comes on-line.  If the channel
			    number is given as -1, a previously assigned
			    interrupt channel will be
			    deassigned.

  Ignore Increment Check for Structure Use - .MSIIC
         

  Allows a process to use a regulated structure without previously
  incrementing the mount count.  Entries are made to the accounting file
  only on structure decrements, so this function will enable bypassing
  of accounting.

  There is no argument block.

  The following errors are possible:

  MSTRX2:   WHEEL or OPERATOR capability required



Node: MTALN	Previous: MSTR	Next: MTOPR	Up: Top
			     MTALN     JSYS 774

   Associates a  given	serial-numbered  magnetic  tape  drive	with  the
   specified logical unit number.  The MTALN call is a temporary call and
   may not be defined in future releases.

   RESTRICTIONS:    requires WHEEL or OPERATOR capability enabled

   ACCEPTS IN AC1:  slave type in left	half;	logical  unit  number  of
		    magtape in right half

	      AC2:  decimal serial number of magnetic tape drive
   (MTALN)
   

   RETURNS     +1:  always

   All units are searched for the specified serial number and slave type.
   When  they  are  found, the drive is associated with the given logical
   unit number.  The original unit is now  associated  with  the  logical
   unit number that the specified serial-numbered drive had before it was
   reassigned.

   The slaves recognized are

	.MTT45	  TU45 (The system default)
	.MTT70	  TU70
	.MTT71	  TU71
	.MTT72	  TU72

   Generates an illegal instruction interrupt on error conditions below.

   MTALN ERROR MNEMONICS:

   WHELX1:   WHEEL or OPERATOR capability required

   DEVX1:    invalid device designator

   OPNX7:    device already assigned to another job


Node: MTOPR	Previous: MTALN	Next: MTU%	Up: Top
			     MTOPR     JSYS 77

   Performs various device-dependent  control  functions.   This  monitor
   call  requires  that the device either be opened or be assigned to the
   caller if the device is an assignable device.

   Because of the device dependencies of the MTOPR call, programs written
   with  device-independent  code  should  not	use this call unless they
   first check for the type of device.

   RESTRICTIONS:    some functions require WHEEL or  OPERATOR  capability
		    enabled
   ACCEPTS IN AC1:  JFN of the device

	      AC2:  function code (see below)

	      AC3:  function arguments or address of argument block  (see
		    descriptions of individual devices)

   RETURNS     +1:  always

   The functions listed for each device apply only to that device.  If	a
   function  applies to more than one device, its description is repeated
   for each applicable device.
   (MTOPR)
   

   ARPANET Functions
    

  ARPANET  MTOPR  functions  are  described  below.   For   a	 complete
  description of their application, refer to the TOPS-20AN Monitor Calls
  User's Guide.

  Code      Symbol		      Meaning

   20	     .MOACP    If a connection is in the RFCR state, use of  this
		       function  will  cause  an RFC to be sent to accept
		       the connection.

   21	     .MOSND    If a connection	is  operating  in  buffered  send
		       mode,  use  of  this function causes all currently
		       buffered bytes to be sent.

   22	     .MOSIN    Causes the INS/INR command to be sent.

   24	     .MOAIN    Assigns	interrupt  channels  through  which   the
		       program is interrupted on either a change of state
		       (of the connection F.S.M) or receipt of an INS  or
		       INR message.  The INS/INR PSI channel is stored in
		       field MOS%NIN (B0-5) of AC3 and the  state  change
		       PSI  channel is stored in field MO%FSM (B12-17) of
		       AC3.  A value of 77 (octal)  in	either	of  these
		       fields prevents assignment of a PSI channel.

   ETHERNET Functions


  ETHERNET  MTOPR  functions  are  described  below.   For   a	 complete
  description of their application, refer to documentation in the monitor
  sources for the Ethernet. If updating is necessary, please do so.

    Code     Symbol    Meaning

    20       .MOPEF    Send Mark, or write end of file.  Takes Mark byte in
		       AC3.

    21       .MOPFC    Force transmission of partial pup.

    22       .MOPIS    Send interrupt.  AC3 contains the interrupt code and,
		       if non-zero, AC4 contains a string pointer to an
		       interrupt text.

    23       .MOPRM    Return most recent Mark byte in AC3.

    24       .MOPIN    Assign interrupt channels according to AC3.

		       B0-B5	  "Interrupt" PSI channel
		       B6-B11	  "Received pup" PSI channel
		       B12-B17	  "State change" PSI channel

    25       .MOPAB    Abort connection.  AC3 contains the Abort code and if
		       AC4 is non-zero it contains a pointer to the Abort text

    26       .MOPRA    Return Abort data.  Takes an optional string pointer in
		       AC4 to return the Abort text.  Returns Abort code in
		       AC3 and an appropriately updated string pointer in AC4.

    27       .MOPSM    Set hardware data mode of the connection from the
		       contents of AC3. This allows the programmer to specify
		       how the data (physically a stream of 8-bit frames) is
		       to be laid out in 36-bit words.  The default mode is
		       .PM32, 32 bits (4 8-bit frames) left justified in a
		       36-bit word.  It is advised that special care be taken 
		       to open the connection in a byte size compatible with
		       the hardware data mode.  The data modes are:

		       0   .PM16	16-bit bytes right justified in half
					words.  Suggested byte sizes: 18, 36.

		       1   .PM32	A 32-bit byte left justified in a full
					word.  This is the default mode.
					Byte sizes: 8,16,32.

		       2   .PM36	A full 36 bit word.

		       3   .PMASC	Five 7-bit bytes left justified in a
					full word.  On input, the high-order
					bits of the frames are discarded; on
					output, they are set to zero.  Byte
					size: 7.

		       4   .PM16S	16-bit bytes right justified in half
					words with the high and low order bytes
					swapped.  Byte size: 18, 36.

    30 	     .MOPRM    Read hardware data mode of connection into AC3.

   DECnet Functions
    

   DECnet-20  MTOPR  functions	are  described	below.	 For  a  complete
   description	of  their  application,  refer	to  the TOPS-20 DECnet-20
   Programmer's Guide and Operations Manual.

   Code      Symbol		      Meaning

    24	     .MOACN    Allow a network task to enable software	interrupt
		       channels for any combination of the following work
		       types:

			    o  connect event pending
			    o  interrupt message available
			    o  data available

		       This function  requires	that  AC3  contain  three
		       9-bit   fields	specifying  the  changes  in  the
		       interrupt assignments for this link.  These fields
		       are

		       Field	 Symbol    Used to Signal

		       B0-B8	 MO%CDN    Connect event pending
		       B9-B17	 MO%INA    Interrupt message available
		       B18-B26	 MO%DAV    Data available

		       The contents of the fields are
   (MTOPR)
   

		       Value	 Meaning

		       nnn	 The number of the channel to be enabled;
				 0-5 and 23-35 decimal
		       .MOCIA	 Clear the interrupt
		       .MONCI	 No change

    25	     .MORLS    Read the link status and return a 36-bit  word  of
		       information  regarding  the  status of the logical
		       link.  AC3 contains flag bits in the left half and
		       a  disconnect  code  in	the right half.  The flag
		       bits are

		       Symbol	 Bit	   Meaning

		       MO%CON	 B0	   Link is connected
		       MO%SRV	 B1	   Link is a server
		       MO%WFC	 B2	   Link is waiting for a connect
		       MO%WCC	 B3	   Link is waiting for a  connect
					   confirm
		       MO%EOM	 B4	   Link has an entire message  to
					   be read
		       MO%ABT	 B5	   Link has been aborted
		       MO%SYN	 B6	   Link has been closed normally
		       MO%INT	 B7	   Link has an interrupt  message
					   available
		       MO%LWC	 B8	   Link   has	been   previously
					   connected

		       The disconnect/reject codes are as follows:

		       Symbol	 Value	   Meaning

		       .DCX0	   0	   No special error
		       .DCX1	   1	   Resource allocation failure
		       .DCX2	   2	   Destination	node   does   not
					   exist
		       .DCX3	   3	   Node shutting down
		       .DCX4	   4	   Destination process	does  not
					   exist
		       .DCX5	   5	   Invalid name field
		       .DCX11	  11	   User    abort    (asynchronous
					   disconnect)
		       .DCX32	  32	   Too many connections to node
		       .DCX33	  33	   Too	 many	connections    to
					   destination process
		       .DCX34	  34	   Access not permitted
		       .DCX35	  35	   Logical link services mismatch
		       .DCX36	  36	   Invalid account
		       .DCX37	  37	   Segment size too small
		       .DCX38	  38	   Process aborted
		       .DCX39	  39	   No path to destination node
		       .DCX40	  40	   Link aborted due to data loss
		       .DCX41	  41	   Destination process	does  not
					   exist
   (MTOPR)
   

		       .DCX42	  42	   Confirmation   of   DISCONNECT
					   INITIATE
		       .DCX43	  43	   Image data field too long

		       If a disconnect code does not apply to the current
		       status  of the link, the right half of AC3 will be
		       zeros.

    26	     .MORHN    Return the ASCII name of  the  host  node  at  the
		       other  end  of  the  logical  link.  This function
		       requires that AC3 contain a string pointer to  the
		       location where the host name is to be stored.  (If
		       the  byte  size	exceeds  eight	bits,  bytes  are
		       truncated to eight bits.)

		       The monitor call returns with an  updated  pointer
		       in AC3, and the host name stored as specified.

    27	     .MORTN    Return the unique task  name  that  is  associated
		       with  your  end	of  the logical link.  If you had
		       defaulted  the  task  name  in  the  network  file
		       specification,	  the	  call	   returns    the
		       monitor-supplied task  name.   In  DECnet-20,  the
		       default task name is actually a unique number.

		       This function requires that AC3 contain	a  string
		       pointer	to the location where the task name is to
		       be stored.  (If the byte size exceeds eight  bits,
		       bytes are truncated to eight bits.)

		       The monitor call returns with an  updated  pointer
		       is AC3 and the task name stored as specified.

    30	     .MORUS    Return  the  source   task   user   identification
		       supplied  in  the  connect initiate message.  This
		       function  requires  that  AC3  contain  a   string
		       pointer	 to   the   location   where   the   user
		       identification is to be stored.	(If the byte size
		       exceeds	eight  bits, bytes are truncated to eight
		       bits.

		       The monitor call returns with an  updated  pointer
		       in  AC3	and  the  user	identification	stored as
		       specified.  If no user identification was supplied
		       by  the source task, AC3 continues to point to the
		       beginning of the string, and a null is returned as
		       the only character.

    31	     .MORPW    Return the source task's password as  supplied  in
		       the   connect  initiate	message.   This  function
		       requires that AC3 contain a string pointer to  the
		       location  where	the  password  is  to  be stored.
		       (Passwords  are	binary,  therefore   the   string
		       pointer should accomodate 8-bit bytes.)
   (MTOPR)
   

		       The monitor call returns with an  updated  pointer
		       in  AC3	and  the source task's password stored as
		       specified.  AC4 contains the number  of	bytes  in
		       the  string;   a  zero  value  indicates  that  no
		       password was supplied by the source task.

    32	     .MORAC    Return the account string supplied by  the  source
		       task   in  the  connect	initiate  message.   This
		       function  requires  that  AC3  contain  a   string
		       pointer	to  the location where the account string
		       is to be stored.  (If the byte size exceeds  eight
		       bits, bytes are truncated to eight bits.)

		       The monitor call return with an updated pointer in
		       AC3 and the source task's account number stored as
		       specified.  If no account string was  supplied  by
		       the  source  task,  AC3	continues to point to the
		       beginning of the string, and a null is returned as
		       the only character.

    33	     .MORDA    Return the optional data supplied in  any  of  the
		       connect	or  disconnect	messages.   This function
		       requires that AC3 contain a string pointer to  the
		       location  where	the  optional  user data is to be
		       stored.	(This file is binary;  the string pointer
		       should specify 8-bit bytes.)

		       The monitor call returns with an  updated  pointer
		       in  AC3 and the optional data stored as specified.
		       AC4 contains the  number  of  bytes  in	the  data
		       string;	 a  zero value indicates that no optional
		       data was supplied.

    34	     .MORCN    Return the object type that was used by the source
		       task  to  address  this	connection.   The  result
		       indicates whether the local task was addressed  by
		       its generic type or its unique network task name.

		       The monitor call returns with the object  type  is
		       AC3.  A zero object type indicates that the target
		       task was addressed  by  its  unique  network  task
		       name;   a  nonzero  value  indicates  that  it was
		       addressed by its generic object type.

    35	     .MORIM    Read interrupt message.	 This  function  requires
		       that  AC3  contain a byte pointer to the receiving
		       buffer.	(If the byte  size  exceeds  eight  bits,
		       bytes  are  truncated to eight bits.)  The maximum
		       message length is 16 bytes, and	the  buffer  size
		       should be at least 8 bits.

		       The monitor call returns with an  updated  pointer
		       in  AC3, the message stored in the buffer, and the
		       count of bytes received in AC4.
   (MTOPR)
   

    36	     .MOSIM    Send an interrupt message.  This function requires
		       that  AC3  contain  a  byte pointer to the message
		       (eight bytes maximum) and the AC4 contain a  count
		       of  the	bytes  in  the interrupt message (sixteen
		       bytes maximum).

    37	     .MOROD    Return the unique  identification  of  the  source
		       task.   This  identification  is  in the format of
		       object-descriptor, and the contents depend on  the
		       DECnet  implementation  on  the	remote	host.  In
		       addition, if the  source  task  is  running  on	a
		       system  that  provides  for  group and user codes,
		       this information is also returned.  If the  source
		       task  name  is  on  a  DECnet-20  host,	the  data
		       returned is TASK-taskname.  This function requires
		       that  AC3 contain a string pointer to the location
		       where the object-descriptor of the source task  is
		       to  be  stored.	 (If  the byte size exceeds eight
		       bits, bytes are truncated to eight bits.)

		       The monitor call returns with an  updated  pointer
		       in   AC3   and  the  object-descriptor  stored  as
		       specified.  In addition, if the source host system
		       uses  group  and user codes (sometimes referred to
		       as project and programmer  number  or  p,pn),  AC4
		       contains  the  group code in the left half and the
		       user code in the right half.  If the  source  host
		       system  does  not provide for group or user codes,
		       AC4 contains zeros.

    40	     .MOCLZ    Reject	a   connection	 either   implicitly   or
		       explicitly.   If  the  target  task closes its JFN
		       (via the CLOSF monitor call) before accepting  the
		       connection  either  implicitly  or explicitly, the
		       local NSM assumes that the connection is  rejected
		       and  sends  a  connect  reject message back to the
		       source task.  The reason given is process  aborted
		       (reject code 38).  The target task must the reopen
		       its JFN in order  to  receive  subsequent  connect
		       initiate messages.

		       In order to explicitly reject a connect and at the
		       same  time return a specific reject reason and set
		       up 16 bytes of user data, the target task must use
		       the  .MOCLZ  function  of  the MTOPR monitor call.
		       The .MOLCZ function does not close the JFN.

		       This function requires that

			    AC2 contain a reject code in  the  left  half
			    and  .MOCLZ  in  the  right half.  The reject
			    code is a 2-byte, NSP-defined decimal  number
			    indicating	the  reason that a target task is
			    rejecting  a  connection.	 Refer	 to   the
			    description of code 25, .MORLS, for a list of
   (MTOPR)
   

			    disconnect/reject codes.

			    AC3 contain a string pointer to any  data  to
			    be returned.  (If the byte size exceeds eight
			    bits, bytes are truncated to eight bits.)

			    AC4 contain the count of bytes  in	the  data
			    string  (maximum=16).   A  zero  indicates no
			    data

    41	     .MOCC     Accept	a   connection	 either   implicitly   or
		       explicitly.   Under  certain conditions, the local
		       NSP assumes that the connection	is  accepted  and
		       sends a connect confirm message back to the source
		       task.  These implicit conditions are

			    The target task attempts  to  output  to  the
			    logical  link (issues a SOUT or SOUTR monitor
			    call to the network).

			    The target task submits a read request to the
			    logical  link  (issues  a SIN or SINR monitor
			    call to the network).

			    The target task is in input wait  state  (has
			    enabled   itself   for   a	"data  available"
			    software interrupt).

		       In order to explicitly accept a connect	and  also
		       return  a  limited amount of data, the target task
		       must use the .MOCC function of the  MTOPR  monitor
		       call.   This  function requires that AC3 contain a
		       string pointer to any data to  be  returned.   (If
		       byte  size exceeds eight bits, bytes are truncated
		       to eight bits.)	AC4 must  contain  the	count  of
		       bytes in the data string to a maximum of 16 bytes.
		       A zero indicates no data.

    42	     .MORSS    Returns the maximum segment size that can be  sent
		       over  this  link.  This value is the lesser of the
		       maximum segment sizes supported by the remote  NSP
		       task  and the remote network task.  The local task
		       can use this value to optimize the format of  data
		       being transmitted over the link.

		       The monitor call returns the maximum segment size,
		       in bytes, in AC3.

   FE Functions
    

   Code      Symbol		      Meaning

    3	     .MOEOF    Send an end of file to the program  using  the  FE
		       device  on  the	front end.  This function is used
		       for synchronization between a program  running  on
   (MTOPR)
   

		       the  TOPS-20  and  a  program running on the front
		       end.

    4	     .MODTE    Assign the specified device to the DTE  controller
		       on  the	front  end.  This function, which must be
		       performed before I/O is	allowed  to  the  device,
		       requires  AC3  to  contain  the	device type.  The
		       process must have  WHEEL  or  OPERATOR  capability
		       enabled.

   MTA/MT Functions
    

   The functions available for physical magnetic tape  drives  (MTA)  and
   logical  magnetic tape drives (MT) are described below.  Some of these
   functions  accept  arguments  in  AC3   (refer   to	 the   individual
   descriptions).

   Code      Symbol		       Meaning

    0	     .MOCLE    Clear any error flags from a previous MTOPR call.

    1	     .MOREW    Rewind the tape.  This function waits for activity
		       to  stop  before  winding the tape.  If sequential
		       data is being output, the last partial  buffer  is
		       written	before	the  tape  is  rewound.   Control
		       returns to  caller  when  rewinding  begins.   For
		       labeled	tapes,	this  function	causes	the first
		       volume in the set to be mounted and positioned  to
		       the  first  file  in the file set.  Since a volume
		       switch may be required, this function could  block
		       for a considerable amount of time.

		       Use function .MORVL to rewind the current volume.

    2	     .MOSDR    Set the direction of the  tape  motions	for  read
		       operations.  This function requires AC3 to contain
		       the desired direction.	If  AC3  =  0,	the  tape
		       motion  is  forwards;  if AC3 = 1, the tape motion
		       is backwards.

		       This function is not available for  labeled  tapes
		       and  will  return  an MTOX1 error if used for that
		       purpose.

    3	     .MOEOF    Write a tape mark.  This  function  requires  that
		       the  magnetic tape be opened for write access.  If
		       sequential data is being output, the last  partial
		       buffer is written before the tape mark.

		       For labeled  tapes,  issuing  this  function  will
		       terminate  the data portion of the file, write EOF
		       trailer labels and leave the  tape  positioned  to
		       accept  user  trailer  labels.	It is possible at
		       this point to write user trailer labels	or  close
		       the file.  A second .MOEOF function issued without
   (MTOPR)
   

		       positioning the tape backwards  will  "close"  the
		       file (subsequent writes will create a new file).

    4	     .MOSDM    Set  the  hardware  data  mode  to  be  used  when
		       transferring  data  to  and  from  the tape.  This
		       function requires AC3 to contain the desired  data
		       mode:

		       0    .SJDDM    default system data mode
		       1    .SJDMC    dump mode (36-bit bytes)
		       2    .SJDM6    SIXBIT byte mode for 7-track drives
		       3    .SJDMA    ANSI ASCII mode (7  bits	in  8-bit
				      bytes)
		       4    .SJDM8    industry compatible mode
		       5    .SJDMH    High-density mode for TU70 and TU72
				      tape  drives only (nine 8-bit bytes
				      in two words).

		       For labeled tapes, this function is  allowed  only
		       if  the	file is opened in dump mode (.GSDMP).  If
		       this is not the case, an MTOX1 error is returned.

    5	     .MOSRS    Set  the  size  of  the	records.   This  function
		       requires  AC3  to  contain  the	desired number of
		       bytes in the records.  This  function  is  allowed
		       only  if  no  I/O  has been done since the JFN was
		       opened.

		       For labeled tapes, this function is  allowed  only
		       if  the file has been opened in dump mode.  If the
		       file has not been opened in dump  mode,	an  MTOX1
		       error is returned.

		       The maximum size of the records (in bytes)  is  as
		       follows:

		       Hardware 	       Maximum
		       I/O Mode 	       Record Size (bytes)

		       system-default		 -
		       dump		       8192
		       SIXBIT		       49152
		       ANSI ASCII	       40960
		       industry compatible     32768
		       high density	       8192

		       The above values can be exceeded in the	execution
		       of  .MOSRS,  however  the first data transfer will
		       fail.

    6	     .MOFWR    Advance over one record in the direction away from
		       the  beginning of the tape.  If sequential data is
		       being read in the forward direction and not all of
		       the  record  has been read, this function advances
		       to the start of the next  record.   If  sequential
   (MTOPR)
   

		       data  is  being	read in the reverse direction and
		       not all of the record has been read, this function
		       positions the tape at the end of that record.

		       For labeled tapes,  forward  space  will  position
		       over  a	logical  record.   This implies that many
		       physical records may be skipped (if  S  format  is
		       used)   perhaps	 involving  one  or  more  volume
		       switches.

    7	     .MOBKR    Space backward over one record  in  the	direction
		       toward  the  beginning of the tape.  If sequential
		       data is being read in the  forward  direction  and
		       not all of the record has been read, this function
		       positions the tape  back  to  the  start  of  that
		       record.	 If  sequential data is being read in the
		       reverse direction and not all of  the  record  has
		       been read, this function positions the tape to the
		       end  of	the  record  physically  preceding   that
		       record.

		       For labeled tapes, backward spacing will  position
		       over  a	logical  record.   This implies that many
		       physical records may be skipped (if  S  format  is
		       used)   perhaps	 involving  one  or  more  volume
		       switches.

    10	     .MOEOT    Advance forward until two  sequential  tape  marks
		       are  seen  and  position tape after the first tape
		       mark.

		       For labeled tapes, this function will position the
		       volume  set beyond the end of the last file in the
		       set.  This is useful for adding a new file to  the
		       end  of	an  already  existing  volume  set.  This
		       function may take some time to complete as one  or
		       more volumes switches may be required.

    11	     .MORUL    Rewind and unload  the  tape.   This  function  is
		       identical  to the .MOREW function and also unloads
		       the tape if the hardware supports tape unloading.

		       For labeled tapes, an  unload  is  illegal  unless
		       accompanying  a DISMOUNT request.  For MT devices,
		       this will generate a DESX9 error.

    12	     .MORDN    Return  the  current  density   setting.    On	a
		       successful   return,   AC3  contains  the  current
		       density.

    13	     .MOERS    Erase three inches  of  tape  (i.e.,  erase  gap).
		       This  function  requires that the magnetic tape be
		       opened for write access.

		       This function is illegal for labeled tapes.
   (MTOPR)
   

    14	     .MORDM    Return the hardware data mode currently being used
		       in   transfers	to  and  from  the  tape.   On	a
		       successful return, AC3 contains the  current  data
		       mode.

    15	     .MORRS    Return the size of the records.	On  a  successful
		       return,	AC3  contains  the number of bytes in the
		       records.

    16	     .MOFWF    Advance to the  start  of  the  next  file.   This
		       function  advances  the tape in the direction away
		       from the beginning of the  tape	until  it  passes
		       over a tape mark.

		       For labeled tapes, forward  space  will	skip  one
		       logical	file.	This  implies  that many physical
		       files may be skipped,  involving  perhaps  one  or
		       more volume switches.

    17	     .MOBKF    Space backward over one file.  This function moves
		       the  tape in the direction toward the beginning of
		       the tape until it  passes  over	a  tape  mark  or
		       reaches	the  beginning	of  the  tape,	whichever
		       occurs first.

		       For labeled tapes, backspace file will back up one
		       logical	file.	This  implies  that many physical
		       files may be skipped,  involving  perhaps  one  or
		       more volume switches.

					      NOTE

			   For labeled ANSI  tape,  the  monitor  can
			   compute  the  number  of  volume  switches
			   required to get to the  first  section  of
			   the	file.	Thus,  if  this  function  is
			   issued for  an  ANSI  tape,	at  most  one
			   volume  switch  will be required.  This is
			   not true for EBCDIC tape.

		       Issuing this function when  the	tape  is  already
		       positioned  at  the first volume of the volume set
		       will not produce an error.   The  program  issuing
		       this  function must follow the .MOBKF with a GDSTS
		       call to	determine  if  the  BOT  was  encountered
		       during the backspacing operation.

    20	     .MOSPR    Set the parity.	This  function	requires  AC3  to
		       contain the desired parity:

		       0    .SJPRO    odd parity
   (MTOPR)
   

		       1    .SJPRE    even parity

    21	     .MORPR    Return  the  current  parity.   On  a   successful
		       return, AC3 contains the current parity.

    22	     .MONRB    Return number of bytes remaining  in  the  current
		       record.	 On a successful return, AC3 contains the
		       number of bytes remaining.  This function is  only
		       meaningful during sequential I/O.

    23	     .MOFOU    Force any partial records  to  be  written  during
		       sequential output.

    24	     .MOSDN    Set the density.  The  function	requires  AC3  to
		       contain the desired density.

		       0    .SJDDN    default system density
		       1    .SJDN2    200 BPI (8 rows/mm)
		       2    .SJDN5    556 BPI (22 rows/mm)
		       3    .SJDN8    800 BPI (31 rows/mm)
		       4    .SJD16    1600 BPI (63 rows/mm)
		       5    .SJD62    6250 BPI (246 rows/mm)

				      This  function   is   illegal   for
				      labeled tapes.

		   25	    .MOINF    Return information about the  tape.
				      This   function	requires  AC3  to
				      contain the address of the argument
				      block  in  which the information is
				      to be returned.  The format of  the
				      argument block is as follows:

				      Word	    Symbol Contents

			 0    .MOICT   Length of  argument  block  to  be
				       returned (not including this word)
			 1    .MOITP   MTA type code
			 2    .MOIID   MTA reel ID
			 3    .MOISN   Channel, controller, and  unit  in
				       the left half and serial number in
				       the right half.
			 4    .MOIRD   Number of reads done
			 5    .MOIWT   Number of writes done
			 6    .MOIRC   Record number  from  beginning  of
				       tape
			 7    .MOIFC   Number of files on tape
			 10   .MOISR   Number of soft read errors
			 11   .MOISW   Number of soft write errors
			 12   .MOIHR   Number of hard read errors
			 13   .MOIHW   Number of hard write errors
			 14   .MOIRF   Number of frames read
			 15   .MOIWF   Number of frames written

    26	     .MORDR    Return the  direction  that  the  tape  is  moving
   (MTOPR)
   

		       during  read  operations.  On a successful return,
		       AC3 = 0 if the direction of  the  tape  motion  is
		       forwards,  or AC3 = 1 if the direction of the tape
		       motion is backwards.

    27	     .MOSID    Set the reel identification of the  tape  mounted.
		       The process must have WHEEL or OPERATOR capability
		       enabled.  This function requires  AC3  to  contain
		       the desired 36-bit reel ID.

    30	     .MOIEL    Inhibit error logging for the tape.

    31	     .MONOP    Wait for all activity to stop.

   32	     .MOLOC    Specifies the first volume in a MOUNT request,  or
		       identifies  the "next" volume for a volume switch.
		       This   function	 requires   OPERATOR   or   WHEEL
		       capability.

		       AC3 contains a pointer to an argument block having
		       the following format:

		       Word   Symbol		    Contents

			 0    .MOCNT   count of words in the block
			 1    .MOMTN   MT unit number to  associate  with
				       this MTA
			 2    .MOLBT   label type (.LTxxx)
			 3    .MODNS   density
			 4    .MOAVL   address of volume labels
			 5    .MONVL   number of volume labels at .MOAVL
			 6    .MOCVN   volume number in the volume set
			 7    .MOVSN   SIXBIT file set identifier

   37	     .MOSTA    Return  current	magtape   status.    Returns   an
		       argument  block	having	the  following	form  and
		       contents:

	       Word    Symbol	 Contents

		0      .MOCNT	 Count of words in  the  block	including
				 this word
		1      .MODDN	 density flags

				 Bit	Symbol	  Meaning

				 B1	SJ%CP2	  200 BPI
				 B2	SJ%CP5	  556 BPI
				 B3	SJ%CP8	  800 BPI
				 B4	SJ%C16	  1600 BPI
				 B5	SJ%C62	  6250 BPI

		2      .MODDM	 data mode flags
   (MTOPR)
   

				 Bit	Symbol	  Meaning

				 B1	SJ%CMC	  core dump
				 B2	SJ%CM6	  SIXBIT
				 B3	SJ%CMA	  ANSI ASCII
				 B4	SJ%CM8	  industry compatible
				 B5	SJ%CMH	  high density mode

		3      .MOTRK	 recording track flags

				 Bit	Symbol	  Meaning

				 B1	SJ%7TR	  7-track drive
				 B2	SJ%9TR	  9-track drive

		4      .MOCST	 tape status flags

				 Bit	Symbol	  Meaning

				 B0	SJ%OFS	  off line
				 B1	SJ%MAI	  maintenance mode
						  enabled
				 B2	SJ%MRQ	  maintenance mode
						  requested
				 B3	SJ%BOT	  beginning of tape
				 B4	SJ%REW	  rewinding
				 B5	SJ%WLK	  write locked

		5      .MODVT	 device type

				 Code	Symbol	  Meaning

				 3	.MTT45	  TU45 (system default)
				 17	.MTT70	  TU70
				 20	.MTT71	  TU71
				 21	.MTT72	  TU72
				 13	.MTT77	  TU77
				 19	.MTT78	  TU78

   41	     .MOOFL    Enable interrupts for  online/offline  transition.
		       Allows  a  process to be interrupted if a magnetic
		       tape drive's state changes from online to  offline
		       or   vice-versa	 and   when  a	rewind	operation
		       completes.  This function must be  performed  once
		       for  each  drive  for  which  interrupts are to be
		       enabled.   If  multiple	drives	are  enabled  for
		       interrupts,  then  a  .MOSTA  function  should  be
		       performed (for each drive) before  interrupts  for
		       the  drives  are enabled.  Then, when an interrupt
		       occurs, .MOSTA can be performed for each drive and
		       the  current  status of that drive can be compared
		       against the previous  status.   Thus,  it  can  be
		       determined which drive (or drives) interrupted.

		       This   function	 requires   OPERATOR   or   WHEEL
   (MTOPR)
   

		       capability.

   42	     .MOPST    Declares the software interrupt channel to be used
		       by  the monitor to indicate that the UTL labels at
		       the end-of-volume or the UHL labels at  the  start
		       of the new volume are available.  If this MTOPR is
		       not  performed  before  an  EOV	 label	 set   is
		       encountered,  the  user	program will not be given
		       the opportunity to process the UTL or  UHL  labels
		       during the volume switch operation.

		       AC3 contains the PSI channel number to  set.   The
		       channel can be cleared by using -1 in AC3.

   43	     .MORVL    Rewind current labeled tape volume.

   44	     .MOVLS    Switch volumes for an unlabled multi-volume set.
		       If  an  unlabeled  tape	is   mounted   specifying
		       multiple  volumes  in  the volume set, the monitor
		       will not automatically perform a volume switch  at
		       the  end  of each volume.  The .MOVLS function may
		       be issued in such  a  case  to  perform	a  volume
		       switch.	 It  can  also	be used to force a volume
		       switch for a labeled tape.

		       AC3 contains the  address  of  an  argument  block
		       having the following format:

		       Word   Symbol		    Contents

			 0	       count of words in block	including
				       this word
			 1	       flags,,function code
			 2	       argument (if required)

				       Available functions are:

				       Word  Symbol   Function

					1    .VSMNV   mount	 absolute
						      volume	   number
						      (volume  number  in
						      word   2	 of   the
						      argument block)
					2    .VSFST   mount first  volume
						      in set
					3    .VSLST   mount  last  volume
						      in set
					4    .VSMRV   mount	 relative
						      volume	   number
						      (volume  number  in
						      word   2	 of   the
						      argument block)

						      For   .VSMRV,   the
   (MTOPR)
   

						      argument	in word 2
						      of   the	 argument
						      block is the volume
						      number relative  to
						      the current mounted
						      volume  to   mount.
						      For   example,   if
						      volume	 2     is
						      currently   mounted
						      and    .VSMRV    is
						      performed with 2 in
						      word   2	 of   the
						      argument	   block,
						      then volume 4  will
						      be	 mounted.
						      Specifying   1   in
						      word   2	 of   the
						      argument block will
						      mount    the   next
						      volume in the set.
					5    .VSFLS   force volume switch
						      for  labeled  tape.
						      This  function   is
						      only  for tapes for
						      which  .MOSDS   has
						      previously     been
						      set.

   45	     .MONTR    Set no translate.

		       Sets or clears the EBCDIC to ASCII translate flag.
		       If the flag is set and the tape file being read is
		       from an IBM EBCDIC volume, then all data delivered
		       to the user program will be in its original EBCDIC
		       form.  If the flag is not set,  and  the  file  is
		       from an IBM EBCDIC volume, then all data delivered
		       to the user program will be in ASCII.  In order to
		       perform	this translation, certain information may
		       be lost (as the EBCDIC character set contains  256
		       codes  while the ASCII character set contains only
		       128 codes).  Note that the setting  of  this  flag
		       has  no	effect	on  the data delivered by the MTU
		       JSYS.

		       If AC3 is zero then the translate flag is cleared.
		       If AC3 is non-zero, the translate flag is set.

   46	     .MORDL    Read user header  labels.   Labels  must  be  read
		       immediately  after  the file is opened (and before
		       the first input is requested) or  after	a  volume
		       switch  has occurred and the volume switch PSI has
		       been generated.	.MORDL may be used to read either
		       the  UHL or UTL labels.	User header labels may be
		       read only if  the  file	is  opened  for  read  or
		       append.	 The  labels  may  be  a  maximum  of  76
   (MTOPR)
   

		       characters long.

		       User trailer labels may be read at any  time.   If
		       the  program requests to read user trailer labels,
		       the tape will be positioned  to	the  EOF  trailer
		       section.

		       AC3 contains  a	byte  pointer  to  the	area  for
		       receiving the label.

		       On a successful	return,  AC2  contains	the  user
		       label   identifier.    This   will  be  the  ASCII
		       character following the UHL or the UTL.	AC3  will
		       contain an updated byte pointer.

   47	     .MOWUL    Write user header labels or user  trailer  labels.
		       User  header  labels may be written only after the
		       file is opened (and  before  the  first	write  is
		       performed)  or when a PSI is generated, indicating
		       that a volume switch has  occurred.   User  header
		       labels  may  be written only if the file is opened
		       for write access.

		       User trailer labels may be read or written at  any
		       time.   If  the	program  requests  to  write user
		       trailer labels, the file will be  terminated  with
		       an  EOF trailer section.  Once user trailer labels
		       are written in this manner, no more  data  may  be
		       read or written.

		       User trailer labels may also be written	during	a
		       volume  switch  sequence.  Once the PSI indicating
		       EOV has been received, the user program may  write
		       a  UTL  label  into the EOV trailer section.  This
		       operation must be performed at interrupt level.

		       AC3 contains a byte pointer to the label contents.
		       This  string  must  contain  76 bytes of data (the
		       monitor will use only the first	76  bytes).   AC4
		       contains   a  label  identifier	code  (any  ASCII
		       character).

		       It is possible to encounter EOT while writing  the
		       first  UTL in the EOF trailer set.  This can occur
		       if the last data write overwrote the EOT mark.  In
		       this  instance,	the user program will receive the
		       EOV PSI from  within  the  code	writing  the  UTL
		       labels  for  the  file.	 It  is  not  possible to
		       receive an  EOV	PSI  while  writing  the  trailer
		       labels in the EOV set.

   50	     .MORLI    Reads  the  available  fields  from  the  standard
		       volume  and  header  labels.   The  ANSI  standard
		       distinguishes protected from  unprotected  fields;
		       .MORLI only returns the unprotected fields.
   (MTOPR)
   

		       AC3 contains a pointer to an argument block of the
		       form:

		       Word			 Contents

			0	count of words in block
			1	word to store label type of this tape

				Value	Symbol	 Label Type

				  1	.LTUNL	 Unlabeled
				  2	.LTANS	 ANSI
				  3	.LTEBC	 EBCDIC
				  4	.LTT20	 TOPS-20

			2	byte pointer to area for  storing  volume
				name string
			3	byte pointer to area  for  storing  owner
				name string
			4	word  to   store   tape   format   (ASCII
				character)
			5	word to store record length
			6	word to store block length
			7	word to store creation date (in  internal
				format)
			10	word  to  store   expiration   date   (in
				internal format)
			11	byte pointer to  area  for  storing  file
				name string
			12	word to store generation number
			13	word to store version number
			14	word to store  mode  value  (form-control
				value).    The	 possible  modes  are  as
				follows:

				Mode
				Value	  Meaning

				space	  no line format characters are
					  present
				  A	  FORTRAN format control
					  characters are present
				  M	  All necessary line format
					  characters are present
				  X	  Data in stream mode

		       The user specifies only the block  count  and  the
		       byte  pointers;	the remaining values are returned
		       by the monitor.	If a zero is substituted for  any
		       of  the	byte pointers, then the associated string
		       is not returned.

		       This function is normally issued when the  JFN  is
		       open.   If issued when the JFN is closed, only the
		       first 3 words of the argument block are	returned.
   (MTOPR)
   

		       If  the	tape is unlabeled, only the first word of
		       the argument block is returned.

   51	     .MOSMV    Declares the value to be placed in the DEC-defined
		       "form-control"  field  in  the  HDR2  label.  This
		       field is not defined  in  the  ANSI  standard  but
		       should  be  specified  whenever	the  data file is
		       meant to be read with DEC-supplied software.  This
		       function merely declares the value to be placed in
		       the   label.    It   is	 the	user	program's
		       responsibility  to produce records that conform to
		       the declared mode.

		       AC3 contains one of the following modes:

		       Value	 Symbol    Mode

			 0	 .TPFST    X - (stream mode)
			 1	 .TPFCP    M - (all formatting control
					   present)
			 2	 .TPFFC    A - (FORTRAN control present)
			 3	 .TPFNC    space - (no controls present)

   52	     .MOSDS    Set deferred volume switch.  Inhibits the  monitor
		       from doing an automatic volume switch and allows a
		       program	to  write  its	own  trailer  information
		       beyond	the   physical	end-of-tape  mark.   This
		       function is intended for labeled MT  devices  open
		       for writing in DUMP mode.

   PLPT Functions
    

   The	functions  available  for  physical  line  printers  (PLPT)   are
   described  below.   Some  of  these functions accept the address of an
   argument block in AC3.  The first word of the argument block  contains
   the length (including this word) of the block.  Remaining words of the
   block contain arguments for the particular function.

   Code      Symbol			   Meaning

    27	     .MOPSI    Enable for a software interrupt on nonfatal device
		       conditions.  Examples of these conditions are:

		       1.  Device changed from offline to online.

		       2.  Device changed from online to offline.

		       3.  Device's page counter has overflowed.

		       Other device errors or software conditions are not
		       handled	by  this  function;  instead they cause a
		       software interrupt on channel 11 (.ICDAE).

		       Argument Block
   (MTOPR)
   

		       E:    3
		       E+1:  interrupt channel number
		       E+2:  flags.  The following flag is defined:

			     B0(MO%MSG)   Suppress  standard  CTY  device
					  messages.

    31	     .MONOP    Wait for all  activity  to  stop.   This  function
		       blocks  the  process  until  all data has actually
		       been sent to the printer  and  has  been  printed.
		       Because this function is transferring data, it can
		       return an IOX5 data error.

    32	     .MOLVF    Load the line printer's VFU  (Vertical  Formatting
		       Unit)  from  the  file  indicated  in the argument
		       block.

		       Argument Block

		       E:    2
		       E+1:  JFN of the file containing the VFU

		       The system opens the file for input  with  a  byte
		       size  of 18 bits.  It closes the file and releases
		       the JFN when the loading of the VFU is complete.

    33	     .MORVF    Read the name of the current VFU  file  stored  in
		       the monitor's data base.

		       Argument Block

		       E:    3
		       E+1:  pointer to destination area for  ASCIZ  name
			     string
		       E+2:  number of bytes in destination area

    34	     .MOLTR    Load the line printer's	translation  RAM  (Random
		       Access  Memory)	from  the  file  indicated in the
		       argument block.

		       Argument Block

		       E:    2
		       E+1:  JFN of the file containing  the  translation
			     RAM

		       The system opens the file for input  with  a  byte
		       size  of 18 bits.  It closes the file and releases
		       the JFN when the loading of the translation RAM is
		       complete.

    35	     .MORTR    Read the name of the current translation RAM  file
		       stored in the monitor's data base.

		       Argument Block
   (MTOPR)
   

		       E:    3
		       E+1:  pointer to destination area for  ASCIZ  name
			     string
		       E+2:  number of bytes in destination area
    36	     .MOSTS    Set the status of the line printer.

		       Argument Block

		       E:    3
		       E+1:  software status  word,  with  the	following
			     status bits settable by the caller:

			     B0(MO%LCP)   Set line  printer  as  a  lower
					  case printer.

			     B12(MO%EOF)  Set bit MO%EOF in  the  printer
					  status  word when all data sent
					  to printer  has  actually  been
					  printed.   The  status word can
					  be  obtained	with  the  .MORST
					  function.

			     B14(MO%SER)  Clear   the	software    error
					  condition  on the line printer.
					  This condition  usually  occurs
					  on a character interrupt.

			     Other status  bits  can  be  read	with  the
			     .MORST  function  (see  below) but cannot be
			     set by the caller.

		       E+2:  value for page counter register.  The caller
			     can  indicate  the  number  of  pages  to be
			     printed by specifying a value of  up  to  12
			     bits  (4096).  Each time the printer reaches
			     the top of a new  page,  it  decrements  the
			     value  by one.  When the value becomes zero,
			     the  printer  sets  status  bit  MO%LPC  and
			     generates	 an   interrupt   if  the  .MOPSI
			     function was given previously.

			     If the caller specifies a value of 0 in  the
			     register,	the system will maintain the page
			     counter and will not generate  an	interrupt
			     to  the caller when the page counter becomes
			     zero.

			     If the caller specifies a value of -1 in the
			     register, the value will be ignored.

	37   .MORST    Read the status of the line printer.   The  status
		       is  obtained from the front end, and the caller is
		       blocked until it receives the status.

		       Argument Block
   (MTOPR)
   

		       E:    3
		       E+1:  status  word.   The   following   bits   are
			     defined:

			     B0(MO%LCP)   Line printer is  a  lower  case
					  printer.   This bit is set only
					  if a .MOSTS function	declaring
					  the	printer  lower	case  was
					  executed previously.

			     B1(MO%RLD)   Front end  has  been	reloaded.
					  This	bit  is reset to zero the
					  next	time  any  I/O	 activity
					  begins for the line printer.

			     B10(MO%FER)  A    fatal	hardware    error
					  occurred.	This	condition
					  generates a software	interrupt
					  on channel 11 (.ICDAE).

			     B12(MO%EOF)  All data sent  to  printer  has
					  actually been printed.

			     B13(MO%IOP)  Output to the line  printer  is
					  in progress.

			     B14(MO%SER)  A   software	  error    (e.g.,
					  interrupt    character,    page
					  counter overflow) occurred.

			     B15(MO%HE)   A  hardware	error	occurred.
					  This error generates a software
					  interrupt   on    channel    11
					  (.ICDAE).	This	condition
					  usually requires that the forms
					  be realigned.

			     B16(MO%OL)   Line printer is offline.   This
					  bit is set on the occurrence of
					  any  hardware  condition   that
					  requires operator intervention.

			     B17(MO%FNX)  Line printer does not exist.

			     B30(MO%RPE)  A RAM parity error occurred.

			     B31(MO%LVU)  The line printer has an optical
					  (12-channel tape reader) VFU.

			     B33(MO%LVF)  A  VFU  error  occurred.    The
					  paper has to be realigned.

			     B34(MO%LCI)  A character interrupt occurred.
					  This	 generates   a	 software
					  interrupt   on    channel    11
   (MTOPR)
   

					  (.ICDAE).

			     B35(MO%LPC)  The page counter  register  has
					  overflowed.

			     Bits 2-17 contain the software  status  word
			     from  the	front end, and bits 20-35 contain
			     the hardware status word.

		       E+2:  value of page counter register.  A value  of
			     -1 indicates the printer has no page counter
			     value defined.

    40	     .MOFLO    Flush any line printer output  that  has  not  yet
		       been printed.

  PCDP Functions
   

  The functions available for physical card punches (PCDP) are described
  below.   Like the LPT functions, these functions accept the address of
  an argument block in AC3.  The first word of the  block  contains  the
  length  (including  this  word)  of the block.  Remaining words in the
  block contain arguments for the particular function.

  Code      Symbol		 Meaning

   27	     .MOPSI    Enable for a software interrupt on nonfatal device
		       conditions.  Examples of these conditions are:

		       1.  Device changed from offline to online.

		       2.  Device changed from online to offline.

		       Other device errors or software conditions are not
		       handled	by  this  function;  instead they cause a
		       software interrupt on channel 11 (.ICDAE).

		       Argument Block

		       E:    3
		       E+1:  interrupt channel number
		       E+2:  flags.  The following flag is defined:

			     B0(MO%MSG)   Suppress  standard  CTY  device
					  messages.

   37	     .MORST    Read the status of the card punch.  The status  is
		       obtained  from  the  front  end, and the caller is
		       blocked until it receives the status.

		       Argument Block

		       E:    2
		       E+1:  status word.  Bits 2-17 contain the software
			     status  word  from  the  front end, and bits
   (MTOPR)
   

			     20-35 contain the hardware status word.

			     B10(MO%FER)  Fatal error condition
			     B12(MO%EOF)  All  pending	output	has  been
					  processed
			     B13(MO%IOP)  Output in progress
			     B14(MO%SER)  Software  error  has	 occurred
					  (would generate an interrupt on
					  an assigned channel)
			     B15(MO%HE)   Hardware  error  has	 occurred
					  (would  generate  interrupt  on
					  channel .ICDAE)
			     B16(MO%OL)   Card punch  is  offline.   This
					  bit	is   set   when  operator
					  intervention is required  (card
					  jam,	hopper	empty, or stacker
					  full).
			     B17(MO%FNX)  Card punch doesn't exist
			     B32(MO%HEM)  Hopper is empty or  stacker  is
					  full
			     B33(MO%SCK)  Hopper is empty or  stacker  is
					  full (same as above)
			     B34(MO%PCK)  Pick check

   PCDR Functions
    

   The functions available for physical card readers (PCDR) are described
   below.   These  functions  accept  the address of an argument block in
   AC3.  The first word of the block contains the length (including  this
   word)  of  the  block.  Remaining words in the block contain arguments
   for the particular function.

   Code      Symbol		 Meaning

    27	     .MOPSI    Enable for a software interrupt on nonfatal device
		       conditions.  Examples of these conditions are:

		       1.  Device changed from offline to online.

		       2.  Device changed from online to offline.

		       Other device errors or software conditions are not
		       handled	by  this  function;  instead they cause a
		       software interrupt on channel 11 (.ICDAE).

		       Argument Block

		       E:    3
		       E+1:  interrupt channel number
		       E+2:  flags.  The following flag is defined:

			     B0(MO%MSG)   Suppress  standard  CTY  device
					  messages.

    37	     .MORST    Read the status of the card reader.  The status is
   (MTOPR)
   

		       obtained  from  the  front  end, and the caller is
		       blocked until it receives the status.

		       Argument Block

		       E:    2
		       E+1:  status word.  Bits 2-17 contain the software
			     status  word  from  the  front end, and bits
			     20-35 contain the hardware status word.

			     B0(MO%COL)   Card reader is on  line.   This
					  bit  is  not	obtained from the
					  front end.

			     B1(MO%RLD)   Front end  has  been	reloaded.
					  This	bit  is reset to zero the
					  next time I/O  activity  begins
					  for the card reader.

			     B10(MO%FER)  A    fatal	hardware    error
					  occurred.	This	condition
					  generates a software	interrupt
					  on channel 11 (.ICDAE).

			     B12(MO%EOF)  Card reader is at end of file.

			     B13(MO%IOP)  Input from the card  reader  is
					  in progress.

			     B14(MO%SER)  A   software	  error    (e.g.,
					  interrupt character) occurred.

			     B15(MO%HE)   A  hardware	error	occurred.
					  This error generates a software
					  interrupt   on    channel    11
					  (.ICDAE).

			     B16(MO%OL)   Card reader is off line.   This
					  bit is set on the occurrence of
					  any  hardware  condition   that
					  requires operator intervention.

			     B17(MO%FNX)  Card reader does not exist.

			     B31(MO%SFL)  The output stacker is full.

			     B32(MO%HEM)  The input hopper is empty.

			     B33(MO%SCK)  A card did not stack	correctly
					  in the output stacker.

			     B34(MO%PCK)  The card reader failed to  pick
					  a card correctly from the input
					  hopper.
   (MTOPR)
   

			     B35(MO%RCK)  The card reader detected a read
					  error when reading a card.

   PTY Functions
    

		       The functions available for pseudo-terminals (PTY)
		       are  described  below.	Some  of  these functions
		       accept arguments in AC3.  (Refer to the individual
		       descriptions.)

		       Code	 Symbol Meaning

    24	     .MOAPI    Assign  PTY  interrupt  channels.   This  function
		       requires AC2 to contain
		       B0(MO%WFI)      enable waiting-for-input interrupt
		       B1(MO%OIR)      enable output-is-ready interrupt
		       B12-B17(MO%SIC) software interrupt channel  number
				       for   output   to  the  PTY.   The
				       channel number used for input from
				       the  PTY  is  one greater than the
				       channel number used for output  to
				       the PTY.
		       B18-B35	       function code

    25	     .MOPIH    Determine if PTY job needs input.  On a successful
		       return,	AC2  contains 0(.MONWI) if PTY job is not
		       waiting for input or contains  -1(.MOWFI)  if  PTY
		       job is waiting for input.

    26	     .MOBAT    Set batch control bit.  This function requires AC3
		       to  contain  0(.MONCB)  if  the	job  is not to be
		       controlled by batch or to contain 1(.MOJCB) if the
		       job  is to be controlled by batch.  To obtain this
		       value, the process can  execute	the  GETJI  JSYS,
		       function .JIBAT.

   TTY Functions
    

    25	     .MOPIH    Determine if TTY job needs input.  On a successful
		       return,	AC2  contains 0(.MONWI) if TTY job is not
		       waiting for input or contains  -1(.MOWFI)  if  TTY
		       job is waiting for input.

    26	     .MOSPD    Set  the  terminal  line  speed.   This	 function
		       accepts in AC3 the desired line speed (input speed
		       in the left half and output  speed  in  the  right
		       half).	The  left  half of AC2 contains flag bits
		       indicating  the	type  of  line	being  set.    If
		       B0(MO%RMT)  is  on, the line is a remote (dataset)
		       line.  If B1(MO%AUT) is on, the line is	a  remote
		       autobaud  line  (i.e., is automatically set at 300
		       baud, and the contents of AC3  are  ignored.   The
		       process	must  have  WHEEL  or OPERATOR capability
   (MTOPR)
   

		       enabled to set B0(MO%RMT) and B1(MO%AUT).

    27	     .MORSP    Return the terminal line speed.	On  a  successful
		       return,	the  left  half of AC2 contains flag bits
		       indicating the type of line, and AC3 contains  the
		       speed  (input  speed  in  the left half and output
		       speed in the right half).  If B0(MO%RMT) of AC2 is
		       on,  the  line is a remote line, and if B1(MO%AUT)
		       is on, the line is a remote  autobaud  line.   AC3
		       contains  the speed or contains -1 if the speed is
		       unknown or is not applicable.

    30	     .MORLW    Return the terminal page width.	On  a  successful
		       return, AC3 contains the width.

    31	     .MOSLW    Set  the  terminal  page  width.   This	 function
		       requires AC3 to contain the desired width.

    32	     .MORLL    Return the terminal page length.  On a  successful
		       return, AC3 contains the length.

    33	     .MOSLL    Set  the  terminal  page  length.   This  function
		       requires AC3 to contain the desired length.

    34	     .MOSNT    Specify if  terminal  line  given  in  AC1  is  to
		       receive	system	messages.  This function requires
		       AC3 to contain 0 (.MOSMY) to allow messages  or	1
		       (.MOSMN) to suppress messages.

    35	     .MORNT    Return a code indicating if terminal line given in
		       AC1   is   to   receive	system	messages.   On	a
		       successful return,  AC3	contains  0  (.MOSMY)  if
		       messages are being sent to this line or 1 (.MOSMN)
		       if messages are being suppressed to this line.

    36	     .MOSIG    Specify if input on this terminal line  is  to  be
		       ignored	when  the  line is inactive (i.e., is not
		       assigned or opened).  This function  requires  AC3
		       to contain 0 if characters on this line are not to
		       be ignored or 1 if characters on this line are  to
		       be  ignored.   When  input  is  being  ignored and
		       characters are typed, no CTRL/G (bell) is sent, as
		       is the normal case when characters are typed on an
		       inactive line.

   37	     .MORBM    Read the 128-character break mask.   The  argument
		       block is the same as for .MOSBM (below).

   40	     .MOSBM    Sets the 128-character break mask.  Argument Block

		       E:    0,,4
		       E+1-E+4: character mask.  The leftmost 32 bits  of
				each  consecutive  word correspond to the
				ASCII character set in	ascending  order.
				For  example,  1B0  in	word  E+1 (of the
   (MTOPR)
   

				argument block) corresponds to ASCII code
				000  (null),  1B1 in word E+1 corresponds
				to ASCII code 001 (SOH), etc.  Bits 32-35
				must be zero.

   41	     .MORFW    Returns the current value of the  field	width  in
		       AC3.   Note  that  this may be less than the value
		       last set by .MOSFW.  If the field width is set  to
		       value  X  and  two  characters are read before the
		       .MORFW is executed, the	value  returned  will  be
		       X-2.   A  zero  returned  in AC3 indicates that no
		       field width is now in effect.

   42	     .MOSFW    Set the field width to the value in AC3.   A  zero
		       indicates that no field width is in effect.

   45	     .MOSLC    Set the terminal's line counter to value  in  AC3.
		       This   counter	is  incremented  by  the  monitor
		       everytime a linefeed is output  to  the	terminal.
		       The  monitor  clears this counter only when a line
		       becomes active.

   46	     .MORLC    Read the terminal's line counter and  return  with
		       its value in AC3.

   47	     .MOSLM    Set line  maximum  to  the  value  in  AC3.   This
		       function  sets  the  maximum  value  of	the  line
		       counter seen so far.   The  monitor  compares  the
		       line   counter  with  the  maximum  every  time	a
		       linefeed is typed, and if  the  the  line  counter
		       value is larger, the monitor sets the line maximum
		       to the value of	the  line  counter.   When  TEXTI
		       moves  the  cursor  up  on  screen  terminals,  it
		       decrements the line counter.

   50	     .MORLM    Read the current value of  the  line  maximum  and
		       return with its value in AC3.

   51	     .MOTPS    Assign  interrupt  channels  for   non-controlling
		       terminal.   The	channels  are specified in AC3 as
		       follows:  input PSI channel,, output PSI  channel.
		       An  interrupt  will be generated if a character is
		       input, or an output-buffer-empty condition  occurs
		       on output.  The channels can be cleared by setting
		       the appropriate half (or halves) of AC3 to -1.

   Generates an illegal instruction interrupt on error conditions below.

   MTOPR ERROR MNEMONICS:

   DESX1:    invalid source/destination designator

   DESX2:    terminal is not available to this job

   DESX3:    JFN is not assigned
   (MTOPR)
   

   DESX4:    invalid use of terminal designator or string pointer

   DESX5:    file is not open

   DESX9:    invalid operation for this device

   IOX4:     end of labels encountered

   IOX5:     device or data error

   MTOX1:    invalid function

   MTOX2:    record size was not set before I/O was done

   MTOX3:    function not legal in dump mode

   MTOX4:    invalid record size

   MTOX5:    invalid hardware data mode for magnetic tape

   MTOX6:    invalid magnetic tape density

   MTOX7:    WHEEL or OPERATOR capability required

   MTOX8:    argument block too long

   MTOX9:    output still pending

   MTOX10:   VFU or RAM file cannot be OPENed

   MTOX11:   data too large for buffers

   MTOX12:   input error or not all data read

   MTOX13:   argument block too small

   MTOX14:   invalid software interrupt channel number

   MTOX15:   device does not have Direct Access (programmable) VFU

   MTOX16:   VFU or Translation RAM file must be on disk

   MTOX17:   device is not on line

   MTOX18:   invalid software interrupt channel number

   MTOX19:   invalid terminal line width

   MTOX20:   invalid terminal line length

   TTYX01:   line is not active
   (MTU%)
   


Node: MTU%	Previous: MTOPR	Next: MUTIL	Up: Top
			     MTU%     JSYS 600

  Allows privileged programs to perform various  utility  functions  for
  mag	tape  MTnn:   devices.	 This JSYS differs from the MTOPR JSYS in
  that the invoking program need not have a JFN on the MT  nor  need  it
  even  have access to the MT.  It is used by MOUNTR to declare a volume
  switch error and by the access-control program (user supplied) to read
  file and volume labels.

  RESTRICTIONS:    Requires enabled WHEEL or OPERATOR capabilities

  ACCEPTS IN AC1:  function code

	      AC2:  MT unit number

	      AC3:  address of argument block

  RETURNS     +1:  always

  The functions and associated argument blocks are as follows:

  Code      Symbol		       Function

   0	     .MTNNV    Declare volume switch error

		       Argument Block:

		       Word   Symbol		    Contents

			 0    .MTCNT   count of words in block
			 1    .MTCOD   error code to return to user
			 2    .MTPTR   byte pointer to operator response

   1	     .MTRAL    Read labels.

		       Argument Block:

		       Word   Symbol		    Contents

			 0    .MTCNT   count of words in block
			 1    .MTVL1   byte pointer to area to hold  VOL1
				       label
			 2    .MTVL2   byte pointer to area to hold  VOL2
				       label
			 3    .MTHD1   byte pointer to area to hold  HDR1
				       label
			 4    .MTHD2   byte pointer to area to hold  HDR2
				       label

		       If  any	of  the  byte  pointers  is   zero,   the
		       associated string is not returned.

   2	     .MTASI    return assignment information
   (MTU%)
   

		       Argument Block:

		       Word   Symbol		    Contents

			 0    .MTCNT   count of words in block
			 1    .MTPHU   returned  MTA  number   associated
				       with  the  MT.	If  there  is  no
				       association, .MTNUL is returned.

		       This function is used by MOUNTR	to  determine  if
		       there  are  any	existing  MT to MTA associations.
		       This is necessary when MOUNTR is restarted.


Node: MUTIL	Previous: MTU%	Next: (JSYS4NR)NIN	Up: Top
			     MUTIL     JSYS 512

   Performs   various	IPCF   (Inter-Process	Communication	Facility)
   functions,  such  as  enabling and disabling PIDs, assigning PIDs, and
   setting quotas.  Refer to the TOPS-20 Monitor Calls User's  Guide  for
   an	overview  and  description  of	the  Inter-Process  Communication
   Facility.

   RESTRICTIONS:    some  functions  require  WHEEL,  OPERATOR,  or  IPCF
		    capability enabled

   ACCEPTS IN AC1:  length of argument block

	      AC2:  address of argument block

   RETURNS     +1:  failure, error code in AC1

	       +2:  success.  Responses from the requested  function  are
		    returned in the argument block.

   The format of the argument block is as follows:

	Word			      Meaning

	  0	       Code of desired function.  (See below.)
	1 through n    Arguments   for	 the   desired	 function.    The
		       arguments, which depend on the function requested,
		       begin in word 1 and are given in the  order  shown
		       below.	Responses from the requested function are
		       returned in these words.

   The available functions, along with	their  arguments,  are	described
   below.

   Code      Symbol		      Meaning

    1	     .MUENB    Enable the specified PID to receive packets.   The
   (MUTIL)
   

		       PID  must  have	been created by the caller's job.
		       Also, if the calling process was not  the  creator
		       of  the	PID,  the  no-access bit (IP%NOA) must be
		       off.

		       Argument

			  PID

    2	     .MUDIS    Disable the specified PID from receiving  packets.
		       The  PID  must  have  been created by the caller's
		       job.  Also, if the calling  process  was  not  the
		       creator	of  the  PID,  the no-access bit (IP%NOA)
		       must be off.

		       Argument

			  PID
     3	     .MUGTI    Return the PID associated with <SYSTEM>INFO.   The
		       PID is returned in word 2 of the argument block.

		       Argument

			  PID or job number

     4	     .MUCPI    Create a private  copy  of  <SYSTEM>INFO  for  the
		       specified   job.   The  caller  must  have  WHEEL,
		       OPERATOR, or IPCF capability enabled.

		       Arguments

			  PID to be assigned to <SYSTEM>INFO
			  PID or number of job creating private copy

     5	     .MUDES    Delete the specified PID.  The caller must own the
		       PID being deleted.

		       Argument

			  PID

     6	     .MUCRE    Creates a PID for the specified	process  or  job.
		       The  flags that can be specified are B6(IP%JWP) to
		       make the PID job wide and  B7(IP%NOA)  to  prevent
		       access  to  PID	from other processes.  The caller
		       must have  IPCF	capability  enabled  if  the  job
		       number  given  is not that of the caller.  The PID
		       created is returned in  word  2	of  the  argument
		       block.	If a job number is specified, the created
		       PID will belong to the top fork of the job.

		       Argument

			  flags,,process handle or job number
   (MUTIL)
   

     7	     .MUSSQ    Set send and receive quotas for the specified PID.
		       The caller must have IPCF capability enabled.  The
		       new send quota is given in B18-B26,  and  the  new
		       receive	quota  is  given in B27-B35.  The receive
		       quota applies to the specified PID, but	the  send
		       quota  applies  to  the	job  to  which	that  PID
		       belongs.

		       Arguments

			  PID
			  new quotas

     10      .MUCHO    Change  the  job  number   associated   with   the
		       specified  PID.	 The  caller  must  have WHEEL or
		       OPERATOR capability enabled.

		       Arguments

			  PID
			  new job number or PID belonging to new job

     11      .MUFOJ    Return  the  job  number   associated   with   the
		       specified PID.  The job number is returned in word
		       2 of the argument block.

		       Argument

			  PID

     12      .MUFJP    Return all PIDs associated with the specified job.
		       Two  words are returned, starting in word 2 of the
		       argument block, for each PID.  The first  word  is
		       the  PID.   The	second word has B6(IP%JWP) set if
		       the PID is job wide and B7(IP%NOA) set if the  PID
		       is not accessible by other processes.  The list is
		       terminated by a 0 PID.

		       Argument

			  job number or PID belonging to that job

     13      .MUFSQ    Return  the  send  and  receive	quotas	for   the
		       specified  PID.	The quotas are returned in word 2
		       of the argument	block  with  the  send	quota  in
		       B18-B26	and  the  receive  quota in B27-B35.  The
		       receive quota applies to the  specified	PID,  but
		       the  send  quota  applies to the job to which that
		       PID belongs.

		       Argument

			  PID

     15      .MUFFP    Return all PIDs associated with the  same  process
   (MUTIL)
   

		       as  that  of  the specified PID.  The list of PIDs
		       returned  is  in  the  same  format  as	the  list
		       returned for the .MUFJP function (12).

		       Argument

			  PID

     16      .MUSPQ    Set the maximum number of  PIDs	allowed  for  the
		       specified   job.    The	 caller  must  have  IPCF
		       capability enabled.

		       Arguments

			  job number or PID
			  PID quota

     17      .MUFPQ    Return the maximum number of PIDs allowed for  the
		       specified  job.	The PID quota is returned in word
		       2 of the argument block.

		       Argument

			  job number or PID

     20      .MUQRY    Return the Packet Descriptor Block  for	the  next
		       packet  in the queue associated with the specified
		       PID.   An  argument  of	-1   returns   the   next
		       descriptor  block for the process, and an argument
		       of -2 returns the next descriptor  block  for  the
		       job.  The descriptor block is returned starting in
		       word 1 of the argument block.  The calling process
		       and  the  process that owns the specified PID must
		       belong to the same job.

		       Argument

			  PID

    21      .MUAPF    Associate the PID with the specified process.  The
		       calling	process  and  the  process  that owns the
		       specified PID must belong to the same job.

		       Arguments

			  PID
			  process handle

    22      .MUPIC    Place the specified PID on  a  software	interrupt
		       channel.  An interrupt is then generated when:

		       1.   The .MUPIC function is issued while  the  PID
			   has one or more messages in its receive queue.
   (MUTIL)
   

		       2.  The PID's receive  queue  message  count  goes
			   from 0 to 1.

		       If the channel number is given as -1, the  PID  is
		       removed from its current channel.

		       The calling process and the process that owns  the
		       specified PID must belong to the same job.

		       Arguments

			  PID
			  channel number

     23      .MUDFI    Set the PID of <SYSTEM>INFO.  An error is given if
		       <SYSTEM>INFO  already  has a PID.  The caller must
		       have IPCF capability enabled.

		       Argument

			  PID of <SYSTEM>INFO

     24      .MUSSP    Place the specified PID into the system PID  table
		       at  the given offset.  The caller must have WHEEL,
		       OPERATOR, or IPCF capability enabled.  See  .MURSP
		       for a list of system PIDs.

		       Arguments

			  index into system PID table
			  PID

     25      .MURSP    Return a PID from the system PID table.	 The  PID
		       is  returned in word 2 of the argument block.  The
		       system  PID  table  currently  has  the	following
		       entries:

			  0  .SPIPC   Reserved for DEC
			  1  .SPINF   PID of <SYSTEM>INFO
			  2  .SPQSR   PID of QUASAR
			  3  .SPMDA   PID of QSRMDA
			  4  .SPOPR   PID of ORION

		       Argument

			  index into system PID table

    26      .MUMPS    Return the system-wide maximum packet  size.   The
		       size is returned in word 1 of the argument block.

     27      .MUSKP    Set PID to receive deleted PID messages.  Allows a
		       controller  task  to  be  notified  if  one of its
		       subordinate tasks crashes.  After this function is
		       performed,  if the subordinate PID is ever deleted
   (MUTIL)
   

		       (via RESET or  the  .MUDES  MUTIL  function),  the
		       monitor	 will	send   an  IPCF  message  to  the
		       controlling PID notifying it that the  subordinate
		       PID  has  been  deleted.   This	message  contains
		       .IPCKP in word 0 and the deleted PID in word 1.

		       Argument

			  Source (subordinate) PID

			  Object (controller) PID

     30      .MURKP    Return controlling PID for this subordinate PID.

		       Argument

			  Source (subordinate) PID

			  Object (controller) PID (returned)

   MUTIL ERROR MNEMONICS:

   IPCFX2:   no message for this PID

   IPCFX3:   data too long for user's buffer

   IPCFX4:   receiver's PID invalid

   IPCFX5:   receiver's PID disabled

   IPCFX6:   send quota exceeded

   IPCFX7:   receiver quota exceeded

   IPCFX8:   IPCF free space exhausted

   IPCFX9:   sender's PID invalid

   IPCF10:   WHEEL capability required

   IPCF11:   WHEEL or IPCF capability required

   IPCF12:   no free PID's available

   IPCF13:   PID quota exceeded

   IPCF14:   no PID's available to this job

   IPCF15:   no PID's available to this process

   IPCF16:   receive and message data modes do not match

   IPCF17:   argument block too small

   IPCF18:   invalid MUTIL JSYS function
   (MUTIL)
   

   IPCF19:   no PID for [SYSTEM]INFO

   IPCF20:   invalid process handle

   IPCF21:   invalid job number

   IPCF22:   invalid software interrupt channel number

   IPCF23:   [SYSTEM]INFO already exists

   IPCF24:   invalid message size

   IPCF25:   PID does not belong to this job

   IPCF26:   PID does not belong to this process

   IPCF27:   PID is not defined

   IPCF28:   PID not accessible by this process

   IPCF29:   PID already being used by another process

   IPCF30:   job is not logged in

   IPCF32:   page is not private

   IPCF33:   invalid index into system PID table

   IPCF35:   invalid IPCF quota