Trailing-Edge
-
PDP-10 Archives
-
mit_emacs_170_teco_1220
-
info/jsys4af.info
There are no other files named jsys4af.info in the archive.
File: JSYSAF 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: ACCESS Next: ADBRK Up: Top
ACCES JSYS 552
Gives a particular type of access to a given directory. The possible
types of accesses are:
1. Connecting to a directory on a given structure.
2. Gaining owner and group access rights to directories on a
structure without actually connecting to a directory on that
structure.
3. Relinquishing owner and group access rights to directories on
a structure without disconnecting from a directory on that
structure.
Access cannot be given to 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. Access rights and all JFNs on the regulated structure must
be released before the mount count can be decremented.
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: B0(AC%CON) connect the job to the specified
directory. After successful completion of
the call, the job is connected to and has
owner access to the directory, and its
default directory becomes this directory.
B1(AC%OWN) give the job owner access to the specified
directory and group access to directories
in the same groups as the specified
directory. The job's connected directory
is unchanged. This function cannot be
given for another job or for a files-only
directory.
B2(AC%REM) relinquish the owner access (obtained with
(ACCES)
the AC%OWN function) to the specified
directory and the group access to
directories in the same group. The job's
connected directory is unchanged. This
function cannot be given for another job
or for a files-only directory. The
settings of B0 and B1 are ignored if B2 is
on and the job number given is for the
current job.
B18-B35 length of the argument block
AC2: address of the argument block
RETURNS +1: always
The format of the argument block is as follows:
Word Symbol Meaning
0 .ACDIR Byte pointer to ASCIZ string containing the
structure and directory name or a 36-bit
directory number. The ASCIZ string must be
of the form structure:<directory>.
1 .ACPSW Byte pointer to ASCIZ string containing the
password of the specified directory. The
password is not required if the directory is
the job's logged-in directory on a domestic
structure and if the directory does not
require a password for the owner.
2 .ACJOB Number (decimal) of job or -1 for the current
job. The process must have WHEEL or OPERATOR
capability enabled to give a specific job
number other than its own.
The ACCES monitor call can be given for another job if the type of
access being requested is for connecting the job (AC%CON) and if the
process executing the call has WHEEL or OPERATOR capability enabled.
The ACCES monitor call is used to implement the CONNECT, ACCESS, and
END-ACCESS commands of the TOPS-20 Command Language.
Generates an illegal instruction interrupt on error conditions below.
ACCES ERROR MNEMONICS:
ACESX1: argument block too small
ACESX3: password is required
ACESX4: function not allowed for another job
ACESX5: no function specified for ACCES
(ACCES)
ACESX6: directory is not accessed
ACESX7: directory is "files-only" and cannot be accessed
CNDIX1: invalid password
CNDIX5: job is not logged in
STRX01: structure is not mounted
STRX02: insufficient system resources
STRX03: no such directory name
STRX04: ambiguous directory specification
STRX09: prior structure mount required
LGINX2: directory is "files-only" and cannot be logged into
CAPX1: WHEEL or OPERATOR capability required
RCDIX2: invalid directory specification
ARGX07: invalid job number
ARGX08: no such job
Node: ADBRK Previous: ACCESS Next: AIC Up: Top
ADBRK JSYS 570
Controls address breaks. An address break is the suspension of a
process when a specified location is referenced in a given manner.
RESTRICTIONS: Not available on 2020 hardware.
ACCEPTS IN AC1: function code in the left half and process handle in
the right half
AC2: arguments for the
AC3: specified function
RETURNS +1: always
This JSYS is useful when debugging a program. For example, consider
the problem of debugging a program consisting of a fork running
several inferior forks mapped to the same address space. One (or
more) of the inferior forks is erroneously referencing a particular
address. To find out which fork(s) are referencing that address, the
user would do the following:
(ADBRK)
1. Set up the software interrupt system for interrupts on
channel 19.
2. Perform the ADBRK .ABSET function for each inferior process,
using the handle of the inferior process and the address
erroneously being referenced.
3. When a channel 19 interrupt occurs, perform an RFSTS JSYS for
each inferior process. The interrupted process(es) that
caused the address break(s) will have a code 7 (.RFABK)
returned in its (their) status word(s).
4. Perform the ADBRK .ABGAD function for each process that
caused an address break. This will return the address of the
instruction that erroneously referenced the break address.
5. Perform the RFORK JSYS to restart the process(es) halted by
address break(s).
6. Continue running the program and repeating the last three
steps until the program completes execution or it no longer
generates address breaks.
The ADBRK JSYS may also be used to locate which instruction in a
process is setting a location to the wrong value.
The available functions are as follows:
Code Symbol Meaning
0 .ABSET Set address break.
1 .ABRED Read address break.
2 .ABCLR Clear address break.
3 .ABGAD Return address of break instruction.
Each function is described in the paragraphs below.
Setting address breaks - .ABSET
This function initializes the address break facility for the specified
process. When the process references the location in the manner for
which the break has been set, it is suspended. Its superior receives
a software interrupt on channel 19 (.ICIFT) if it has enabled for that
channel. After processing the interrupt, the superior process can
resume the inferior by executing the RFORK monitor call.
Only one address break can be in effect for a process at any one time,
and the break affects only the process for which it is set. If
another process references the location on which a break is set, it is
in no way affected by the break. When an address break is set in a
(ADBRK)
page shared among processes and each process is to be suspended when
it references the location, the ADBRK call must be executed for each
process.
Breaks cannot be specified for the accumulators.
The .ABSET function requires the following arguments to be given:
AC2: address of location on which to break
AC3: flag word indicating the type of reference on which to
break. The following flags are currently defined:
B0(AB%RED) Break on a read reference.
B1(AB%WRT) Break on a write reference.
B2(AB%XCT) Break on an execute (instruction fetch)
reference.
Reading address breaks - .ABRED
This function returns the current address break information for the
specified process. It returns the following information on a
successful return:
AC2: address of location on which a break is set
AC3: flag word indicating the type of reference on which the
break will occur. The following flags are currently
defined:
B0(AB%RED) Break will occur on a read reference.
B1(AB%WRT) Break will occur on a write reference.
B2(AB%XCT) Break will occur on an execute (instruction
fetch) reference.
If no address break has been set for the process, the contents of AC2
and AC3 are zero on return.
Clearing address breaks - .ABCLR
This function removes any address break that was set for the specified
process. A program can also remove a break by executing the .ABSET
function with AC2 and AC3 containing zero.
Returning the address of the break instruction - .ABGAD
This function returns in AC2 the address of the location on which the
process encountered a break. When the location on which the break
(ADBRK)
occurred is in a JSYS routine, the address returned is a monitor PC,
not the address of the JSYS. The program can obtain the address of
the JSYS by executing an RFSTS monitor call.
Generates an illegal instruction interrupt on error conditions below.
ADBRK ERROR MNEMONICS:
ABRKX1: address break not available on this system
ARGX02: invalid function
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: AIC Previous: ADBRK Next: ALLOC Up: Top
AIC JSYS 131
Activates specific software interrupt channels. (Refer to Section
2.5.)
ACCEPTS IN AC1: process handle
AC2: 36-bit word
Bit n on means activate channel n
RETURNS +1: always
The DIC monitor call can be used to deactivate specified software
interrupt channels.
Generates an illegal instruction interrupt on error conditions below.
AIC 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: ALLOC Previous: AIC Next: ARCF Up: Top
ALLOC JSYS 520
Allocates a device to a particular job or to the device pool of the
monitor's resource allocator. A device under control of the monitor's
resource allocator cannot be opened or assigned by any job other than
the one to which it is currently allocated. When the allocated device
is deassigned, it is returned to the monitor's resource allocator.
RESTRICTIONS: requires WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: function code (.ALCAL)
AC2: device designator
AC3: job number, -1, or -2
RETURNS +1: failure, error code in AC1
+2: success
If AC3 contains a job number, then the designated device is allocated
to that job.
If AC3 contains -1, then the device is returned to the pool of devices
available to all users of the system (i.e., the device is no longer
allocated). This is the initial state of all devices.
If AC3 contains -2, then the device is assigned to the monitor
resource allocator's pool of devices.
When a non-allocated device (i.e., a device not under control of the
resource allocator) is assigned or opened by a job, the device cannot
be taken by the resource allocator. However, the resource allocator
can allocate the device to the job that currently has it. Thus, when
the job releases the device, it will be given to the resource
allocator. The allocator receives an IPCF packet when the device is
returned to it. 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 resource allocator's code .IPCSA. Each
following word contains the designator of the returned device. Thus,
.IPCFL/<.IPCCC>B32
DATA/.IPCSA
DATA+1/device designator
DATA+2/device designator
The ALLOC monitor call requires the process to have WHEEL or OPERATOR
capability enabled.
ALLOC ERROR MNEMONICS:
ALCX1: invalid function
(ALLOC)
ALCX2: WHEEL or OPERATOR capability required
ALCX3: device is not assignable
ALCX4: invalid job number
ALCX5: device already assigned to another job
ALCX6: device assigned to user job, but will be given to allocator
when released
DEVX1: Invalid device designator
Node: ARCF Previous: ALLOC Next: ASND Up: Top
ARCF JSYS 247
Performs all operations pertaining to the archive and virtual disk
systems. This includes requesting archival and migration, requesting
retrieval, and setting archive status and tape information for a file.
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: JFN
AC2: Function code. The available functions and their
argument blocks are described below.
AC3: (Function dependent, normally 0)
Code Symbol Function
0 .ARRAR Sets/clears AR%RAR (in .FBBBT of the FDB),
activating or deactivating a user request for
archival. The value .ARSET (1) in AC3 will
request an archive while .ARCLR (0) will clear
the request. Setting AR%NDL (in .FBBBT of the
FDB) with .ARSET in AC3 requests that the
contents of the file not be flushed from disk
upon archival.
1 .ARRIV Sets/clears AR%RIV (in .FBBBT of the FDB),
activating or deactivating a system request to
migrate a file from disk to tape. The value
.ARSET in AC3 will request migration while
.ARCLR will clear the request. This function
requires WHEEL or OPERATOR capabilities to be
enabled.
2 .AREXM Sets/clears AR%EXM (in .FBBBT of the FDB),
activating or deactivating exemption from
involuntary migration. .ARCLR (0) in AC3
(ARCF)
clears AR%EXM while .ARSET in AC3 will set
AR%EXM. This function requires WHEEL or
OPERATOR capabilities to be enabled.
3 .ARRFR Request a file's contents to be restored to
disk. Normally, .ARRFR returns without waiting
for the contents of the file to be restored to
disk.
Options for AC3
B1 AR%WAT Wait (ARCF JSYS blocks) until
the file is restored.
4 .ARDIS Discard tape information. Clears FB%ARC (if
set), .FBTP1, .FBTP2, .FBTSN, .FBTFN, and
.FBTDT. The file must be online for the
function to succeed.
Options for AC3 (Requires WHEEL or OPERATOR
privileges enabled to use functions
separately.)
B0 AR%CR1 Clear information for run 1
B1 AR%CR2 Clear information for run 2
5 .ARSST Set tape information for a file. Requires
enabled WHEEL or OPERATOR privileges. AC3
contains a pointer to an argument block as
follows:
Word Symbol Contents
0 .AROFL Flags:
B0(AR%01) Set information for
run 1
B1(AR%02) Set information for
run 2
B2(AR%OFL) Delete disk contents
of file when done.
Requires both sets
of tape information
to be set.
B3(AR%ARC) Set FB%ARC in the
FDB (archive the
file)
B4(AR%CRQ) Clear archive and/or
migration requests
(clear AR%RAR and
AR%RIV).
(ARCF)
1 .ARTP1 Tape 1 identification
2 .ARSF1 TSN 1,,TFN 1 - Tape saveset
number in the left half and
tape file number in the right
half.
3 .ARTP2 Tape 2 identification
4 .ARSF2 TSN 2,,TFN 2 - similar to
.ARSF1
5 .ARODT time and date of tape write in
internal format; 0 implies
present time
6 .ARPSZ Number of pages in the file.
This word can be set only if
AR%01 and AR%02 are set first.
This function is used to set information for the first, second,
or both tape runs. AR%01 and AR%02 are used together when
restoring files to disk via DUMPER'S RESTORE command.
6 .ARRST Restore contents of a file to disk. AC3 is a
JFN for a temporary file that contains the data
for a currently offline archived file. After
copying .FBADR, .FBBSY and .FBSIZ, the
temporary file is deleted. Both files must be
on the same device or structure and enabled
WHEEL or OPERATOR capabilities are required.
7 .ARGST Get tape information for file. AC3 contains a
pointer to an argument block that has the same
format as the block for .ARSST.
10 .ARRFL The restore for this file has failed. Set
AR%RFL in FBBBT to notify a waiting process
that the retrieval request cannot be completed.
Requires enabled WHEEL or OPERATOR
capabilities.
11 .ARNAR Resist involuntary migration. Sets or clears
AR%NAR in .FBBBT. Using .ARSET in AC3 will
cause resist to be set, while using .ARCLR will
clear resist.
ARCF ERROR MNEMONICS:
CAPX1: WHEEL or OPERATOR capabilities required
ARGX02: Invalid function code
ARCFX2: File already has archive status
(ARCF)
ARCFX3: Cannot perform ARCF functions on non-multiple directory
devices
ARCFX4: File is not online
ARCFX5: Files are not on the same device or structure
ARCFX6: File does not have archive status
ARCFX7: Invalid parameter for .ARSST
ARCFX8: Archive not complete
ARCFX9: File not offline
ARCX10: Archive prohibited
ARCH11: Archive requested, modification prohibited
ARCH12: Archive requested, delete prohibited
ARCX13: Archive system request not completed
ARCX14: Restore failed
ARCX15: Migration prohibited
ARCX16: Cannot exempt offline, archived, or archive pending files
ARCX17: FDB improper format for ARCF
ARCX18: Retrieval wait cannot be fulfilled for waiting process
ARCX19: Migration already pending
Node: ASND Previous: ARCF Next: ASNSQ Up: Top
ASND JSYS 70
Assigns a device to the caller. The successful return is given if the
device is already assigned to the caller.
ACCEPTS IN AC1: device designator
RETURNS +1: failure, error code in AC1
+2: success
The RELD call can be used to release devices assigned to the caller.
ASND ERROR MNEMONICS:
(ASND)
DEVX1: invalid device designator
DEVX2: device already assigned to another job
ASNDX1: device is not assignable
ASNDX2: illegal to assign this device
ASNDX3: no such device
DSMX1: file(s) not closed
Node: ASNSQ Previous: ASND Next: ATACH Up: Top
ASNSQ JSYS 752
Assigns a special message queue to a job.
RESTRICTIONS: for ARPANET systems only. Requires NET WIZARD
capabilities enabled.
ACCEPTS IN AC1: mask
AC2: header value
RETURNS +1: failure, error code in AC1
+2: success, special message queue assigned with special
queue handle in AC1.
ASNSQ ERROR MNEMONICS:
NTWZX1: NET WIZARD capability required
ASNSX1: Insufficient system resources
(all special queues in use)
ASNSX2: Link(s) assigned to another special queue
Node: ATACH Previous: ASNSQ Next: ATI Up: Top
ATACH JSYS 116
Detaches the specified job from its controlling terminal (if any) and
optionally attaches it to a new controlling terminal. A
console-attached entry is appended to the accounting data file.
RESTRICTIONS: some functions requires WHEEL or OPERATOR
capabilities enabled.
(ATACH)
ACCEPTS IN AC1: B0(AT%CCJ) generate a CTRL/C interrupt to the lowest
process in the job that is enabled for a
CTRL/C interrupt if the job is currently
attached to another terminal. If this bit
is not set or if the job is currently not
attached to another terminal, the job
simply continues running when it is
attached.
B1(AT%NAT) do not attach. Prevents both the
detaching of the job from its terminal and
the attaching of a remote job to the local
terminal. Is a no-op unless the remote
job has a controlling terminal, in which
case the remote job is detached and
remains detached. This bit in effect
makes ATACH like a remote DTACH.
B2(AT%TRM) attach the given job to the terminal
specified in AC4. If this bit is not set,
the job is attached to the controlling
terminal of the caller.
B18-B35 job number (decimal) of the desired job
(AT%JOB)
AC2: user number (e.g., 500000,,256) under which the job
to be attached is logged in. The user number can be
obtained with the RCUSR monitor call.
AC3: byte pointer to an ASCIZ password string in the
caller's address space.
AC4: number (octal) of the terminal to be attached to the
specified job. This argument is required if
B2(AT%TRM) is set.
RETURNS +1: failure, error code in AC1
+2: success. If there is a logged-in job currently
attached to the specified terminal, it is detached
with primary I/O not redirected. Thus, if a process
has primary I/O from the controlling terminal, it
will block when it attempts primary I/O and will
continue when it is reattached and a character is
typed. If there is a job not logged in currently
attached to the specified terminal, the job goes
away.
It is legal to attach to a job that has a controlling terminal if
1. The job is logged in under the same user name as the job
executing the ATACH.
(ATACH)
2. The job executing the ATACH supplies the correct password of
the job it is attaching to.
3. The job executing the ATACH has WHEEL or OPERATOR capability
enabled.
4. The job executing the ATACH has ownership of the job because
it created the job (and maintained ownership) with the CRJOB
call.
If the controlling terminal is a PTY, a password is not required if
either:
1. The owner of the PTY has WHEEL or OPERATOR capability
enabled.
2. The specified job is logged in with the same name as the
owner of the PTY.
The DTACH monitor call can be used to detach the controlling terminal
from the current job.
ATACH ERROR MNEMONICS:
ATACX1: invalid job number
ATACX2: job already attached
ATACX3: incorrect user number
ATACX4: invalid password
ATACX5: this job has no controlling terminal
Node: ATI Previous: ATACH Next: ATNVT Up: Top
ATI JSYS 137
Assigns a terminal code to a software interrupt channel. (Refer to
Section 2.5.) This call also sets the corresponding bit in the
process' terminal interrupt mask. (Refer to the STIW and RTIW monitor
calls.)
ACCEPTS IN AC1: terminal code (refer to Section 2.5.6) in the left
half and channel number in the right half
RETURNS +1: always
If there is no controlling terminal (i.e., if the job is detached),
the assignments are remembered and will be in effect when a terminal
becomes attached.
(ATI)
The DTI monitor call can be used to deassign a terminal code.
Generates an illegal instruction interrupt on error conditions below.
ATI ERROR MNEMONICS:
TERMX1: invalid terminal code
ATIX1: invalid software interrupt channel number
ATIX2: control-C capability required
Node: ATNVT Previous: ATI Next: BIN Up: Top
ATNVT JSYS 274
Creates the Network Virtual Terminal (NVT) connection.
Attach two jfns to an NVT.
For Ethernet, same calling convention as for the ARPANET.
Local change: After successfully setting up the NVT, the port's
data mode is set to .PM32 and its byte size to 8-bit.
RESTRICTIONS: for use with ARPANET only
ACCEPTS IN AC1: flag bits in the left half and the JFN of the opened
receive connection in the right half
AC2: JFN of the opened send connection
RETURNS +1: failure, with error code in AC1
+2: success, with terminal designator specific to this
NVT in AC1
Flags for AC1:
Bit Meaning
B2 If set, this bit indicates New TELNET protocol.
If clear, this bit indicates old TELNET protocol.
ATNVT ERROR MNEMONICS:
ATNX1: invalid receive JFN
ATNX2: receive JFN is not open for read
ATNX3: receive JFN is not open
ATNX4: receive JFN is not a network connection
ATNX5: receive JFN has been used
ATNX6: receive connection has been refused
ATNX7: invalid send JFN
(ATNVT)
ATNX8: send JFN is not open for write
ATNX9: send JFN is not open
ATNX10: send JFN is not a network connection
ATNX11: send JFN has been used
ATNX12: send connection has been refused
ATNX13: insufficient system resources (no NVTs)
Node: BIN Previous: ATNVT Next: BKJFN Up: Top
BIN JSYS 50
Inputs the next byte from the specified source. When the byte is read
from a file, the file must first be opened, and the size of the byte
given, with the OPENF call. When the byte is read from memory, a
pointer to the byte is given. This pointer is updated after the call.
ACCEPTS IN AC1: source designator
RETURNS +1: always, with the byte right-justified in AC2
If the end of file is reached, AC2 contains 0 instead of the byte.
The program can process this end-of-file condition if an ERJMP or
ERCAL is the next instruction following the BIN call.
The BOUT monitor call can be used to output a byte sequentially to a
destination.
Can cause several software interrupts or process terminations on
certain file conditions. (Refer to bit OF%HER of the OPENF call
description.)
BIN ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
IOX1: file is not open for reading
IOX4: end of file reached
IOX5: device or data error
(BKJFN)
Node: BKJFN Previous: BIN Next: BOOT Up: Top
BKJFN JSYS 42
Backs up the source designator's pointer by one byte.
ACCEPTS IN AC1: source designator
RETURNS +1: failure, error code in AC1
+2: success, updated string pointer in AC1, if pertinent.
(This return actually decrements the pointer.)
The BKJFN call, when referring to a terminal, can be executed only
once to back up one character (i.e., the terminal's pointer cannot be
backed up twice). The call, when referring to other designators, can
be executed more than once in succession.
BKJFN ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
BKJFX1: illegal to back up terminal pointer twice
SFPTX2: illegal to reset pointer for this file
SFPTX3: invalid byte number
TTYX01: line is not active
Node: BOOT Previous: BKJFN Next: BOUT Up: Top
BOOT JSYS 562
Performs basic maintenance and utility functions required for loading
and dumping the communications front-end software via the DTE-20. The
TOPS-20 system process responsible for performing these functions uses
a DIGITAL-supplied protocol to implement them.
On 2040,2050, and 2060 hardware, the BOOT JSYS is used to load and
dump a PDP-11 connected to a DTE20. On 2020 hardware, the BOOT JSYS
loads and dumps a KMC11, dumps line counters, and stops DDCMP on a
line.
RESTRICTIONS: requires WHEEL or OPERATOR capabilities enabled.
Some functions are specific to 2020 hardware.
(BOOT)
ACCEPTS IN AC1: function code
AC2: address of argument block
RETURNS +1: always
The available functions and their argument blocks are described below.
Code Symbol Meaning
0 .BTROM Activate the hardware ROM bootstrap in the
communications front end.
Argument Block
0 .BTDTE DTE-20 number
1 .BTERR Error status flags returned on
failure of the call
1 .BTLDS Load a secondary bootstrap program into the
communications front end. The secondary
bootstrap, with a maximum size of 256 PDP-11
words, is loaded using the ROM bootstrap. The
data to be loaded must be packed as two 16-bit
PDP-11 words left justified in each 36-bit
TOPS-20 word. The entire bootstrap program
must be loaded at once, and the caller blocks
until the transfer is complete.
Argument Block
0 .BTDTE DTE-20 number
1 .BTERR Error status flags returned on
failure of the call
2 .BTSEC Address of bootstrap program to
be loaded
2 .BTLOD Load the communications front-end memory using
the previously loaded secondary or tertiary
bootstrap program. The bootstrap program in
the front end must abide by the protocol for
DTE-20 transfers: the first two bytes of data
supplied by the caller must be a count of the
remaining number of data bytes.
Argument Block
0 .BTDTE DTE-20 number
1 .BTERR Error status flags returned on
failure of the call
(BOOT)
2 Not used and must be zero.
3 .BTFLG User-supplied flag word
B0(BT%BEL) Send a doorbell to
the front end to
indicate when the
setup is complete
and the transfer can
begin.
4 .BTCNT Number of bytes to transfer
5 .BTLPT Pointer to data to be loaded
3 .BTDMP Dump the communications front-end memory using
the ROM bootstrap program. The caller must
activate the ROM bootstrap (function .BTROM)
before dumping memory. Subsequent .BTDMP
functions to dump memory start where the
previous dump terminated unless the ROM
bootstrap is activated again by a .BTROM
function. The caller blocks until the transfer
is complete.
Argument Block
0 .BTDTE DTE-20 number
1 .BTERR Error status flags returned on
failure of the call
2 Not used and must be zero.
3 .BTFLG User-supplied flag word. This
word is not used and must be
zero.
4 .BTCNT Number of bytes to transfer
5 .BTDPT Pointer to where the data is to
be dumped in the TOPS-20
4 .BTIPR Initialize the protocol to be used with this
communications front end. After successful
execution of this function, the TOPS-20 will
process interrupts from the given DTE-20.
Argument Block
0 .BTDTE DTE-20 number
1 .BTPRV Version number of the protocol
to be used
(BOOT)
For multi-drop terminals
(VT62's) on a 2020, this
function will generate and link
a DDCMP Station Table. It will
startup a terminal not
previously known to the system
and must be issued once for each
terminal being started up.
Argument Block
0 .BTPRT Drop,,line
1 .BTPRV Version number of protocol to be
used (see description of BOOT
function code 6)
5 .BTTPR Stop the protocol currently running on this
communications front end. After successful
execution of this function, the TOPS-20 will
ignore interrupts from the given DTE-20.
Argument Block
0 .BTDTE DTE-20 number
6 .BTSTS Return the status type of the protocol running
on this communications front end. Also returns
the name of the adjacent DECNET node for this
front end.
Argument Block
0 .BTDTE DTE-20 number
1 .BTCOD Returned protocol version type
If no protocol is running, this
word contains -1.
Possible protocol types are:
Symbol Meaning
.VN20F (0) RSX20F protocol
.VNMCB (1) MCB DECNET protocol
.VNDDC (2) DDCMP protocol
.VNMOP (3) MOP (DDCMP maintenance) mode
.VNCNL (4) Controller loopback
.VNCBL (5) Cable loopback
7 .BTBEL Block until a signal (doorbell) to the TOPS-20
is initiated by the communications front end.
This function is used to synchronize the caller
with the bootstrap program in the front end.
(BOOT)
Argument Block
0 .BTDTE DTE-20 number
10 .BTRMP Read data from the communications front end
using the previously loaded secondary or
tertiary bootstrap program. The bootstrap
program must abide by the protocol for DTE-20
transfers. The first two bytes of data will be
interpreted as a count of the remaining number
of bytes of data.
Argument Block
0 .BTDTE DTE-20 number
1 .BTERR Error status flags returned on
failure of the call
2 Not used and must be zero.
3 .BTFLG User-supplied flag word
B0(BT%BEL) Send a signal
(doorbell) to the
TOPS-20 to indicate
the transfer is
finished.
4 .BTCNT Maximum number of bytes to
transfer. After successful
execution of this function, this
word is updated to reflect the
actual number of bytes
transferred.
5 .BTMPT Pointer to where data is to be
placed
11 .BTKML Load a KMC11 (2020 only). This function will
optionally load the CRAM, DRAM, and the four
UNIBUS registers. Before the KMC11 is loaded,
the system verifies that each bit in UNIBUS
registers can be set and cleared. Before the
DRAM is loaded, the system verifies that each
bit in the entire DRAM can be set and cleared.
After the CRAM, DRAM, and registers are loaded,
they are verified to ensure that the data was
properly loaded. If the register data is not
supplied, the UNIBUS registers will be cleared
before the KMC11 is started.
Argument Block
0 .BTKMC KMC11 address
(BOOT)
1 .BTKER Error flags returned
B0 (BT%CVE) CRAM verify error
(right half is bad)
B1 (BT%DVE) DRAM verify error
(right half is bad)
B2 (BT%RVE) Register verify
error (right half
is bad)
2 .BTKCC Count of CRAM data
3 .BTKCP Pointer to CRAM data (16-bit
data)
4 .BTKDC Count of DRAM data
5 .BTKDP Pointer to DRAM data (8-bit
data)
6 .BTKRC Count of register data
7 .BTKRP Pointer to register data (16-bit
data)
8 .BTKSA Right-halfword is starting
address
B0 (BT%KSA) Right-halfword is
set; start KMC11
12 .BTKMS Dump a KMC11 (2020 only). This function will
optionally dump the CRAM, DRAM, and registers
if space is provided. The registers are SEL0,
SEL2, SEL4, SEL6, INDATA, OUTDATA, INBA, OUTBA,
and MISC*400+NPR.
Argument Block
0 .BTKMC KMC11 address
1 .BTKER Error flags returned
B0 (BT%CVE) CRAM verify error
(right half is bad)
B1 (BT%DVE) DRAM verify error
(right half is bad)
B2 (BT%RVE) Register verify
error (right half
is bad)
2 .BTKCC Count of CRAM data
(BOOT)
3 .BTKCP Pointer to CRAM data (16-bit
data)
4 .BTKDC Count of DRAM data
5 .BTKDP Pointer to DRAM data (8-bit
data)
6 .BTKRC Count of register data
7 .BTKRP Pointer to register data (16-bit
data)
13 .BTRLC Return line counters. All counters are
positive numbers.
Argument Block
0 .BTPRT Port number
1 .BTSCC Status count counter
2 .BTSCP Status count pointer
3 .BTRCC Receive count counter
4 .BTRCP Receive count pointer
5 .BTTCC Transmit count counter
6 .BTTCP Transmit count pointer
14 .BTCLI Convert line id to port number
Argument Block
0 .BTPRT Port number
1 .BTLID Pointer to ASCIZ line id
15 .BTCPN Convert NSP port number to line id
Argument Block
0 .BTPRT Port number
1 .BTLID Pointer to ASCIZ line id
16 .BTSTA Set the stations polling state to ACTIVE to
cause the terminal to be polled, or set it to
IDLE to prevent the terminal from being polled.
(VT62 on 2020 only)
Argument Block
0 .BTPRT Drop,,Line
1 .BTCOD Returned protocol version type
(BOOT)
(see description of Boot
function code 6)
0 .BTACT Set line active
1 .BTIDL Set line idle
17 .BTSSP Set the startup priority value. This value
will specify the relative frequency at which
startups are attempted. That is, for a value
of N each active station will be polled N times
for each DDCMP start. This is used to prevent
unresponsive stations from deteriorating
performance of a multi-drop line. (VT62 on
2020 only)
Argument Block
0 .BTPRT Line
1 .BTSPR Start priority count
20 .BTSTP Set the polling priority. This parameter is
maintained in the Station Table to specify the
realtive polling priority of a station. If
this feature is not used, all priority values
will default to 1 and polling will proceed in a
round robin manner. (VT62 on 2020 only)
Argument Block
0 .BTPRT Drop,,line
1 .BTPRI priority value
Typical range 1 (high) to 5
(low)
21 .BTSDD Send a DDCMP message. A DDCMP message wil be
queued for transmission on the specified line.
(VT62 on 2020 only)
Argument Block
0 .BTPRT Drop,,line
1 .BTMSG Address of message
2 .BTLEN Byte count of message
22 .BTRDD Receive a DDCMP message. An item from the
DDCMP input queue will be returned or .BTLEN
will be set to zero if the queue is empty.
Items on the queue will be data segments,
completion postings, or status postings
(station going up or down). (VT62 on 2020
only)
(BOOT)
Argument Block
0 .BTPRT Drop,,line
1 .BTMSG Address of buffer
2 .BTLEN Size of user buffer
For data messages, the byte
count of the message is returned
in .BTLEN. If the buffer is too
small, the JSYS will fail. For
completion postings, the
following will be returned in
.BTLEN:
BT%CTL (1B0) + .BTSUP (1) -
station came up
BT%CTL (1B0) + .BTSDW (2) -
station went down
BT%CTL (1B0) + .BTCMP (3) -
transmit complete
BT%CTL (1B0) + .BTSSF (4) - a
startup failed
.BTPRT will contain the drop of
the station this message
pertains to.
23 .BTCHN Set the interrupt channel so that software
interrupts will be generated when input data is
available. (VT62 on 2020 only)
Argument Block
0 .BTPRT Drop,,line
1 .BTSIC Software interrupt channel
24 .BTSLS Set type of line service to be done on a
synchronous communications line.
Argument Block
0 .BTPRT Drop,,line
1 .BTCOD Define protocol
Protocol values may be:
0 .BTNSP NSP protocol B
1 .BTDCP DDCMP protocol
The error status flag returned in word .BTERR on failure of a BOOT
call are front-end reload status bits recorded in the SYSERR error
(BOOT)
file. (Refer to the TOPS-20 Error Detection, Recovery, and Reporting
Reference Manual for an explanation of these status bits.)
Generates an illegal instruction interrupt on error conditions below.
BOOT ERROR MNEMONICS:
BOTX01: invalid DTE-20 number
BOTX02: invalid byte size
BOTX03: invalid protocol version number
BOTX04: byte count is not positive
BOTX05: protocol initialization failed
CAPX1: WHEEL or OPERATOR capability required
ARGX02: invalid function
Node: BOUT Previous: BOOT Next: CACCT Up: Top
BOUT JSYS 51
Outputs a byte sequentially to the specified destination. When the
byte is written to a file, the file must first be opened, and the size
of the byte given, with the OPENF call. When the byte is written to
memory, a pointer to the location in which to write the byte is given
in AC1. This pointer is updated after the call.
ACCEPTS IN AC1: destination designator
AC2: the byte to be output, right-justified
RETURNS +1: always
The BIN monitor call can be used to input a byte sequentially from a
source.
Can cause several software interrupts or process terminations on
certain file conditions. (Refer to bit OF%HER of the OPENF call
description.)
BOUT ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
(BOUT)
DESX5: file is not open
IOX2: file is not open for writing
IOX5: device or data error
IOX6: illegal to write beyond absolute end of file
IOX11: quota exceeded or disk full
Node: CACCT Previous: BOUT Next: CFIBF Up: Top
CACCT JSYS 4
Changes the account for the current job.
ACCEPTS IN AC1: account number (decimal) in bits 3-35 if bits 0-2 are
5. Otherwise contains a byte pointer to the new
account string in the address space of caller. 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, updated string pointer in AC1
The CACCT call sets the current account for the job to the specified
account. Subsequent session charges will be to this new account.
This call also validates the account given if the account validation
facility is enabled. (Refer to the .SFAVR function of the SMON/TMON
monitor call.)
The GACCT monitor call can be used to return the account for the
current job.
CACCT ERROR MNEMONICS:
CACTX1: invalid account identifier
CACTX2: job is not logged in
VACCX0: Invalid account
VACCX1: Account string exceeds 39 characters
Node: CFIBF Previous: CACCT Next: CFOBF Up: Top
CFIBF JSYS 100
(CFIBF)
Clears the designated file input buffer.
ACCEPTS IN AC1: source designator
RETURNS +1: always
Is a no-op if the source designator is not associated with a terminal.
The CFOBF monitor call can be used to clear a designated file output
buffer.
Generates an illegal instruction interrupt on error conditions below.
CFIBF ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX5: file is not open
DEVX2: device already assigned to another job
TTYX01: line is not active
Node: CFOBF Previous: CFIBF Next: CFORK Up: Top
CFOBF JSYS 101
Clears the designated file output buffer.
ACCEPTS IN AC1: destination designator
RETURNS +1: always
Is a no-op if the destination designator is not associated with a
terminal.
The CFIBF call can be used to clear a designated file input buffer.
Generates an illegal instruction interrupt on error conditions below.
CFOBF ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX5: file is not open
DEVX2: device already assigned to another job
(CFOBF)
TTYX01: line is not active
Node: CFORK Previous: CFOBF Next: CHFDB Up: Top
CFORK JSYS 152
Creates a process inferior to this process. (Refer to Section 2.6.2.)
ACCEPTS IN AC1: B0(CR%MAP) make the inferior process' map the same as
the current process' map by means of
indirect pointers. If this bit is not on,
the inferior process will have no pages in
its map. If desired, the creating process
may then use PMAP or GET to add pages to
the inferior's map.
B1(CR%CAP) make the inferior process' capabilities
the same as the current process'. If this
bit is not on, the inferior process has no
special capabilities.
B3(CR%ACS) set the inferior process' ACs from the
block whose address is in AC2. If this
bit is not on, the inferior process' ACs
are set to 0.
B4(CR%ST) set the PC of the inferior process to the
value in the right half of AC1 and start
the process. If this bit is not on, the
inferior process is not started, and the
right half of AC1 is ignored.
B18-B35 PC value for the inferior process if CR%ST
(CR%PCV) is on.
AC2: address of 20 (octal) word block (optional). This
block contains the AC values for the inferior
process. (Refer to bit CR%ACS above.)
RETURNS +1: failure, error code in AC1
+2: success, relative process handle in AC1
The inferior process receives the same primary input and output JFN's
as the current process. However, the primary input and/or output
files may be changed with the SPJFN monitor call.
The CR%MAP argument in AC1 allows the inferior to see the same address
space as that of the superior. The inferior process will have read
and write access to the superior's address space. The pages are
shared, and changes made by one process will be seen by the other.
(CFORK)
CFORK creates a virgin process if CR%ST and CR%MAP are not set. Note
that loading parameters in the AC's using CR%ACS does not make this a
non-virgin process. Setting CR%ST and either CR%ACS or CR%MAP creates
a non-virgin process.
CFORK creates an execute-only process if bit CR%MAP is set and the
creating process is an execute-only process. This is the only other
way to create an execute-only process besides using the GET JSYS.
The KFORK monitor call can be used to kill one or more processes.
CFORK ERROR MNEMONICS:
FRKHX6: all relative process handles in use
FRKHX8: illegal to manipulate an execute-only process
CFRKX3: insufficient system resources
Node: CHFDB Previous: CFORK Next: CHKAC Up: Top
CHFDB JSYS 64
Changes certain words in the file descriptor block (FDB) for the
specified file. (Refer to Section 2.2.8 for the format of this
block.)
ACCEPTS IN AC1: B0(CF%NUD) do not wait for the disk copy of the
directory to be updated. The specified
changes are made to the directory in
memory and are written to the disk as a
part of the normal monitor disk updating
procedure. (See below for more
information.)
B9-B17 index into FDB indicating word to be
(CF%DSP) changed
B18-B35 JFN
(CF%JFN)
AC2: mask indicating bits to be changed. If changing a
count value (in AC3), use -1 as a mask.
AC3: new values for changed bits. These values must be
given in the bit positions corresponding to the mask
given in AC2.
RETURNS +1: always
The following table lists the JSYS's that are used to set the words
and bits of the FDB:
(CHFDB)
Word Bits JSYS
.FBHDR none unchangeable
.FBCTL B0-B1 CHFDB
FB%NEX unchangeable
FB%DEL CHFDB
B4-B5 unchangeable
B6 reserved
FB%DIR unchangeable
FB%NOD CHFDB (owner/write access)
B9-B10 unchangeable
FB%ARC ARCF
FB%INV CHFDB
FB%OFF ARCF
FB%CTL CHFDB (owner)
.FBEXL none unchangeable
.FBADR none unchangeable
.FBPRT B18-B35 CHFDB (owner)
.FBCRE all CHFDB (WHEEL/OPERATOR)
.FBAUT all SFUST
.FBGEN none unchangeable
.FBACT all SACTF
.FBBYV FB%RET CHFDB (owner)
FB%BSZ CHFDB (owner/write access)
FB%MOD CHFDB (owner/write access)
FB%PGC CHFDB (WHEEL/OPERATOR)
.FBSIZ all CHFDB (owner/write access)
.FBCRV all CHFDB (owner/write access)
.FBWRT all CHFDB (owner/write access)
(CHFDB)
.FBREF all CHFDB (owner/write access)
.FBCNT all CHFDB (WHEEL/OPERATOR)
.FBBK0 none unchangeable
.FBBK1 none unchangeable
.FBBK2 none unchangeable
.FBBBT B0-B5 ARCF
AR%1ST CHFDB (WHEEL/OPERATOR)
AR%RFL ARCF
AR%PSZ DELF
.FBNET all SFTAD
.FBUSW all CHFDB (owner)
.FBGNL none unchangeable
.FBNAM none unchangeable
.FBEXT none unchangeable
.FBLWR all SFUST
.FBTDT all ARCF
.FBFET all SFTAD
.FBTP1 all ARCF
.FBSS1 all ARCF
.FBTP2 all ARCF
.FBSS2 all ARCF
Because each CHFDB call changes only one word in the FDB, several
calls must be executed to change several words. Each call causes disk
I/O, and to keep this I/O to a minimum, the program should set bit
CF%NUD on each call. The setting of this bit on each call permits the
program to run faster by allowing several changes to be made to the
FDB with minimum disk I/O. To ensure that all the changes have been
written to the disk, the program can issue the last CHFDB call with
bit CF%NUD off. Also, if the program requires the FDB on the disk to
be updated after each call, it should execute each CHFDB call with bit
CF%NUD off.
(CHFDB)
The GTFDB monitor call can be used to return the file descriptor block
for a specified file. The GFUST monitor call can be used to return
the name strings of the author of the file and the user who last wrote
the file. The GACTF call can be used to obtain the account designator
of the file.
Generates an illegal instruction interrupt on error conditions below.
CHFDB ERROR MNEMONICS:
CFDBX1: invalid displacement
CFDBX2: illegal to change specified bits
CFDBX3: write or owner access required
CFDBX4: invalid value for specified bits
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
(CHKAC)
Node: CHKAC Previous: CHFDB Next: CIS Up: Top
CHKAC JSYS 521
Checks if a user is allowed access to files in a given directory.
This monitor call is used to determine if the user will be able to
access files having a given protection code if the user is logged in
with the given capabilities and connected to the directory.
ACCEPTS IN AC1: length of the argument block in the right half. If
B0(CK%JFN) is on, word .CKAUD of the argument block
contains a JFN.
AC2: address of argument block
RETURNS +1: failure, error code in AC1
+2: success, access check is completed, with AC1
containing -1 if access is allowed or 0 if access is
not allowed.
The format of the argument block is as follows:
Word Symbol Meaning
0 .CKAAC Code of desired access to files.
1 .CKALD Byte pointer to user name string, or 36-bit
user number of user whose access is being
checked.
2 .CKACD Byte pointer to directory name string (with
punctuation), or 36-bit directory number to
which user whose access is being checked is
connected.
3 .CKAEC Enabled capabilities of user whose access is
being checked. (Refer to Section 2.6.1.)
4 .CKAUD Byte pointer to directory name string (with
punctuation), or 36-bit directory number of
the directory containing the files being
accessed. If B0(CK%JFN) of AC1 is on, this
word contains a JFN for the file being
accessed.
5 .CKAPR Protection of the files being accessed.
(Refer to Section 2.2.6.) This word is not
required if a JFN is supplied in word .CKAUD.
Access codes are as follows:
0 .CKARD read existing files
1 .CKAWR write existing files
2 .CKAEX execute existing files
3 .CKAAP append to existing files
(CHKAC)
4 .CKADL obtain directory listing of existing files
6 .CKADR read the directory
10 .CKACN connect to the directory
11 .CKACF create files in the directory
CHKAC ERROR MNEMONICS:
CKAX1: argument block too small
CKAX2: invalid directory number
CKAX3: invalid access code
CKAX4: file is not on disk
Node: CIS Previous: CHKAC Next: CLOSF Up: Top
CIS JSYS 141
Clears the software interrupt system for the current process. Clears
all interrupts in progress and all waiting interrupts.
RETURNS +1: always
Node: CLOSF Previous: CIS Next: CLZFF Up: Top
CLOSF JSYS 22
Closes a specific file or all files.
ACCEPTS IN AC1: B0(CO%NRJ) do not release the JFN
B6(CZ%ABT) abort any output operations currently
being done. Close the file but do not
perform any cleanup operations normally
associated with closing a file (e.g., do
not output remaining buffers or write tape
marks if output to a magnetic tape is
aborted). If output to a new disk file
that has not been closed (i.e., is
nonexistent) is aborted, the file is
closed and then expunged.
B7(CZ%NUD) do not update the copy of the directory on
the disk. (Refer to CF%NUD of the CHFDB
call description for further information.)
B18-B35 JFN of the file being closed
(CO%JFN)
(CLOSF)
RETURNS +1: failure, error code in AC1
+2: success
If AC1 contains -1, all files (and all JFN's) at or below this process
(with the exception of the primary I/O files and files that cannot be
closed by this process) are closed. This action is identical to that
taken on a CLZFF call with AC1 containing the process handle .FHSLF
(400000).
The OPENF monitor call can be used to open a specific file.
CLOSF 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
CLSX1: file is not open
CLSX2: file cannot be closed by this process
CLSX3: file still mapped
CLSX4: device still active
ENQX20: locked JFN cannot be closed
IOX11: quota exceeded or disk full
All output errors may occur.
Node: CLZFF Previous: CLOSF Next: COMND Up: Top
CLZFF JSYS 34
Closes process' files. Closes all files and/or releases all JFN's at
and/or below a specified process.
ACCEPTS IN AC1: B0(CZ%NIF) do not close files of inferior processes
B1(CZ%NSF) do not close files of this process
B2(CZ%NRJ) do not release JFNs
B3(CZ%NCL) do not close any files; only release
non-open JFNs
(CLZFF)
B4(CZ%UNR) unrestrict files opened with restricted
access for specified process. The
specified process must be the same as or
inferior to the process executing the
call.
B5(CZ%ARJ) wait until file can be closed, then close
it, and release JFNs
B6(CZ%ABT) abort any output operations currently
being done. Close the file but do not
perform any cleanup operations normally
associated with closing a file (e.g., do
not output remaining buffers or write tape
marks if output to a magnetic tape is
aborted). If output to a new disk file
that has not been closed (i.e., is
nonexistent) is aborted, the file is
closed and then expunged.
B7(CZ%NUD) do not update the copy of the directory on
the disk. (Refer to CF%NUD of the CHFDB
call description for further information.)
B18-B35 process handle
(CZ%PRH)
RETURNS +1: always. No action is taken if the call is in any way
illegal.
If AC1 contains only the process handle .FHSLF, the action is
identical to that taken on a CLOSF call with AC1 containing -1.
Generates an illegal instruction interrupt on error conditions below.
CLZFF ERROR MNEMONICS:
FRKHX1: invalid process handle
FRKHX2: illegal to manipulate a superior process
FRKHX3: invalid use of multiple process handle
IOX11: quota exceeded or disk full
Node: COMND Previous: CLZFF Next: CRDIR Up: Top
COMND JSYS 544
Parses one field of a command that is either typed by a user or
contained in a file. When this monitor call is used to read a command
from a terminal, it provides the following features:
(COMND)
1. Allows the input of a command (including the guide words) to
be given in abbreviated, recognition (ESC and CTRL/F), and/or
full input mode.
2. Allows the user to edit his input with the DELETE, CTRL/U,
CTRL/W, and CTRL/R editing keys.
3. Allows fields of the command to be defaulted if an ESC or
CTRL/F is typed at the beginning of any field or if a field
is omitted entirely.
4. Allows a help message to be given if a question mark (?) is
typed at the beginning of any field.
5. Allows input of an indirect file (@file) that contains the
fields for all or the remainder of the command.
6. Allows a recall of the correct portion of the last command
(i.e., up to the beginning of the field where an error was
detected) if the next command line begins with CTRL/H. The
correct portion of the command is retyped, and the user can
then continue typing from that point.
7. Allows input of a line to be continued onto the next line if
the user types a hyphen (-) immediately preceding a carriage
return. (The carriage return is invisible to the program
executing the COMND call, although it is stored in the text
buffer.) The hyphen can be typed by the user while he is
typing a comment. The comment is then continued onto the
next line.
The COMND call allows the command line that is input to contain a
comment if the comment is preceded by either an exclamation point or a
semicolon and the previous field has been terminated. When the COMND
call inputs an exclamation point after a field that has been
terminated, it ignores all text on the remainder of the line or up to
the next exclamation point. When the COMND call inputs a semicolon
after a field that has been terminated, it ignores all text on the
remainder of the line.
When an indirect file is given on the command line, it can be given at
the beginning of any field. However, it must be the last item typed
on the line, and its contents must complete the current command. The
user must terminate his input of the indirect file (after any
recognition is performed) with a carriage return. If he does not
terminate his input, the message ?INDIRECT FILE NOT CONFIRMED is
output. Also, if the user types a question mark (instead of the file
specification of the indirect file) after he types the @ character,
the message FILESPEC OF INDIRECT FILE is output. The indirect file
itself should not contain an ESC or carriage return; if these
characters are included, they will be treated as spaces. The contents
of the indirect file are placed in the text buffer but are not typed
on the user's terminal.
As the user types his command, the characters are placed in a command
(COMND)
text buffer. This buffer can also include the command line prompt, if
any. Several byte pointers and counts reflect the current state of
the parsing of the command. These pointers and counts are as follows:
1. Byte pointer to the beginning of the prompting-text buffer
(.CMRTY). This pointer is also called the CTRL/R buffer byte
pointer since it indicates the initial part of the text that
will be output on a CTRL/R. (The remainder of the text
output on a CTRL/R is what the user had typed before he typed
CTRL/R.) The buffer containing the prompt need not be
contiguous with the buffer containing the remainder of the
command line. Typically this pointer is to a string in the
literals area.
2. Byte pointer to the beginning of the user's input (.CMBFP).
This is the limit back to which the user can edit.
3. Byte pointer to the beginning of the next field to be parsed
(.CMPTR).
4. Count of the space remaining in the text input buffer
(.CMCNT).
5. Count of the number of characters in the buffer that have not
yet been parsed (.CMINC).
The illustration below is a logical arrangement of the byte pointers
and counts. Remember that the prompting-text buffer does not have to
be adjacent to the text buffer.
.CMCNT
!=======================================================!
! ! ! ! !
! ! ! ! !
!=======================================================!
^ ^ ^
! ! !
! ! ! .CMINC
! ! !
! ! !
! .CMBFP .CMPTR
.CMRTY
These byte pointers and other information are contained in a command
state block, whose address is given as an argument to the COMND
monitor call. The .CMINI function initializes these pointers.
Parsing of a command is performed field by field and by default begins
when the user types a carriage return, ESC, CTRL/F, or question mark.
These characters are called action characters because they cause the
(COMND)
system to act on the command as typed so far. A field can also be
terminated with a space, tab, slash, comma, or any other
nonalphanumeric character. Normally, the parsing does not begin, and
the COMND call does not return control to the program, until an action
character is typed. However, if B8(CM%WKF) is on in word .CMFLG when
the COMND call is executed, parsing begins after each field is
terminated.
The command is parsed by repeated COMND calls. Each call specifies
the type of field expected to be parsed by supplying an appropriate
function code and any data needed for the function. This information
is given in a function descriptor block. On successful completion of
each call, the current byte pointers and the counts are updated in the
command state block, and any data obtained for the field is returned.
The program executing the COMND call should not reset the byte
pointers in the command state block after it completes the parsing of
each command. It should set up the state block once at the beginning
and then use the .CMINI function when it begins parsing each line of a
command. This is true because the .CMINI function implements the
CTRL/H error recovery feature in addition to initializing the byte
pointers in the state block and printing the prompt for the line. If
the program resets the pointers, the CTRL/H feature is not possible
because the pointers from the previous command are not available.
When a CTRL/H is input, the .CMINI function allows error recovery from
the last command only if both (1) the pointer to the beginning of the
user's input (.CMBFP) is not equal to the pointer to the beginning of
the next field to be parsed (.CMPTR) and (2) the last character parsed
in the previous command was not an end-of-line character.
The design of the COMND call allows the user to delete his typed input
with the DELETE, CTRL/W, and CTRL/U keys without regard to field
boundaries. When the user deletes into a field that has already been
parsed, the COMND call returns to the program with B3(CM%RPT) set in
word .CMFLG. This return informs the program to forget the current
state of the command and to reparse from the beginning of the line.
Because the complete line as typed and corrected by the user is in the
text buffer, the parse can be repeated and will yield the same result
up to the point of the change.
The calling sequence to the COMND call is as follows:
ACCEPTS IN AC1: address of the command state block
AC2: address of the first alternative function descriptor
block
RETURNS +1: always (unless a reparse is needed and the right half
of .CMFLG is nonzero), with
AC1 containing flags in the left half, and the
address of the command state block in the right
half. The flags are copied from word .CMFLG in
the command state block.
AC2 containing either the data obtained for the field
or an error code if the field could not be parsed
(COMND)
(CM%NOP is on).
AC3 containing in the left half the address of the
function descriptor block given in the call, and
in the right half the address of the function
descriptor block actually used (i.e., the one
that matched the input).
The format of the command state block is shown below.
0 17 18 35
!=======================================================!
.CMFLG ! Flag Bits ! Reparse Dispatch Address !
!-------------------------------------------------------!
.CMIOJ ! Input JFN ! Output JFN !
!-------------------------------------------------------!
.CMRTY ! Byte Pointer to CTRL/R Text !
!-------------------------------------------------------!
.CMBFP ! Byte Pointer to Start of Text Buffer !
!-------------------------------------------------------!
.CMPTR ! Byte Pointer to Next Input To Be Parsed !
!-------------------------------------------------------!
.CMCNT ! Count of Space Left in Buffer !
!-------------------------------------------------------!
.CMINC ! Count of Characters Left in Buffer !
!-------------------------------------------------------!
.CMABP ! Byte Pointer to Atom Buffer !
!-------------------------------------------------------!
.CMABC ! Size of Atom Buffer !
!-------------------------------------------------------!
.CMGJB ! Address of GTJFN Argument Block !
!=======================================================!
Command State Block
Word Symbol Meaning
0 .CMFLG Flag bits in the left half, and the reparse
dispatch address in the right half. Some flag
bits can be set by the program executing the COMND
call; others can be set by the COMND call after
its execution. The bits that can be set by the
program are described following the Command State
Block description. The bits that can be set by
COMND are described following the Function
Descriptor Block description.
The reparse dispatch address is the location to
which control is automatically transferred when a
reparse of the command is needed because the user
edited past the current pointer (i.e., the user
edited characters that were already parsed). If
this field is zero, the COMND call sets B3(CM%RPT)
in the left half of this word and gives the +1
(COMND)
return when a reparse is needed. The program must
then test CM%RPT and, if on, must reenter the code
that parses the first field of the command. When
the reparse dispatch address is given, control is
transferred automatically to that address.
The code at the reparse dispatch address should
initialize the program's state to what it was
after the last .CMINI function. This
initialization should include resetting the stack
pointer, closing and releasing any JFNs acquired
since the last .CMINI function, and transferring
control to the code immediately following the last
.CMINI function call.
1 .CMIOJ Input JFN in the left half, and output JFN in the
right half. These designators identify the source
for the input of the command and the destination
for the output of the typescript. These
designators are usually .PRIIN (for input) and
.PRIOU (for output).
2 .CMRTY Byte pointer to the beginning of the
prompting-text.
3 .CMBFP Byte pointer to the beginning of the user's input.
The user cannot edit back past this pointer.
4 .CMPTR Byte pointer to the beginning of the next field to
be parsed.
5 .CMCNT Count of the space remaining in the buffer after
the .CMPTR pointer.
6 .CMINC Count of the number of unparsed characters in the
buffer after the .CMPTR pointer.
7 .CMABP Byte pointer to the atom buffer, a temporary
storage buffer that contains the last field parsed
by the COMND call. The terminator of the field is
not placed in this buffer. The atom buffer is
terminated with a null.
10 .CMABC Count of the number of characters in the atom
buffer. This count should be at least as large as
the largest field expected to be parsed.
11 .CMGJB Address of a GTJFN argument block. This block
must be at least 16(octal) words long and must be
writable. If a longer GTJFN block is being
reserved, the count in the right half of word
.GJF2 of the GTJFN argument block must be greater
than four. This block is usually filled in by the
COMND call with arguments for the GTJFN call if
the specified function is requesting a JFN (i.e.,
(COMND)
functions .CMIFI, .CMOFI, and .CMFIL). The user
should store data in this block on the .CMFIL
function only.
The flag bits that can be set by the user in the left half of word
.CMFLG in the Command State Block are described below. These bits
apply to the parsing of the entire command and are preserved by COMND
after execution. See the end of the COMND JSYS discussion for the
bits that are returned by COMND in the left half of word .CMFLG.
Bits Supplied in State Block on COMND Call
Bit Symbol Meaning
6 CM%RAI Convert lowercase input to uppercase.
7 CM%XIF Do not recognize the @ character as
designating an indirect file; instead
consider the character as ordinary
punctuation. A program sets this bit to
prevent the input of an indirect file.
8 CM%WKF Begin parsing after each field is terminated
instead of only after an action character
(carriage return, ESC, CTRL/F, question mark)
is typed. For example, a program sets this
bit if it must change terminal
characteristics (e.g., it must turn off
echoing because a password may be input) in
the middle of a command. However, use of
this bit is not recommended because terminal
wakeup occurs after each field is terminated,
thereby increasing system overhead. The
recommended method of changing terminal
characteristics within a command is to input
the field requiring the special
characteristic on the next line with its own
prompt. For example, if a program is
accepting a password, it should turn off
echoing after the .CMCFM function of the main
command and perform the .CMINI function to
type the prompt requesting a password on the
next line.
The format of the function descriptor block is shown below.
0 8 9 17 18 35
!=======================================================!
! function ! function ! address of next function !
.CMFNP! code ! flags ! descriptor block !
!-------------------------------------------------------!
.CMDAT! Data for specific function !
!-------------------------------------------------------!
(COMND)
.CMHLP! Byte pointer to help text for field !
!-------------------------------------------------------!
.CMDEF! Byte pointer to default string for field !
!-------------------------------------------------------!
.CMBRK! Pointer to 4-word break mask !
!=======================================================!
Function Descriptor Block
Word Symbol Meaning
0 .CMFNP Function code and pointer to next function
descriptor block.
B0-B8(CM%FNC) Function code
B9-B17(CM%FFL) Function-specific flags
B18-B35(CM%LST) Address of the next function
descriptor block
1 .CMDAT Data for the specific function, if any.
2 .CMHLP Byte pointer to the help text for this field.
This word can be zero if the program is not
supplying its own help text. CM%HPP must be set
(in word 0) in order for this pointer to be used.
3 .CMDEF Byte pointer to the default string for this field.
This word can be zero if the program is not
supplying its own default string.
4 .CMBRK Pointer to a 4-word break mask that specifies
which characters constitute end of field. Word
.CMBRK is ignored unless CM%BRK (B13) is on.
The individual words in the function descriptor block are described in
the following paragraphs.
Words .CMFNP and .CMDAT of the function descriptor block
Word .CMFNP contains the function code for the expected field to be
parsed, and word .CMDAT contains any additional data needed for that
function. The function codes, along with any required data for the
functions, are described below.
Code Symbol Meaning
0 .CMKEY Parse a keyword, such as a command name. Word
.CMDAT contains the address of a keyword symbol
table in the format described in the TBLUK monitor
call description (i.e., alphabetical). The data
bits that can be defined in the right half of the
first word of the argument pointed to by the table
entries (when B0-B6 of the first word are off and
B7(CM%FW) is on) are as follows:
(COMND)
B35(CM%INV) Suppress this keyword in the list
output on a ?. The program can set
this bit to include entries in the
table that should be invisible
because they are not preferred
keywords. For example, this bit
can be set to allow the keyword
LIST to be valid, even though the
preferred keyword may be PRINT.
The LIST keyword would not be
listed in the output given on a ?.
This bit is also used in
conjunction with the CM%ABR bit to
suppress an abbreviation in the
output given on a ?.
B34(CM%NOR) Do not recognize this keyword even
if an exact match is typed by the
user and suppress its listing in
the list output on a ?. (Refer to
the TBLUK call description for more
information on using this bit.)
B33(CM%ABR) Consider this keyword a valid
abbreviation for another entry in
the table. The right half of this
table entry points to the keyword
for which this is an abbreviation.
The program can set this bit to
include entries in the table that
are less than the minimum unique
abbreviation. For example, this
bit can be set to include the entry
ST (for START) in the table. If
the user then types ST as a
keyword, it will be accepted as a
valid abbreviation even though
there may be other keywords
beginning with ST. To suppress the
output of this abbreviation in the
list typed on a ?, the program must
also set the CM%INV bit.
On a successful return, AC2 contains the address
of the table entry where the keyword was found.
1 .CMNUM Parse a number. Word .CMDAT contains the radix
(from 2 to 10) of the number. On a successful
return, AC2 contains the number.
2 .CMNOI Parse a guide word string, but do not return an
error if no guide word is input. An error is
returned only if a guide word is input that does
not match the one expected by the COMND call. A
guide word field must be delimited by parentheses.
(COMND)
Word .CMDAT contains a byte pointer to an ASCIZ
string. This string does not contain the
parentheses of the guide word. Guide words are
output if the user terminated the previous field
with ESC. Guide words are not output, nor can
they be input, if the user has caused parsing into
the next field.
3 .CMSWI Parse a switch. A switch field must begin with a
slash and can be terminated with a colon in
addition to any of the legal terminators. Word
.CMDAT contains the address of a switch keyword
symbol table. (Refer to the TBLUK monitor call
description for the format of the table.) The
entries in the table do not contain the slash of
the switch keywords; however, they should end
with a colon if the switch requires a value. The
data bits CM%INV, CM%NOR, and CM%ABR defined for
the .CMKEY function can also be set on this
function. On a successful return, AC2 contains
the address of the table entry where the switch
keyword was found.
4 .CMIFI Parse an input file specification. This function
causes the COMND call to execute a GTJFN call to
attempt to parse the specification for an existing
file, using no default fields. The .CMGJB address
(word 11 in the command state block) must be
supplied, but the GTJFN block should be empty.
(Data stored in the block will be overwritten by
the COMND JSYS. Also, certain GTJFN flags are
set.) On a successful return, AC2 contains the JFN
assigned. Hyphens are treated as alphanumeric
characters for this function
See note following .CMFIL function.
5 .CMOFI Parse an output file specification. This function
causes the COMND call to execute a GTJFN call to
attempt to parse the specification for either a
new or an existing file. The default generation
number is the generation number of the existing
file plus 1. The .CMGJB address must be supplied,
but the GTJFN block should be empty. (Data stored
in the block will be overwritten by the COMND
JSYS. Also, certain GTJFN flags are set.) On a
successful return, AC2 contains the JFN assigned.
Hyphens are treated as alphanumeric characters for
this function.
See note following .CMFIL function.
6 .CMFIL Parse a general (arbitrary) file specification.
This function causes the COMND call to execute a
(COMND)
GTJFN to attempt to parse the specification for
the file. The .CMGJB address must be supplied,
but data stored in certain words of the GTJFN
block will be overwritten by the COMND JSYS and
certain GTJFN flags will be set (see note below).
On a successful return, AC2 contains the JFN
assigned. Hyphens are treated as alphanumeric
characters for this function.
Note that portions of the GTJFN block used by
functions .CMOFI, .CMIFI, and .CMFIL are
controlled by COMND. The following list shows
which words are under the control of COMND and
which words are under the control of the user:
GTJFN Controlled Characteristics
Word(s) by
.GJGEN COMND
1. .CMOFI sets flags
GJ%FOU, GJ%MSG, and
GJ%XTN and clears all
other flags.
2. .CMIFI sets flag
GJ%OLD, and GJ%XTN
and clears all other
flags.
3. .CMOFI and .CMIFI
zero the right half
of word .GJGEN
4. .CMFIL sets flag
GJ%XTN and clears
GJ%FCM
.GJSRC COMND None
.GJDEV -
.GJJFN COMND/
USER Functions .CMIFI AND
.CMOFI give COMND control
of these words. .CMFIL
gives the user control of
these words.
.GJF2 -
.GJATR COMND None
7 .CMFLD Parse an arbitrary field. This function is useful
for fields not normally handled by the COMND call.
The input, as delimited by the first
nonalphanumeric character, is copied into the atom
buffer; the delimiter is not copied. Note the
(COMND)
following:
1. This function will parse a null field
2. Hyphens are treated as alphanumeric characters
for this function
3. No validation is performed (such as filename
validation)
4. No standard help message is available (see
below)
5. The FLDBK. and BRMSK. macros may be used for
including other characters in the field (like
"*").
10 .CMCFM Confirm. This function waits for the user to
confirm the command with a carriage return and
should be used at the end of parsing a command
line.
11 .CMDIR Parse a directory name. Login and files-only
directories are allowed. Word .CMDAT contains
data bits for this function. The currently
defined bit is as follows:
B0(CM%DWC) Allow wildcard characters to be
typed in a directory name.
On a successful return, AC2 contains the 36-bit
directory number.
12 .CMUSR Parse a user name. Only login directories are
allowed. On a successful return, AC2 contains the
36-bit user number.
13 .CMCMA Comma. Sets B1(CM%NOP-no parse) in word .CMFLG of
the command state block and returns if a comma is
not the next item in the input. Blanks can appear
on either side of the comma. This function is
useful for parsing a list of arguments.
14 .CMINI Initialize the command line (e.g., set up internal
monitor pointers, type the prompt, and check for
CTRL/H). This function should be used at the
beginning of parsing a command line but not when
reparsing a line. Otherwise, the CTRL/H feature
will not work.
To use this function, the user first moves the
appropriate data into the command state block and
then issues .CMINI. If, at any time during the
(COMND)
parsing of a line, an error occurs, .CMINI is
issued again to reinitialize the line. However,
for the 2'nd thru N'th invocation of .CMINI for a
given line, the user should not alter the byte
pointers and character counts in the command state
block. To do so would disable the CTRL/H feature.
This feature allows the user program, on parsing a
bad atom, to print an error message, reissue the
prompt, and parse the command line again without
forcing the user to retype the entire line.
If .CMINI reads a CTRL/H character, .CMINI will
reset all byte pointers and character counts
except the .CMINC count to their original state.
.CMINI will set the .CMINC count to the number of
characters in the buffer up to the bad atom.
These characters are output to the terminal and
parsed again. Control then passes to the reparse
address (if provided) and normal parsing resumes.
The effect on the program is as if the bad atom
had never been typed.
15 .CMFLT Parse a floating-point number. On a successful
return, AC2 contains the floating-point number.
16 .CMDEV Parse a device name. On a successful return, AC2
contains the device designator.
17 .CMTXT Parse the input text up to the next carriage
return, place the text in the atom buffer, and
return. If an ESC or CTRL/F is typed, it causes
the terminal bell to ring (because recognition is
not available with this function) and is otherwise
ignored. If a ? is typed, an appropriate
response is given, and the ? is not included in
the atom buffer. (A ? can be included in the
input text if it is preceded by a CTRL/V.)
20 .CMTAD Parse a date and/or time field according to the
setting of bits CM%IDA and CM%ITM. The user must
input the field as requested. Any date format
allowed by the IDTIM call can be input. If a date
is not input, it is assumed to be the current
date. If a time is not input, it is assumed to be
00:00:01. When both the date and time fields are
input, they must be separated by one or more
spaces. If the fields are input separately, they
must be terminated with a space or carriage
return. Word .CMDAT contains bits in the left
half and an address in the right half as data for
the function. The bits are:
B0(CM%IDA) Parse a date
B1(CM%ITM) Parse a time
B2(CM%NCI) Do not convert the date and/or time to
(COMND)
internal format. (Refer to Section
2.8.2.)
The address in the right half is the beginning of
a 3-word block in the caller's address space. On
a successful return, this block contains data
returned from the IDTNC call executed by COMND if
B2(CM%NCI) was on in the COMND call (i.e., if the
input date and/or time field was not to be
converted to internal format). If B2(CM%NCI) was
off in the COMND call, on a successful return, AC2
contains the internal date and time format.
21 .CMQST Parse a quoted string up to the terminating quote.
The delimiters for the string must be double
quotation marks and are not copied to the atom
buffer. A double quotation mark is input as part
of the string if two double quotation marks appear
together. This function is useful if the legal
field terminators and the action characters are to
be included as part of a string. The characters
?, ESC, and CTRL/F are not treated as action
characters and are included in the string stored
in the atom buffer. Carriage return is an invalid
character in a quoted string and causes B1(CM%NOP)
to be set on return.
22 .CMUQS Parse an unquoted string up to one of the
specified break characters. Word .CMDAT contains
the address of a 4-word block of 128 break
character mask bits. (Refer to word .RDBRK of the
TEXTI call description for an explanation of the
mask.) The characters scanned are not placed in
the atom buffer. On return, .CMPTR is pointing to
the break character. This function is useful for
parsing a string with an arbitrary delimiter. The
characters ?, ESC, and CTRL/F are not treated as
action characters (unless they are specified in
the mask) and can be included in the string.
Carriage return can also be included if it is not
one of the specified break characters.
23 .CMTOK Parse the input and compare it with a given
string. Word .CMDAT contains the byte pointer to
the given string. This function sets B1(CM%NOP)
in word .CMFLG of the command state block and
returns if the next input characters do not match
the given string. Leading blanks in the input are
ignored. This function is useful for parsing
single or multiple character operators (e.g., + or
**).
24 .CMNUX Parse a number and terminate on the first
non-numeric character. Word .CMDAT contains the
radix (from 2 to 10) of the number. On a
(COMND)
successful return, AC2 contains the number. This
function is useful for parsing a number that may
not be terminated with a nonalphabetic character
(e.g., 100PRINT FILEA).
Note that non-numeric identifiers can begin with a
digit (e.g., 1SMITH as a user name). When a
non-numeric identifier and a number appear as
alternates for a field, the order of the function
descriptor blocks is important. The .CMNUX
function, if given first, would accept the digit
in the non-numeric identifier as a valid number
instead of as the beginning character of a
non-numeric identifier.
25 .CMACT Parse an account string. The input, as delimited
by the first nonalphanumeric character, is copied
into the atom buffer; the delimiter is not
copied. No verification is performed nor is any
standard help message available.
26 .CMNOD Parse a network node name. A node name consists
of up to six alphanumeric characters followed by 2
colons ("::"). Lowercase characters are converted
to uppercase characters. The node name is copied
into the atom buffer without the colons. Note
that this function does not verify the existence
of the node.
In addition to the .CMFNP word of the function descriptor block
containing the function code in bits 0-8 (CM%FNC), this word also
contains function-specific flag bits in bits 9-17 (CM%FFL) and the
address of another function descriptor block in bits 18-35 (CM%LST).
The flag bits that can be set in bits 9-17 (CM%FFL) are as follows:
Bit Symbol Meaning
14 CM%PO The field is to be parsed only and the field's
existence is not to be verified. This bit
currently applies to the .CMDIR and .CMUSR
functions and is ignored for the remaining
functions. On return, COMND sets B1(CM%NOP-no
parse) only if the field typed is not in the
correct syntax. Also, data returned in AC2 may
not be correct.
15 CM%HPP A byte pointer to a program-supplied help message
for this field is given in word 2 (.CMHLP) of this
function descriptor block.
16 CM%DPP A byte pointer to a program-supplied default
string for this field is given in word 3 (.CMDEF)
of this function descriptor block.
(COMND)
17 CM%SDH The output of the default help message is to be
suppressed if the user types a question mark.
(See below for the default messages.)
The address of another function descriptor block can be given in bits
18-35 (CM%LST) of the .CMFNP word. The use of this second descriptor
block is described below.
Usually one COMND call is executed for each field in the command.
However, for some fields, more than one type of input may be possible
(e.g., after a keyword field, the next field could be a switch or a
filename field). In these cases, all the possibilities for a field
must be tried in an order selected to test unambiguous cases first.
When the COMND call cannot parse the field as indicated by the
function code, it does one of two things:
1. It sets the current pointer and counts such that the next
call will attempt to parse the same input over again. It
then returns with B1(CM%NOP) set in the left half of the
.CMFLG word in the command state block. The caller can then
issue another COMND call with a function code indicating
another of the possible fields. After the execution of each
call, the caller should test the CM%NOP flag to see if the
field was parsed successfully.
2. If an address of another function descriptor block is given
in CM%LST, the COMND call moves to this descriptor block
automatically and attempts to parse the field as indicated by
the function code contained in B0-B8(CM%FNC) in word .CMFNP
of that block. If the COMND call fails to parse the field
using this new function code, it moves to a third descriptor
block if one is given. This sequence continues until either
the field is successfully parsed or the end of the chain of
function blocks is reached. Upon completion of the COMND
call, AC3 contains the addresses of the first and last
function blocks used.
By specifying a chained list of function blocks, the program can have
the COMND call automatically check all possible alternatives for a
field and not have to issue a separate call for each one. In
addition, if the user types a question mark, a list is output of all
the alternatives for the field as indicated by the list of function
descriptor blocks.
Word .CMHLP of the function descriptor block
This word contains a byte pointer to a program-supplied help text to
be output if the user types a question mark when entering his command.
The default help message is appended to the output of the
program-supplied message if B17(CM%SDH) is not set. If B17(CM%SDH) is
set, only the program-supplied message is output. If this word in the
descriptor block is zero, only the default message is output when the
user types a question mark. Bit 15(CM%HPP) must be set in word 0
(.CMFNP) of the function descriptor block for this pointer to be used.
(COMND)
The default help message depends on the particular function being used
to parse the current field. The table below lists the default help
message for each function available in the COMND call.
Default Help Messages
Function Message
.CMKEY (keyword) ONE OF THE FOLLOWING
followed by the alphabetical list of valid
keywords. If the user types a question mark
in the middle of the field, only the keywords
that can possibly match the field as
currently typed are output. If no keyword
can possibly match the currently typed field,
the message
KEYWORD (NO DEFINED KEYWORDS MATCH THIS
INPUT)
is output.
.CMNUM (number) The help message output depends on the radix
specified in .CMDAT in the descriptor block.
If the radix is octal, the help message is
OCTAL NUMBER
If the radix is decimal, the help message is
DECIMAL NUMBER
If the radix is any other radix, the help
message is
A NUMBER IN BASE nn
where nn is the radix.
.CMNOI (guide word) None
.CMSWI (switch) ONE OF THE FOLLOWING
followed by the alphabetical list of valid
switch keywords. The same rules apply as for
.CMKEY function. (See above.)
.CMIFI (input file) The help message output depends on the
.CMOFI (output file) settings of certain bits in the GTJFN call.
.CMFIL (any file) If bit GJ%OLD is off and bit GJ%FOU is on,
the help message is
OUTPUT FILESPEC
Otherwise, the help message is
INPUT FILESPEC
.CMFLD (any field) None
.CMCFM (confirm) CONFIRM WITH CARRIAGE RETURN
.CMDIR (directory) DIRECTORY NAME
.CMUSR (user) USER NAME
.CMCMA (comma) COMMA
(COMND)
.CMINI (initialize) None
.CMFLT (floating point) NUMBER
.CMDEV (device) DEVICE NAME
.CMTXT (text) TEXT STRING
.CMTAD (date) The help message depends on the bits set in
.CMDAT in the descriptor block. If CM%IDA is
set, the help message is
DATE
If CM%ITM is set, the help message is
TIME
If both are set, the help message is
DATE AND TIME
.CMQST (quoted) QUOTED STRING
.CMUQS (unquoted) None
.CMTOK (token) None
.CMNUX (number) Same as .CMNUM
.CMACT (account) None
.CMNOD (node) NODE NAME
Word .CMDEF of the function descriptor block
This word contains a byte pointer to the ASCIZ string to be used as
the default for this field. For this pointer to be used, bit 16
(CM%DPP) must be set in word 0 (.CMFNP) of the descriptor block. The
string is output to the destination, as well as copied to the text
buffer, if the user types an ESC or CTRL/F as the first non-blank
character in the field. If the user types a carriage return, the
string is copied to the atom buffer but is not output to the
destination.
When the caller supplies a list of function descriptor blocks, the
byte pointer for the default string must be included in the first
block. The CM%DPP bit and the pointer for the default string are
ignored when they appear in subsequent blocks. However, the default
string can be worded so that it will apply to any of the alternative
fields. The effect is the same as if the user had typed the given
string.
Defaults for fields of a file specification can also be supplied with
the .CMFIL function. If both the byte pointer to the default string
and the GTJFN defaults have been provided, the COMND default will be
used first and then, if necessary, the GTJFN defaults.
The function descriptor block, whose
address is given in AC2, can be set up
by the FLDDB. and FLDBK. macros defined
in MACSYM. (See end of COMND section
for a description of these macros.)
Word .CMBRK of the function descriptor block
This word contains a pointer to a 4-word user-specified mask that
determines which characters constitute end of field. The leftmost 32
bits of each word correspond to a character in the ASCII collating
sequence (in ascending order). If the bit is on for a given
character, typing that character will cause the COMND JSYS to treat
the characters typed so far as a separate field and parse it according
to the function being used. CM%BRK (B13) must be on in the first word
of the function descriptor block or COMND will ignore word .CMBRK.
Ordinarily, the user would rely on COMND's default masks (varying
according to function) to specify which characters signal end of field
and thus would not be concerned with word .CMBRK of the function
block. However, for special purposes such as allowing "*" or "%" to
be part of a field rather than a field delimiter, the user must
specify his own mask. (In this example, the bits for "*" and "%"
would be off in the mask word.) The user may inspect COMND's default
masks (defined in MONSYM) for help in designing a custom mask.
The following is a list of the COMND functions that use masks:
Mask COMND Changeable
Symbols Function by User
KEYB0. - KEYB3. .CMKEY Yes
DEVB0. - DEVB3. .CMDEV Yes (only if parse-only)
FLDB0. - FLDB3. .CMFLD Yes
EOLB0. - EOLB3. .CMTXT Yes
KEYB0. - KEYB3. .CMSWI Yes
User specified .CMDAT Yes
USRB0. - USRB3. .CMUSR No
FILB0. - FILB3. .CMFIL No
FILB0. - FILB3. .CMIFI No
FILB0. - FILB3. .CMOFI No
internal .CMNUM No
FILB0. - FILB3. .CMDIR No
internal .CMFLT No
ACTB0. - ACTB3. .CMACT No
COMND will ignore any break masks that are specified for functions
that do not allow user-modified masks.
Note that specifying a zero mask with CM%BRK set will cause the TTY
line buffer to fill up and generate an error.
On a successful return, the COMND call returns flag bits in the left
half of AC1 and preserves the address of the command state block in
the right half of AC1. These flag bits are copied from word .CMFLG in
the command state block and are described as follows.
(COMND)
Bits Returned on COMND Call
Bit Symbol Meaning
0 CM%ESC An ESC was typed by the user as the terminator for
this field.
1 CM%NOP The field could not be parsed because it did not
conform to the specified function(s). An error
code is returned in AC2.
2 CM%EOC The field was terminated with a carriage return.
3 CM%RPT Characters already parsed need to be reparsed
because the user edited them. This bit does not
need to be examined if the program has supplied a
reparse dispatch address in the right half of
.CMFLG in the command state block.
4 CM%SWT A switch field was terminated with a colon. This
bit is on if the user either used recognition on a
switch that ends with a colon or typed a colon at
the end of the switch.
5 CM%PFE The previous field was terminated with an ESC.
When a field cannot be parsed, B1(CM%NOP) is set in AC1, and one of
the following error codes is returned in AC2. Note that if a list of
function descriptor blocks is given and an error code is returned, the
error is associated with the last function descriptor block in the
list.
NPXAMB: ambiguous
NPXNSW: not a switch - does not begin with slash
NPXNOM: does not match switch or keyword
NPXNUL: null switch or keyword given
NPXINW: invalid guide word
NPXNC: not confirmed
NPXICN: invalid character in number
NPXIDT: invalid device terminator
NPXNQS: not a quoted string - does not begin with double quote
NPXNMT: does not match token
NPXNMD: does not match directory or user name
NPXCMA: comma not given
(COMND)
COMX18: invalid character in node name
COMX19: too many characters in node name
Macros
Several macros (defined in MACSYM) are available to make using the
COMND JSYS more convenient. These macros are as follows:
FLDDB.(TYP,FLGS,DATA,HLPM,DEFM,LST)
where:
TYP = function type
FLGS = function flags
DATA = function-specific data
HLPM = help message
DEFM = default text
LST = additional invocations of the FLDDB. macro (used only if
multiple function blocks are required)
This macro generates function descriptor blocks for COMND. For
example, the following code would perform a .CMINI function:
MOVEI T1,STEBLK ;Get address of COMND state block
MOVEI T2,[FLDDB.(.CMINI)] ;Get address of function block
COMND
The following code would perform a .CMKEY function (assuming
that the keyword table started at address CMDTAB:
MOVEI T1,STEBLK ;Get address of COMND state block
MOVEI T2,[FLDDB(.CMKEY,<CM%DPP+CM%+CM%HPP>,CMDTAB,
<help text>,<default text>)]
COMND
FLDBK.(TYP,FLGS,DATA,HLPM,DEFM,BRKADR,LST)
This is exactly the same as FLDDB. except that a provision has
been made for the address of the first word of a 4-word
character mask (BRKADR). This version is for use when a
user-specified character mask is required.
BRMSK.(INI0,INI1,INI2,INI3,ALLOW,DISALLOW)
where:
INI0 = first word of character mask
INI1 = second word of character mask
INI2 = third word of character mask
INI3 = fourth word of character mask
ALLOW = characters to allow in the mask
DISALLOW = characters to disallow in the mask
This macro generates 4-word character masks for use with those
(COMND)
COMND functions that allow the user to specify his own mask.
For example, executing the following code would allow "*" in
the predefined mask for the .CMFLD function (FLDB0 thru BLDB3):
BRMSK.(FLDB0.,FLDB1.,FLDB2.,FLDB3.,<*>,)
Also, the BRMSK. macro may be invoked within the FLDBK. macro:
FLDBK.(TYP,FLGS,DATA,HLPM,DEFM,[
BRMSK.(INI0,INI1,INI2,INI3,ALLOW,DISALLOW)],LST)
The COMND call causes other monitor calls to be executed, depending on
the particular function that is requested. Failure of these calls
usually results in the failure to parse the requested field. In these
cases, the relevant error code can be obtained via the GETER and ERSTR
monitor calls.
Any TBLUK error can occur on the keyword and switch functions.
Any NIN/NOUT and FLIN/FLOUT error can occur on the number
functions.
Any GTJFN error except for GJFX37 can occur on the file
specification functions.
Any IDTNC error can occur on the date/time function.
Any RCDIR or RCUSR error can occur on the directory and user
functions.
Any STDEV error can occur on the device function.
Generates an illegal instruction interrupt on error conditions below.
COMND ERROR MNEMONICS:
COMNX1: invalid COMND function code
COMNX2: field too long for internal buffer
COMNX3: command too long for internal buffer
COMNX5: invalid string pointer argument
COMNX8: number base out of range 2-10
COMNX9: end of input file reached
COMX10: invalid default string
COMX11: invalid CMRTY pointer
COMX12: invalid CMBFP pointer
(COMND)
COMX13: invalid CMPTR pointer
COMX14: invalid CMABP pointer
COMX15: invalid default string pointer
COMX16: invalid help message pointer
COMX17: invalid byte pointer in function block
Node: CRDIR Previous: COMND Next: CRJOB Up: Top
CRDIR JSYS 240
Creates, changes, or deletes a directory entry.
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: byte pointer to ASCIZ string containing the structure
and directory name. The string must be of the form:
structure:<directory>.
AC2: B0(CD%LEN) set length of the argument block to the
value given in word .CDLEN. This bit is
not used in TOPS-20 version 3 and is
provided for future releases.
B1(CD%PSW) set password from argument block
B2(CD%LIQ) set working disk storage limit from
argument block
B3(CD%PRV) set capability bits from argument block
B4(CD%MOD) set mode bits from argument block
B5(CD%LOQ) set permanent disk storage limit from
argument block
B6(CD%NUM) set directory number from argument block
(valid only when creating a directory)
B7(CD%FPT) set default file protection from argument
block
B8(CD%DPT) set directory protection from argument
block
B9(CD%RET) set default retention count from argument
block
B10(CD%LLD) set last LOGIN date from argument block
(CRDIR)
B11(CD%UGP) set user groups from argument block
B12(CD%DGP) set directory groups from argument block
B13(CD%SDQ) set subdirectory quota from argument
block
B14(CD%CUG) set user groups assignable by this
directory from argument block
B15(CD%DAC) set default account from argument block
B17(CD%DEL) delete this directory entry
B18-B35 address of the argument block
(CD%APB)
AC3: byte pointer to ASCIZ string containing the password
of the directory. This pointer is required when a
nonprivileged user is changing parameters for his
directory.
RETURNS +1: always, with directory number in AC1
This monitor call requires the process to have WHEEL or OPERATOR
capability enabled unless one of the following conditions is true:
1. The specified directory is one to which the caller has owner
access and the caller is changing any one of the following
parameters:
password (.CDPSW)
default file protection (.CDFPT)
directory protection (.CDDPT)
default retention count (.CDRET)
default account (.CDDAC)
This feature is installation dependent and is enabled by
issuing function .SFCRD of the SMON monitor call.
2. The specified directory is inferior to the one to which the
caller is currently connected and the caller has owner access
to this inferior directory.
Refer to Section 2.2.6 for the description of owner access.
The format of the argument block is as follows:
Word Symbol Meaning
0 .CDLEN flag bits in the left half, and length of the
argument block in the right half. The
following bits are defined:
(CRDIR)
B0(CD%NSQ) When restoring this directory, do
not update its superior
directory's quotas (permanent,
working, and subdirectory quotas)
to account for this directory.
If this bit is off, the superior
directory's quotas are updated.
This bit is set by the DLUSER or
DUMPER program to retain the
superior directory's quotas when
restoring its subdirectories.
The process must have WHEEL or
OPERATOR capability enabled to
set this bit.
B1(CD%NCE) When restoring or reconstructing
this directory, do not change any
directory parameters if the
directory currently exists on
disk; set the parameters only if
the directory does not exist. If
this bit is off, the directory
parameters as saved are restored
for the directory. This bit is
set by the DLUSER or DUMPER
program to restore or reconstruct
directories from out-of-date
files without causing existing
directories to revert to older
parameters. The process must
have WHEEL or OPERATOR capability
enabled to set this bit.
1 .CDPSW pointer to password string, which is a string
from 1 to 39 alphanumeric characters.
2 .CDLIQ maximum number of pages that can be used for
working disk storage (also known as logged-in
quota).
3 .CDPRV capabilities for this user. (Refer to
Section 2.6.1 for the capability bits.)
4 .CDMOD mode word.
B0(CD%DIR) directory name can only be used
for connecting to (i.e., the
directory is a files-only
directory). If this bit is off,
the directory name can be used
for logging in and connecting to.
B1(CD%ANA) accounts are alphanumeric. This
bit is not used and is provided
for compatibility with systems
(CRDIR)
earlier than TOPS-20 version 3.
B2(CD%RLM) all the messages from the file
<SYSTEM>MAIL.TXT are repeated
each time the user logs in. If
this bit is off, only the
messages not previously printed
are output when the user logs in.
B7(CD%DAR) If on, this bit indicates that
when the online expiration date
has been reached, the files
concerned should be archived
rather than migrated to virtual
disk. This bit is currently
reserved and is not implemented.
5 .CDLOQ maximum number of pages that can be used for
permanent disk storage (also known as
logged-out quota).
6 .CDNUM directory number, valid only when creating a
directory. An error code is returned if user
changes the number of an existing directory
(CRDIX2) or gives a non-unique number
(CRDIX8).
7 .CDFPT default file protection (18 bits,
right-justified).
10 .CDDPT directory protection (18 bits,
right-justified).
11 .CDRET default number of generations of a file to be
retained in the directory (retention count).
Valid numbers are 0 to 63, with 0 being an
infinite number.
12 .CDLLD date of last login.
13 .CDUGP pointer to user group list.
14 .CDDGP pointer to directory group list.
15 .CDSDQ maximum number of directories that can be
created inferior to this directory. This
parameter allows a user to create directories
with the BUILD command.
16 .CDCUG pointer to user group list. This list
contains the group numbers that can be given
to directories inferior to this one.
17 .CDDAC pointer to default account for this user.
(CRDIR)
20 .CDDNE default online expiration date and time. May
be an explicit date and time (internal
format) or an interval (in days). In either
case, the specified date/interval may not
exceed the system maximum. This parameter is
read if CD%NED (1B2) or CD%FED (1B3) in
.CDLEN are set. If a new directory is
created and this parameter is not specified,
the system default is used.
An unprivileged user may modify his defaults,
but only to a value less than or equal to
those which are currently specified or the
system maximum, whichever is greater.
This word is currently reserved and is not
implemented.
21 .CDDFE default offline expunge date and time.
Otherwise similar to .CDDNE (above).
This word is currently reserved and is not
implemented.
The format of each group list is a table with the first word
containing a count of the number of words (including the count word)
in the table and each subsequent word containing a group number.
When CRDIR is being executed to create a directory, bits 0-17 of AC2
may optionally be on or off. If a particular bit is on, it indicates
that the corresponding argument in the argument block should be
examined. If the bit is off, it indicates that the argument should be
defaulted. The following table lists the bits and the corresponding
argument defaults:
Bits Argument Defaults
B2(CD%LIQ) maximum working disk file storage to 250 pages
B3(CD%PRV) no special capabilities
B4(CD%MOD) directory name that can be used for logging in and
that lists the messages from <SYSTEM>MAIL.TXT only
once
B5(CD%LOQ) maximum permanent disk file storage to 250 pages
B6(CD%NUM) the first unused directory number. B6 should
normally be off.
B7(CD%FPT) default file protection to 777700
B8(CD%DPT) directory protection to 777700
B9(CD%RET) default file retention count to 1
B10(CD%LLD) never logged in
B11(CD%UGP) no user groups
B12(CD%DGP) no directory groups
B13(CD%SDQ) no ability to create inferior directories
B14(CD%CUG) no assignable user groups for inferior directories
B15(CD%DAC) no default account
When CRDIR is being executed to change a directory and any of B0-B17
(CRDIR)
of AC2 is off, the corresponding parameter is not affected.
When CRDIR is being executed to delete a directory, the settings of
B0-B17 of AC2 are ignored. A CRDIR call cannot be given to delete a
directory that has directories inferior to it.
The GTDIR call can be used to obtain the directory information.
Generates an illegal instruction interrupt on error conditions below.
CRDIR ERROR MNEMONICS:
CRDIX1: WHEEL or OPERATOR capability required
CRDIX2: illegal to change number of old directory
CRDIX3: insufficient system resources (Job Storage Block full)
CRDIX4: superior directory full
CRDIX5: directory name not given
CRDIX6: directory file is mapped
CRDIX7: file(s) open in directory
CRDIX8: invalid directory number
CRDIX9: internal format of directory is incorrect
CRDI10: maximum directory number exceeded; index table needs
expanding
CRDI11: invalid terminating bracket on directory
CRDI12: structure is not mounted
CRDI13: request exceeds superior directory working quota
CRDI14: request exceeds superior directory permanent quota
CRDI15: request exceeds superior directory subdirectory quota
CRDI16: invalid user group
CRDI17: illegal to create non-files-only subdirectory under
files only directory
CRDI18: illegal to delete logged-in directory
CRDI19: illegal to delete connected directory
CRDI20: WHEEL, OPERATOR, or requested capability required
CRDI21: working space insufficient for current allocation
(CRDIR)
CRDI22: subdirectory quota insufficient for existing subdirectories
CRDI23: superior directory does not exist
CRDI24: invalid subdirectory quota
Node: CRJOB Previous: CRDIR Next: CRLNM Up: Top
CRJOB JSYS 2
Creates a new job and optionally logs it in. This monitor call causes
the functions that are normally performed when a job is created (e.g.,
assignment of a JSB, the primary I/O designators, and the job
controlling terminal) to be performed for the new job.
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: flag bits
AC2: address of argument block
AC3: (optional) If CRJOB is to be used to release control
over a job previously created with CRJOB (bit 17 in
AC1 must be on), then AC3 contains the job number of
the previously created job.
RETURNS +1: failure, with error code in AC1
+2: success, with the number of the new job in AC1
The flag bits defined in the left half of AC1 are as follows:
Bit Symbol Meaning
0 CJ%LOG Log in the new job. If this bit is off, the new
job is created but not logged in.
1 CJ%NAM Set the user name and password from the argument
block. If this bit is off, the user name of the
caller is given to the new job.
2-3 CJ%ACT Set the account of the new job to the following:
Code Symbol Meaning
0 .CJUCA Use current account of caller.
1 .CJUAA Use account from the argument
block.
2 .CJUDA Use default account of user
whose job is being created.
(CRJOB)
4 CJ%ETF If set, place the TOPS-20 command processor in the
top-level process of the new job. The command
processor will read its program argument block
(see below) at the time it is started.
CJ%FIL and CJ%ETF interact in the following ways:
1. If CJ%FIL is on and CJ%ETF is on, then a job
is created with a top process consisting of
the TOPS-20 command processor and an inferior
process consisting of the file pointed to by
word .CJFIL.
2. IF CJ%FIL is off and CJ%ETF is on, then a job
is created with a top process consisting of
the TOPS-20 command processor. No inferior
process is created.
3. If CJ%FIL is on and CJ%ETF is off, then a job
is created with a top process consisting of
the file pointed to by word .CJFIL. No
inferior process is created.
The format of the program argument block is as
follows:
Word Contents
0 Count of words in block, not including
this word.
1 1B0+3B6+2B12+CR%PRA - indicates this is
a program argument block created by the
CRJOB JSYS
2 1B0 + offset1 - offset1 is the offset in
this block of the first argument being
passed.
3 1B0 + offset2 - offset2 is the offset in
this block of the second argument being
passed.
n (offset1) This argument is a copy of the
flag bits from word .CJEXF (word 10 -
flags for the command language
processor) of the CRJOB argument block.
n+1 (offset2) This argument contains
information about the process being
started - process handle,,entry vector
offset. The entry vector offset is from
word .CJSVF (word 4) of the CRJOB
argument block.
(CRJOB)
The program argument block is created by the CRJOB
monitor call and is passed to the process by a
PRARG monitor call (performed internally by
CRJOB). The user does not specify any of the
information in the program argument block. The
user can, by invoking the PRARG monitor call,
return the block and examine its contents.
5 CJ%FIL Move (via a GET call) the file pointed to in the
argument block into a process in the new job. If
B4(CJ%ETF) is off, the file is placed in the
top-level process of the new job. If B4(CJ%ETF)
is on, the file is placed in the process
designated in the Command Language Processor's
PRARG argument block. (See below.) If B5(CJ%FIL)
is off, no file is moved into a process of the new
job, and the top-level process of the new job is
the Command Language Processor.
6 CJ%ACS Load the ACs from the value in the argument block.
The ACs are loaded only if a program other than
the Command Language Processor is being run.
7 CJ%OWN Maintain ownership of the new job. This means
that the new job cannot be logged out until the
caller releases ownership of it. If this bit is
off, control of the new job is released.
8 CJ%WTA Do not start the new job until it is attached
(using ATACH JSYS) to a terminal. If this bit is
off, the new job is started.
9 CJ%NPW Do not check the password given when the new job
is logged in. If this bit is off, the password is
checked unless the new job is being logged in with
the same user name as the caller or with WHEEL or
OPERATOR capability enabled.
10 CJ%NUD Do not update the date of LOGIN for user logging
in to the new job. If this bit is off, the date
of LOGIN is updated unless the user is logging in
with the same user name as the caller or with
WHEEL or OPERATOR capability enabled.
11 CJ%SPJ Set (via a SPJFN call) the primary input and
output designators from the argument block before
starting the job. The primary I/O designators are
not changed for a Command Language Processor in
the top-level process of the new job; they are
changed only for inferior processes. If this bit
is off, the primary I/O designators of the new job
are the job's controlling terminal.
12 CJ%CAP Set the new job's allowed user capabilities (right
half) to be the same as the caller's currently
(CRJOB)
enabled capabilities, until the new job is logged
in. If this bit is off, the new job has the user
capabilities associated with the user whose job is
being created.
13 CJ%CAM Set the new job's allowed capabilities to be the
combination of (AND function) the capability mask
in the argument block and the new job's user
capabilities. If this bit is off, the new job has
the capabilities associated with the user whose
job is being created.
14 CJ%SLO Send a IPCF message to the PID supplied in
argument block when the new job is logged out. If
this bit is off, no message is sent when the new
job is logged out.
The IPCF logout message has the following format:
Word Contents
0 0,,.IPCLO
1 N,,# of job logged out. N is the count
of the remaining words in this message
(currently 10 octal).
2 flags,,reserved
Bits Symbol Meaning
B0 SP%BAT job is controlled by
batch
B1 SP%DFS spooling is deferred.
B2 SP%ELO the job executed LGOUT
B3 SP%FLO the job was forced to
logout. If this bit is
on, check Word 8 of the
IPCF message (gives code
of most recent monitor
call error). B3 will be
on only if job has an
interrupt to be handled
by MEXEC(Mini-EXEC).
B4 SP%OLO the job was logged out
by another job. Word 6
of the IPCF message
contains the job number
of the job that did the
logout.
3 job connect time
4 job CPU time
5 TTY number of job at logout (-1 if
detached)
6 job number of the job that did the
logout
7 reserved
10 code of the most recent monitor call
(CRJOB)
error
17 CJ%DSN Release ownership of the previously created job
whose number is in AC3. If this bit is on, it
overrides the setting of all other bits in AC1,
and no change is made to the job's status other
than the change in ownership.
The format of the argument block (whose address is given in AC2) is as
follows:
Word Symbol Meaning
0 .CJNAM Byte pointer to the user name string.
1 .CJPSW Byte pointer to the password string.
2 .CJACT 5B2 + numeric account number or byte pointer to
account string.
3 .CJFIL Byte pointer to the name of the file to be
moved (via a GET call) into a process of the
new job. The new job must have read access to
the file. The process into which the file is
placed depends on the setting of B4(CJ%ETF).
4 .CJSFV Offset in the entry vector to use as the start
address of the file pointed to by word .CJFIL.
This offset is the argument to the SFRKV call
used to start the process.
5 .CJTTY Terminal designator of the new job's
controlling terminal. This terminal must be
assigned by the caller. The terminal is then
released and assigned to the new job. If the
new job is to be detached, the .NULIO
designator (377777) is given.
6 .CJTIM connect-time for new job before a LGOUT is
forced on it; 0 indicates no limit. This
function is currently not implemented.
7 .CJACS Address of a 16-word block whose contents are
to be loaded in the new job's ACs if a program
other than the Command Language Processor is
being run.
10 .CJEXF Flag bits to be passed to the Command Language
Processor in the top-level process of the new
job. The bits are:
B0 Suppress the herald printed by the
Command Language Processor.
B1 Move the file pointed to by word .CJFIL
(CRJOB)
into the process whose handle is in the
PRARG block. (See below.)
B2 Start the process at the offset in the
entry vector given in word .CJSFV. This
process is started after the Command
Language Processor is initialized.
B3 Output the text printed when a LOGIN
command is given (e.g., system messages,
job number, terminal number).
This word is copied into the PRARG argument
block passed to the Command Language Processor.
(See Below.)
11 .CJPRI Primary input and output designators for the
inferior processes of the new job. These
designators must refer to device designators.
The Command Language Processor in the top-level
process of the new job executes a SPJFN call to
set these designators.
12 .CFCPU Runtime limit for the new job. When this limit
is reached, an interrupt is generated (via a
TIMER call), and the Command Language Processor
will execute a LGOUT call for the new job. A
zero in this word means there is no runtime
limit on the job.
13 .CJCAM Capability mask for the new job. This mask is
used only if CJ%CAM is set.
14 .CJSLO PID to which an IPCF message is to be sent when
the new job is logged out.
When CRJOB creates a new job, it also creates the top-level process,
and this process is always a virgin process. Thus, an execute-only
program can be RUN as the top-level fork.
The CRJOB call causes other monitor calls to be executed, depending on
the particular function that is performed.
Any GTJFN and OPENF errors can occur when obtaining the specified
file.
Any SFRKV error can occur when starting the program in the
specified file.
Any LOGIN and account validation errors can occur when logging in
the job.
CRJOB ERROR MNEMONICS:
CRJBX1: invalid parameter or function bit combination
(CRJOB)
CRJBX2: illegal for created job to enter MINI-EXEC
CRJBX4: terminal is not available
CRJBX5: unknown name for LOGIN
CRJBX6: insufficient system resources
Node: CRLNM Previous: CRJOB Next: CVHST Up: Top
CRLNM JSYS 502
Defines or deletes a logical name assignment. Logical names are used
to specify a set of default values for each field requested by a GTJFN
monitor call. When a logical name is passed to the GTJFN call, any
fields not specified by the user are supplied from the fields defined
in the logical name definition. (Refer to Section 2.2.2 and to the
INLNM and LNMST monitor call descriptions for more information on
logical names.)
ACCEPTS IN AC1: function code
AC2: byte pointer to the logical name
AC3: byte pointer to the logical name definition string
RETURNS +1: failure, error code in AC1
+2: success, updated string pointer in AC3
The codes for the functions are as follows:
0 .CLNJ1 delete one logical name from the job
1 .CLNS1 delete one logical name from the system
2 .CLNJA delete all logical names from the job
3 .CLNSA delete all logical names from the system
4 .CLNJB create a logical name for the job
5 .CLNSY create a logical name for the system
CRLNM ERROR MNEMONICS:
CRLNX1: logical name is not defined
CRLNX2: WHEEL or OPERATOR capability required
CRLNX3: invalid function
(CRLNM)
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
GJFX22: insufficient system resources (Job Storage Block full)
GJFX31: invalid wildcard designator
Node: CVHST Previous: CRLNM Next: CVSKT Up: Top
CVHST JSYS 276
Converts a host number to a primary name.
RESTRICTIONS: for use with ARPANET only
ACCEPTS IN AC1: destination designator for the ASCIZ string
AC2: host number
RETURNS +1: failure, error code in AC1
+2: success, host name string returned to area designated
by AC1
CVHST ERROR MNEMONICS:
CVHST1: no string for that host number
(CVSKT)
Node: CVSKT Previous: CVHST Next: DEBRK Up: Top
CVSKT JSYS 275
Converts a local socket number to absolute form.
RESTRICTIONS: for use with ARPANET only
ACCEPTS IN AC1: JFN
RETURNS +1: failure, error code in AC1
+2: success, absolute socket number in AC2
CVSKT ERROR MNEMONICS:
CVHST1: no string for that host number
CVSKX1: invalid JFN
CVSKX2: local socket invalid in this context
Node: DEBRK Previous: CVSKT Next: DELDF Up: Top
DEBRK JSYS 136
Dismisses the current software interrupt routine in progress and
resumes the process at the location specified by the PC stored in the
priority level table. (Refer to Section 2.5.7.)
RETURNS +1: if no software interrupt is currently in progress and
if an ERJMP or ERCAL instruction follows the DEBRK
Generates an illegal instruction interrupt on error conditions below.
DEBRK ERROR MNEMONICS:
DBRKX1: no interrupts in progress
Node: DELDF Previous: DEBRK Next: DELF Up: Top
DELDF JSYS 67
Reclaims space by expunging disk files that have been marked for
deletion with DELF. This call first checks the user's access to the
directory, verifying that the user is allowed to expunge files from
it.
When a file with archive status is deleted and expunged, DELDF sends
an IPCF message to GALAXY. This message contains all archive status
(DELDF)
informatiion which includes tape information as well as the present
file name, user who expunged the file and the time at which it was
expunged.
RESTRICTIONS: some functions require WHEEL or OPERATOR
capabilities enabled.
ACCEPTS IN AC1: B0(DD%DTF) delete temporary files (;T) also
B1(DD%DNF) delete nonexistent files that are not now
opened
B2(DD%RST) rebuild the symbol table
B3(DD%CHK) check internal consistency of directory.
If an error occurs, the symbol table
should be rebuilt. If B2(DD%RST) is also
set, it is ignored, and the DELDF call
must be executed again with B2(DD%RST) on
to rebuild the symbol table.
AC2: directory number
RETURNS +1: always
The directory number given must be that of the user's connected or
logged-in directory unless the process has WHEEL or OPERATOR
capability enabled.
If errors still occur after the symbol table is rebuilt, the process
should restore the directory from magnetic tape or the user should
request help from the operator.
Generates an illegal instruction interrupt on error conditions below.
DELDF ERROR MNEMONICS:
DELDX1: WHEEL or OPERATOR capability required
DELDX2: invalid directory number
DELFX2: file cannot be expunged because it is currently open
DELFX4: directory symbol table could not be rebuilt
DELFX5: directory symbol table needs rebuilding
DELFX6: internal format of directory is incorrect
DELFX7: FDB formatted incorrectly; file not deleted
DELFX8: FDB not found; file not deleted
(DELF)
Node: DELF Previous: DELDF Next: DELNF Up: Top
DELF JSYS 26
Deletes the specified disk file and (if the file is closed) releases
the JFN. The file is not expunged immediately but is marked for later
expunging by the system or with the DELDF or LGOUT monitor call.
RESTRICTIONS: some functions require WHEEL or OPERATOR
capabilities enabled.
ACCEPTS IN AC1: B0(DF%NRJ) do not release the JFN
B1(DF%EXP) expunge the contents of the file. This
also deletes the FDB entry in the
directory. B0(DF%NRJ) and B1(DF%EXP)
cannot be set simultaneously.
B2(DF%FGT) expunge the file but do not deassign its
addresses. The process must have WHEEL or
OPERATOR capability enabled to set this
bit. This bit should be set only by an
operator or system specialist to delete a
file that has a damaged or inconsistent
index block.
B3(DF%DIR) delete and expunge a directory file. The
process must have WHEEL or OPERATOR
capability enabled to set this bit. This
bit should be set only by an operator or
specialist to delete a bad directory.
B4(DF%ARC) allow a file with archive status to be
deleted.
B5(DF%CNO) delete and expunge the contents of the
file but preserve the file's name and FDB
as they were (with the exception of the
page count and the page table address).
Setting this bit will cause the DELF to
fail if bit AR%NDL is set in word .FBBBT
of the FDB or if a complete set of tape
backup information is not in the FDB.
B18-B35 JFN of the file being deleted
(DF%JFN)
RETURNS +1: failure, error code in AC1
+2: success, JFN is released unless B0(DF%NRJ) is on or
the file is opened.
By setting B0(DF%NRJ), the user can delete multiple files by giving a
JFN to GNJFN that represents a group of files and processing each file
in the group.
The DELF call takes the +1 return if the JFN is assigned to a
(DELF)
non-directory device.
DELF ERROR MNEMONICS:
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
DESX9: invalid operation for this device
DELFX1: delete access required
DELFX2: file cannot be expunged because it is currently opened
DELFX3: system scratch area depleted; file not deleted
DELFX4: directory symbol table could not be rebuilt
DELFX5: directory symbol table needs rebuilding
DELFX6: internal format of directory is incorrect
DELFX7: FDB formatted incorrectly; file not deleted
DELFX8: FDB not found; file not deleted
DELFX9: file is not a directory file
DELF10: directory still contains subdirectory
DLFX10: cannot delete directory; file still mapped
DLFX11: cannot delete directory file in this manner
WHELX1: WHEEL or OPERATOR capability required
Node: DELNF Previous: DELF Next: DEQ Up: Top
DELNF JSYS 317
Deletes all but the specified number of generations of a disk file.
The files are marked for deletion and are expunged at a later time
either automatically by the system or explicitly with the DELDF or
LGOUT call.
ACCEPTS IN AC1: B0(DF%NRJ) do not release the JFN
B4(DF%ARC) allow a file with archive status to be
(DELNF)
deleted.
B5(DF%CNO) delete and expunge the contents of the
file but preserve the file's name and FDB
as they were (with the exception of the
page count and the page table address).
Setting this bit will cause the DELF to
fail if bit AR%NDL is set in word .FBBBT
of the FDB or if a complete set of tape
backup information is not in the FDB.
B18-B35 JFN of the file being deleted
AC2: the number of generations to retain
RETURNS +1: failure, error code in AC1
+2: success, with the number of files deleted
in AC2
Starting at the file specified by the JFN, the DELNF call decrements
the generation number, first retaining the specified number of
generations before deleting the remaining generations.
DELNF ERROR MNEMONICS:
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
DELFX1: delete access required
Node: DEQ Previous: DELNF Next: DEVST Up: Top
DEQ JSYS 514
Removes a request for a specific resource from the queue associated
with that resource. The request is removed whether or not the process
has a lock for the resource or is only waiting in the queue for the
resource.
This call can be used to remove any number of requests. If one of the
requests cannot be dequeued, the dequeueing procedure continues until
all requests that can be have been dequeued. An error return is given
for the last request found that could not be dequeued. The process
can then execute the ENQC call to determine the current status of each
request. However, if the process attempts to dequeue more pooled
resources than it originally allocated, the error return is taken and
(DEQ)
none of the pooled resources are dequeued.
Refer to the TOPS-20 Monitor Calls User's Guide for an overview and
description of the Enqueue/Dequeue facility.
ACCEPTS IN AC1: function code
AC2: address of argument block (required only for the
.DEQDR function)
RETURNS +1: failure, error code in AC1
+2: success
The available functions are as follows:
Code Symbol Meaning
0 .DEQDR Remove the specified requests from the queue.
This function is the only one requiring an
argument block.
1 .DEQDA Remove all requests for this process from the
queues. This action is taken on a RESET or
LGOUT call. The error return is taken if the
process has not given an ENQ call.
2 .DEQID Remove all requests that correspond to the
specified request identifier(ID). This
function allows the process to release a
class of locks in one call without itemizing
each lock in an argument block. It is useful
when dequeueing in one call the same locks
that were enqueued in one call. To use this
function, the process places the 18-bit
request ID in AC2.
The format of the argument block for function .DEQDR is identical to
that given on the ENQ call. (Refer to the ENQ monitor call
description.) However, the .ENQID word of the argument block is not
used on a DEQ call and must be zero.
DEQ ERROR MNEMONICS:
ENQX1: invalid function
ENQX2: level number too small
ENQX3: request and lock level numbers do not match
ENQX4: number of pool and lock resources do not match
ENQX6: requested locks are not all locked
ENQX7: no ENQ on this lock
(DEQ)
ENQX9: invalid number of blocks specified
ENQX10: invalid argument block length
ENQX11: invalid software interrupt channel number
ENQX13: indirect or indexed byte pointer not allowed
ENQX14: invalid byte size
ENQX15: ENQ/DEQ capability required
ENQX16: WHEEL or OPERATOR capability required
ENQX17: invalid JFN
ENQX18: quota exceeded
ENQX19: string too long
ENQX20: locked JFN cannot be closed
ENQX21: job is not logged in
DESX8: file is not on disk
Node: DEVST Previous: DEQ Next: DFIN Up: Top
DEVST JSYS 121
Translates the given device designator to its corresponding ASCIZ
device name string. The string returned contains only the
alphanumeric device name; it does not contain a colon.
ACCEPTS IN AC1: destination designator
AC2: device designator
RETURNS +1: failure, error code in AC1
+2: success, updated string pointer in AC1, if pertinent
The STDEV monitor call can be used to translate a string to its
corresponding device designator.
DEVST ERROR MNEMONICS:
DEVX1: invalid device designator
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
(DEVST)
DESX3: JFN is not assigned
IOX11: quota exceeded or disk full
Node: DFIN Previous: DEVST Next: DFOUT Up: Top
DFIN JSYS 234
Inputs a double-precision, floating-point number, rounding if
necessary. Currently this call stores the number in KA10
double-precision floating-point format.
ACCEPTS IN AC1: source designator
RETURNS +1: failure, error code in AC4 and updated string pointer
in AC1, if pertinent.
+2: success, double-precision, floating-point number
(extended format where necessary) in AC2 and AC3 and
updated string pointer in AC1, if pertinent.
DFIN ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
FLINX1: first character is not blank or numeric
FLINX2: number too small
FLINX3: number too large
FLINX4: invalid format
Node: DFOUT Previous: DFIN Next: DIAG Up: Top
DFOUT JSYS 235
Outputs a double-precision, floating-point number. Currently this
call outputs a number stored in KA10 double-precision, floating-point
format.
ACCEPTS IN AC1: destination designator
(DFOUT)
AC2: a normalized double-precision
AC3: floating-point number in either extended or
non-extended range.
AC4: format control word. (Refer to Section 2.8.1.2.)
RETURNS +1: failure, error code in AC4 and updated string pointer
in AC1, if pertinent.
+2: success, updated string pointer in AC1, if pertinent.
DFOUT ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
FLOTX1: column overflow in field 1 or 2
FLOTX2: column overflow in field 3
FLOTX3: invalid format specified
IOX11: quota exceeded or disk full
Node: DIAG Previous: DFOUT Next: DIBE Up: Top
DIAG JSYS 530
Reserves a channel and either a single device or all devices attached
to that channel. This call is also used to release the channel and
its devices. When the request is made, no new activity is initiated
on the requested channel, and the monitor waits for current activity
on all devices connected to the channel to complete. When the channel
becomes idle, the process requesting the channel continues running.
The DIAG JSYS can also be used to get and release memory. The get
memory function is used by the system program TGHA for performing its
spare bit substitution.
Reserving or Releasing a Channel and Device(s).
RESTRICTIONS: requires WHEEL, OPERATOR, or MAINTENANCE capabilities
enabled.
ACCEPTS IN AC1: negative length of the argument block in the left
half, and address of the argument block in the right
(DIAG)
half.
RETURNS +1: failure, error code in AC1
+2: success
The available functions are as follows:
Function Symbol Meaning
1 .DGACU Assign the channel and a single device. Force the
device to be released after the time limit
specified.
Argument block:
Word Contents
0 function code
1 device address
2 time limit in milliseconds
2 .DGACH Assign the channel and all devices.
Argument block:
Word Contents
0 function code
1 device address
3 .DGRCH Release the channel and all assigned devices.
Argument block:
Word Contents
0 function code
1 device address
4 .DGSCP Set up the channel program. The data transfer
must be in one page. The user page pointed to by
the channel control word is locked in memory. The
Exec Process Table location corresponding to the
channel is updated with the appropriate physical
address channel control word.
Argument block:
Word Contents
0 function code
1 device address
2 channel control word
(DIAG)
5 .DGRCP Release the channel program. The page pointed to
by the channel control word for the specified
channel is unlocked. This function is not
required before specifying a new channel program.
Argument block:
Word Contents
0 function code
1 device address
6 .DGGCS Return the status of the channel. The argument
block contains the logout area for the channel.
Argument block:
Word Contents
0 function code
1 device address
2-5 4-word channel logout area
100 .DGGEM Get memory (for TGHA).
Argument block:
Word Contents
0 function code
1 first page in user address space
2 first physical memory page
3 number of pages
4 user address of AR/ARX parity trap
routines
Upon successful return, this function accomplishes the following:
1. TOPS-20 has requested that all of the front
ends refrain from accessing common memory.
2. The hardware PI system has been turned off;
no scheduling can occur.
3. The time base and interval timer have been
turned off.
4. All DTE byte transfers have completed.
(DIAG)
5. All RH20 activity has ceased.
6. The designated pages of the process' address
space have been set up to address the
designated physical memory. Note that this is
not the same as your having requested the
pages with PLOCK. With the get memory
function, the data in the physical memory
pages have been retained, and the ownership of
the pages is unchanged.
7. The CST0 entries for each of the designated
physical pages have been saved and set as
follows:
8. The age is set to the present age of the
requesting process.
9. The process use field is set to all ones.
10. The modified bit is set to one.
11. The entire address space of the requesting
process has been locked in memory. (Actually,
only the pages that existed at the time of the
DIAG call are locked. Therefore, the process
must ensure that all of the pages it needs
exist and are private when DIAG is executed.)
12. The monitor has set up proper dispatch if TGHA
specified an AR/ARX trap address.
101 .DGREM Release memory (for TGHA)
Argument block:
Word Contents
0 function code
102 .DGPDL Inform the monitor that a device previously
unknown to it is now available for use (is now
online). For devices interfaced through the DX20
(TX01, TX03, TX05, TU70, TU72).
Argument block:
(DIAG)
Word Contents
0 function code
1 channel number
2 unit number
3 controller number (-1 if no controller)
4 alternate path channel number
5 alternate path unit number (should be same
as primary path unit number)
6 alternate path controller number (-1 if no
controller)
The device address given in some of the argument blocks is a
machine-dependent specification for the channel and device to be
assigned. The devices that can be assigned must be attached to the
RH20 controller and must be mounted by a process with the WHEEL,
OPERATOR, or MAINTENANCE capability enabled. The format of the device
address word is
0 2 3 9 10 23 24 29 30 35
!=======================================================!
! address ! device ! 0 ! unit ! subunit !
! type ! code ! ! ! !
!=======================================================!
DIAG ERROR MNEMONICS:
DIAGX1: invalid function
DIAGX2: device is not assigned
DIAGX3: argument block too small
DIAGX4: invalid device type
DIAGX5: WHEEL, OPERATOR, or MAINTENANCE capability required
DIAGX6: invalid channel command list
DIAGX7: illegal to do I/O across page boundary
DIAGX8: no such device
DIAGX9: unit does not exist
DIAG10: subunit does not exist
DIAG11: Device is already on-line
(DIBE)
Node: DIBE Previous: DIAG Next: DIC Up: Top
DIBE JSYS 212
Dismisses the process until the designated file input buffer is empty.
ACCEPTS IN AC1: file designator
RETURNS +1: always
Returns immediately if the designator is not associated with a
terminal.
The DOBE monitor call can be used to dismiss the process until the
designated file output buffer is empty.
Generates an illegal instruction interrupt on error conditions below.
DIBE ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX5: file is not open
DEVX2: device already assigned to another job
TTYX01: line is not active
Node: DIC Previous: DIBE Next: DIR Up: Top
DIC JSYS 133
Deactivates the specified software interrupt channels. (Refer to
Section 2.5.1.)
ACCEPTS IN AC1: process handle
AC2: 36-bit word
Bit n means deactivate channel n
RETURNS +1: always
Software interrupt requests to deactivated channels are ignored except
for interrupts generated on panic channels. Panic channel interrupts
are passed to the closest superior process that has the specific
channel enabled.
The AIC monitor call is used to activate specified software interrupt
channels.
Generates an illegal instruction interrupt on error conditions below.
(DIC)
DIC 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: DIR Previous: DIC Next: DIRST Up: Top
DIR JSYS 130
Disables the software interrupt system for a process.
ACCEPTS IN AC1: process handle
RETURNS +1: always
If software interrupt requests are generated while the interrupt
system is disabled, the requests are remembered and take effect when
the interrupt system is reenabled unless an intervening CIS call is
executed. However, interrupts on panic channels will still be
generated even though the system is disabled. In addition, if the
CTRL/C terminal code is assigned to a channel, it will still generate
an interrupt that cannot be disabled with a DIR call. CTRL/C
interrupts can be disabled by deactivating the channel to which the
code is assigned or by the monitor.
The EIR monitor call can be used to enable the software interrupt
system for a process.
Generates an illegal instruction interrupt on error conditions below.
DIR 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: DIRST Previous: DIR Next: DISMS Up: Top
DIRST JSYS 41
(DIRST)
Translates the specified 36-bit user or directory number to its
corresponding string and writes it to the given destination. When a
user number is given, the string returned is the corresponding user
name without any punctuation. When a directory number is given, the
string returned is the corresponding structure and directory name
including punctuation (i.e., structure:<directory>).
ACCEPTS IN AC1: destination designator
AC2: user or directory number
RETURNS +1: failure, with error code in AC1.
+2: success, string written to destination, updated
string pointer, if pertinent, in AC1
The RCDIR monitor call can be used to translate a directory string to
its corresponding directory number. The RCUSR monitor call can be
used to translate a user name string to its corresponding user number.
DIRST ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
DELFX6: internal format of directory is incorrect
DIRX1: invalid directory number
DIRX2: insufficient system resources
DIRX3: internal format of directory is incorrect
STRX01: structure is not mounted
IOX11: quota exceeded or disk full
Node: DISMS Previous: DIRST Next: DOBE Up: Top
DISMS JSYS 167
Dismisses this process for the specified amount of time.
ACCEPTS IN AC1: number of milliseconds for which the process is to be
dismissed
RETURNS +1: when the elapsed time is up
(DISMS)
The maximum number of milliseconds that a process can be dismissed is
2^26 milliseconds. If a number is given that is greater than the
maximum, it is ignored and the maximum dismiss time is given. The
time resolution is limited to the scheduling frequency (about 20
milliseconds).
Node: DOBE Previous: DISMS Next: DSKAS Up: Top
DOBE JSYS 104
Dismisses the process until the designated file output buffer is
empty.
ACCEPTS IN AC1: destination designator
RETURNS +1: always
Returns immediately if designator is not associated with a terminal.
The DIBE monitor call can be used to dismiss the process until the
designated file input buffer is empty.
Generates an illegal instruction interrupt on error conditions below.
DOBE ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX5: file is not open
DEVX2: device already assigned to another job
TTYX01: line is not active
Node: DSKAS Previous: DOBE Next: DSKOP Up: Top
DSKAS JSYS 244
Assigns or deassigns specific disk addresses.
RESTRICTIONS: requires WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: B0(DA%DEA) deassign the specified address. If the
address is currently assigned, control
returns to the next instruction following
the call (+1 return). If the address was
not previously assigned, a BUGCHK occurs.
(DSKAS)
B1(DA%ASF) assign a free page near the specified
address. Assignment is on the same
cylinder as the specified address, if
possible, or on a nearby cylinder. If the
specified address is 0, a page is assigned
on a cylinder that is at least one-half
free. If the assignment is not possible
because the disk is full, control returns
to the next instruction following the
call.
B2(DA%CNV) convert the specified address according to
the setting of B3(DA%HWA).
B3(DA%HWA) the specified address is a hardware
address. If this bit if off, the
specified address is a software address.
B4(DA%INI) initialize a private copy of the bit
table.
B5(DA%WRT) write the private copy of the bit table to
a new bit table file.
B18-B35 disk address
(DA%ADR)
AC2: device designator of structure. If DA%CNV is on in
AC1, this argument is not required.
RETURNS +1: failure, address already assigned or cannot be
assigned
+2: success, address assigned in AC1
Generates an illegal instruction interrupt on error conditions below.
DSKAS ERROR MNEMONICS:
WHELX1: WHEEL or OPERATOR capability required
Node: DSKOP Previous: DSKAS Next: DTACH Up: Top
DSKOP JSYS 242
Allows the process to reference physical disk addresses when
performing disk transfers. This monitor call requires the process to
have WHEEL, OPERATOR, or MAINTENANCE capability enabled to read and
write data. However, a process with only MAINTENANCE capability
enabled can write data only if it is using physical addresses (.DOPPU)
and writing to a unit that is not part of a mounted structure.
(DSKOP)
RESTRICTIONS: requires WHEEL or OPERATOR
capabilities enabled. Some functions
can be performed with MAINTENANCE
capabilities enabled.
ACCEPTS IN AC1: B0-B1(DOP%AT) field indicating the address type.
For physical channel and unit
addresses, the value of the field is
1(.DOPPU) and the remainder of AC1 is
B2-B6(DOP%CN) channel number
B7-B12(DOP%UN) unit number
B13-B35(DOP%UA) unit address
For a structure and a relative
address, the value of the field is
2(.DOPSR) and the remainder of AC1 is
B2-B10(DOP%SN) structure designator
flag (0 is structure PS:). A
value of -1 means the structure is
indicated by the structure
designator (refer to Section 2.4)
in AC4.
B11-B35(DOP%RA) relative address
Any other values for this field are
illegal.
AC2: control flags in the left half and a count of the
number of words to transfer in the right half. The
control flags are
B11(DOP%IL) inhibit error logging
B12(DOP%IR) inhibit error recovery
B14(DOP%WR) write data to the disk. If this bit is
off, read data from the disk.
B18-B35 word count. Since the transfer cannot
(DOP%CT) cross a page boundary, the count must be
less than or equal to 1000 (octal)
words.
AC3: address in caller's address space from which data is
written or into which data is read.
AC4: device designator of the structure. This word is
used if the value given for DOP%SN is -1.
RETURNS +1: always, AC1 is nonzero if an error occurred or zero
if no error occurred.
If an error occurs and DOP%IL is on in the call, no error logging is
performed. If DOP%IL is off, the standard system error logging is
performed.
If an error occurs and DOP%IR is on in the call, no retries or ECC
corrections, if applicable, are attempted. If DOP%IR is off, the
standard system error recovery procedure is followed.
(DSKOP)
Generates an illegal instruction interrupt on error conditions below.
DSKOP ERROR MNEMONICS:
WHELX1: WHEEL or OPERATOR capability required
DSKOX1: channel number too large
DSKOX2: unit number too large
DSKOX3: invalid structure number
DSKOX4: invalid address type specified
Node: DTACH Previous: DSKOP Next: DTI Up: Top
DTACH JSYS 115
Detaches the controlling terminal from the current job. (The ATACH
call with bit 1 (AT%NAT) of AC2 set can be used to detach a job other
than the current job.) A console-detached entry is appended to the
accounting data file.
RETURNS +1: always
The DTACH call is a no-op if the job is already detached.
The ATACH monitor call is used to attach the controlling terminal to a
specified job.
Node: DTI Previous: DTACH Next: DUMPI Up: Top
DTI JSYS 140
Deassigns a terminal code.
ACCEPTS IN AC1: terminal code; refer to Section 2.5.6
RETURNS +1: always
The DTI call is a no-op if the specified terminal code was not
assigned by the current process.
The ATI monitor call is used to assign a terminal code.
Generates an illegal instuction interrupt on error conditions below.
DTI ERROR MNEMONICS:
(DTI)
TERMX1: invalid terminal code
Node: DUMPI Previous: DTI Next: DUMPO Up: Top
DUMPI JSYS 65
Reads data words into memory in unbuffered data mode. The file must
be open for data mode 17. (Refer to Section 2.4.2.2 for information
about unbuffered magnetic tape I/O.)
ACCEPTS IN AC1: JFN
AC2: B0(DM%NWT) do not wait for completion of requested
operation
B18-B35 address of command list in memory
(DM%PTR)
RETURNS +1: failure, error code in AC1, pointer to offending
command in AC2
+2: success, pointer in AC2 updated to last command
The use of B0(DM%NWT) allows data operations to be double buffered
with a resulting increase in speed. When this bit is on, DUMPI/DUMPO
returns immediately after the request is queued. This allows the
program to overlap computations with I/O transfers. If the second
request is then made, the program is blocked until the first request
is completed. Generally, for a sequence of overlapped DUMPI/DUMPO
calls, return from the Nth call indicates that the Nth-1 request has
completed and that the Nth request is now in progress. This bit is
implemented only for magnetic tape.
The GDSTS call can be used after the transfer is completed to
determine the number of words read.
If an error occurs on the Nth request, the failure return is given on
the Nth+1 call, and the Nth+1 request is ignored. This means that the
program will discover an error on a request only after making the next
request. The next request is ignored to prevent improper operation
and must be reissued after the error has been processed. The GDSTS
call can be executed to determine the cause for the error.
COMMAND LIST FORMAT
Three types of entries may occur in the command list.
1. IOWD n, loc - Causes n words to be transferred from the file
to locations loc through loc+n-1 of the process address
space. The next command is obtained from the location
following the IOWD. For mag-tape files, 1 IOWD word will
read 1 physical tape record. For labeled mag-tape files, the
(DUMPI)
data format must be "U".
The IOWD pseudo-op generates XWD -n,loc-1.
2. XWD 0, y - Causes the next command to be taken from location
y. Referred to as a GOTO word.
3. 0 - Terminates the command list.
DUMPI ERROR MNEMONICS:
DUMPX1: command list error
DUMPX2: JFN is not open in dump mode
DUMPX3: address error (too big or crosses end of memory)
DUMPX4: access error (cannot read or write data in memory)
DUMPX5: no-wait dump mode not supported for this device
DUMPX6: dump mode not supported for this device
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
IOX1: file is not opened for reading
IOX4: end of file reached
IOX5: device or data error
Node: DUMPO Previous: DUMPI Next: DVCHR Up: Top
DUMPO JSYS 66
Writes data words from memory in unbuffered data mode. The file must
be open for data mode 17. (Refer to Section 2.4.2.2 for information
about unbuffered magnetic tape I/O.)
ACCEPTS IN AC1: JFN
AC2: B0(DM%NWT) do not wait for completion of requested
operation
(DUMPO)
B18-B35 address of command list in memory
(DM%PTR)
RETURNS +1: failure, error code in AC1, pointer to offending
command in AC2
+2: success, pointer in AC2 updated to last command
The use of B0(DM%NWT) allows data operations to be double buffered
with a resulting increase in speed. When this bit is on, DUMPI/DUMPO
returns immediately after the request is queued. This allows the
program to overlap computations with I/O transfers. If the second
request is then made, the program is blocked until the first request
is completed. Generally, for a sequence of overlapped DUMPI/DUMPO
calls, return from the Nth call indicates that the Nth-1 request has
completed and that the Nth request is now in progress. This bit is
implemented only for magnetic tape.
COMMAND LIST FORMAT
Three types of entries may occur in the command list.
1. IOWD n, loc - Causes n words from loc through loc+n-1 to be
transferred from the process address space to the file. The
next command is obtained from the location following the
IOWD. For mag-tape files, 1 IOWD word will write 1 physical
tape record. For labeled mag-tape files, the data format
must be "U".
NOTE
Dump mode output to a labeled tape can override the
block-size limit specified in the GTJFN. If any
write produces a block in excess of the specified
block-size parameter, then the file can only be read
in dump mode.
The IOWD pseudo-op generates XWD -n,loc-1.
2. XWD 0, y - Causes the next command to be taken from location
y. Referred to as a GOTO word.
3. 0 - Terminates the command list.
The GDSTS call can be used after the transfer is completed to
determine the number of words written.
DUMPO ERROR MNEMONICS:
(DUMPO)
DUMPX1: command list error
DUMPX2: JFN is not open in dump mode
DUMPX3: address error (too big or crosses end of memory)
DUMPX4: access error (cannot read or write data in memory)
DUMPX5: no-wait dump mode not supported for this device
DUMPX6: dump mode not supported for this device
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
IOX2: file is not opened for writing
IOX5: device or data error
IOX11: quota exceeded or disk full
Node: DVCHR Previous: DUMPO Next: EFACT Up: Top
DVCHR JSYS 117
Returns the device characteristics of the specified device.
ACCEPTS IN AC1: JFN or device designator
RETURNS +1: always, with
AC1 containing the device designator (even if a JFN
was given).
AC2 containing the device characteristics word.
AC3 containing the job number to which the device is
assigned in the left half and the unit number in the
right half. If the device is a structure or does not
have units, the right half is -1.
The left half of AC3 contains -1 if the device is not assigned to any
job or -2 if the device allocator has ownership of the device.
Device Characteristics Word
Bit Symbol Meaning
(DVCHR)
0 DV%OUT device can do output
1 DV%IN device can do input
2 DV%DIR device has a directory
3 DV%AS device is assignable with ASND
4 DV%MDD device has multiple directories
Device Characteristics Word (Cont.)
5 DV%AV device is available or assigned to this
job
6 DV%ASN device is assigned by ASND
8 DV%MNT device is mounted
9-17 DV%TYP device type
0 .DVDSK disk
2 .DVMTA magnetic tape
7 .DVLPT line printer
10 .DVCDR card reader
11 .DVFE front-end
pseudo-device
12 .DVTTY terminal
13 .DVPTY pseudo-terminal
15 .DVNUL null device
16 .DVNET ARPA network
20-35 DV%MOD data mode in which device can be opened
B20 DV%M17 dump mode
B27 DV%M10 image mode
B35 DV%M0 normal mode
Generates an illegal instruction interrupt on error conditions below.
DVCHR ERROR MNEMONICS:
DEVX1: invalid device designator
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX4: invalid use of terminal designator or string pointer
Node: EFACT Previous: DVCHR Next: EIR Up: Top
EFACT JSYS 5
Makes an entry in the FACT file. The EFACT monitor call is obsolete
and provided only for existing programs that make entries in the FACT
file. New programs should use the USAGE monitor call to make entries
in the new USAGE file.
RESTRICTIONS: requires WHEEL or OPERATOR capabilities enabled.
ACCEPTS IN AC1: LH: negative size of entry
RH: pointer to beginning of entry (size bits of
entry will be updated by the system from the
(EFACT)
negative size specified)
RETURNS +1: failure, error code in AC1
+2: success
The EFACT call returns successfully without making an entry in the
FACT file if the monitor flag SF%FAC (refer to SMON and TMON calls) is
not set.
The EFACT monitor call can be executed only by the monitor or by a
process that has WHEEL or OPERATOR capability enabled.
EFACT ERROR MNEMONICS:
EFCTX1: WHEEL or OPERATOR capability required
EFCTX2: entry cannot be longer than 64 words
EFCTX3: fatal error when accessing FACT file
Node: EIR Previous: EFACT Next: ENQ Up: Top
EIR JSYS 126
Enables the software interrupt system for a process. (Refer to
Section 2.5.)
ACCEPTS IN AC1: process handle
RETURNS +1: always
The DIR monitor call can be used to disable the software interrupt
system for a process.
Generates an illegal instruction interrupt on error conditions below.
EIR 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: ENQ Previous: EIR Next: ENQC Up: Top
ENQ JSYS 513
(ENQ)
Requests access to a specific resource by placing a request in the
queue for that resource. This call can be used to request any number
of resources.
Refer to the TOPS-20 Monitor Calls User's Guide for an overview and
description of the Enqueue/Dequeue facility.
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: function code
AC2: address of argument block
RETURNS +1: failure, error code in AC1
+2: success
The available functions are as follows:
Code Symbol Meaning
0 .ENQBL Queue the requests and block the process
until all requested locks are acquired. The
error return is taken only if the call is not
correctly specified.
1 .ENQAA Queue the requests and acquire the locks only
if all requested resources are immediately
available. No requests are queued and the
error return is taken if any one of the
resources is not available.
2 .ENQSI Queue the requests. If all requested
resources are immediately available, this
function is identical to the .ENQBL function.
If all resources are not immediately
available, the request is queued and the
error return (ENQX6:) is taken. A software
interrupt will occur when all requested
resources have been given to the process.
3 .ENQMA Modify the access of a previously queued
request. (Refer to EN%SHR below.) The access
of each lock in this request is compared with
the access of each lock in the previously
queued request. If the two accesses are the
same, no action is taken. If the access in
this request is shared and the access in the
previous request is exclusive, the successful
return is taken. If the access in this
request is exclusive and the access in the
previous request is shared, the error return
is taken unless this process is the only user
of the lock. In this case, the successful
return is taken. The error return is also
(ENQ)
taken if
1. Any one of the specified locks does not
have a pending request.
2. Any one of the specified locks is a
pooled resource.
Each lock specified is checked, and the
access is changed for all locks that were
given correctly. If the error return is
taken, the user must execute the ENQC call to
determine the current state of each lock.
The format of the argument block is as follows:
Word Symbol Meaning
0 .ENQLN length of the header and the number of
requested locks in the left half, and length
of argument block in the right half.
1 .ENQID software interrupt channel number in the left
half, and the request ID in the right half.
2 .ENQLV flags and level number in the left half, and
JFN, -1, -2, or -3 in the right half. (See
below.)
3 .ENQUC pointer to a string or a 5B2+33-bit user
code.
4 .ENQRS number of resources in pool in the left half
and number of resources requested in the
right half, or 0 in the left half and a group
number in the right half.
5 .ENQMS address of a resource mask block.
.
.
.
n-4 flags and level number in the left half, and
JFN, -1, -2, or -3 in the right half.
n-3 pointer to a string or a 5B2+33-bit user
code.
n-2 number of resources in pool in the left half
and number of resources requested in the
right half, or 0 in the left half and a group
number in the right half.
n-1 address of a resource mask block.
(ENQ)
The argument block is divided into two logical sections: a header and
individual requests for each desired lock. Words .ENQLN and .ENQID
form the header. Word .ENQLV through word .ENQMS form the individual
request and are repeated for each lock being requested. The words in
the argument block are described in the following paragraphs.
.ENQLN
The length of the header (.ENHLN) is contained in bits 0 through 5.
Currently, the length of the header is two words. (Note that a given
length of zero or one is assumed to be equal to a length of two.) The
number of locks being requested (.ENNLK) is contained in bits 6
through 17, and the length of the argument block (.ENALN) is contained
in bits 18 through 35.
.ENQID
The software interrupt channel specifies the number of the channel on
which to generate an interrupt with the .ENQSI function. The request
ID is an 18-bit user-generated value used to identify the particular
resource. This ID currently is not used by the system but is stored
for future expansion of the facility.
.ENQLV
The following flags are defined:
B0(EN%SHR) Access to this resource is to be shared. If this bit
is not set, access to the resource is to be exclusive.
B1(EN%BLN) Ignore the level number associated with this resource.
Sequencing errors in level numbers will not be
considered fatal, and execution of the call will
continue. If a sequencing error occurs, the successful
return will be taken, and AC1 will contain an error
code indicating the sequencing error that occurred.
B2(EN%NST) Allow ownership of this lock to be nested to any level
within a process. This means that a process can
request this resource again even though it already owns
it. If the process has a request in the resource's
queue or if the process already owns the lock, the
ownership of the lock is nested to a depth one greater
than the current depth. If the process does not have a
request in the resource's queue, the setting of this
bit has no effect, and the execution of the ENQ call
continues. When a process has a nested lock, it must
DEQ the resource as many times as it ENQed it before
the resource becomes available to other processes.
B3(EN%LTL) Allow a long-term lock on this resource. This notifies
the system that this resource will be locked and
unlocked many times in a short period of time. Setting
this bit permits a program to run faster if it is doing
multiple locks and unlocks on the same resource because
(ENQ)
the argument block data is not deleted immediately from
the ENQ/DEQ data base when a DEQ call is executed.
Thus, the time required to re-create the data is
reduced.
B9-B17 Level number associated with this resource.
(EN%LVL)
The request is not queued and the error return is taken if EN%BLN is
not set and
1. A resource with a level number less than or equal to the
highest numbered resource requested so far is specified.
2. The level number of the current request does not match the
level number supplied on previous requests for this resource.
The right half of .ENQLV specifies the type of access desired for the
resource. If a JFN is given, the file associated with the JFN is
subject to the standard access protection of the system. If -1 is
given, the resource can be accessed only by processes of the job. If
-2 is given, the resource can be accessed by any job on the system.
(The process must have ENQ capability enabled to specify -2.) If -3 is
given, the resource can be accessed only by processes that have WHEEL
or OPERATOR capability enabled.
.ENQUC
This word is either a byte pointer to a string or a 33-bit user code,
either of which serves to uniquely identify the resource to all users.
This quantity is the second part of the resource name. (JFN, -1, -2,
or -3 is the first part of the resource name.) The system makes no
association between these identifiers and any physical resource.
The string can be comprised of bytes of any size from 1 to 36 bits in
length and is terminated by a null byte. The byte size desired is
specified by the pointer to the string. The maximum length of the
string (including the terminating null byte) is 50 words long.
.ENQRS
This word is used to allocate multiple resources from a pool of
identical resources. The total number of resources in the pool is a
parameter agreed upon by all users. All requests for the same pooled
resource must agree with the original count or the error return is
taken. The number of resources being requested from the pool must be
greater than zero if a pool exists and must be smaller than or equal
to the number in the pool. If the left half of this word is zero, the
system assumes only one resource of the specific type exists. In this
case, if the right half of this word is positive, it is interpreted as
the number of the group of users who can simultaneously access the
resource.
.ENQMS
(ENQ)
Obtains a single lock representing many specific resources. For
example, a lock can be obtained on a particular data base, and the
specific resources requested can be individual records in that data
base.
This word contains an address of a mask block, consisting of a count
word and a group of mask words. The first word of the mask block
contains a count (in the right half-word) of the number of words in
the block, including the count word. The remaining words each contain
36 mask bits, where each bit represents a specific resource of the
lock. The maximum length of the mask block is 16 words. All requests
for the resources associated with the mask block must specify the same
length for the block or an error return is taken. Also, when a mask
block is specified, the ENQ call must request exclusive access to the
resource and the left half of word .ENQRS of the lock request must be
zero.
The set of resources comprising the lock is a parameter agreed upon by
all users.
A process can obtain exclusive access to all or some of the specific
resources comprising the lock. When a process requires exclusive
access to all of the resources, it executes an ENQ call (for exclusive
access) and does not specify a mask block. A successful return will
be given if there are no other processes that have issued an ENQ call
for that lock. Otherwise, the process blocks until the requested
resources are available.
When a process requires exclusive access to some of the specific
resources comprising the lock, it sets up the mask block and sets the
bits corresponding to the specific resources it wants to lock. The
process then executes an ENQ call for exclusive access. On successful
execution of the ENQ call, the process has an exclusive lock for the
resources represented by the bits on in the mask. The process blocks
if another process owns an exclusive lock on the resource and that
process' ENQ call did not specify a mask block.
Once a mask block has been set up for a set of specific resources,
subsequent requests for a different set of resources will be honored.
The set of resources being requested is considered different if the
bits on in one process' mask block are not any of the same bits on in
another process' mask block. When a subsequent request is given for
resources that are currently locked by a process, the process with the
request blocked until the last of the currently locked resources is
dequeued by the owner of the lock.
A process can dequeue all or part of the original ENQ call request.
When a DEQ call is executed, the bits on in the mask block of the DEQ
call are compared with the bits on in the original ENQ call. The
resources not being dequeued remain locked and must be dequeued by a
subsequent DEQ call. This action allows a process to lock a number of
resources all at once and then to release individual resources as it
finishes with them. However, a process cannot execute subsequent ENQ
calls to request additional resources from those requested in its
original ENQ call.
(ENQ)
ENQ ERROR MNEMONICS:
ENQX1: invalid function
ENQX2: level number too small
ENQX3: request and lock level numbers do not match
ENQX4: number of pool and lock resources do not match
ENQX5: lock already requested
ENQX6: requested locks are not all locked
ENQX8: invalid access change requested
ENQX9: invalid number of blocks specified
ENQX10: invalid argument block length
ENQX11: invalid software interrupt channel number
ENQX12: invalid number of resources requested
ENQX13: indirect or indexed byte pointer not allowed
ENQX14: invalid byte size
ENQX15: ENQ/DEQ capability required
ENQX16: WHEEL or OPERATOR capability required
ENQX17: invalid JFN
ENQX18: quota exceeded
ENQX19: string too long
ENQX20: locked JFN cannot be closed
ENQX22: invalid mask block length
ENQX23: mismatched mask block lengths
DESX8: file is not on disk
Node: ENQC Previous: ENQ Next: EPCAP Up: Top
ENQC JSYS 515
Returns the current status of the given resource and obtains
information about the state of the queues. This monitor call also
(ENQC)
allows privileged processes to manipulate access rights to the queues
and to perform other utility functions on the queue structure.
Refer to the TOPS-20 Monitor Calls User's Guide for an overview and
description of the Enqueue/Dequeue facility.
The ENQC monitor call has two calling sequences, depending on whether
the process is obtaining status information or is modifying the queue
structure.
Obtaining Status Information
RESTRICTIONS: some functions require WHEEL or OPERATOR capabilities
enabled.
ACCEPTS IN AC1: function code (.ENQCS)
AC2: address of argument block
AC3: address of block in which to place status
RETURNS +1: failure, error code in AC1
+2: success
The function .ENQCS returns the status of the specified resources.
The argument block is identical in format to the ENQ and DEQ argument
blocks. (Refer to the ENQ monitor call description.)
The status block has a 3-word entry for each resource specified in the
argument block. This entry reflects the current status of the
resource and has the following format:
0 17 18 35
!=======================================================!
! flag bits indicating status of resource !
!=======================================================!
! 36-bit time stamp !
!=======================================================!
! # of processes with lock ! request ID !
!=======================================================!
The following flag bits are currently defined.
B0(EN%QCE) An error has occurred in the corresponding resource
request and bits 18-35 contain an appropriate error
code.
B1(EN%QCO) This process owns the lock.
B2(EN%QCQ) This process is in the queue waiting for this
resource. This bit is set if B1(EN%QCO) is set
because a request remains in the queue until a DEQ
(ENQC)
call is given.
B3(EN%QCX) The lock has been allocated for exclusive access.
B4(EN%QCB) This process is in the queue waiting for exclusive
access to the resource. This bit is off if B2(EN%QCQ)
is off.
B9-B17 The level number of the resource.
(EN%LVL)
B18-B35 Job number of the owner of the lock. For locks
(EN%JOB) with shared access, this value will be the job number
of one of the sharers. However, this value will be
the current job's number if the current job is one of
the sharers. If the lock is not owned, the value is
-1. If B0(EN%QCE) is on, this field contains the
appropriate error code.
The time stamp indicates the last time a process was given access to
the resource. The time is in the universal date-time standard. If no
process currently has access to the resource, the word is zero.
The number returned in the left half of the third word indicates the
number of processes that currently have the resource locked for either
exclusive access or shared access.
The request ID is either the request ID of the current process if that
process is in the queue or the request ID of the owner of the lock.
Modifying the Queue Structure
ACCEPTS IN AC1: function code
AC2: address of argument block
RETURNS +1: failure, error code in AC1
+2: success
The available functions, along with their argument block formats, are
as follows:
Function Argument Block Meaning
.ENQCG One word containing Return the ENQ/DEQ quota for
a job number in the the specified job. The quota
right half. The left is returned in AC1.
half is ignored.
.ENQCC One word containing Change the ENQ/DEQ quota for
the new quota in the the specified job. The process
left half and a job executing the call must have
number in the right WHEEL capability enabled or an
half. error code is returned.
(ENQC)
.ENQCD A block of n words. Dump the ENQ/DEQ locks and
The first word is the queue entries into the
length of the block (n). argument block. The process
Remaining words contain executing the call must have
the returned WHEEL capability enabled or an
data. (See below.) error code is returned.
The data returned in the argument block is data concerning both the
ENQ/DEQ locks and the queues. The data concerning the locks is in a
4-word block of the following format:
0 8 9 17 18 35
!=======================================================!
.ENQDF ! flags !level number ! OFN, 40000+job#, -2, or -3!
!=======================================================!
.ENQDR ! total resources in pool ! # of resources remaining !
!=======================================================!
.ENQDT ! time stamp of last request locked !
!=======================================================!
.ENQDC ! user code of lock or beginning of string !
!=======================================================!
If there are no pooled resources, word .ENQDR has the format:
0 17 18 35
!=======================================================!
.ENQDR ! 0 ! group number !
!=======================================================!
The data concerning the queues is in a 2-word block of the following
format:
0 8 9 17 18 35
!=======================================================!
.ENQDF ! flags !software chan! job # creator queue entry !
!=======================================================!
.ENQDI !group # or number requested! request ID !
!=======================================================!
The flags returned in the first word of each block are as follows:
B0(EN%QCL) This block concerns data about the locks. If this bit
is off, the block concerns data about the queues.
B1(EN%QCO) This process owns the lock.
B2(EN%QCT) This lock contains a text string.
B3(EN%QCX) This lock is for exclusive access.
(ENQC)
B4(EN%QCB) This process is blocked until exclusive access is
available.
ENQC ERROR MNEMONICS:
ENQX1: invalid function
ENQX2: level number too small
ENQX3: request and lock level numbers do not match
ENQX4: number of pool and lock resources do not match
ENQX5: lock already requested
ENQX6: requested locks are not all locked
ENQX7: no ENQ on this lock
ENQX8: invalid access change requested
ENQX9: invalid number of blocks specified
ENQX10: invalid argument block length
ENQX11: invalid software interrupt channel number
ENQX12: invalid number of resources requested
ENQX13: indirect or indexed byte pointer not allowed
ENQX14: invalid byte size
ENQX15: ENQ/DEQ capability required
ENQX16: WHEEL or OPERATOR capability required
ENQX17: invalid JFN
ENQX18: quota exceeded
ENQX19: string too long
ENQX20: locked JFN cannot be closed
ENQX21: job is not logged in
DESX8: file is not on disk
Node: EPCAP Previous: ENQC Next: ERSTR Up: Top
EPCAP JSYS 151
(EPCAP)
Enables the capabilities for the specified process. (Refer to Section
2.6.1 for a description of the capability word.)
ACCEPTS IN AC1: process handle
AC2: capabilities possible for the specified process
AC3: capabilities to enable for the specified process
RETURNS +1: always
The capabilities in bits 0-8 and bits 18-35 of AC2 are matched with
the corresponding capabilities of the process executing the call. If
the executing process does not have the capability available, it
cannot be enabled for the specified process (i.e., an AND operation is
performed).
The contents of AC2 are ignored if the process handle in AC1 is for
the current process.
The RPCAP monitor call can be used to obtain the capabilities of a
process.
Generates an illegal instruction interrupt on error conditions below.
EPCAP ERROR MNEMONICS:
FRKHX1: invalid process handle
FRKHX2: illegal to manipulate a superior process
Node: ERSTR Previous: EPCAP Next: ESOUT Up: Top
ERSTR JSYS 11
Translates a TOPS-20 error number to its corresponding text string and
writes the string to the specified destination. This error number is
the one returned in an AC (usually in AC1) on a JSYS error and is
associated with a unique error mnemonic and text string. The error
numbers begin at 600010 and are defined in the system file MONSYM.MAC.
(Refer to Appendix A for the list of error numbers, mnemonics, and
text strings.)
ACCEPTS IN AC1: destination designator
AC2: LH: process handle
RH: error number, or -1 for the most recent error
in the specified process. If an error number is
specified, .FHSLF should be specified in AC1.
AC3: LH: a negative count of the maximum number of bytes
in the string to be transferred, or 0 for no
(ERSTR)
limit
RH: 0
RETURNS +1: failure, undefined error number
+2: failure, string size out of bounds or invalid
destination designator
+3: success
Note that if an error code (i.e. not -1) is given in the right half
of AC2, then the fork handle in the left half of AC2 has no
significance to the JSYS. (It will return an error, however, if the
fork handle is not a legitimate handle.)
Generates an illegal instruction interrupt on error conditions below.
ERSTR ERROR MNEMONICS:
DESX1: invalid source/destination designator
FRKHX1: invalid process handle
IOX11: quota exceeded or disk full
Node: ESOUT Previous: ERSTR Next: FFFFP Up: Top
ESOUT JSYS 313
Outputs an error string. This monitor call is used for reporting an
error in the input from the primary input stream in order to cause
re-synchronization of the input transaction. This mechanism is
convenient for communication with a user who made a typing error and
may have continued to type ahead. It also standardizes the format of
error messages.
ACCEPTS IN AC1: byte pointer to a string in the caller's address
space. The string is terminated with a null
character.
RETURNS +1: always, updated string pointer in AC1
The ESOUT call waits for the primary output buffer to empty and then
outputs a carriage return, line feed, and question mark to the primary
output designator. Next it clears the primary input buffer and
outputs the error string to the primary output designator.
Can cause several software interrupts or process terminations on
certain file conditions. (Refer to bit OF%HER of the OPENF call
description.)
(FFFFP)
Node: FFFFP Previous: ESOUT Next: FFORK Up: Top
FFFFP JSYS 31
Finds the first free page in the specified file. A free page is one
that is marked as not being in use. The FFFFP call is useful for
finding a nonused page in a file before a PMAP call is executed that
writes into that page.
ACCEPTS IN AC1: starting page number in left half, JFN in right half.
RETURNS +1: always, with the JFN in the left half of AC1 and the
page number in the right half of AC1, or a fullword
-1 in AC1 if there is no free page.
Generates an illegal instruction interrupt on error conditions below.
FFFFP ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX4: illegal use of terminal designator or string pointer
DESX5: file is not open
Node: FFORK Previous: FFFFP Next: FFUFP Up: Top
FFORK JSYS 154
Freezes one or more processes.
ACCEPTS IN AC1: process handle
RETURNS +1: always
This suspends the processes (as soon as they are stoppable from the
monitor's point of view) in such a way that they can be continued at
the place they were suspended. However, they do not have to be
continued; they could be killed.
The FFORK call is a no-op if the referenced process is already frozen.
The RFORK monitor call can be used to resume one or more processes.
Generates an illegal instruction interrupt on error conditions below.
FFORK ERROR MNEMONICS:
FRKHX1: invalid process handle
FRKHX2: illegal to manipulate a superior process
(FFORK)
FRKHX3: invalid use of multiple process handle
Node: FFUFP Previous: FFORK Next: FLHST Up: Top
FFUFP JSYS 211
Finds the first used page of the file at or beyond the specified page
number.
ACCEPTS IN AC1: JFN in the left half, and the starting page number in
the right half
RETURNS +1: failure, error code in AC1
+2: success, page number in the right half of AC1. The
left half of AC1 is unchanged.
FFUFP ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX3: JFN is not assigned
DESX4: illegal use of terminal designator or string pointer
DESX7: JFN cannot refer to output wildcard designators
FFUFX1: file is not open
FFUFX2: file is not on multiple-directory device
FFUFX3: no used page found
Node: FLHST Previous: FFUFP Next: FLIN Up: Top
FLHST JSYS 277
"Flushes" an ARPANET host. Causes the NCP tables containing that
host's status information to be purged of all information regarding
previous or partially terminated connections between the sending and
receiving hosts of the connection. All connections to the flushed
host are closed.
RESTRICTIONS: for ARPANET systems only. Requires OPERATOR, WHEEL,
or NET WIZARD capabilities enabled.
ACCEPTS IN AC1: number of host to be flushed
RETURNS +1: always
(FLIN)
Node: FLIN Previous: FLHST Next: FLOUT Up: Top
FLIN JSYS 232
Inputs a floating-point number from the specified source. This call
ignores leading spaces and terminates on the first character that
cannot be part of a floating point number. If that character is a
carriage return followed by a line feed, the line feed is also input.
ACCEPTS IN AC1: source designator
RETURNS +1: failure, error code in AC3 and updated string pointer
in AC1, if pertinent
+2: success, single-precision, floating-point number in
AC2 and updated string pointer in AC1, if pertinent
FLIN ERROR MNEMONICS:
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX5: file is not open
FLINX1: first character is not blank or numeric
FLINX2: number too small
FLINX3: number too large
FLINX4: invalid format
Node: FLOUT Previous: FLIN Next: (JSYS4GM)GACCT Up: Top
FLOUT JSYS 233
Outputs a floating-point number to the specified destination.
ACCEPTS IN AC1: destination designator
AC2: normalized, single-precision, floating-point number
AC3: format control word. (Refer to Section 2.8.1.2.)
RETURNS +1: failure, error code in AC3 and updated string pointer
in AC1, if pertinent
+2: success, updated string pointer in AC1, if pertinent
FLOUT ERROR MNEMONICS:
(FLOUT)
DESX1: invalid source/destination designator
DESX2: terminal is not available to this job
DESX3: JFN is not assigned
DESX4: file is not open
FLOTX1: column overflow in field 1 or 2
FLOTX2: column overflow in field 3
FLOTX3: invalid format specified
IOX11: quota exceeded or disk full