Trailing-Edge
-
PDP-10 Archives
-
mit_emacs_170_teco_1220
-
info/jsysaf.info
There are no other files named jsysaf.info in the archive.
File: JSYSAF Node: Top Up: (DIR)
This file contains chapter 3 of the Monitor Calls Reference Manual
(version 3A), JSYS'S A* to F*, in INFO format.
* Menu:
* ACCES: (JSYSAF)ACCES, (552) Specifies access to a directory
* ADBRK: (JSYSAF)ADBRK, (570) Controls address breaks
* AIC: (JSYSAF)AIC, (131) Activates software interrupt channels
* ALLOC: (JSYSAF)ALLOC, (520) Allocates a device
* ASND: (JSYSAF)ASND, (70) Assigns a device
* ATACH: (JSYSAF)ATACH, (116) Attachs a terminal to a job
* ATI: (JSYSAF)ATI, (137) Assigns a terminal code to an interrupt channel
* BIN: (JSYSAF)BIN, (50) Performs byte input
* BKJFN: (JSYSAF)BKJFN, (42) Backs up pointer by one byte
* BOOT: (JSYSAF)BOOT, (562) Performs functions required for loading front-end software
* BOUT: (JSYSAF)BOUT, (51) Performs byte output
* CACCT: (JSYSAF)CACCT, (4) Changes account designator
* CFIBF: (JSYSAF)CFIBF, (100) Clears the input buffer
* CFOBF: (JSYSAF)CFOBF, (101) Clears the output buffer
* CFORK: (JSYSAF)CFORK, (152) Creates an inferior process
* CHFDB: (JSYSAF)CHFDB, (64) Changes a File Descriptor Block
* CHKAC: (JSYSAF)CHKAC, (521) Checks access to a file
* CIS: (JSYSAF)CIS, (141) Clears the interrupt system
* CLOSF: (JSYSAF)CLOSF, (22) Closes a file
* CLZFF: (JSYSAF)CLZFF, (34) Closes the process' files
* COMND: (JSYSAF)COMND, (544) Parses a command
* CRDIR: (JSYSAF)CRDIR, (240) Creates, changes, or deletes a directory
* CRJOB: (JSYSAF)CRJOB, (2) Creates a job
* CRLNM: (JSYSAF)CRLNM, (502) Defines or deletes a logical name
* DEBRK: (JSYSAF)DEBRK, (136) Dismisses current software interrupt
* DELDF: (JSYSAF)DELDF, (67) Expunges deleted files
* DELF: (JSYSAF)DELF, (26) Deletes files
* DELNF: (JSYSAF)DELNF, (317) Retains specified number of generations of a file
* DEQ: (JSYSAF)DEQ, (514) Removes request from resource queue
* DEVST: (JSYSAF)DEVST, (121) Translates a device designator to a string
* DFIN: (JSYSAF)DFIN, (234) Inputs double-precision floating point number
* DFOUT: (JSYSAF)DFOUT, (235) Outputs double-precision floating point number
* DIAG: (JSYSAF)DIAG, (530) Reserves or releases hardware channels
* DIBE: (JSYSAF)DIBE, (212) Dismisses until input buffer is empty
* DIC: (JSYSAF)DIC, (133) Deactivates software interrupt channels
* DIR: (JSYSAF)DIR, (130) Disables software interrupt system
* DIRST: (JSYSAF)DIRST, (41) Translates a directory number to a string
* DISMS: (JSYSAF)DISMS, (167) Dismisses the process
* DOBE: (JSYSAF)DOBE, (104) Dismisses until output buffer is empty
* DSKAS: (JSYSAF)DSKAS, (244) Assigns disk addresses
* DSKOP: (JSYSAF)DSKOP, (242) Specifies disk transfers in hardware terms
* DTACH: (JSYSAF)DTACH, (115) Detaches a terminal from a job
* DTI: (JSYSAF)DTI, (140) Deassigns a terminal code
* DUMPI: (JSYSAF)DUMPI, (65) Reads data in unbuffered data mode
* DUMPO: (JSYSAF)DUMPO, (66) Writes data in unbuffered data mode
* DVCHR: (JSYSAF)DVCHR, (117) Retrieves device characteristics
* EFACT: (JSYSAF)EFACT, (5) Makes an entry in the FACT file
* EIR: (JSYSAF)EIR, (126) Enables software interrupt system
* ENQ: (JSYSAF)ENQ, (513) Places request in resource queue
* ENQC: (JSYSAF)ENQC, (515) Obtains status of resource queue
* EPCAP: (JSYSAF)EPCAP, (151) Enables process capabilities
* ERSTR: (JSYSAF)ERSTR, (11) Converts error number to string
* ESOUT: (JSYSAF)ESOUT, (313) Outputs an error string
* FFFFP: (JSYSAF)FFFFP, (31) Finds first free page in file
* FFORK: (JSYSAF)FFORK, (154) Freezes processes
* FFUFP: (JSYSAF)FFUFP, (211) Finds first used page in file
* FLIN: (JSYSAF)FLIN, (232) Inputs floating-point number
* FLOUT: (JSYSAF)FLOUT, (233) Outputs floating-point number
* GACCT: (JSYSGM)GACCT, (546) Gets current account designator
* GACTF: (JSYSGM)GACTF, (37) Gets account designator of file
* GCVEC: (JSYSGM)GCVEC, (300) Gets entry vector of compatibility package
* GDSKC: (JSYSGM)GDSKC, (214) Gets disk count
* GDSTS: (JSYSGM)GDSTS, (145) Gets device's status
* GDVEC: (JSYSGM)GDVEC, (542) Gets entry vector of RMS
* GET: (JSYSGM)GET, (200) Gets a save file
* GETAB: (JSYSGM)GETAB, (10) Gets a word from a monitor table
* GETER: (JSYSGM)GETER, (12) Returns the last error in a process
* GETJI: (JSYSGM)GETJI, (507) Gets specified job information
* GETNM: (JSYSGM)GETNM, (177) Returns the program name currently being used
* GEVEC: (JSYSGM)GEVEC, (205) Gets entry vector
* GFRKH: (JSYSGM)GFRKH, (164) Gets process handle
* GFRKS: (JSYSGM)GFRKS, (166) Gets process structure
* GFUST: (JSYSGM)GFUST, (550) Returns author and last writer name strings
* GJINF: (JSYSGM)GJINF, (13) Gets current job information
* GNJFN: (JSYSGM)GNJFN, (17) Gets the next JFN
* GPJFN: (JSYSGM)GPJFN, (206) Gets the primary JFNs
* GTAD: (JSYSGM)GTAD, (227) Gets current date and time
* GTDAL: (JSYSGM)GTDAL, (305) Gets disk allocation of a directory
* GTDIR: (JSYSGM)GTDIR, (241) Gets information of directory entry
* GTFDB: (JSYSGM)GTFDB, (63) Gets a File Descriptor Block
* GTJFN: (JSYSGM)GTJFN-SHORT, (20) Gets a JFN Short Form
* Long: (JSYSGM)GTJFN-Long, (20) Gets a JFN Long Form
* GTRPI: (JSYSGM)GTRPI, (172) Get trap information
* GTRPW: (JSYSGM)GTRPW, (171) Gets trap words
* GTSTS: (JSYSGM)GTSTS, (24) Gets a file's status
* GTTYP: (JSYSGM)GTTYP, (303) Gets the terminal type number
* GTWAA: (JSYS-LOCAL)GTWAA, (702) Gets account info at LOTS
* HALTF: (JSYSGM)HALTF, (170) Halts the current process
* HANDS: (JSYS-LOCAL)HANDS, (700) Access system tables efficiently
* HFORK: (JSYSGM)HFORK, (162) Halts a process
* HPTIM: (JSYSGM)HPTIM, (501) Returns values of high precision clocks
* HSYS: (JSYSGM)HSYS, (307) Halts the system
* IDCNV: (JSYSGM)IDCNV, (223) Inputs date and time conversion
* IDLE: (JSYS-LOCAL)IDLE, (701) Gets the idle time of a job
* IDTIM: (JSYSGM)IDTIM, (221) Inputs date and time
* IDTNC: (JSYSGM)IDTNC, (231) Inputs date/time without converting
* IIC: (JSYSGM)IIC, (132) Initiates software interrupts on specified channels
* INLNM: (JSYSGM)INLNM, (503) Lists job's logical names
* JFNS: (JSYSGM)JFNS, (30) Translates a JFN to a string
* KFORK: (JSYSGM)KFORK, (153) Kills a process
* LGOUT: (JSYSGM)LGOUT, (3) Kills a job
* LNMST: (JSYSGM)LNMST, (504) Converts a logical name to a string
* LOGIN: (JSYSGM)LOGIN, (1) Logs in a job
* LPINI: (JSYSGM)LPINI, (547) Loads VFU or translation RAM
* MONRD: (JSYS-LOCAL)MONRD, (717) Read monitor internal data
* MRECV: (JSYSGM)MRECV, (511) Receives an IPCF message
* MSEND: (JSYSGM)MSEND, (510) Sends an IPCF message
* MSFRK: (JSYSGM)MSFRK, (312) Starts a process in monitor mode
* MSTR: (JSYSGM)MSTR, (555) Performs structure-dependent functions
* MTALN: (JSYSGM)MTALN, (774) Associates magnetic tape drive with logical unit number
* MTOPR: (JSYSGM)MTOPR, (77) Performs device-dependent functions
* MUTIL: (JSYSGM)MUTIL, (512) Performs IPCF control functions
* NIN: (JSYSNR)NIN, (225) Inputs an integer number
* NODE: (JSYSNR)NODE, (567) Performs network utility functions
* NOUT: (JSYSNR)NOUT, (224) Outputs an integer number
* ODCNV: (JSYSNR)ODCNV, (222) Outputs date and time conversion
* ODTIM: (JSYSNR)ODTIM, (220) Outputs date and time
* ODTNC: (JSYSNR)ODTNC, (230) Outputs date/time without converting
* OPENF: (JSYSNR)OPENF, (21) Opens a file
* PBIN: (JSYSNR)PBIN, (73) Inputs the next byte
* PBOUT: (JSYSNR)PBOUT, (74) Outputs the next byte
* PEEK: (JSYSNR)PEEK, (311) Obtains monitor data
* PLOCK: (JSYSNR)PLOCK, (561) Locks physical pages
* PMAP: (JSYSNR)PMAP, (56) Maps pages
* PMCTL: (JSYSNR)PMCTL, (560) Controls physical memory
* PPNST: (JSYSNR)PPNST, (557) Translates project-programmer number to string
* PRARG: (JSYSNR)PRARG, (545) Reads/sets process argument block
* PSOUT: (JSYSNR)PSOUT, (76) Outputs a string
* RCDIR: (JSYSNR)RCDIR, (553) Translates string to directory number
* RCM: (JSYSNR)RCM, (134) Reads the channel word mask
* RCUSR: (JSYSNR)RCUSR, (554) Translates string to user number
* RDTTY: (JSYSNR)RDTTY, (523) Reads data from primary input designator
* RELD: (JSYSNR)RELD, (71) Releases a device
* RESET: (JSYSNR)RESET, (147) Resets/initializes the current process
* RFACS: (JSYSNR)RFACS, (161) Reads process' ACs
* RFBSZ: (JSYSNR)RFBSZ, (45) Reads files's byte size
* RFCOC: (JSYSNR)RFCOC, (112) Reads file's control character output
* RFMOD: (JSYSNR)RFMOD, (107) Reads a file's mode
* RFORK: (JSYSNR)RFORK, (155) Resumes a process
* RFPOS: (JSYSNR)RFPOS, (111) Reads terminal's position
* RFPTR: (JSYSNR)RFPTR, (43) Reads file's pointer position
* RFRKH: (JSYSNR)RFRKH, (165) Releases a process handle
* RFSTS: (JSYSNR)RFSTS, (156) Reads a process' status
* RFTAD: (JSYSNR)RFTAD, (533) Reads file's time and dates
* RIN: (JSYSNR)RIN, (54) Performs random input
* RIR: (JSYSNR)RIR, (144) Reads software interrupt table addresses
* RIRCM: (JSYSNR)RIRCM, (143) Reads inferior reserved channel mask
* RLJFN: (JSYSNR)RLJFN, (23) Releases JFNs
* RMAP: (JSYSNR)RMAP, (61) Obtains a handle on a page
* RNAMF: (JSYSNR)RNAMF, (35) Renames a file
* ROUT: (JSYSNR)ROUT, (55) Performs random output
* RPACS: (JSYSNR)RPACS, (57) Reads a page's accessibility
* RPCAP: (JSYSNR)RPCAP, (150) Reads process capabilities
* RSCAN: (JSYSNR)RSCAN, (500) Accepts a new string or uses the last string as input
* RTFRK: (JSYSNR)RTFRK, (322) Returns the handle of a process suspended because of a monitor call intercept
* RTIW: (JSYSNR)RTIW, (173) Reads terminal interrupt word
* RUNTM: (JSYSNR)RUNTM, (15) Returns runtime of process or job
* RWM: (JSYSNR)RWM, (135) Reads waiting channel interrupt word mask
* RWSET: (JSYSNR)RWSET, (176) Releases the working set
* SACTF: (JSYSSZ)SACTF, (62) Sets account designator of file
* SAVE: (JSYSSZ)SAVE, (202) Saves a file as nonsharable
* SCTTY: (JSYSSZ)SCTTY, (324) Changes controlling terminal
* SCVEC: (JSYSSZ)SCVEC, (301) Sets entry vector of compatibility package
* SDSTS: (JSYSSZ)SDSTS, (146) Sets device's status
* SDVEC: (JSYSSZ)SDVEC, (543) Sets entry vector of RMS
* SETER: (JSYSSZ)SETER, (336) Sets the last error in a process
* SETJB: (JSYSSZ)SETJB, (541) Sets job parameters
* SETNM: (JSYSSZ)SETNM, (210) Sets program name
* SETSN: (JSYSSZ)SETSN, (506) Sets system name for a process
* SEVEC: (JSYSSZ)SEVEC, (204) Sets entry vector
* SFACS: (JSYSSZ)SFACS, (160) Sets process' ACs
* SFBSZ: (JSYSSZ)SFBSZ, (46) Sets file's byte size
* SFCOC: (JSYSSZ)SFCOC, (113) Sets file's control character output
* SFMOD: (JSYSSZ)SFMOD, (110) Sets a file's mode
* SFORK: (JSYSSZ)SFORK, (157) Starts a process
* SFPOS: (JSYSSZ)SFPOS, (526) Sets terminal's position
* SFPTR: (JSYSSZ)SFPTR, (27) Sets file's pointer position
* SFRKV: (JSYSSZ)SFRKV, (201) Starts process using its entry vector
* SFTAD: (JSYSSZ)SFTAD, (534) Sets file's time and dates
* SFUST: (JSYSSZ)SFUST, (551) Sets author and last writer name strings
* SIBE: (JSYSSZ)SIBE, (102) Skips if input buffer is empty
* SIN: (JSYSSZ)SIN, (52) Performs string input
* SINR: (JSYSSZ)SINR, (531) Performs record input
* SIR: (JSYSSZ)SIR, (125) Sets software interrupt table addresses
* SIRCM: (JSYSSZ)SIRCM, (142) Sets inferior reserved channel mask
* SIZEF: (JSYSSZ)SIZEF, (36) Gets the size of a file
* SJPRI: (JSYSSZ)SJPRI, (245) Sets job's priority
* SKPIR: (JSYSSZ)SKPIR, (127) Tests the state of the software interrupt system
* SMON: (JSYSSZ)SMON, (6) Sets monitor flags
* SNOOP: (JSYSSZ)SNOOP, (516) Performs system analysis
* SOBE: (JSYSSZ)SOBE, (103) Skips if output buffer is empty
* SOBF: (JSYSSZ)SOBF, (175) Skips if output buffer is full
* SOUT: (JSYSSZ)SOUT, (53) Performs string output
* SOUTR: (JSYSSZ)SOUTR, (532) Performs record output
* SPACS: (JSYSSZ)SPACS, (60) Sets a page's accessibility
* SPJFN: (JSYSSZ)SPJFN, (207) Sets the primary JFNs
* SPLFK: (JSYSSZ)SPLFK, (314) Splices a process structure
* SPOOL: (JSYSSZ)SPOOL, (517) Defines and initializes input spooling
* SPRIW: (JSYSSZ)SPRIW, (243) Sets the priority word
* SSAVE: (JSYSSZ)SSAVE, (203) Saves a file as sharable
* STAD: (JSYSSZ)STAD, (226) Sets system date and time
* STCMP: (JSYSSZ)STCMP, (540) Compares two strings
* STDEV: (JSYSSZ)STDEV, (120) Translates string to device designator
* STI: (JSYSSZ)STI, (114) Simulates terminal input
* STIW: (JSYSSZ)STIW, (174) Sets terminal interrupt word
* STO: (JSYSSZ)STO, (246) Simulates terminal output
* STPAR: (JSYSSZ)STPAR, (217) Sets terminal parameters
* STPPN: (JSYSSZ)STPPN, (556) Translates string to project-programmer number
* STSTS: (JSYSSZ)STSTS, (25) Sets a file's status
* STTYP: (JSYSSZ)STTYP, (302) Sets the terminal type number
* SWJFN: (JSYSSZ)SWJFN, (47) Swaps two JFNs
* SYERR: (JSYSSZ)SYERR, (527) Writes data to the system error file
* SYSGT: (JSYSSZ)SYSGT, (16) Returns information for a system table
* TBADD: (JSYSSZ)TBADD, (536) Adds entry to command table
* TBDEL: (JSYSSZ)TBDEL, (535) Deletes entry from command table
* TBLUK: (JSYSSZ)TBLUK, (537) Looks up entry in command table
* TEXTI: (JSYSSZ)TEXTI, (524) Reads input from a terminal or a file
* TFORK: (JSYSSZ)TFORK, (321) Sets and removes monitor call intercepts
* THIBR: (JSYSSZ)THIBR, (770) Blocks the current job
* TIME: (JSYSSZ)TIME, (14) Returns time system has been up
* TIMER: (JSYSSZ)TIMER, (522) Sets time limit for a job
* TLINK: (JSYSSZ)TLINK, (216) Controls terminal linking
* TMON: (JSYSSZ)TMON, (7) Tests monitor flags
* TTMSG: (JSYSSZ)TTMSG, (775) Sends a message to a terminal
* TWAKE: (JSYSSZ)TWAKE, (771) Wakes a specified job
* UFPGS: (JSYSSZ)UFPGS, (525) Updates file's pages
* USAGE: (JSYSSZ)USAGE, (564) Writes entries into the accounting data file
* USRIO: (JSYSSZ)USRIO, (310) Places program in user I/O mode
* UTEST: (JSYSSZ)UTEST, (563) Test monitor routines
* UTFRK: (JSYSSZ)UTFRK, (323) Resumes a process suspended because of a monitor call intercept
* VACCT: (JSYSSZ)VACCT, (566) Validates an account
* WAIT: (JSYSSZ)WAIT, (306) Dismisses process until interrupt occurs
* WFORK: (JSYSSZ)WFORK, (163) Waits for processes to terminate
File: JSYSAF Node: ACCES 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.
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.
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
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 Pointer to ASCIZ string containing the
structure and directory name or a 36-bit
directory number.
1 .ACPSW 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 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 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
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
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
File: JSYSAF Node: ADBRK Previous: ACCES Next: AIC Up: Top
ADBRK JSYS 570
Controls address breaks. An address break is the suspension of the
process when a specified location is referenced in a given manner.
This facility is useful when debugging a program.
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
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
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
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:
FRKHX1: invalid process handle
FRKHX2: illegal to manipulate a superior process
FRKHX3: invalid use of multiple process handle
ABRKX1: address break not available on this system
ARGX02: invalid function
File: JSYSAF 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
File: JSYSAF Node: ALLOC Previous: AIC Next: ASND 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.
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
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
File: JSYSAF Node: ASND Previous: ALLOC Next: ATACH 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:
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
File: JSYSAF Node: ATACH Previous: ASND 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.
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 of the desired job
(AT%JOB)
AC2: user number under which the job to be attached is
logged in. The user number can be obtained with the
RCUSR monitor call.
AC3: pointer to the beginning of an ASCIZ password string
in the caller's address space
AC4: number 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.
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
File: JSYSAF Node: ATI Previous: ATACH Next: BIN 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.
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
File: JSYSAF Node: BIN Previous: ATI 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
File: JSYSAF 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
File: JSYSAF 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.
The BOOT monitor call requires the process to have WHEEL or OPERATOR
capability enabled.
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
DECSYSTEM-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
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 DECSYSTEM-20
4 .BTIPR Initialize the protocol to be used with this
communications front end. After successful
execution of this function, the DECSYSTEM-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
5 .BTTPR Stop the protocol currently running on this
communications front end. After successful
execution of this function, the DECSYSTEM-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.
Argument Block
0 .BTDTE DTE-20 number
1 .BTCOD Returned protocol version type
(e.g., .VN20F for the RSX20F
protocol). If no protocol is
running, this word contains -1.
7 .BTBEL Block until a signal (doorbell) to the
DECSYSTEM-20 is initiated by the communications
front end. This function is used to
synchronize the caller with the bootstrap
program in the front end.
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
DECSYSTEM-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 (DECSYSTEM-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
|
| 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 (DECSYSTEM-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.
|
| 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
|
| 1 .BTLID Pointer to ASCIZ line id.
|
| 15 .BTCNP Convert NSP port number to line id.
|
| Argument Block
|
| 1 .BTLID Pointer to ASCIZ line id.
|
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
file. (Refer to the DECSYSTEM-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
File: JSYSAF 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
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
File: JSYSAF Node: CACCT Previous: BOUT Next: CFIBF Up: Top
CACCT JSYS 4
Changes the account for the current job.
ACCEPTS IN AC1: account number in bits 3-35 if bits 0-2 are 5.
Otherwise contains a 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
File: JSYSAF Node: CFIBF Previous: CACCT Next: CFOBF Up: Top
CFIBF JSYS 100
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
File: JSYSAF 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
TTYX01: line is not active
File: JSYSAF 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' map is set to 0.
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.
The KFORK monitor call can be used to kill one or more processes.
CFORK ERROR MNEMONICS:
FRKHX6: all relative process handles in use
CFRKX3: insufficient system resources
File: JSYSAF Node: CHFDB Previous: CFORK Next: CHKAC Up: Top
CHFDB JSYS 64
Changes a word in the file descriptor block (FDB) for the specified
file. (Refer to Section 2.2.8 for the format of this block and the
list of words that can be changed with the CHFDB call.)
The CHFDB monitor call cannot be used to change the name string of
either the author of the file or the user who last wrote the file
(words .FBAUT and .FBLWR of the FDB). The SFUST call must be used to
change these words. In addition, the SACTF call is used to change the
account designator of the file (word .FBACT).
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
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
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.
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
File: JSYSAF 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 Pointer to user name string, or 36-bit user
number of user whose access is being checked.
2 .CKACD Pointer to directory name string, 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 Pointer to directory name string, 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.
The codes of the desired accesses are as follows:
0 .CKARD read existing files
1 .CKAWR write existing files
2 .CKAEX execute existing files
3 .CKAAP append to existing files
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
File: JSYSAF 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
File: JSYSAF 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)
RETURNS +1: failure, error code in AC1
+2: success
If the contents of AC1 is -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.
File: JSYSAF 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
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
File: JSYSAF 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:
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
text buffer. This buffer can also include the command line prompt, if
any. Several pointers and counts reflect the current state of the
parsing of the command. These pointers and counts are as follows:
1. Pointer to the beginning of the prompting-text buffer
(.CMRTY). This pointer is also called the CTRL/R buffer
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. Pointer to the beginning of the user's input (.CMBFP). This
is the limit back to which the user can edit.
3. 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 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 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
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 text 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 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 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
(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 ! Pointer to CTRL/R Buffer !
!-------------------------------------------------------!
.CMBFP ! Pointer to Start of Text Buffer !
!-------------------------------------------------------!
.CMPTR ! Pointer to Next Input To Be Parsed !
!-------------------------------------------------------!
.CMCNT ! Count of Space Left in Buffer !
!-------------------------------------------------------!
.CMINC ! Count of Characters Left in Buffer !
!-------------------------------------------------------!
.CMABP ! 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
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 Pointer to the beginning of the prompting-text
input buffer (also called the CTRL/R buffer).
3 .CMBFP Pointer to the beginning of the user's input. The
user cannot edit back past this pointer.
4 .CMPTR 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 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.,
functions .CMIFI, .CMOFI, and .CMFIL). The user
should store data in this block on the .CMFIL
function only.
The flag bits that can be supplied 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.
Bits Supplied 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 !
!-------------------------------------------------------!
.CMHLP! Pointer to help text for field !
!-------------------------------------------------------!
.CMDEF! Pointer to default string for field !
!=======================================================!
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 Pointer to the help text for this field. This
word can be zero if the program is not supplying
its own help text.
3 .CMDEF Pointer to the default string for this field.
This word can be zero if the program is not
supplying its own default string.
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:
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.
Word .CMDAT contains a 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 no data should be stored in the
block. (Data stored in the block will be
overwritten by this COMND call.) On a successful
return, AC2 contains the JFN assigned.
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 no data should be stored in the block. On a
successful return, AC2 contains the JFN assigned.
6 .CMFIL Parse a general (arbitrary) file specification.
This function causes the COMND call to execute a
GTJFN to attempt to parse the specification for
the file. The .CMGJB address must be supplied,
but no data should be stored in words .GJSRC,
.GJCPP, .GJCPC, and .GJRTY of the GTJFN block.
Also, the COMND call sets the following flag bits
in the GTJFN block: GJ%XTN, G1%RND, G1%RBF,
G1%RCM, and G1%RIE. (Refer to the long-form GTJFN
6 .CMFIL call description for an explanation of these words
(Cont.) and flag bits.) The program can set any other
words and flag bits in the GTJFN block it
supplies. On a successful return, AC2 contains
the JFN assigned.
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. (Hyphens
| are treated as alphanumerics in this application
| only.) No application is performed nor is any
standard help message available. (See below.)
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 and type the prompt). This
function should be used at the beginning of
parsing a command line but not when reparsing a
line.
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
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 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
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. Lowercase
characters are converted to uppercase characters.
The input, as delimited by the first
nonalphanumeric character, is copied into the atom
buffer. 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 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 pointer to a program-supplied default string for
this field is given in word 3 (.CMDEF) of this
function descriptor block.
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 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.
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
.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 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
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 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.
NOTE
The function descriptor block, whose
address is given in AC2, can be set up
by the FLDDB. macro defined in MONSYM.
(Refer to Appendix A for the definition
of the FLDDB. macro.)
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.
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
COMX18: invalid character in node name
COMX19: too many characters in node name
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
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
File: JSYSAF Node: CRDIR Previous: COMND Next: CRJOB Up: Top
CRDIR JSYS 240
Creates, changes, or deletes a directory entry.
ACCEPTS IN AC1: pointer to ASCIZ string containing the structure and
directory name.
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
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: 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:
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
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.
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.
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. In particular if the following bits of
AC2 are off, CRDIR will default fields to:
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
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
CRDI22: subdirectory quota insufficient for existing subdirectories
CRDI23: superior directory does not exist
CRDI24: invalid subdirectory quota
File: JSYSAF 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.
Refer to the TOPS-20AN Monitor Calls User's Guide for more information
on the CRJOB monitor call.
ACCEPTS IN AC1: flag bits
AC2: address of argument block
AC3: number of job whose ownership is being released
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.
4 CJ%ETF Place the Command Language Processor in the
top-level process of the new job. If this bit is
off and B5(CJ%FIL) is on, the file pointed to in
the argument block is placed in the top-level
process of the new job.
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, the caller does not have ownership of the new
job.
8 CJ%WTA Do not start the new job until it is attached 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
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.
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 Pointer to the user name string.
1 .CJPSW Pointer to the password string.
2 .CJACT Pointer to the account string or 5B2+numeric
account.
3 .CJFIL 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 Reserved for the future and must be zero.
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 .GJFIL
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.
14 .CJSLO PID to which an IPCF message is to be sent when
the new job is logged out.
When the Command Language Processor is the top-level process of the
new job, it is started at its normal start address (i.e., at the first
word of its entry vector). An argument block is created by the CRJOB
call and passed to this process via the PRARG monitor call. The
format of this PRARG argument block is
Word Meaning
0 Count of words in the block, not including this word.
1 Bit pattern identifying the block as a CRJOB-created
block.
2 Pointer to the first argument being passed. This
argument is a copy of the flag bits from word .CJEXF of
the argument block given on the CRJOB call.
3 Pointer to the second argument being passed. This
argument contains information about the process being
started (a process handle in the left half of the word
and the offset in its entry vector in the right half of
the word).
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
CRJBX2: illegal for created job to enter MINI-EXEC
CRJBX4: terminal is not available
CRJBX5: unknown name for LOGIN
CRJBX6: insufficient system resources
File: JSYSAF Node: CRLNM Previous: CRJOB Next: DEBRK 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: pointer to the logical name
AC3: 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
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
File: JSYSAF Node: DEBRK Previous: CRLNM 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
File: JSYSAF 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.
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
File: JSYSAF 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.
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.
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
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
File: JSYSAF 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: JFN of the file
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
File: JSYSAF 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
none of the pooled resources are dequeued.
Refer to the DECsystem-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
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
File: JSYSAF Node: DEVST Previous: DEQ Next: DFIN Up: Top
DEVST JSYS 121
Translates the given device designator to its corresponding string.
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
DESX3: JFN is not assigned
IOX11: quota exceeded or disk full
File: JSYSAF Node: DFIN Previous: DEVST Next: DFOUT Up: Top
DFIN JSYS 234
Inputs a double-precision, floating-point number. Currently this call
inputs a KA10 format double-precision floating-point number.
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
File: JSYSAF Node: DFOUT Previous: DFIN Next: DIAG Up: Top
DFOUT JSYS 235
Outputs a double-precision, floating-point number. Currently this
call outputs a KA10 format double-precision, floating-point number.
ACCEPTS IN AC1: destination designator
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
File: JSYSAF 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).
ACCEPTS IN AC1: length of the argument block in the left half, and
address of the argument block in the right half.
RETURNS +1: failure, error code in AC1
+2: success
The format of the argument block is as follows:
function code
data words for the function
The available functions are as follows:
Function Symbol Data Words Meaning
1 .DGACU device address Assign the channel and a
time limit in single device. Force the
milliseconds device to be released after
the time limit specified.
2 .DGACH device address Assign the channel and all
devices.
3 .DGRCH device address Release the channel and all
assigned devices.
4 .DGSCP device address Set up the channel program.
channel control The data transfer must be in
word 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.
5 .DGRCP device address 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.
6 .DGGCS device address Return the status of the
word 0 channel. The specified words
word 1 are the logout area for the
word 2 channel.
word 4
The device address given in the argument block 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
|
| Getting Memory
|
| ACCEPTS IN AC1: minus count of controllers in left half; address of
| argument block in right half.
|
| RETURNS +1: failure; error code in AC1
|
| +2: success
|
| The format of the argument block is as follows:
|
| word 0 function code (.DGGEM)
| word 1 first page in user address space
| word 2 first physical memory page
| word 3 number of pages
| word 4 user address of AR/ARX parity trap routines
| Upon successful return, this function accomplishes the following:
|
| TOPS-20 has requested that all of the front ends refrain from
| accessing common memory.
|
| The hardware PI system has been turned off; no scheduling can
| occur.
|
| The time base and interval timer have been turned off.
|
| All DTE byte transfers have completed.
|
| All RH20 activity has ceased.
|
| 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.
|
| The CST0 entries for each of the designated physical pages have
| been saved and set as follows:
|
| The age is set to the present age of the requesting process.
|
| The process use field is set to all ones.
|
| The modified bit is set to one.
|
| 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.)
|
| The monitor has set up proper dispatch if TGHA specified an
| AR/ARX trap address.
|
| Releasing Memory
|
| ACCEPTS IN AC1: minus count of controllers left half; address of
| argument block in right half.
|
| RETURNS +1: failure; error code in AC1
|
| +2: success
|
| The format of the argument block is as follows:
|
| word 0 function code (.DGREM)
|
| DIAG ERROR MNEMONICS
|
| DIAGX1: invalid function
|
| DIAGX3: argument block too small
|
| DIAGX5: WHEEL, OPERATOR, or MAINTENANCE capability required
|
| DIAGX7: illegal to do I/O across page boundary
File: JSYSAF 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
File: JSYSAF 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 ERROR MNEMONICS:
FRKHX1: invalid process handle
FRKHX2: illegal to manipulate a superior process
FRKHX3: invalid use of multiple process handle
File: JSYSAF 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
File: JSYSAF Node: DIRST Previous: DIR Next: DISMS Up: Top
DIRST JSYS 41
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
File: JSYSAF 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
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).
File: JSYSAF 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
File: JSYSAF Node: DSKAS Previous: DOBE Next: DSKOP Up: Top
DSKAS JSYS 244
Assigns or deassigns specific disk addresses. This monitor call
requires the process to have WHEEL or OPERATOR capability 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.
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
File: JSYSAF 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.
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.
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
File: JSYSAF 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.
File: JSYSAF 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:
TERMX1: invalid terminal code
File: JSYSAF 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 from loc through loc+n-1 to be
transferred. The next command is obtained from the location
following the IOWD. Each IOWD word must be read or written
with a separate record from magnetic tape. 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
File: JSYSAF 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
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.
Refer to the DUMPI description for the command list format.
The GDSTS call can be used after the transfer is completed to
determine the number of words written.
DUMPO 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
IOX2: file is not opened for writing
IOX5: device or data error
IOX11: quota exceeded or disk full
File: JSYSAF 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 contents of AC3 are -1 if the device is not assigned to any job or
| -2 if the device allocator has ownership of the UFN or device
| designator.
Device Characteristics Word
Bit Symbol Meaning
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
File: JSYSAF 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.
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
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
File: JSYSAF 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
File: JSYSAF Node: ENQ Previous: EIR Next: ENQC Up: Top
ENQ JSYS 513
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 DECsystem-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
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
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.
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
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
This word is used to obtain 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, where each bit in the
mask represents a specific resource of the lock. 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.
The first word of the mask block contains a count in the right half of
the number of words in the block, including this count word.
Remaining words contain the 36 mask bits. 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.
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
File: JSYSAF 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
allows privileged processes to manipulate access rights to the queues
and to perform other utility functions on the queue structure.
Refer to the DECsystem-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
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
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.
.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.
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
File: JSYSAF Node: EPCAP Previous: ENQC Next: ERSTR Up: Top
EPCAP JSYS 151
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
File: JSYSAF 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
AC3: LH: a negative count of the maximum number of bytes
in the string to be transferred, or 0 for no
limit
RH: 0
RETURNS +1: failure, undefined error number
+2: failure, string size out of bounds or invalid
destination designator
+3: success
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
File: JSYSAF 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: 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.)
File: JSYSAF 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: JFN
RETURNS +1: always, with the JFN in the left half of AC1 and the
page number in the right half of AC1, or -1 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
File: JSYSAF 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
FRKHX3: invalid use of multiple process handle
File: JSYSAF Node: FFUFP Previous: FFORK Next: FLIN 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
File: JSYSAF Node: FLIN Previous: FFUFP 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
File: JSYSAF Node: FLOUT Previous: FLIN Next: (JSYSGM)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:
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
TAG TABLE:
File: JSYSAF Node: Top25
File: JSYSAF Node: ACCES14029
File: JSYSAF Node: ADBRK18646
File: JSYSAF Node: AIC23047
File: JSYSAF Node: ALLOC23775
File: JSYSAF Node: ASND26321
File: JSYSAF Node: ATACH27039
File: JSYSAF Node: ATI31300
File: JSYSAF Node: BIN32312
File: JSYSAF Node: BKJFN33636
File: JSYSAF Node: BOOT34711
File: JSYSAF Node: BOUT49647
File: JSYSAF Node: CACCT50910
File: JSYSAF Node: CFIBF52061
File: JSYSAF Node: CFOBF52784
File: JSYSAF Node: CFORK53512
File: JSYSAF Node: CHFDB56070
File: JSYSAF Node: CHKAC59236
File: JSYSAF Node: CIS62017
File: JSYSAF Node: CLOSF62303
File: JSYSAF Node: CLZFF64583
File: JSYSAF Node: COMND67203
File: JSYSAF Node: CRDIR120094
File: JSYSAF Node: CRJOB133026
File: JSYSAF Node: CRLNM145279
File: JSYSAF Node: DEBRK147539
File: JSYSAF Node: DELDF148162
File: JSYSAF Node: DELF150183
File: JSYSAF Node: DELNF153305
File: JSYSAF Node: DEQ154388
File: JSYSAF Node: DEVST158062
File: JSYSAF Node: DFIN158839
File: JSYSAF Node: DFOUT159840
File: JSYSAF Node: DIAG160976
File: JSYSAF Node: DIBE168356
File: JSYSAF Node: DIC169148
File: JSYSAF Node: DIR170110
File: JSYSAF Node: DIRST171357
File: JSYSAF Node: DISMS172915
File: JSYSAF Node: DOBE173577
File: JSYSAF Node: DSKAS174373
File: JSYSAF Node: DSKOP176873
File: JSYSAF Node: DTACH180592
File: JSYSAF Node: DTI181154
File: JSYSAF Node: DUMPI181714
File: JSYSAF Node: DUMPO184990
File: JSYSAF Node: DVCHR187298
File: JSYSAF Node: EFACT190339
File: JSYSAF Node: EIR191535
File: JSYSAF Node: ENQ192171
File: JSYSAF Node: ENQC207761
File: JSYSAF Node: EPCAP216420
File: JSYSAF Node: ERSTR217594
File: JSYSAF Node: ESOUT219061
File: JSYSAF Node: FFFFP220246
File: JSYSAF Node: FFORK221134
File: JSYSAF Node: FFUFP222032
File: JSYSAF Node: FLIN222909
File: JSYSAF Node: FLOUT223998
END OF TAG TABLE