SINTRAN III Monitor Calls Reference¶
Complete documentation for all 230 monitor calls
Extracted from: SINTRAN III Monitor Calls (ND-860228.2 EN)
Table of Contents¶
Index by Octal Number¶
| Octal | Name | Short Name | Description |
|---|---|---|---|
| 0B | ExitFromProgram | LEAVE | Terminates the program. Returns to SINTRAN III. Batch jobs c... |
| 1B | InByte | INBT | Reads one byte from a character device, e.g. a terminal or a... |
| 2B | OutByte | OUTBT | Writes one byte to a character device, e.g. a terminal or an... |
| 3B | SetEcho | ECHOM | When you press a key on the terminal, a character is normall... |
| 4B | SetBreak | BRKM | Sets the break characters for a terminal. Normally, a progra... |
| 5B | ReadScratchFile | RDISK | Reads randomly from the scratch file. One block is transferr... |
| 6B | WriteScratchFile | WDISK | Writes randomly to the scratch file. One block is transferre... |
| 7B | ReadBlock | RPAGE | Reads randomly from a file. You read one block at a time. Th... |
| 10B | WriteBlock | WPAGE | Writes randomly to a file. You write one block at a time. Th... |
| 11B | GetBasicTime | TIME | Time... |
| 12B | SetCommandBuffer | SETCM | Transfers a string to the command buffer. The command buffer... |
| 13B | ClearInBuffer | CIBUF | Clears a device input buffer. Input from character devices, ... |
| 14B | ClearOutBuffer | COBUF | Clears a device output buffer. Output to character devices, ... |
| 16B | GetTerminalType | MGTTY | Gets the terminal type. The terminal type tells SINTRAN III ... |
| 17B | SetTerminalType | MSTTY | Sets the type of a terminal. The terminal type tells SINTRAN... |
| 21B | InUpTo8Bytes | M8INB | See also In8Bytes, InByte, InString, In4x2Bytes, and Out8Byt... |
| 22B | OutUpTo8Bytes | M8OUT | Writes up to 8 characters to a device, e.g. a terminal or an... |
| 23B | In8Bytes | B8INB | Reads 8 bytes from a device. The input is fast, but the moni... |
| 24B | Out8Bytes | B8OUT | Writes 8 bytes to a character device, e.g. a terminal. All 8... |
| 26B | GetLastByte | LASTC | Gets the last character typed on a terminal. The monitor cal... |
| 27B | GetRTDescr | RTDSC | Reads an RT description. The RT description contains various... |
| 30B | GetOwnRTAddress | GETRT | Gets the address of the calling program's RT description. Ba... |
| 31B | IOInstruction | EXIOX | Executes an IOX machine instruction. The IOX instruction han... |
| 32B | OutMessage | MSG | Writes a message to the user's terminal. This is convenient ... |
| 33B | AltPageTable | ALTON | Switches page table. Each page table allows you to access 12... |
| 34B | NormalPageTable | ALTOFF | ALTOFF Sets the alternative page table equal to the norm... |
| 35B | OutNumber | IOUT | Writes a number to the user's terminal. The number can be ou... |
| 36B | NoWaitSwitch | NOWT | Switches No Wait on and off. No Wait is useful for input fro... |
| 37B | ReadADChannel | AIRDW | Reads an analog to digital channel.... |
| 40B | CloseSpoolingFile | SPCLO | Appends an opened file to a spooling queue. You specify a te... |
| 41B | ReadObjectEntry | ROBJE | Gets information about an opened file. An object entry descr... |
| 43B | CloseFile | CLOSE | Closes one or more files. Files must be opened before they a... |
| 44B | GetUserEntry | RUSER | Gets information about a user. The user entry in the directo... |
| 50B | OpenFile | OPEN | Opens a file. You cannot access a file before you open it. S... |
| 52B | TerminalMode | TERMO | Selects various terminal functions. You may stop output on f... |
| 53B | GetSegmentEntry | RSEGM | Gets information about a segment in the ND-100. The monitor ... |
| 54B | DeleteFile | MDLFI | Deletes a file. The pages of the file are released.... |
| 55B | GetSpoolingEntry | RSQPE | Gets the next spooling queue entry, that is, the next file t... |
| 56B | SetUserParam | PASET | Sets information about a background program. Use GetUserPara... |
| 57B | GetUserParam | PAGEI | Gets information about why the last program terminated. Ther... |
| 61B | MemoryAllocation | FIXC5 | Fixes or unfixes ND-100 segments to be used by the ND-500 Mo... |
| 62B | GetBytesInFile | RMAX | Gets the number of bytes in a file. Only the bytes containin... |
| 63B | In4x2Bytes | B41NW | Reads 8 bytes from a word-oriented or character-oriented dev... |
| 64B | WarningMessage | ERMSG | Outputs a file system error message. Appendix A shows the me... |
| 65B | ErrorMessage | QERMS | Displays a file system error message. Appendix A shows the m... |
| 66B | InBufferSpace | ISIZE | Gets the current number of bytes in the input buffer. Termin... |
| 67B | OutBufferSpace | OSIZE | Gets the number of free bytes in the output buffer (number o... |
| 70B | CallCommand | COMMND | Executes a SINTRAN III command from a program. The program t... |
| 71B | DisableEscape | DESCF | The ESCAPE key on the terminal normally terminates a program... |
| 72B | EnableEscape | EESCF | Enables the ESCAPE key on the terminal. The ESCAPE key norma... |
| 73B | SetMaxBytes | SMAX | Sets the value of the maximum byte pointer in an opened file... |
| 74B | SetStartByte | SETBT | Sets the next byte to be read or written in an opened mass-s... |
| 75B | GetStartByte | REABT | Gets the number of the next byte to access in a file. The by... |
| 76B | SetBlockSize | SETBS | Sets the block size of an opened file. Monitor calls which r... |
| 77B | SetStartBlock | SETBL | Sets the next block to be read or written in an opened file.... |
| 100B | StartRTProgram | RT | Starts an RT program. The program is moved to the execution ... |
| 101B | DelayStart | SET | Starts an RT program after a specified time. The RT program ... |
| 102B | StartupTime | ABSET | Starts an RT program at a specified time of the day. The RT ... |
| 103B | StartupInterval | INTV | Prepares an RT program for periodic execution. The interval ... |
| 104B | SuspendProgram | HOLD | Suspends the execution of your program for a given time. The... |
| 105B | StopRTProgram | ABORT | Stops an RT program. It is removed from the time or executio... |
| 106B | StartOnInterrupt | CONCT | StartOnInterrupt connects an RT program to interrupts from a... |
| 107B | NoInterruptStart | DSCNT | StartOnInterrupt connects an RT program to interrupts from a... |
| 110B | SetRTPriority | PRIOR | Sets the priority of an RT program. RT programs may be given... |
| 111B | SetClock | UPDAT | Gives new values to the computer's clock and calendar. If th... |
| 112B | AdjustClock | CLADJ | Sets the computer's clock (i.e. the current system time) for... |
| 113B | GetCurrentTime | CLOCK | Gets the current system time and date.... |
| 114B | GetTimeUsed | TUSED | Gets the time you have used the CPU since you logged in. In ... |
| 115B | FixScattered | FIX | Place a segment in physical memory. Its pages will no longer... |
| 116B | UnfixSegment | UNFIX | Releases a fixed segment and removes it from the Page Index ... |
| 117B | ReadFromFile | RFILE | Reads any number of bytes from a file. The read operation mu... |
| 120B | WriteToFile | WFILE | Writes any number of bytes to a file. The read operation mus... |
| 121B | AwaitFileTransfer | WAITF | Checks that a data transfer to or from a mass-storage file i... |
| 122B | ReserveResource | RESRV | Reserves a device or file for your program only. You release... |
| 123B | ReleaseResource | RELES | Releases a reserved device or file. The resource can then be... |
| 124B | ForceReserve | PRSRV | Reserves a device for an RT program other than that which is... |
| 125B | ForceRelease | PRLRS | Releases a device reserved by an RT program other than that ... |
| 126B | ExactDelayStart | DSET | Sets an RT program to start after a given period. It is then... |
| 127B | ExactStartup | DABST | Starts an RT program at a specific time. The time is given i... |
| 130B | ExactInterval | DINTV | Prepares an RT program for periodic execution. The interval ... |
| 131B | DataTransfer | ABSTR | Transfers data between physical memory and a mass-storage de... |
| 132B | JumpToSegment | MCALL | Calls a routine on another segment in the ND-100. You can di... |
| 133B | ExitFromSegment | MEXIT | Exchanges one or both current segments. Commonly used to ret... |
| 134B | ExitRTProgram | RTEXT | Terminates the calling RT or background program. Releases al... |
| 135B | WaitForRestart | RTWT | Sets the RT program in a waiting state. It is restarted by S... |
| 136B | EnableRTStart | RTON | RTON RT programs cannot be started after DisableRTStart has ... |
| 137B | DisableRTStart | RTOFF | Disables start of RT programs. No RT program can be started ... |
| 140B | ReservationInfo | WHDEV | Checks that a device is not reserved. If it is reserved, you... |
| 141B | DeviceControl | IOSET | Sets control information for a character device, e.g. a term... |
| 142B | ToErrorDevice | ERMON | Outputs a user-defined, real-time error. The error message i... |
| 143B | ExecutionInfo | RSIO | Gets information about the execution of the calling program.... |
| 144B | DeviceFunction | MAGTP | Performs various operations on floppy disks, magnetic tapes,... |
| 146B | PrivInstruction | IPRIV | Executes a privileged machine instruction on the ND-100. Pri... |
| 147B | CAMACFunction | CAMAC | Operates the CAMAC, i.e. executes the NAF register. CAMAC is... |
| 150B | CAMACGLRegister | GL | Read the CAMAC GL (Graded LAM -"look at me") register or the... |
| 151B | GetRTAddress | GRTDA | Gets the address of an RT description. You specify the name ... |
| 152B | GetRTName | GRTNA | Gets the name of an RT program. You specify the RT descripti... |
| 153B | CAMACIOInstruction | IOXN | Executes a single IOX instruction for CAMAC. See under CAMACFunction (mon 147) for general information. |
| 154B | AssignCAMACLAM | ASSIG | Assigns a graded LAM in the CAMAC identification table to a ... |
| 155B | GraphicFunction | GRAPH | Executes various functions on a graphic peripheral, such as ... |
| 157B | SegmentToPageTable | ENTSG | Enters a routine as a direct task or as a device driver, and... |
| 160B | FixContiguous | FIXC | Places a segment in physical memory. Its pages will no longe... |
| 161B | INSTRING | INSTR | Reads a string of characters from a peripheral device, e.g. ... |
| 162B | OutString | OUTST | Writes a string of characters to a peripheral file, e.g., a ... |
| 164B | SaveSegment | WSEG | Saves a segment in the ND-100. All pages in physical memory ... |
| 165B | GetInRegisters | DIW | Reads the device interface registers.... |
| 167B | AttachSegment | REENT | Attaches a reentrant segment to your two current segments. T... |
| 170B | UserDef0 | US0 | User-defined monitor call. You can implement up to 8 monitor... |
| 171B | UserDef1 | US1 | User-defined monitor call. You can implement up to 8 monitor... |
| 172B | UserDef2 | US2 | User-defined monitor call. You can implement up to 8 monitor... |
| 173B | UserDef3 | US3 | User-defined monitor call. You can implement up to 8 monitor... |
| 174B | UserDef4 | US4 | User-defined monitor call. You can implement up to 8 monitor... |
| 175B | UserDef5 | US5 | User-defined monitor call. You can implement up to 8 monitor... |
| 176B | UserDef6 | US6 | User-defined monitor call. You can implement up to 8 monitor... |
| 177B | UserDef7 | US7 | User-defined monitor call. You can implement up to 8 monitor... |
| 200B | XMSGFunction | XMSG | Performs various data communication functions. All types of ... |
| 201B | HDLCfunction | MHDLC | Performs various HDLC functions. A HDLC is a high-level data... |
| 206B | TerminationHandling | EDTRM | Switches termination handling on and off.... |
| 207B | GetErrorInfo | RERRP | Gets information about the last real-time error. The monitor... |
| 212B | ReentrantSegment | SREEN | Connects a reentrant segment to your two current segments. A... |
| 213B | GetDirUserIndexes | MUIDI | Gets a directory index and a user index. You have to specify... |
| 214B | GetUserName | GUSNA | Gets the name of a user. The user may be on a remote compute... |
| 215B | GetObjectEntry | DROBJ | Gets information about a file. An object entry describes eac... |
| 216B | SetObjectEntry | DWOBJ | Changes the description of a file. An object entry describes... |
| 217B | GetAllFileIndexes | GUIOI | Gets the directory index, the user index, and the object ind... |
| 220B | DirectOpen | DOPEN | Opens a file. Files must be opened before they can be access... |
| 221B | CreateFile | CRALF | Creates a file. The file may be indexed, contiguous, or allo... |
| 222B | GetAddressArea | GBSIZ | Gets the size of your address area. Your address area may co... |
| 227B | SetEscLocalChars | MSDAE | You can terminate most programs with the ESCAPE key. A LOCAL... |
| 230B | GetEscLocalChars | MGDAE | Gets ESCAPE and LOCAL characters. You can terminate most pro... |
| 231B | ExpandFile | EXPFI | Expands the file size. You use this monitor call to increase... |
| 232B | RenameFile | MRNFI | See also @RENAME-FILE.... |
| 233B | SetTemporaryFile | STEFI | Defines a file to store information temporarily. The file ca... |
| 234B | SetPeripheralName | SPEFI | Defines a peripheral file, e.g. a printer. You connect a fil... |
| 235B | ScratchOpen | SCROP | Opens a file as a scratch file. A maximum of 64 pages of the... |
| 236B | SetPermanentOpen | SPERD | Sets a file permanently open. The file is not closed by Clos... |
| 237B | SetFileAccess | SFACC | Sets the access protection for a file. You should specify th... |
| 240B | AppendSpooling | APSPE | Prints a file. The printer has a queue of files waiting to b... |
| 241B | NewUser | SUSCN | Switches the user name you are logged in under. The command ... |
| 242B | OldUser | RUSCN | Switches back to the user name you were logged in under befo... |
| 243B | GetDirNameIndex | FDINA | Gets directory index and name index. The name index identifi... |
| 244B | GetDirEntry | GDIEN | Gets information about a directory. The directory entry is r... |
| 245B | GetNameEntry | GNAEN | Gets information about devices, e.g. disks and floppy disks.... |
| 246B | ReserveDir | REDIR | Reserves a directory for special use. The directory must be ... |
| 247B | ReleaseDir | RLDIR | Releases a directory. The directory must have been reserved ... |
| 250B | GetDefaultDir | FDFDI | Gets the user’s default directory. The directory index and t... |
| 251B | CopyPage | COPAG | Copies file pages between two opened files. One of the files... |
| 252B | BackupClose | BCLOS | Closes a file. The version number and the last date accessed... |
| 253B | NewFileVersion | CRALN | Creates new versions of a file. You may create new versions ... |
| 254B | GetErrorDevice | GERDV | Gets the logical device number of the error device. The erro... |
| 255B | PIOCFunction | PIOCM | PIOC is a programmable input and output processor primarily used in data communication to handle networks like X.25 and Ethernet... |
| 256B | FullFileName | DEABF | Returns a complete file name from an abbreviated one. The di... |
| 257B | OpenFileInfo | FOPEN | Monitor call 257B - OpenFileInfo... |
| 262B | GetSystemInfo | CPUST | Gets various system information. The system number, the CPU ... |
| 263B | GetDeviceType | GDEVT | Gets the device type, e.g. terminal, floppy disk, mass-stora... |
| 267B | TimeOut | TMOUT | Suspends the execution of your program for a given time. The... |
| 270B | ReadDiskPage | RDPAG | Reads one or more directory pages. Any page can be read.... |
| 271B | WriteDiskPage | WDPAG | Writes to one or more pages in a directory. Any page can be ... |
| 272B | DeletePage | DELPG | Deletes pages from a file. Pages between two page numbers ar... |
| 273B | GetFileName | MGFIL | Gets the name of a file. You specify the directory index, th... |
| 274B | GetFileIndexes | FOBJN | Gets the directory index, the user index, and the object ind... |
| 275B | SetTerminalName | STRFI | Defines the file name to be used for terminals. This is norm... |
| 276B | EnableLocal | ELOFU | You may log in on remote computers through the COSMOS data n... |
| 277B | DISABLELOCAL | DLOFU | You may log in on remote computers through the COSMOS data n... |
| 300B | SetEscapeHandling | EUSEL | Enables user-defined escape handling. When the ESCAPE key is... |
| 301B | StopEscapeHandling | DUSEL | Disables user-defined escape handling. The ESCAPE key termin... |
| 302B | ONESCLOCALFUNCTION | ELON | Enables delayed escape and local functions for your terminal... |
| 303B | OffEscLocalFunction | ELOFF | Delays the escape and local functions for your terminal. The... |
| 306B | GetTerminalMode | GTMOD | Gets the terminal mode. The terminal mode tells how the term... |
| 307B | TerminalNoWait | TNOWAI | Switches No Wait on and off. No Wait is useful for input fro... |
| 310B | In8AndFlag | TBIN8 | Reads 8 bytes from a device, e.g., a terminal. The monitor c... |
| 311B | WriteDirEntry | WDIEN | Changes the information about a directory. The complete cont... |
| 312B | CheckMonCall | MOINF | Some monitor calls are optional or only available in later v... |
| 313B | InBufferState | IBRISZ | Gets information about an input buffer. The current number o... |
| 314B | DefaultRemoteSystem | SRUSI | Sets default values for COSMOS remote file access. You can s... |
| 315B | LAMUFunction | MLAMU | Performs various functions on the LAMU system. A LAMU is a l... |
| 316B | SetRemoteAccess | SRLMO | Switches remote file access on and off. The COSMOS network a... |
| 317B | ExecuteCommand | UECOM | Executes a SINTRAN III command. Specify the command name and... |
| 322B | GetSegmentNo | GSGNO | Gets the number of a segment in the ND-100. You specify the ... |
| 323B | SegmentOverlay | SPLRE | Used to build multisegment programs in the ND-100. It is mai... |
| 324B | OctobusFunction | OCTIO | Performs various functions on an old Octobus (earlier than v... |
| 325B | BatchModeEcho | MBECH | Controls echo of input and output if the program is executed... |
| 326B | LogInStart | MLOGI | Allowed in RT programs (ring ≥ 1), and in all programs run b... |
| 327B | FileSystemFunction | FSMTY | Multifunction monitor call to make sure that an uncontrolled... |
| 330B | TerminalStatus | TERST | Gets information about a terminal. The user logged in, the t... |
| 332B | TerminalLineInfo | TREPP | Gets information about a terminal line. You may also enable ... |
| 333B | DMAFunction | UDMA | Monitor call 333B - DMAFunction... |
| 334B | GetErrorMessage | GETXM | Gets a SINTRAN III error message text. Appendix A shows the ... |
| 335B | TRANSFERDATA | EXABS | Transfers data between physical memory and a mass-storage de... |
| 336B | TERMINAL | IOMTY | This I/O multifunction monitor call is used to change the at... |
| 337B | ChangeSegment | SPCHG | Changes the segment and the page table your program uses. Th... |
| 340B | READSYSTEMRECORD | RSREC | Used to read the system record into a buffer.... |
| 341B | SegmentFunction | SGMTY | This is a multifunction monitor call used to change the acti... |
| 400B | ErrorReturn | MACROE | Terminates the program and sets an error code. The error cod... |
| 401B | DisAssemble | DIASS | Disassembles one machine instruction on the ND-500. Output i... |
| 402B | GetInputFlags | RFLAG | ND-100 and ND-500 programs may communicate through two 32-bi... |
| 403B | SetOutputFlags | WFLAG | ND-100 and ND-500 programs may communicate through two 32-bi... |
| 404B | FixIOArea | IOFIX | Fixes an address area in a domain in physical memory. The me... |
| 405B | SwitchUserBreak | USTRK | Switches user-defined escape handling on and off. The user-d... |
| 406B | AccessRTCommon | RWRTC | Reads from or writes to RT common from an ND-500 program. RT... |
| 410B | FixInMemory | FIXMEM | Fixes a logical segment of your domain in physical memory. Y... |
| 411B | MemoryUnfix | UNFIXM | Releases a fixed segment in your domain from physical memory... |
| 412B | FileAsSegment | FSCNT | Connects a file as a segment to your domain. You can then ac... |
| 413B | FileNotAsSegment | FSCDNT | Disconnects a file as a segment in your domain. FileAsSegmen... |
| 414B | BCNAFCAMAC | BCNAF | Special CAMAC function on the ND-500. (Same as mon 156 TRACB... |
| 415B | BCNAF1CAMAC | BCNAF1 | Special CAMAC monitor call for the ND-500. (Same as mon 176 ... |
| 416B | SaveND500Segment | WSEGN | Writes all modified pages of a segment back to the disk.... |
| 417B | MaxPagesInMemory | MXPISG | Sets the maximum number of pages a segment may have in physi... |
| 420B | GetUserRegisters | GRBLK | SwitchUserBreak allows you to save the registers when you te... |
| 421B | GetActiveSegment | GASGM | Gets the name of the segments in your domain. A 2048 byte bu... |
| 422B | GetScratchSegment | GSWSP | Connects an empty data segment to the user's domain and reserves space for it on the swap file. The segment is assigned the default name "SCRATCH-SEGMENT:DSEG". |
| 423B | CopyCapability | CAPCOP | Copies a capability for a segment. The segment itself is als... |
| 424B | ClearCapability | CAPCLE | Clears a capability. A capability describes each logical seg... |
| 425B | SetProcessName | SPRNAM | Defines a new name for your process.... |
| 426B | GetProcessNo | GPRNAM | Gets the number of a process in the ND-500. You specify the ... |
| 427B | GetOwnProcessInfo | GPRNME | Gets the name and number of your own process in the ND-500. ... |
| 430B | TranslateAddress | ADRIOO | The call formats are marked from a-i. All formats give statu... |
| 431B | AwaitTransfer | MWAITF | Checks that a data transfer to or from a mass-storage file i... |
| 435B | ForceTrap | PRT | Forces a programmed trap to occur in another ND-500 process.... |
| 436B | SetND500Param | 5PASET | Sets information about an ND-500 program. Use GetND500Param ... |
| 437B | GetND500Param | 5PAGET | Gets information about why the last ND-500 program terminate... |
| 440B | Attach500Segment | AT5SGM | Maps a logical ND-500 data segment onto shared ND-100/ND-500... |
| 500B | StartProcess | STARTP | Starts a process in the ND-500. You identify the process wit... |
| 501B | StopProcess | STOPPR | Sets the current process in a wait state. StartProcess resta... |
| 502B | SwitchProcess | SWITCHP | Sets the current process in a wait state. Restarts another p... |
| 503B | InputString | DVINST | Reads a string from a device, e.g., a terminal or an opened ... |
| 504B | OutputString | DVOUTS | Writes a string to a device, e.g. a terminal or an opened fi... |
| 505B | GetTrapReason | GERRCOD | Gets the error code from the swapper process. This is only r... |
| 507B | SetProcessPriority | SPRIO | Sets the priority for a process in the ND-500. The prioritie... |
| 514B | ND500TimeOut | 5TMOUT | Suspends the execution of an ND-500 program for a given time... |
Index by Call Name¶
| Name | Octal | Short Name | Description |
|---|---|---|---|
| AccessRTCommon | 406B | RWRTC | Reads from or writes to RT common from an ND-500 program. RT... |
| AdjustClock | 112B | CLADJ | Sets the computer's clock (i.e. the current system time) for... |
| AltPageTable | 33B | ALTON | Switches page table. Each page table allows you to access 12... |
| AppendSpooling | 240B | APSPE | Prints a file. The printer has a queue of files waiting to b... |
| AssignCAMACLAM | 154B | ASSIG | Assigns a graded LAM in the CAMAC identification table to a ... |
| Attach500Segment | 440B | AT5SGM | Maps a logical ND-500 data segment onto shared ND-100/ND-500... |
| AttachSegment | 167B | REENT | Attaches a reentrant segment to your two current segments. T... |
| AwaitFileTransfer | 121B | WAITF | Checks that a data transfer to or from a mass-storage file i... |
| AwaitTransfer | 431B | MWAITF | Checks that a data transfer to or from a mass-storage file i... |
| BackupClose | 252B | BCLOS | Closes a file. The version number and the last date accessed... |
| BatchModeEcho | 325B | MBECH | Controls echo of input and output if the program is executed... |
| BCNAF1CAMAC | 415B | BCNAF1 | Special CAMAC monitor call for the ND-500. (Same as mon 176 ... |
| BCNAFCAMAC | 414B | BCNAF | Special CAMAC function on the ND-500. (Same as mon 156 TRACB... |
| CallCommand | 70B | COMMND | Executes a SINTRAN III command from a program. The program t... |
| CAMACFunction | 147B | CAMAC | Operates the CAMAC, i.e. executes the NAF register. CAMAC is... |
| CAMACGLRegister | 150B | GL | Read the CAMAC GL (Graded LAM -"look at me") register or the... |
| CAMACIOInstruction | 153B | IOXN | Executes a single IOX instruction for CAMAC. See under CAMACFunction (mon 147) for general information. |
| ChangeSegment | 337B | SPCHG | Changes the segment and the page table your program uses. Th... |
| CheckMonCall | 312B | MOINF | Some monitor calls are optional or only available in later v... |
| ClearCapability | 424B | CAPCLE | Clears a capability. A capability describes each logical seg... |
| ClearInBuffer | 13B | CIBUF | Clears a device input buffer. Input from character devices, ... |
| ClearOutBuffer | 14B | COBUF | Clears a device output buffer. Output to character devices, ... |
| CloseFile | 43B | CLOSE | Closes one or more files. Files must be opened before they a... |
| CloseSpoolingFile | 40B | SPCLO | Appends an opened file to a spooling queue. You specify a te... |
| CopyCapability | 423B | CAPCOP | Copies a capability for a segment. The segment itself is als... |
| CopyPage | 251B | COPAG | Copies file pages between two opened files. One of the files... |
| CreateFile | 221B | CRALF | Creates a file. The file may be indexed, contiguous, or allo... |
| DataTransfer | 131B | ABSTR | Transfers data between physical memory and a mass-storage de... |
| DefaultRemoteSystem | 314B | SRUSI | Sets default values for COSMOS remote file access. You can s... |
| DelayStart | 101B | SET | Starts an RT program after a specified time. The RT program ... |
| DeleteFile | 54B | MDLFI | Deletes a file. The pages of the file are released.... |
| DeletePage | 272B | DELPG | Deletes pages from a file. Pages between two page numbers ar... |
| DeviceControl | 141B | IOSET | Sets control information for a character device, e.g. a term... |
| DeviceFunction | 144B | MAGTP | Performs various operations on floppy disks, magnetic tapes,... |
| DirectOpen | 220B | DOPEN | Opens a file. Files must be opened before they can be access... |
| DisableEscape | 71B | DESCF | The ESCAPE key on the terminal normally terminates a program... |
| DISABLELOCAL | 277B | DLOFU | You may log in on remote computers through the COSMOS data n... |
| DisableRTStart | 137B | RTOFF | Disables start of RT programs. No RT program can be started ... |
| DisAssemble | 401B | DIASS | Disassembles one machine instruction on the ND-500. Output i... |
| DMAFunction | 333B | UDMA | Monitor call 333B - DMAFunction... |
| EnableEscape | 72B | EESCF | Enables the ESCAPE key on the terminal. The ESCAPE key norma... |
| EnableLocal | 276B | ELOFU | You may log in on remote computers through the COSMOS data n... |
| EnableRTStart | 136B | RTON | RTON RT programs cannot be started after DisableRTStart has ... |
| ErrorMessage | 65B | QERMS | Displays a file system error message. Appendix A shows the m... |
| ErrorReturn | 400B | MACROE | Terminates the program and sets an error code. The error cod... |
| ExactDelayStart | 126B | DSET | Sets an RT program to start after a given period. It is then... |
| ExactInterval | 130B | DINTV | Prepares an RT program for periodic execution. The interval ... |
| ExactStartup | 127B | DABST | Starts an RT program at a specific time. The time is given i... |
| ExecuteCommand | 317B | UECOM | Executes a SINTRAN III command. Specify the command name and... |
| ExecutionInfo | 143B | RSIO | Gets information about the execution of the calling program.... |
| ExitFromProgram | 0B | LEAVE | Terminates the program. Returns to SINTRAN III. Batch jobs c... |
| ExitFromSegment | 133B | MEXIT | Exchanges one or both current segments. Commonly used to ret... |
| ExitRTProgram | 134B | RTEXT | Terminates the calling RT or background program. Releases al... |
| ExpandFile | 231B | EXPFI | Expands the file size. You use this monitor call to increase... |
| FileAsSegment | 412B | FSCNT | Connects a file as a segment to your domain. You can then ac... |
| FileNotAsSegment | 413B | FSCDNT | Disconnects a file as a segment in your domain. FileAsSegmen... |
| FileSystemFunction | 327B | FSMTY | Multifunction monitor call to make sure that an uncontrolled... |
| FixContiguous | 160B | FIXC | Places a segment in physical memory. Its pages will no longe... |
| FixInMemory | 410B | FIXMEM | Fixes a logical segment of your domain in physical memory. Y... |
| FixIOArea | 404B | IOFIX | Fixes an address area in a domain in physical memory. The me... |
| FixScattered | 115B | FIX | Place a segment in physical memory. Its pages will no longer... |
| ForceRelease | 125B | PRLRS | Releases a device reserved by an RT program other than that ... |
| ForceReserve | 124B | PRSRV | Reserves a device for an RT program other than that which is... |
| ForceTrap | 435B | PRT | Forces a programmed trap to occur in another ND-500 process.... |
| FullFileName | 256B | DEABF | Returns a complete file name from an abbreviated one. The di... |
| GetActiveSegment | 421B | GASGM | Gets the name of the segments in your domain. A 2048 byte bu... |
| GetAddressArea | 222B | GBSIZ | Gets the size of your address area. Your address area may co... |
| GetAllFileIndexes | 217B | GUIOI | Gets the directory index, the user index, and the object ind... |
| GetBasicTime | 11B | TIME | Time... |
| GetBytesInFile | 62B | RMAX | Gets the number of bytes in a file. Only the bytes containin... |
| GetCurrentTime | 113B | CLOCK | Gets the current system time and date.... |
| GetDefaultDir | 250B | FDFDI | Gets the user’s default directory. The directory index and t... |
| GetDeviceType | 263B | GDEVT | Gets the device type, e.g. terminal, floppy disk, mass-stora... |
| GetDirEntry | 244B | GDIEN | Gets information about a directory. The directory entry is r... |
| GetDirNameIndex | 243B | FDINA | Gets directory index and name index. The name index identifi... |
| GetDirUserIndexes | 213B | MUIDI | Gets a directory index and a user index. You have to specify... |
| GetErrorDevice | 254B | GERDV | Gets the logical device number of the error device. The erro... |
| GetErrorInfo | 207B | RERRP | Gets information about the last real-time error. The monitor... |
| GetErrorMessage | 334B | GETXM | Gets a SINTRAN III error message text. Appendix A shows the ... |
| GetEscLocalChars | 230B | MGDAE | Gets ESCAPE and LOCAL characters. You can terminate most pro... |
| GetFileIndexes | 274B | FOBJN | Gets the directory index, the user index, and the object ind... |
| GetFileName | 273B | MGFIL | Gets the name of a file. You specify the directory index, th... |
| GetInputFlags | 402B | RFLAG | ND-100 and ND-500 programs may communicate through two 32-bi... |
| GetInRegisters | 165B | DIW | Reads the device interface registers.... |
| GetLastByte | 26B | LASTC | Gets the last character typed on a terminal. The monitor cal... |
| GetNameEntry | 245B | GNAEN | Gets information about devices, e.g. disks and floppy disks.... |
| GetND500Param | 437B | 5PAGET | Gets information about why the last ND-500 program terminate... |
| GetObjectEntry | 215B | DROBJ | Gets information about a file. An object entry describes eac... |
| GetOwnProcessInfo | 427B | GPRNME | Gets the name and number of your own process in the ND-500. ... |
| GetOwnRTAddress | 30B | GETRT | Gets the address of the calling program's RT description. Ba... |
| GetProcessNo | 426B | GPRNAM | Gets the number of a process in the ND-500. You specify the ... |
| GetRTAddress | 151B | GRTDA | Gets the address of an RT description. You specify the name ... |
| GetRTDescr | 27B | RTDSC | Reads an RT description. The RT description contains various... |
| GetRTName | 152B | GRTNA | Gets the name of an RT program. You specify the RT descripti... |
| GetScratchSegment | 422B | GSWSP | Connects an empty data segment to the user's domain and reserves space for it on the swap file. The segment is assigned the default name "SCRATCH-SEGMENT:DSEG". |
| GetSegmentEntry | 53B | RSEGM | Gets information about a segment in the ND-100. The monitor ... |
| GetSegmentNo | 322B | GSGNO | Gets the number of a segment in the ND-100. You specify the ... |
| GetSpoolingEntry | 55B | RSQPE | Gets the next spooling queue entry, that is, the next file t... |
| GetStartByte | 75B | REABT | Gets the number of the next byte to access in a file. The by... |
| GetSystemInfo | 262B | CPUST | Gets various system information. The system number, the CPU ... |
| GetTerminalMode | 306B | GTMOD | Gets the terminal mode. The terminal mode tells how the term... |
| GetTerminalType | 16B | MGTTY | Gets the terminal type. The terminal type tells SINTRAN III ... |
| GetTimeUsed | 114B | TUSED | Gets the time you have used the CPU since you logged in. In ... |
| GetTrapReason | 505B | GERRCOD | Gets the error code from the swapper process. This is only r... |
| GetUserEntry | 44B | RUSER | Gets information about a user. The user entry in the directo... |
| GetUserName | 214B | GUSNA | Gets the name of a user. The user may be on a remote compute... |
| GetUserParam | 57B | PAGEI | Gets information about why the last program terminated. Ther... |
| GetUserRegisters | 420B | GRBLK | SwitchUserBreak allows you to save the registers when you te... |
| GraphicFunction | 155B | GRAPH | Executes various functions on a graphic peripheral, such as ... |
| HDLCfunction | 201B | MHDLC | Performs various HDLC functions. A HDLC is a high-level data... |
| In4x2Bytes | 63B | B41NW | Reads 8 bytes from a word-oriented or character-oriented dev... |
| In8AndFlag | 310B | TBIN8 | Reads 8 bytes from a device, e.g., a terminal. The monitor c... |
| In8Bytes | 23B | B8INB | Reads 8 bytes from a device. The input is fast, but the moni... |
| InBufferSpace | 66B | ISIZE | Gets the current number of bytes in the input buffer. Termin... |
| InBufferState | 313B | IBRISZ | Gets information about an input buffer. The current number o... |
| InByte | 1B | INBT | Reads one byte from a character device, e.g. a terminal or a... |
| InputString | 503B | DVINST | Reads a string from a device, e.g., a terminal or an opened ... |
| INSTRING | 161B | INSTR | Reads a string of characters from a peripheral device, e.g. ... |
| InUpTo8Bytes | 21B | M8INB | See also In8Bytes, InByte, InString, In4x2Bytes, and Out8Byt... |
| IOInstruction | 31B | EXIOX | Executes an IOX machine instruction. The IOX instruction han... |
| JumpToSegment | 132B | MCALL | Calls a routine on another segment in the ND-100. You can di... |
| LAMUFunction | 315B | MLAMU | Performs various functions on the LAMU system. A LAMU is a l... |
| LogInStart | 326B | MLOGI | Allowed in RT programs (ring ≥ 1), and in all programs run b... |
| MaxPagesInMemory | 417B | MXPISG | Sets the maximum number of pages a segment may have in physi... |
| MemoryAllocation | 61B | FIXC5 | Fixes or unfixes ND-100 segments to be used by the ND-500 Mo... |
| MemoryUnfix | 411B | UNFIXM | Releases a fixed segment in your domain from physical memory... |
| ND500TimeOut | 514B | 5TMOUT | Suspends the execution of an ND-500 program for a given time... |
| NewFileVersion | 253B | CRALN | Creates new versions of a file. You may create new versions ... |
| NewUser | 241B | SUSCN | Switches the user name you are logged in under. The command ... |
| NoInterruptStart | 107B | DSCNT | StartOnInterrupt connects an RT program to interrupts from a... |
| NormalPageTable | 34B | ALTOFF | ALTOFF Sets the alternative page table equal to the norm... |
| NoWaitSwitch | 36B | NOWT | Switches No Wait on and off. No Wait is useful for input fro... |
| OctobusFunction | 324B | OCTIO | Performs various functions on an old Octobus (earlier than v... |
| OffEscLocalFunction | 303B | ELOFF | Delays the escape and local functions for your terminal. The... |
| OldUser | 242B | RUSCN | Switches back to the user name you were logged in under befo... |
| ONESCLOCALFUNCTION | 302B | ELON | Enables delayed escape and local functions for your terminal... |
| OpenFile | 50B | OPEN | Opens a file. You cannot access a file before you open it. S... |
| OpenFileInfo | 257B | FOPEN | Monitor call 257B - OpenFileInfo... |
| Out8Bytes | 24B | B8OUT | Writes 8 bytes to a character device, e.g. a terminal. All 8... |
| OutBufferSpace | 67B | OSIZE | Gets the number of free bytes in the output buffer (number o... |
| OutByte | 2B | OUTBT | Writes one byte to a character device, e.g. a terminal or an... |
| OutMessage | 32B | MSG | Writes a message to the user's terminal. This is convenient ... |
| OutNumber | 35B | IOUT | Writes a number to the user's terminal. The number can be ou... |
| OutputString | 504B | DVOUTS | Writes a string to a device, e.g. a terminal or an opened fi... |
| OutString | 162B | OUTST | Writes a string of characters to a peripheral file, e.g., a ... |
| OutUpTo8Bytes | 22B | M8OUT | Writes up to 8 characters to a device, e.g. a terminal or an... |
| PIOCFunction | 255B | PIOCM | PIOC is a programmable input and output processor primarily used in data communication to handle networks like X.25 and Ethernet... |
| PrivInstruction | 146B | IPRIV | Executes a privileged machine instruction on the ND-100. Pri... |
| ReadADChannel | 37B | AIRDW | Reads an analog to digital channel.... |
| ReadBlock | 7B | RPAGE | Reads randomly from a file. You read one block at a time. Th... |
| ReadDiskPage | 270B | RDPAG | Reads one or more directory pages. Any page can be read.... |
| ReadFromFile | 117B | RFILE | Reads any number of bytes from a file. The read operation mu... |
| ReadObjectEntry | 41B | ROBJE | Gets information about an opened file. An object entry descr... |
| ReadScratchFile | 5B | RDISK | Reads randomly from the scratch file. One block is transferr... |
| READSYSTEMRECORD | 340B | RSREC | Used to read the system record into a buffer.... |
| ReentrantSegment | 212B | SREEN | Connects a reentrant segment to your two current segments. A... |
| ReleaseDir | 247B | RLDIR | Releases a directory. The directory must have been reserved ... |
| ReleaseResource | 123B | RELES | Releases a reserved device or file. The resource can then be... |
| RenameFile | 232B | MRNFI | See also @RENAME-FILE.... |
| ReservationInfo | 140B | WHDEV | Checks that a device is not reserved. If it is reserved, you... |
| ReserveDir | 246B | REDIR | Reserves a directory for special use. The directory must be ... |
| ReserveResource | 122B | RESRV | Reserves a device or file for your program only. You release... |
| SaveND500Segment | 416B | WSEGN | Writes all modified pages of a segment back to the disk.... |
| SaveSegment | 164B | WSEG | Saves a segment in the ND-100. All pages in physical memory ... |
| ScratchOpen | 235B | SCROP | Opens a file as a scratch file. A maximum of 64 pages of the... |
| SegmentFunction | 341B | SGMTY | This is a multifunction monitor call used to change the acti... |
| SegmentOverlay | 323B | SPLRE | Used to build multisegment programs in the ND-100. It is mai... |
| SegmentToPageTable | 157B | ENTSG | Enters a routine as a direct task or as a device driver, and... |
| SetBlockSize | 76B | SETBS | Sets the block size of an opened file. Monitor calls which r... |
| SetBreak | 4B | BRKM | Sets the break characters for a terminal. Normally, a progra... |
| SetClock | 111B | UPDAT | Gives new values to the computer's clock and calendar. If th... |
| SetCommandBuffer | 12B | SETCM | Transfers a string to the command buffer. The command buffer... |
| SetEcho | 3B | ECHOM | When you press a key on the terminal, a character is normall... |
| SetEscapeHandling | 300B | EUSEL | Enables user-defined escape handling. When the ESCAPE key is... |
| SetEscLocalChars | 227B | MSDAE | You can terminate most programs with the ESCAPE key. A LOCAL... |
| SetFileAccess | 237B | SFACC | Sets the access protection for a file. You should specify th... |
| SetMaxBytes | 73B | SMAX | Sets the value of the maximum byte pointer in an opened file... |
| SetND500Param | 436B | 5PASET | Sets information about an ND-500 program. Use GetND500Param ... |
| SetObjectEntry | 216B | DWOBJ | Changes the description of a file. An object entry describes... |
| SetOutputFlags | 403B | WFLAG | ND-100 and ND-500 programs may communicate through two 32-bi... |
| SetPeripheralName | 234B | SPEFI | Defines a peripheral file, e.g. a printer. You connect a fil... |
| SetPermanentOpen | 236B | SPERD | Sets a file permanently open. The file is not closed by Clos... |
| SetProcessName | 425B | SPRNAM | Defines a new name for your process.... |
| SetProcessPriority | 507B | SPRIO | Sets the priority for a process in the ND-500. The prioritie... |
| SetRemoteAccess | 316B | SRLMO | Switches remote file access on and off. The COSMOS network a... |
| SetRTPriority | 110B | PRIOR | Sets the priority of an RT program. RT programs may be given... |
| SetStartBlock | 77B | SETBL | Sets the next block to be read or written in an opened file.... |
| SetStartByte | 74B | SETBT | Sets the next byte to be read or written in an opened mass-s... |
| SetTemporaryFile | 233B | STEFI | Defines a file to store information temporarily. The file ca... |
| SetTerminalName | 275B | STRFI | Defines the file name to be used for terminals. This is norm... |
| SetTerminalType | 17B | MSTTY | Sets the type of a terminal. The terminal type tells SINTRAN... |
| SetUserParam | 56B | PASET | Sets information about a background program. Use GetUserPara... |
| StartOnInterrupt | 106B | CONCT | StartOnInterrupt connects an RT program to interrupts from a... |
| StartProcess | 500B | STARTP | Starts a process in the ND-500. You identify the process wit... |
| StartRTProgram | 100B | RT | Starts an RT program. The program is moved to the execution ... |
| StartupInterval | 103B | INTV | Prepares an RT program for periodic execution. The interval ... |
| StartupTime | 102B | ABSET | Starts an RT program at a specified time of the day. The RT ... |
| StopEscapeHandling | 301B | DUSEL | Disables user-defined escape handling. The ESCAPE key termin... |
| StopProcess | 501B | STOPPR | Sets the current process in a wait state. StartProcess resta... |
| StopRTProgram | 105B | ABORT | Stops an RT program. It is removed from the time or executio... |
| SuspendProgram | 104B | HOLD | Suspends the execution of your program for a given time. The... |
| SwitchProcess | 502B | SWITCHP | Sets the current process in a wait state. Restarts another p... |
| SwitchUserBreak | 405B | USTRK | Switches user-defined escape handling on and off. The user-d... |
| TERMINAL | 336B | IOMTY | This I/O multifunction monitor call is used to change the at... |
| TerminalLineInfo | 332B | TREPP | Gets information about a terminal line. You may also enable ... |
| TerminalMode | 52B | TERMO | Selects various terminal functions. You may stop output on f... |
| TerminalNoWait | 307B | TNOWAI | Switches No Wait on and off. No Wait is useful for input fro... |
| TerminalStatus | 330B | TERST | Gets information about a terminal. The user logged in, the t... |
| TerminationHandling | 206B | EDTRM | Switches termination handling on and off.... |
| TimeOut | 267B | TMOUT | Suspends the execution of your program for a given time. The... |
| ToErrorDevice | 142B | ERMON | Outputs a user-defined, real-time error. The error message i... |
| TRANSFERDATA | 335B | EXABS | Transfers data between physical memory and a mass-storage de... |
| TranslateAddress | 430B | ADRIOO | The call formats are marked from a-i. All formats give statu... |
| UnfixSegment | 116B | UNFIX | Releases a fixed segment and removes it from the Page Index ... |
| UserDef0 | 170B | US0 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef1 | 171B | US1 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef2 | 172B | US2 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef3 | 173B | US3 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef4 | 174B | US4 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef5 | 175B | US5 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef6 | 176B | US6 | User-defined monitor call. You can implement up to 8 monitor... |
| UserDef7 | 177B | US7 | User-defined monitor call. You can implement up to 8 monitor... |
| WaitForRestart | 135B | RTWT | Sets the RT program in a waiting state. It is restarted by S... |
| WarningMessage | 64B | ERMSG | Outputs a file system error message. Appendix A shows the me... |
| WriteBlock | 10B | WPAGE | Writes randomly to a file. You write one block at a time. Th... |
| WriteDirEntry | 311B | WDIEN | Changes the information about a directory. The complete cont... |
| WriteDiskPage | 271B | WDPAG | Writes to one or more pages in a directory. Any page can be ... |
| WriteScratchFile | 6B | WDISK | Writes randomly to the scratch file. One block is transferre... |
| WriteToFile | 120B | WFILE | Writes any number of bytes to a file. The read operation mus... |
| XMSGFunction | 200B | XMSG | Performs various data communication functions. All types of ... |
Index by Short Name¶
| Short Name | Name | Octal | Description |
|---|---|---|---|
| 5PAGET | GetND500Param | 437B | Gets information about why the last ND-500 program terminate... |
| 5PASET | SetND500Param | 436B | Sets information about an ND-500 program. Use GetND500Param ... |
| 5TMOUT | ND500TimeOut | 514B | Suspends the execution of an ND-500 program for a given time... |
| ABORT | StopRTProgram | 105B | Stops an RT program. It is removed from the time or executio... |
| ABSET | StartupTime | 102B | Starts an RT program at a specified time of the day. The RT ... |
| ABSTR | DataTransfer | 131B | Transfers data between physical memory and a mass-storage de... |
| ADRIOO | TranslateAddress | 430B | The call formats are marked from a-i. All formats give statu... |
| AIRDW | ReadADChannel | 37B | Reads an analog to digital channel.... |
| ALTOFF | NormalPageTable | 34B | ALTOFF Sets the alternative page table equal to the norm... |
| ALTON | AltPageTable | 33B | Switches page table. Each page table allows you to access 12... |
| APSPE | AppendSpooling | 240B | Prints a file. The printer has a queue of files waiting to b... |
| ASSIG | AssignCAMACLAM | 154B | Assigns a graded LAM in the CAMAC identification table to a ... |
| AT5SGM | Attach500Segment | 440B | Maps a logical ND-500 data segment onto shared ND-100/ND-500... |
| B41NW | In4x2Bytes | 63B | Reads 8 bytes from a word-oriented or character-oriented dev... |
| B8INB | In8Bytes | 23B | Reads 8 bytes from a device. The input is fast, but the moni... |
| B8OUT | Out8Bytes | 24B | Writes 8 bytes to a character device, e.g. a terminal. All 8... |
| BCLOS | BackupClose | 252B | Closes a file. The version number and the last date accessed... |
| BCNAF | BCNAFCAMAC | 414B | Special CAMAC function on the ND-500. (Same as mon 156 TRACB... |
| BCNAF1 | BCNAF1CAMAC | 415B | Special CAMAC monitor call for the ND-500. (Same as mon 176 ... |
| BRKM | SetBreak | 4B | Sets the break characters for a terminal. Normally, a progra... |
| CAMAC | CAMACFunction | 147B | Operates the CAMAC, i.e. executes the NAF register. CAMAC is... |
| CAPCLE | ClearCapability | 424B | Clears a capability. A capability describes each logical seg... |
| CAPCOP | CopyCapability | 423B | Copies a capability for a segment. The segment itself is als... |
| CIBUF | ClearInBuffer | 13B | Clears a device input buffer. Input from character devices, ... |
| CLADJ | AdjustClock | 112B | Sets the computer's clock (i.e. the current system time) for... |
| CLOCK | GetCurrentTime | 113B | Gets the current system time and date.... |
| CLOSE | CloseFile | 43B | Closes one or more files. Files must be opened before they a... |
| COBUF | ClearOutBuffer | 14B | Clears a device output buffer. Output to character devices, ... |
| COMMND | CallCommand | 70B | Executes a SINTRAN III command from a program. The program t... |
| CONCT | StartOnInterrupt | 106B | StartOnInterrupt connects an RT program to interrupts from a... |
| COPAG | CopyPage | 251B | Copies file pages between two opened files. One of the files... |
| CPUST | GetSystemInfo | 262B | Gets various system information. The system number, the CPU ... |
| CRALF | CreateFile | 221B | Creates a file. The file may be indexed, contiguous, or allo... |
| CRALN | NewFileVersion | 253B | Creates new versions of a file. You may create new versions ... |
| DABST | ExactStartup | 127B | Starts an RT program at a specific time. The time is given i... |
| DEABF | FullFileName | 256B | Returns a complete file name from an abbreviated one. The di... |
| DELPG | DeletePage | 272B | Deletes pages from a file. Pages between two page numbers ar... |
| DESCF | DisableEscape | 71B | The ESCAPE key on the terminal normally terminates a program... |
| DIASS | DisAssemble | 401B | Disassembles one machine instruction on the ND-500. Output i... |
| DINTV | ExactInterval | 130B | Prepares an RT program for periodic execution. The interval ... |
| DIW | GETINREGISTERS | 165B | Reads the device interface registers.... |
| DLOFU | DISABLELOCAL | 277B | You may log in on remote computers through the COSMOS data n... |
| DOPEN | DirectOpen | 220B | Opens a file. Files must be opened before they can be access... |
| DROBJ | GetObjectEntry | 215B | Gets information about a file. An object entry describes eac... |
| DSCNT | NoInterruptStart | 107B | StartOnInterrupt connects an RT program to interrupts from a... |
| DSET | ExactDelayStart | 126B | Sets an RT program to start after a given period. It is then... |
| DUSEL | StopEscapeHandling | 301B | Disables user-defined escape handling. The ESCAPE key termin... |
| DVINST | InputString | 503B | Reads a string from a device, e.g., a terminal or an opened ... |
| DVOUTS | OutputString | 504B | Writes a string to a device, e.g. a terminal or an opened fi... |
| DWOBJ | SetObjectEntry | 216B | Changes the description of a file. An object entry describes... |
| ECHOM | SetEcho | 3B | When you press a key on the terminal, a character is normall... |
| EDTRM | TerminationHandling | 206B | Switches termination handling on and off.... |
| EESCF | EnableEscape | 72B | Enables the ESCAPE key on the terminal. The ESCAPE key norma... |
| ELOFF | OffEscLocalFunction | 303B | Delays the escape and local functions for your terminal. The... |
| ELOFU | EnableLocal | 276B | You may log in on remote computers through the COSMOS data n... |
| ELON | ONESCLOCALFUNCTION | 302B | Enables delayed escape and local functions for your terminal... |
| ENTSG | SegmentToPageTable | 157B | Enters a routine as a direct task or as a device driver, and... |
| ERMON | ToErrorDevice | 142B | Outputs a user-defined, real-time error. The error message i... |
| ERMSG | WarningMessage | 64B | Outputs a file system error message. Appendix A shows the me... |
| EUSEL | SetEscapeHandling | 300B | Enables user-defined escape handling. When the ESCAPE key is... |
| EXABS | TRANSFERDATA | 335B | Transfers data between physical memory and a mass-storage de... |
| EXIOX | IOInstruction | 31B | Executes an IOX machine instruction. The IOX instruction han... |
| EXPFI | ExpandFile | 231B | Expands the file size. You use this monitor call to increase... |
| FDFDI | GetDefaultDir | 250B | Gets the user’s default directory. The directory index and t... |
| FDINA | GetDirNameIndex | 243B | Gets directory index and name index. The name index identifi... |
| FIX | FixScattered | 115B | Place a segment in physical memory. Its pages will no longer... |
| FIXC | FixContiguous | 160B | Places a segment in physical memory. Its pages will no longe... |
| FIXC5 | MemoryAllocation | 61B | Fixes or unfixes ND-100 segments to be used by the ND-500 Mo... |
| FIXMEM | FixInMemory | 410B | Fixes a logical segment of your domain in physical memory. Y... |
| FOBJN | GetFileIndexes | 274B | Gets the directory index, the user index, and the object ind... |
| FOPEN | OpenFileInfo | 257B | Monitor call 257B - OpenFileInfo... |
| FSCDNT | FileNotAsSegment | 413B | Disconnects a file as a segment in your domain. FileAsSegmen... |
| FSCNT | FileAsSegment | 412B | Connects a file as a segment to your domain. You can then ac... |
| FSMTY | FileSystemFunction | 327B | Multifunction monitor call to make sure that an uncontrolled... |
| GASGM | GetActiveSegment | 421B | Gets the name of the segments in your domain. A 2048 byte bu... |
| GBSIZ | GetAddressArea | 222B | Gets the size of your address area. Your address area may co... |
| GDEVT | GetDeviceType | 263B | Gets the device type, e.g. terminal, floppy disk, mass-stora... |
| GDIEN | GetDirEntry | 244B | Gets information about a directory. The directory entry is r... |
| GERDV | GetErrorDevice | 254B | Gets the logical device number of the error device. The erro... |
| GERRCOD | GetTrapReason | 505B | Gets the error code from the swapper process. This is only r... |
| GETRT | GetOwnRTAddress | 30B | Gets the address of the calling program's RT description. Ba... |
| GETXM | GetErrorMessage | 334B | Gets a SINTRAN III error message text. Appendix A shows the ... |
| GL | CAMACGLRegister | 150B | Read the CAMAC GL (Graded LAM -"look at me") register or the... |
| GNAEN | GetNameEntry | 245B | Gets information about devices, e.g. disks and floppy disks.... |
| GPRNAM | GetProcessNo | 426B | Gets the number of a process in the ND-500. You specify the ... |
| GPRNME | GetOwnProcessInfo | 427B | Gets the name and number of your own process in the ND-500. ... |
| GRAPH | GRAPHICFUNCTION | 155B | Executes various functions on a graphic peripheral, such as ... |
| GRBLK | GetUserRegisters | 420B | SwitchUserBreak allows you to save the registers when you te... |
| GRTDA | GetRTAddress | 151B | Gets the address of an RT description. You specify the name ... |
| GRTNA | GetRTName | 152B | Gets the name of an RT program. You specify the RT descripti... |
| GSGNO | GetSegmentNo | 322B | Gets the number of a segment in the ND-100. You specify the ... |
| GSWSP | GetScratchSegment | 422B | Connects an empty data segment to the user's domain and reserves space for it on the swap file. The segment is assigned the default name "SCRATCH-SEGMENT:DSEG". |
| GTMOD | GetTerminalMode | 306B | Gets the terminal mode. The terminal mode tells how the term... |
| GUIOI | GetAllFileIndexes | 217B | Gets the directory index, the user index, and the object ind... |
| GUSNA | GetUserName | 214B | Gets the name of a user. The user may be on a remote compute... |
| HOLD | SuspendProgram | 104B | Suspends the execution of your program for a given time. The... |
| IBRISZ | InBufferState | 313B | Gets information about an input buffer. The current number o... |
| INBT | InByte | 1B | Reads one byte from a character device, e.g. a terminal or a... |
| INSTR | INSTRING | 161B | Reads a string of characters from a peripheral device, e.g. ... |
| INTV | StartupInterval | 103B | Prepares an RT program for periodic execution. The interval ... |
| IOFIX | FixIOArea | 404B | Fixes an address area in a domain in physical memory. The me... |
| IOMTY | TERMINAL | 336B | This I/O multifunction monitor call is used to change the at... |
| IOSET | DeviceControl | 141B | Sets control information for a character device, e.g. a term... |
| IOUT | OutNumber | 35B | Writes a number to the user's terminal. The number can be ou... |
| IOXN | CAMACIOInstruction | 153B | Executes a single IOX instruction for CAMAC. See under CAMACFunction (mon 147) for general information. |
| IPRIV | PrivInstruction | 146B | Executes a privileged machine instruction on the ND-100. Pri... |
| ISIZE | InBufferSpace | 66B | Gets the current number of bytes in the input buffer. Termin... |
| LASTC | GetLastByte | 26B | Gets the last character typed on a terminal. The monitor cal... |
| LEAVE | ExitFromProgram | 0B | Terminates the program. Returns to SINTRAN III. Batch jobs c... |
| M8INB | InUpTo8Bytes | 21B | See also In8Bytes, InByte, InString, In4x2Bytes, and Out8Byt... |
| M8OUT | OutUpTo8Bytes | 22B | Writes up to 8 characters to a device, e.g. a terminal or an... |
| MACROE | ErrorReturn | 400B | Terminates the program and sets an error code. The error cod... |
| MAGTP | DeviceFunction | 144B | Performs various operations on floppy disks, magnetic tapes,... |
| MBECH | BATCHMODEECHO | 325B | Controls echo of input and output if the program is executed... |
| MCALL | JumpToSegment | 132B | Calls a routine on another segment in the ND-100. You can di... |
| MDLFI | DeleteFile | 54B | Deletes a file. The pages of the file are released.... |
| MEXIT | ExitFromSegment | 133B | Exchanges one or both current segments. Commonly used to ret... |
| MGDAE | GEtEscLocalChars | 230B | Gets ESCAPE and LOCAL characters. You can terminate most pro... |
| MGFIL | GetFileName | 273B | Gets the name of a file. You specify the directory index, th... |
| MGTTY | GetTerminalType | 16B | Gets the terminal type. The terminal type tells SINTRAN III ... |
| MHDLC | HDLCfunction | 201B | Performs various HDLC functions. A HDLC is a high-level data... |
| MLAMU | LAMUFunction | 315B | Performs various functions on the LAMU system. A LAMU is a l... |
| MLOGI | LogInStart | 326B | Allowed in RT programs (ring ≥ 1), and in all programs run b... |
| MOINF | CheckMonCall | 312B | Some monitor calls are optional or only available in later v... |
| MRNFI | RenameFile | 232B | See also @RENAME-FILE.... |
| MSDAE | SetEscLocalChars | 227B | You can terminate most programs with the ESCAPE key. A LOCAL... |
| MSG | OutMessage | 32B | Writes a message to the user's terminal. This is convenient ... |
| MSTTY | SetTerminalType | 17B | Sets the type of a terminal. The terminal type tells SINTRAN... |
| MUIDI | GetDirUserIndexes | 213B | Gets a directory index and a user index. You have to specify... |
| MWAITF | AwaitTransfer | 431B | Checks that a data transfer to or from a mass-storage file i... |
| MXPISG | MaxPagesInMemory | 417B | Sets the maximum number of pages a segment may have in physi... |
| NOWT | NoWaitSwitch | 36B | Switches No Wait on and off. No Wait is useful for input fro... |
| OCTIO | OctobusFunction | 324B | Performs various functions on an old Octobus (earlier than v... |
| OPEN | OpenFile | 50B | Opens a file. You cannot access a file before you open it. S... |
| OSIZE | OutBufferSpace | 67B | Gets the number of free bytes in the output buffer (number o... |
| OUTBT | OutByte | 2B | Writes one byte to a character device, e.g. a terminal or an... |
| OUTST | OutString | 162B | Writes a string of characters to a peripheral file, e.g., a ... |
| PAGEI | GetUserParam | 57B | Gets information about why the last program terminated. Ther... |
| PASET | SetUserParam | 56B | Sets information about a background program. Use GetUserPara... |
| PIOCM | PIOCFunction | 255B | PIOC is a programmable input and output processor primarily used in data communication to handle networks like X.25 and Ethernet... |
| PRIOR | SetRTPriority | 110B | Sets the priority of an RT program. RT programs may be given... |
| PRLRS | ForceRelease | 125B | Releases a device reserved by an RT program other than that ... |
| PRSRV | ForceReserve | 124B | Reserves a device for an RT program other than that which is... |
| PRT | ForceTrap | 435B | Forces a programmed trap to occur in another ND-500 process.... |
| QERMS | ErrorMessage | 65B | Displays a file system error message. Appendix A shows the m... |
| RDISK | ReadScratchFile | 5B | Reads randomly from the scratch file. One block is transferr... |
| RDPAG | ReadDiskPage | 270B | Reads one or more directory pages. Any page can be read.... |
| REABT | GetStartByte | 75B | Gets the number of the next byte to access in a file. The by... |
| REDIR | ReserveDir | 246B | Reserves a directory for special use. The directory must be ... |
| REENT | AttachSegment | 167B | Attaches a reentrant segment to your two current segments. T... |
| RELES | ReleaseResource | 123B | Releases a reserved device or file. The resource can then be... |
| RERRP | GetErrorInfo | 207B | Gets information about the last real-time error. The monitor... |
| RESRV | ReserveResource | 122B | Reserves a device or file for your program only. You release... |
| RFILE | ReadFromFile | 117B | Reads any number of bytes from a file. The read operation mu... |
| RFLAG | GetInputFlags | 402B | ND-100 and ND-500 programs may communicate through two 32-bi... |
| RLDIR | ReleaseDir | 247B | Releases a directory. The directory must have been reserved ... |
| RMAX | GetBytesInFile | 62B | Gets the number of bytes in a file. Only the bytes containin... |
| ROBJE | ReadObjectEntry | 41B | Gets information about an opened file. An object entry descr... |
| RPAGE | ReadBlock | 7B | Reads randomly from a file. You read one block at a time. Th... |
| RSEGM | GetSegmentEntry | 53B | Gets information about a segment in the ND-100. The monitor ... |
| RSIO | ExecutionInfo | 143B | Gets information about the execution of the calling program.... |
| RSQPE | GetSpoolingEntry | 55B | Gets the next spooling queue entry, that is, the next file t... |
| RSREC | READSYSTEMRECORD | 340B | Used to read the system record into a buffer.... |
| RT | StartRTProgram | 100B | Starts an RT program. The program is moved to the execution ... |
| RTDSC | GetRTDescr | 27B | Reads an RT description. The RT description contains various... |
| RTEXT | ExitRTProgram | 134B | Terminates the calling RT or background program. Releases al... |
| RTOFF | DisableRTStart | 137B | Disables start of RT programs. No RT program can be started ... |
| RTON | EnableRTStart | 136B | RTON RT programs cannot be started after DisableRTStart has ... |
| RTWT | WAITFORRESTART | 135B | Sets the RT program in a waiting state. It is restarted by S... |
| RUSCN | OldUser | 242B | Switches back to the user name you were logged in under befo... |
| RUSER | GetUserEntry | 44B | Gets information about a user. The user entry in the directo... |
| RWRTC | AccessRTCommon | 406B | Reads from or writes to RT common from an ND-500 program. RT... |
| SCROP | ScratchOpen | 235B | Opens a file as a scratch file. A maximum of 64 pages of the... |
| SET | DelayStart | 101B | Starts an RT program after a specified time. The RT program ... |
| SETBL | SetStartBlock | 77B | Sets the next block to be read or written in an opened file.... |
| SETBS | SetBlockSize | 76B | Sets the block size of an opened file. Monitor calls which r... |
| SETBT | SetStartByte | 74B | Sets the next byte to be read or written in an opened mass-s... |
| SETCM | SetCommandBuffer | 12B | Transfers a string to the command buffer. The command buffer... |
| SFACC | SetFileAccess | 237B | Sets the access protection for a file. You should specify th... |
| SGMTY | SegmentFunction | 341B | This is a multifunction monitor call used to change the acti... |
| SMAX | SetMaxBytes | 73B | Sets the value of the maximum byte pointer in an opened file... |
| SPCHG | ChangeSegment | 337B | Changes the segment and the page table your program uses. Th... |
| SPCLO | CloseSpoolingFile | 40B | Appends an opened file to a spooling queue. You specify a te... |
| SPEFI | SetPeripheralName | 234B | Defines a peripheral file, e.g. a printer. You connect a fil... |
| SPERD | SetPermanentOpen | 236B | Sets a file permanently open. The file is not closed by Clos... |
| SPLRE | SegmentOverlay | 323B | Used to build multisegment programs in the ND-100. It is mai... |
| SPRIO | SetProcessPriority | 507B | Sets the priority for a process in the ND-500. The prioritie... |
| SPRNAM | SetProcessName | 425B | Defines a new name for your process.... |
| SREEN | ReentrantSegment | 212B | Connects a reentrant segment to your two current segments. A... |
| SRLMO | SetRemoteAccess | 316B | Switches remote file access on and off. The COSMOS network a... |
| SRUSI | DefaultRemoteSystem | 314B | Sets default values for COSMOS remote file access. You can s... |
| STARTP | StartProcess | 500B | Starts a process in the ND-500. You identify the process wit... |
| STEFI | SetTemporaryFile | 233B | Defines a file to store information temporarily. The file ca... |
| STOPPR | StopProcess | 501B | Sets the current process in a wait state. StartProcess resta... |
| STRFI | SetTerminalName | 275B | Defines the file name to be used for terminals. This is norm... |
| SUSCN | NewUser | 241B | Switches the user name you are logged in under. The command ... |
| SWITCHP | SwitchProcess | 502B | Sets the current process in a wait state. Restarts another p... |
| TBIN8 | In8AndFlag | 310B | Reads 8 bytes from a device, e.g., a terminal. The monitor c... |
| TERMO | TerminalMode | 52B | Selects various terminal functions. You may stop output on f... |
| TERST | TerminalStatus | 330B | Gets information about a terminal. The user logged in, the t... |
| TIME | GetBasicTime | 11B | Time... |
| TMOUT | TimeOut | 267B | Suspends the execution of your program for a given time. The... |
| TNOWAI | TerminalNoWait | 307B | Switches No Wait on and off. No Wait is useful for input fro... |
| TREPP | TerminalLineInfo | 332B | Gets information about a terminal line. You may also enable ... |
| TUSED | GetTimeUsed | 114B | Gets the time you have used the CPU since you logged in. In ... |
| UDMA | DMAFunction | 333B | Monitor call 333B - DMAFunction... |
| UECOM | ExecuteCommand | 317B | Executes a SINTRAN III command. Specify the command name and... |
| UNFIX | UnfixSegment | 116B | Releases a fixed segment and removes it from the Page Index ... |
| UNFIXM | MemoryUnfix | 411B | Releases a fixed segment in your domain from physical memory... |
| UPDAT | SetClock | 111B | Gives new values to the computer's clock and calendar. If th... |
| US0 | UserDef0 | 170B | User-defined monitor call. You can implement up to 8 monitor... |
| US1 | UserDef1 | 171B | User-defined monitor call. You can implement up to 8 monitor... |
| US2 | UserDef2 | 172B | User-defined monitor call. You can implement up to 8 monitor... |
| US3 | UserDef3 | 173B | User-defined monitor call. You can implement up to 8 monitor... |
| US4 | UserDef4 | 174B | User-defined monitor call. You can implement up to 8 monitor... |
| US5 | UserDef5 | 175B | User-defined monitor call. You can implement up to 8 monitor... |
| US6 | UserDef6 | 176B | User-defined monitor call. You can implement up to 8 monitor... |
| US7 | UserDef7 | 177B | User-defined monitor call. You can implement up to 8 monitor... |
| USTRK | SwitchUserBreak | 405B | Switches user-defined escape handling on and off. The user-d... |
| WAITF | AwaitFileTransfer | 121B | Checks that a data transfer to or from a mass-storage file i... |
| WDIEN | WriteDirEntry | 311B | Changes the information about a directory. The complete cont... |
| WDISK | WriteScratchFile | 6B | Writes randomly to the scratch file. One block is transferre... |
| WDPAG | WriteDiskPage | 271B | Writes to one or more pages in a directory. Any page can be ... |
| WFILE | WriteToFile | 120B | Writes any number of bytes to a file. The read operation mus... |
| WFLAG | SetOutputFlags | 403B | ND-100 and ND-500 programs may communicate through two 32-bi... |
| WHDEV | ReservationInfo | 140B | Checks that a device is not reserved. If it is reserved, you... |
| WPAGE | WriteBlock | 10B | Writes randomly to a file. You write one block at a time. Th... |
| WSEG | SaveSegment | 164B | Saves a segment in the ND-100. All pages in physical memory ... |
| WSEGN | SaveND500Segment | 416B | Writes all modified pages of a segment back to the disk.... |
| XMSG | XMSGFunction | 200B | Performs various data communication functions. All types of ... |
Monitor Call Documentation¶
0B - ExitFromProgram (LEAVE)¶
Terminates the program. Returns to SINTRAN III. Batch jobs continues with the next command.
- Background programs close all files not set permanently open. RT programs do not close any files.
- RT programs release all reserved devices.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Language |
Code | I | |
PASCAL |
StopProgram; [Note routine name.] | I | |
COBOL |
MONITOR-CALL "ExitFromProgram". | I | |
FORTRAN |
Monitor_Call('ExitFromProgram') | I |
See Also¶
Examples¶
PLANC
Monitor_Call('ExitFromProgram')
ASSEMBLY-500
ExitFromProgram : EQU 37B9 + 0B
...
CALLG ExitFromProgram, 0
IF K GO Error %Possible if wrong number of parameters.
MAC
MON 0 %Monitor call ExitFromProgram.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 185
1B - InByte (INBT)¶
Reads one byte from a character device, e.g. a terminal or an opened file. If the device is a word-oriented device, one word is read. This monitor call can be used on most input devices.
- Bit 7 is a parity bit if terminal or file input. IOMultiFunction may change this.
- The program waits if there is no bytes in the input buffer of the device. You can change this with NoWaitSwitch or TerminalNoWait.
- The pointer to the next byte is incremented when you read from a mass-storage file.
- Input from card readers are converted to ASCII characters. Use DeviceControl to read the 12-bit card columns.
- Background programs may read from logical device number 0. This is the SINTRAN III command buffer. You may read parameters following the program name this way. Break and echo are both set to 1. Normal SINTRAN III command editing is available. All letters are converted to uppercase. You may control this with IOMultiFunction.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DeviceNumber |
INTEGER | I | Logical device number. See appendix B. Use 1 for your own terminal. |
ReturnValue |
INTEGER | O | The read byte. |
ErrCode |
INTEGER | O | Standard Error Code. See appendix A. |
See Also¶
In8AndFlag, InUpTo8Bytes, In8Bytes, InString, InputString, In4x2Bytes, and OutByte
Examples¶
Pascal
DeviceNumber, ReturnValue : INTEGER2;
...
InByte(DeviceNumber, ReturnValue);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 ReturnValue COMP.
01 ErrCode COMP.
...
MONITOR-CALL "InByte" USING DeviceNumber, ReturnValue.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, ReturnValue
...
Monitor Call('InByte', DeviceNumber, ReturnValue)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER: DeviceNumber, ReturnValue
..
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ..
ENDON
Monitor_Call('InByte', DeviceNumber, ReturnValue)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
ReturnValue : W BLOCK 1
ErrCode : W BLOCK 1
InByte : EQU 37B9 + 1B
CALLG InByte, 2, DeviceNumber, ReturnValue
IF K GO ERROR
ERROR: W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
MON 1 %Monitor call InByte.
JMP ERROR %Error return from monitor call.
STA BYTE %Normal return, store byte read.
ERROR, ... %Error number in register A.
DEVNO, ...
BYTE, 0
Compatibility
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 319
2B - OutByte (OUTBT)¶
Writes one byte to a character device, e.g. a terminal or an opened file. If the device is a word-oriented device, one word is written.
- The program waits if the output buffer of the device is full. You can change this with NoWaitSwitch or TerminalNoWait.
- The pointer to the next byte is incremented when you write to a mass-storage file.
- Output from card readers are converted to ASCII characters. Use DeviceControl to write the 12-bit card columns.
- You are advised to use the faster OutputString on the ND-500.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. Use 1 for your own terminal. |
Param2 |
UNKNOWN | I | The byte to write. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
OutUpTo8Bytes, Out8Bytes, OutString, OutputString, OutMessage, OutNumber, and InByte
Examples¶
Pascal
DeviceNumber, OutputValue : INTEGER2;
...
OutByte(DeviceNumber, OutputValue);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 OutputValue COMP.
01 ErrCode COMP.
...
MONITOR-CALL "OutByte" USING DeviceNumber, OutputValue.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, OutputValue
...
Monitor_Call('OutByte', DeviceNumber, OutputValue)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, OutputValue
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_call('OutByte', DeviceNumber, OutputValue)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
OutputValue : W BLOCK 1
ErrCode : W BLOCK 1
OutByte : EQU 37B9 + 2B
...
CALLG OutByte, 2, DeviceNumber, OutputValue
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
LDA BYTE %Byte to be written.
MON 2 %Monitor call OutByte.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, %Error number in A register.
DEVNO, ...
BYTE, 'A'
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 377
3B - SetEcho (ECHOM)¶
When you press a key on the terminal, a character is normally displayed. This is called echo. You modify a terminal's echo with this monitor call.
- If 8-bit I/O is set (TerminalFunction, function number 112), you will get echo always if bit 7 in the echo table is set.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The terminal's logical device number. See appendix B. Only needed for RT program |
Param2 |
UNKNOWN | I | Echo strategy. Less than 0: No echo, e.g. for password fields. |
Param3 |
UNKNOWN | I | 0: Echo on all characters. |
Param4 |
UNKNOWN | I | 1: Echo on all characters except control characters. |
Param5 |
UNKNOWN | I | 2: Special echo used by MAC. |
Param6 |
UNKNOWN | I | 3-6: System defined echo. |
Param7 |
UNKNOWN | I | 7: User-defined echo. See the next parameter. |
Param8 |
UNKNOWN | I | 8: Last user-defined echo table. (Only meaningful with echo strategy 7.) |
Param9 |
UNKNOWN | I | User-defined echo table. Ignored if the echo is different from 7. Use 128 bits t |
See Also¶
Examples¶
Pascal
DeviceNumber, EchoStrategy : INTEGER2;
Table : RECORD...END;
...
SetEcho(DeviceNumber, EchoStrategy, Table);
COBOL
01 DeviceNumber COMP.
01 EchoStrategy COMP.
01 Table.
02 array COMP OCCURS 8 TIMES.
...
MONITOR-CALL "SetEcho" USING DeviceNumber, EchoStrategy, Table.
Fortran
INTEGER DeviceNumber, EchoStrategy
INTEGER Table(8)
...
Monitor_Call('SetEcho', DeviceNumber, EchoStrategy, Table(1))
PLANC
INTEGER : DeviceNumber, EchoStrategy
INTEGER2ARRAY{0:7}
...
Monitor_Call('SetEcho', DeviceNumber, EchoStrategy, Table(0))
ASSEMBLY-500
DeviceNumber : W BLOCK 1
EchoStrategy : W BLOCK 1
Table : H BLOCK 8
SetEcho : EQU 37B9 + 3B
...
CALLG SetEcho, 3, DeviceNumber, EchoStrategy, Table
MAC
LDT DEVNO %Logical device number.
LDA STRAT %Echo strategy.
LDX (TABLE %Eight word large bit map.
MON 3 %Monitor call SetEcho.
...
DEVNO, ...
STRAT, ...
TABLE, ...
*+10/ %Make a buffer of 8 words.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 441
4B - SetBreak (BRKM)¶
Sets the break characters for a terminal. Normally, a program waits for input. When a break character is typed, the program restarts. For example, most subsystems restart when you press the RETURN-key after a command. The subsystems have defined the RETURN-key as a break character.
- SINTRAN III has some predefined break tables.
- You may define your own break table. This is a 128-bit array where each bit represents an ASCII character. Use 1 for the characters you want as break characters. The ability to define your own break tables is optional in older versions of SINTRAN III.
- If 8-bit I/O is set (TerminalFunction, function number 112), you will get break always if bit 7 in the break table is set.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. Only used by RT programs. Your own te |
Param2 |
UNKNOWN | I | Break strategy. Negative values gives break on no characters. |
0 |
Break on all characters. | I | |
1 |
Break on control characters, i.e. ASCII values less than 32 and DEL. This is the default. | I | |
2 |
Special break table used by the MAC assembler. | I | |
3-6 |
System defined break strategy. | I | |
7 |
User-defined break table. See the next parameter. | I | |
8 |
Last user-defined break table. (Only meaningful with strategy 7.) | I | |
9 |
Change the maximum numbers of characters before break only. | I | |
Param10 |
UNKNOWN | I | **User-defined break table, i.e. 128 bits which represent the ASCII characters. |
Param11 |
UNKNOWN | I | Maximum number of characters before break. Dummy with break strategies 0, 1, |
See Also¶
Examples¶
Pascal
DeviceNo, BreakStrategy, NoOfChar : INTEGER2;
Table : RECORD...END;
...
SetBreak(DeviceNo, BreakStrategy, Table, NoOfChar);
COBOL
01 DeviceNo COMP.
01 BreakStrategy COMP.
01 NoOfChar COMP.
01 Table.
02 array COMP OCCURS 8 TIMES.
...
MONITOR-CALL "SetBreak" USING DeviceNo, BreakStrategy, Table, NoOfChar.
Fortran
INTEGER DeviceNo, Strategy, NoOfChar
INTEGER Table(8)
...
Monitor_Call('SetBreak', DeviceNo, Strategy, Table(1), NoOfChar)
PLANC
INTEGER : DeviceNo, Strategy, NoOfChar
INTEGER2ARRAY(0:7)
...
Monitor_Call('SetBreak', DeviceNo, Strategy, Table(0), NoOfChar)
ASSEMBLY-500
DeviceNo : W BLOCK 1
BreakStrategy : W BLOCK 1
NoOfChar : W BLOCK 1
Table : H BLOCK 8
SetBreak : EQU 37B9 + 4B
...
CALLG SetBreak, 4, DeviceNo, BreakStrategy, Table, NoOfChar
MAC
LDT DEVNO %Logical device number.
LDA NOCHR %Number of characters input before break,
COPY SA DD % only if STRAT greater or equal to 3.
LDX (TABLE %Address of 8-word large bit map.
LDA STRAT %Break strategy.
MON 4 %Monitor call SetBreak.
...
DEVNO, ...
STRAT, 1 %Break only on control characters.
TABLE, ...
*+10/ %Make an 8-word large buffer.
NOCHR, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 435
5B - ReadScratchFile (RDISK)¶
Reads randomly from the scratch file. One block is transferred. There is one scratch file connected to each terminal. It is opened for random read and write access when you log in. Its file number is 100B.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Block number |
Block number to start the reading. | I | |
Array |
Array for the transferred data. | I | |
Standard Error Code |
See appendix A. | I |
See Also¶
ReadBlock, ReadFromFile. ReadFromFile is the most efficient monitor call
Examples¶
Pascal
BlockNumber : INTEGER2;
DataDestination : RECORD...END;
...
ReadScratchFile(BlockNumber, DataDestination);
IF ErrCode <> 0 THEN ...
COBOL
01 BlockNumber COMP.
01 DataDestination.
02 array COMP OCCURS 256 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "ReadScratchFile" USING BlockNumber, DataDestination.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER BlockNumber
INTEGER DataDestination(256)
...
Monitor_Call('ReadScratchFile', BlockNumber, DataDestination(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : BlockNumber
BYTES : DataDestination(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReadScratchFile', BlockNumber, DataDestination(0))
MAC
| Instruction | Description |
|-------------|----------------------------------------------|
| LDT BLKNO | %Block number to be read. |
| LDX (BUFF | %Address of buffer to receive block read. |
| MON 5 | %Monitor call ReadScratchFile. |
| JMP ERROR | %Error return from monitor call. |
| ... | %Normal return. |
| ERROR, ... | %Error number in register A. |
| BLKNO, ... | |
| BUFF, 0 | `*+400/` %Make a buffer of 256 words, 1 block. |
ND-100 | All users | Background programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 403
6B - WriteScratchFile (WDISK)¶
Writes randomly to the scratch file. One block is transferred. There is one scratch file connected to each terminal. It is opened for random read and write access when you log in. Its file number is 100B.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➔ |
Block number to start the writing from. | I | |
➔ |
The data to be transferred. | I | |
⬅ |
Standard Error Code. See appendix A. | I |
See Also¶
WriteBlock, WriteToFile, and ReadScratchFile
Examples¶
Pascal
BlockNumber : INTEGER2;
Buffer : ARRAY [0..15] OF RECORD...END;
...
WriteScratchFile(BlockNumber, Buffer);
IF ErrCode <> 0 THEN ...
COBOL
01 BlockNumber COMP.
01 Buffer.
02 array COMP OCCURS 256 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "WriteScratchFile" USING BlockNumber, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER BlockNumber
INTEGER Buffer(256)
...
Monitor Call('WriteScratchFile', BlockNumber, Buffer(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : BlockNumber
BYTES : Buffer(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteScratchFile', BlockNumber, Buffer(0))
MAC
LDT BLKNO %Block number to be written into.
LDX (BUFF %Address of buffer containing data to be written.
MON 6 %Monitor call WriteScratchFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
BLKNO, ...
BUFF, 0
*+400/ %Make a buffer of 256 words, 1 block.
| ND-100 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 567
7B - ReadBlock (RPAGE)¶
Reads randomly from a file. You read one block at a time. The file must be opened for random read access.
- The standard block size is 512 bytes. You can change this with
SetBlockSize. The first block is number 0.
Source: ND-860228.2 EN, Page N/A
10B - WriteBlock (WPAGE)¶
Writes randomly to a file. You write one block at a time. The file must be opened for random write access.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
Source: ND-860228.2 EN, Page N/A
11B - GetBasicTime (TIME)¶
Time
Gets the current internal time. The internal time is specified in basic time units. There are 50 basic time units in a second.
- The internal time is set to 0 each time SINTRAN III is started.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Internal time in basic time units. |
See Also¶
GetCurrentTime, AdjustClock, and SetClock
Examples¶
Pascal
BasicTime : LONGINT;
...
GetBasicTime(BasicTime);
COBOL
01 BasicTime COMP PIC S9(10).
...
MONITOR-CALL "GetBasicTime" USING BasicTime.
Fortran
INTEGER*4 BasicTime
...
Monitor_Call('GetBasicTime', BasicTime)
PLANC
INTEGER4 : BasicTime
...
Monitor_Call('GetBasicTime', BasicTime)
ASSEMBLY-500
BasicTime : W BLOCK 1
GetBasicTime : EQU 37B9 + 11B
...
CALLG GetBasicTime, 0
W1 =: BasicTime %Result is returned in W1 register.
MAC
| MON | 11 | %Monitor call GetTime. |
|-----|------|-------------------------------------------------------|
| STD | TIME | %Store time returned in the A and D register. |
| ... | | |
| TIME, 0 | | %Time in basic time units as a double word. |
| 0 | | % |
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 223
12B - SetCommandBuffer (SETCM)¶
Transfers a string to the command buffer. The command buffer contains the last command input from the terminal. You may read the command buffer by reading from logical device number 0. See InByte.
- The command @TERMINAL-STATISTICS lists the command buffer.
- You may apply the SINTRAN III command editing characters to the command buffer when the program has terminated.
- The parameter is fetched through the alternative page table.
- You may use this monitor call to erase sensitive information in the command buffer, e.g., password parameters.
See Also¶
ExecuteCommand, CallCommand
Examples¶
Pascal
Command : PACKED ARRAY [0..31] OF CHAR;
...
SetCommandBuffer(Command);
COBOL
01 Command PIC X(32).
...
MONITOR-CALL "SetCommandBuffer" USING Command.
Fortran
CHARACTER Command*32
...
Monitor_Call('SetCommandBuffer', Command(1:32))
PLANC
BYTES : Command(0:31)
...
Monitor_Call('SetCommandBuffer', Command)
ASSEMBLY-500
Command : STRINGDATA 'CLOSE-FILE 102'
SetCommandBuffer : EQU 37B9 + 12B
...
CALLG SetCommandBuffer, 1, Command
MAC
| Instruction | Operand | Description |
|-------------|---------|-------------------------------------------------------|
| LDA | (CMND) | %Address of string with command. |
| MON | 12 | %Monitor call SetCommandBuffer. |
| ... | | |
| CMND, | 'CLOSE-FILE 102' | %Transfer 'CLOSE-FILE 102' to the command buffer. |
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 439
13B - ClearInBuffer (CIBUF)¶
Clears a device input buffer. Input from character devices, e.g. terminals, are temporarily stored in this buffer.
- You can use logical device number 1 for your own terminal in background programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
@CLEAR-DEVICE, ClearOutBuffer, and DeviceControl
Examples¶
Pascal
DeviceNumber : INTEGER2;
...
ClearInBuffer(DeviceNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ClearInBuffer" USING DeviceNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber
...
Monitor_Call('ClearInBuffer', DeviceNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('ClearInBuffer', DeviceNumber)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
ErrCode : W BLOCK 1
ClearInBuffer : EQU 37B9 + 13B
...
CALLG ClearInBuffer, 1, DeviceNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Load register T with logical device number.
MON 13 %Monitor call ClearInBuffer.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DEVNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 113
14B - ClearOutBuffer (COBUF)¶
Clears a device output buffer. Output to character devices, e.g. terminals, are temporarily stored in this buffer.
- You can use logical device number 1 for your own terminal in background programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. See appendix B. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
@CLEAR-DEVICE, ClearInBuffer, and DeviceControl
Examples¶
Pascal
DeviceNumber : INTEGER2;
...
ClearOutBuffer (DeviceNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ClearOutBuffer" USING DeviceNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber
...
Monitor Call ('ClearOutBuffer', DeviceNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('ClearOutBuffer', DeviceNumber)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
ErrCode : W BLOCK 1
ClearOutBuffer : EQU 37B9 + 14B
...
CALLG ClearOutBuffer, 1, DeviceNumber
IF K GO ERROR
...
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Load register T with logical device number.
MON 14 %Monitor call ClearOutBuffer.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DEVNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
16B - GetTerminalType (MGTTY)¶
Gets the terminal type. The terminal type tells SINTRAN III how to handle a particular terminal. A wrong terminal type normally distorts the screen. The function-keys cannot be used.
- Appendix H lists the terminal types.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The logical device number of the terminal. You may use 1 for your own terminal i |
Param2 |
UNKNOWN | I | The terminal type. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
SetTerminalType, and @GET-TERMINAL-TYPE
Examples¶
Pascal
DeviceNumber, TerminalType : INTEGER2;
...
GetTerminalType(DeviceNumber, TerminalType);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 TerminalType COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetTerminalType" USING DeviceNumber, TerminalType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, TerminalType
...
Monitor_Call('GetTerminalType', DeviceNumber, TerminalType)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, TerminalType
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetTerminalType', DeviceNumber, TerminalType)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
TerminalType : W BLOCK 1
ErrCode : W BLOCK 1
GetTerminalType : EQU 37B9 + 16B
...
CALLG GetTerminalType, 2, DeviceNumber, TerminalType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number, must be a terminal.
MON 16 %Monitor call GetTerminalType.
JMP ERROR %Error return from monitor call.
STA TYPE %Normal return, store terminal type number.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
TYPE, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 291
17B - SetTerminalType (MSTTY)¶
Sets the type of a terminal. The terminal type tells SINTRAN III how to handle a particular terminal. A wrong terminal type normally distorts the screen. The function keys cannot be used.
- Appendix H lists the terminal types.
- Public background users may only set the terminal type for their own terminal. A background program must be run from user SYSTEM or RT to set the terminal type for another terminal.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The logical device number of the terminal. You may use 1 for your own terminal i |
Param2 |
UNKNOWN | I | The terminal type. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
GetTerminalType, @SET-TERMINAL-TYPE
Examples¶
Pascal
DeviceNumber, TerminalType : INTEGER2;
...
SetTerminalType(DeviceNumber, TerminalType);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 TerminalType COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetTerminalType" USING DeviceNumber, TerminalType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, TerminalType
...
Monitor Call('SetTerminalType', DeviceNumber, TerminalType)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, TerminalType
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('SetTerminalType', DeviceNumber, TerminalType)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
TerminalType : W BLOCK 1
ErrCode : W BLOCK 1
SetTerminalType : EQU 37B9 + 17B
...
CALLG SetTerminalType, 2, DeviceNumber, TerminalType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
LDA TYPE %Terminal type number.
MON 17 %Monitor call SetTerminalType.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DEVNO, ...
TYPE, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 477
21B - InUpTo8Bytes (M8INB)¶
See also In8Bytes, InByte, InString, In4x2Bytes, and Out8Bytes.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. See appendix B. |
I | ||
Number of bytes read. If you use the monitor call on a word-oriented device, it returns the number of words read. |
I | ||
The 8 bytes. |
I | ||
Standard Error Code. See appendix A. |
I |
See Also¶
In8Bytes, InByte, InString, In4x2Bytes, and Out8Bytes
Examples¶
Pascal
DeviceNumber, NoOfBytes : INTEGER2;
InData : RECORD...END;
...
InUpTo8Bytes(DeviceNumber, NoOfBytes, InData);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 InData PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "InUpTo8Bytes" USING DeviceNumber, NoOfBytes, InData.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
CHARACTER InData*8
...
Monitor_Call('InUpTo8Bytes', DeviceNumber, NoOfBytes, InData(1:8))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
BYTES : InData(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('InUpTo8Bytes', DeviceNumber, NoOfBytes, InData)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
InData : STRING 8
ErrCode : W BLOCK 1
InUpTo8Bytes : EQU 37B9 + 21B
...
CALLG InUpTo8Bytes, 3, DeviceNumber, NoOfBytes, InData
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
MON 21 %Monitor call InUpTo8Bytes.
JMP ERROR %Error return from monitor call.
STD BYTES %Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2 %Store next 2 bytes read.
STX BYTES+3 %Store last 2 bytes read.
STT COUNT %Store number of bytes (or words) read.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 325
22B - OutUpTo8Bytes (M8OUT)¶
Writes up to 8 characters to a device, e.g. a terminal or an internal device.
- You can only use this monitor call for terminals, TADs, internal devices, and synchronous modems.
- The writing terminates when a character with value 0 is found. The 0 byte is not output.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. You can use 1 for your own terminal. File |
Param2 |
UNKNOWN | I | The 8 characters to be written. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
OutMessage, Out8Bytes, OutputString, OutString, OutNumber, OutByte, and InUpTo8Bytes
Examples¶
Pascal
DeviceNo : INTEGER2;
OutData : RECORD...END;
...
OutUpTo8Bytes(DeviceNo, OutData);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNo COMP.
01 OutData PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "OutUpTo8Bytes" USING DeviceNo, OutData.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNo
CHARACTER OutData*8
...
Monitor_Call('OutUpTo8Bytes', DeviceNo, OutData(1:8))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNo
BYTES : OutData(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OutUpTo8Bytes', DeviceNo, OutData)
ASSEMBLY-500
DeviceNo : W BLOCK 1
OutData : STRINGDATA 8
ErrCode : W BLOCK 1
OutUpTo8Bytes : EQU 37B9 + 22B
...
CALLG OutUpTo8Bytes, 2, DeviceNo, OutData
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device address.
LDD BYTES %First 4 bytes to be written.
LDX BYTES+2 %Next 2 bytes to be written.
COPY SX DL
LDX BYTES+3 %Last 2 bytes to be written.
MON 22 %Monitor call OutUpTo8Bytes.
JMP ERROR %Error return from monitor call.
...
%Normal return.
ERROR, ... %Error number in register A.
...
DEVNO, ...
BYTES, 'HELLO!!!'
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 387
23B - In8Bytes (B8INB)¶
Reads 8 bytes from a device. The input is fast, but the monitor call does not apply the defined echo and break setting.
- Do not use this monitor call for terminals and TAD's when echo and break should be applied.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. See appendix B. |
I | ||
Number of bytes read. If the monitor call is used on a word-oriented device, the number of words is returned. |
I | ||
The string of bytes read. |
I | ||
Standard Error Code. See appendix A. |
I |
See Also¶
In8AndFlag, InUpTo8Bytes, InByte, InString, InputString, In4x2Bytes, and Out8Bytes
Examples¶
Pascal
DeviceNumber, NoOfBytes: INTEGER2;
DataRead: PACKED ARRAY [0..7] OF CHAR;
...
In8Bytes(DeviceNumber, NoOfBytes, DataRead);
IF ErrCode <> O THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 DataRead PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "In8Bytes" USING DeviceNumber, NoOfBytes, DataRead.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
CHARACTER DataRead*8
...
Monitor_Call('In8Bytes', DeviceNumber, NoOfBytes, DataRead(1:8))
IF (ErrCode .NE. O) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
BYTES : DataRead(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('In8Bytes', DeviceNumber, NoOfBytes, DataRead)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
DataRead : STRING 8
ErrCode : W BLOCK 1
In8Bytes : EQU 37B9 + 23B
...
CALLG In8Bytes, 3, DeviceNumber, NoOfBytes, DataRead
IF K GO ERROR
...
ERROR : W1 =: ErrCode
%ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
MON 23 %Monitor call In8Bytes.
JMP ERROR %Error return from monitor call.
STD BYTES %Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2 %Store next 2 bytes read.
STX BYTES+3 %Store last 2 bytes read.
STT COUNT %Store number of bytes (or words) read.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 313
24B - Out8Bytes (B8OUT)¶
Writes 8 bytes to a character device, e.g. a terminal. All 8 bytes are output. OutUpTo8Bytes stops if a byte is 0.
- On the ND-500, you are advised to use the faster OutputString.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number |
See appendix B. | I | |
The string of bytes to be written |
I | ||
Standard Error Code |
See appendix A. | I |
See Also¶
OutUpTo8Bytes, OutByte, OutString, OutputString, OutMessage, OutNumber, and In8Bytes
Examples¶
Pascal
DeviceNumber : INTEGER2;
OutData : RECORD...END;
...
Out8Bytes(DeviceNumber, OutData);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 OutData PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "Out8Bytes" USING DeviceNumber, OutData.
CALL "CBerror" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber
CHARACTER OutData*8
...
Monitor_Call('Out8Bytes', DeviceNumber, OutData(1:8))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber
BYTES : OutData(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('Out8Bytes', DeviceNumber, OutData)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
OutData : STRINGDATA 'HELLO!!!'
ErrCode : W BLOCK 1
Out8Bytes : EQU 37B9 + 24B
...
CALLG Out8Bytes, 2, DeviceNumber, OutData
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device address.
LDD BYTES %First 4 bytes to be written.
LDX BYTES+2 %Next 2 bytes to be written.
COPY SX DL
LDX BYTES+3 %Last 2 bytes to be written.
MON 24 %Monitor call Out8Bytes.
JMP ERROR %Error return from monitor call.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
BYTES, 'HELLO!!!'
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 373
26B - GetLastByte (LASTC)¶
Gets the last character typed on a terminal. The monitor call can be used to terminate long output sequences, reading from files, etc. The program never enters the I/O wait state because of this monitor call.
- Only user SYSTEM can execute this monitor call on a non-reserved terminal.
- This monitor call always returns -1 if an error is encountered, not the standard SINTRAN error codes.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number of a terminal. |
Param2 |
UNKNOWN | I | The last character typed on the terminal. |
See Also¶
Examples¶
Pascal
DeviceNumber, LastCharTyped : INTEGER2;
...
GetLastByte(DeviceNumber, LastCharTyped);
COBOL
01 DeviceNumber COMP.
01 LastCharTyped COMP.
...
MONITOR-CALL "GetLastByte" USING DeviceNumber, LastCharTyped.
Fortran
INTEGER DeviceNumber, LastCharTyped
...
Monitor_Call('GetLastByte', DeviceNumber, LastCharTyped)
PLANC
INTEGER : DeviceNumber, LastCharTyped
...
Monitor_Call('GetLastByte', DeviceNumber, LastCharTyped)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
LastCharTyped : W BLOCK 1
GetLastByte : EQU 37B9 + 26B
...
CALLG GetLastByte, 1, DeviceNumber
W1 := LastCharTyped %Result is returned in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 26 %Monitor call GetLastByte.
JAN ERROR %Error in parameters return -1.
STA CHAR %No errors, store byte returned.
...
ERROR, ... %Handle the error.
...
CHAR, O %Last typed character right adjusted.
PAR, DEVNO %Logical device number of a terminal.
...
DEVNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 255
27B - GetRTDescr (RTDSC)¶
Reads an RT description. The RT description contains various information about an RT program. You specify the RT program address. See the SINTRAN III Real Time Guide (ND-860133) for further details.
- Use GetRTAddress if you only know the name of the RT program.
- This monitor call is only available to background programs in SINTRAN III VSX, version K.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | RT description address. Use 0 for the calling RT program. |
Param2 |
UNKNOWN | I | A 52 byte RT description. |
Param3 |
UNKNOWN | I | Number of devices connected to the RT program through StartOnInterrupt. Wrong RT |
See Also¶
GetOwnRTAddress, @LIST-RT-DESCRIPTION
Examples¶
Pascal
RTPogram, NoOfConnDev : INTEGER2;
RTDescriptor : ARRAY [0..1] OF RECORD...END;
...
GetRTDescr(RTProgram, RTDescriptor, NoOfConnDev);
COBOL
01 RTProgram COMP.
01 NoOfConnDev COMP.
01 RTDescriptor.
02 array COMP OCCURS 26 TIMES.
...
MONITOR-CALL "GetRTDescr" USING RTProgram, RTDescriptor, NoOfConnDev.
Fortran
INTEGER RTProgram, NoOfConnDev
INTEGER RTDescriptor(26)
...
Monitor_Call('GetRTDescr', RTProgram, RTDescriptor(1), NoOfConnDev)
PLANC
INTEGER : RTProgram, NoOfConnDev
BYTES : RTDescriptor(0:51)
...
Monitor_Call('GetRTDescr', RTProgram, RTDescriptor(0), NoOfConnDev)
ASSEMBLY-500
RTProgram : W BLOCK 1
NoOfConnDev : W BLOCK 1
RTDescriptor : H BLOCK 32B
GetRTDescr : EQU 37B9 + 27B
...
CALLG GetRTDescr, 2, RTProgram, RTDescriptor
IF K GO Error
W1 =: NoOfConnDev %Result is returned in W1 register.
...
Error, ...
MAC
LDA (PAR %Load register A with address of parameter list.
MON 27 %Monitor call GetRTDescr.
JAN ERROR %Handle error if register A is negative.
STA NODEV %Store number of connected devices.
...
ERROR, ... %Handle this error, register A = -1.
...
NODEV, 0
PAR, RTPRO %Address of RT description.
BUFF %Buffer receiving RT description.
...
RTPRO, ...
BUFF, 0
*+32B/ %Make a 52 byte buffer.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
|-------------------|-------------------------|-------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 271
30B - GetOwnRTAddress (GETRT)¶
Gets the address of the calling program's RT description. Background programs get the RT description address of the RT program which controls the terminal.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The RT description address. |
See Also¶
GetRTAddress, GetRTDescr, GetRTName, and @LIST-RT-PROGRAMS
Examples¶
Pascal
RTDescrAddress : INTEGER2;
...
GetOwnRTAddress(RTDescrAddress);
COBOL
01 RTDescrAddress COMP.
...
MONITOR-CALL "GetOwnRTAddress" USING RTDescrAddress.
Fortran
INTEGER RTDescrAddress
...
Monitor_Call('GetOwnRTAddress', RTDescrAddress)
PLANC
INTEGER : RTDescrAddress
...
Monitor_Call('GetOwnRTAddress', RTDescrAddress)
ASSEMBLY-500
RTDescrAddress : W BLOCK 1
GetOwnRTAddress : EQU 37B9 + 30B
...
CALLG GetOwnRTAddress, 0
W1 =: RTDescrAddress %Result is returned in W1 register.
MAC
MON 30 %Monitor call GetOwnRTAddress.
STA RTPRO %Store address of RT description.
...
RTPRO, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 265
31B - IOInstruction (EXIOX)¶
Executes an IOX machine instruction. The IOX instruction handles the device registers. The IOX instruction must be inserted in the IOX table by the SINTRAN-SERVICE-PROGRAM command INSERT-IN-IOX-TABLE first.
- SINTRAN III must know the device register addresses.
- This monitor call may be used in debugging of device interfaces.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Register contents before execution. |
Param2 |
UNKNOWN | I | Device register address. |
Param3 |
UNKNOWN | I | Register contents after execution. |
See Also¶
PrivInstruction, CAMACIOInstruction, @EXECUTE-IOX
Examples¶
Pascal
RegContents, DevRegAddr, ContentsAfter : INTEGER2;
...
IOInstruction(RegContents, DevRegAddr, ContentsAfter);
COBOL
01 RegContent COMP.
01 DevRegAddr COMP.
01 ContentAfter COMP.
...
MONITOR-CALL "IOInstruction" USING RegContent, DevRegAddr, ContentAfter.
Fortran
INTEGER RegContents, DevRegAddr, ContentAfter
...
Monitor_Call('IOInstruction', RegContents, DevRegAddr, ContentAfter)
PLANC
INTEGER : RegContents, DevRegAddr, ContentsAfter
...
Monitor_Call('IOInstruction', RegContents, DevRegAddr, ContentsAfter)
ASSEMBLY-500
RegContents : W BLOCK 1
DevRegAddr : W BLOCK 1
ContentsAfter : W BLOCK 1
IOInstruction : EQU 3789 + 31B
...
CALLG IOInstruction, 2, RegContents, DevRegAddr
IF K GO error
W1 =: ContentsAfter %Result is returned in W1 register.
...
Error, ...
MAC
LDA (PAR %Load register A with address of parameter list.
MON 31 %Monitor call IOInstruction.
STA STAT %Store status returned.
...
STAT, 0
| PAR, REG | %Register contents. |
|----------|---------------------|
| DEV | %Device register address. |
REG, ...
DEV, ...
| ND-100 and ND-500 | User RT and user SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 327
32B - OutMessage (MSG)¶
Writes a message to the user's terminal. This is convenient for error messages in background programs.
See Also¶
OutUpTo8Bytes, Out8Bytes, OutString, OutputString, OutNumber, and OutByte
Examples¶
Pascal
Message : PACKED ARRAY [0..79] OF CHAR;
...
OutMessage(Message);
COBOL
01 Message PIC X(100).
...
MONITOR-CALL "OutMessage" USING Message.
Fortran
CHARACTER Message*80
...
Monitor_Call('OutMessage', Message(1:80))
PLANC
BYTES : Message(0:79)
...
Monitor_Call('OutMessage', Message)
ASSEMBLY-500
| Message | STRINGDATA 'This is a test...' | %Message to be sent. |
|------------------------|--------------------------------|-----------------------------|
| OutMessage | EQU 37B9 + 32B | |
| CALLG OutMessage, 1, Message | | |
MAC
LDX (TEXT %Address string to be sent to user's terminal.
MON 32 %Monitor call OutMessage.
...
TEXT, 'THIS IS A TEXT' %String to be written.
| ND-100 and ND-500 | All users | Background programs |
|-------------------|-----------|---------------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 379
33B - AltPageTable (ALTON)¶
Switches page table. Each page table allows you to access 128 Kbyte memory. SINTRAN III has 4 page tables. SINTRAN III VSX, version K, has 16 page tables. They are numbered 0-15. RT programs may use any page table. Background programs will get page table 2. The parameter is ignored.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Number of the page table to use. |
See Also¶
Examples¶
Pascal
PageTableNumber : INTEGER2;
...
AltPageTable(PageTableNumber);
COBOL
01 PageTableNumber COMP.
...
MONITOR-CALL "AltPageTable" USING PageTableNumber.
Fortran
INTEGER PageTableNumber
...
Monitor_Call('AltPageTable', PageTableNumber)
PLANC
INTEGER : PageTableNumber
...
Monitor_Call('AltPageTable', PageTableNumber)
MAC
| Instruction | Parameters | Description |
|-------------|-------------|----------------------------------------|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 33 | %Monitor call AltPageTable. |
| ... | | |
| PAR, | PAGE | |
| ... | | |
| PAGE, | ... | %Number of the alternative page table. |
| ND-100 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 77
34B - NormalPageTable (ALTOFF)¶
Sets the alternative page table equal to the normal page table. All memory addresses are mapped through the normal page table after this monitor call.
Notes¶
- Use AltPageTable to set an alternative page table.
See Also¶
AltPageTable and @ALTOFF
Parameters¶
This monitor call has no parameters.
Examples¶
Pascal
NormalPageTable;
IF ErrCode <> 0 THEN ...
COBOL
01 ErrCode COMP.
...
MONITOR-CALL "NormalPageTable".
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
Monitor_Call('NormalPageTable')
IF (ErrCode .NE. 0) THEN ...
PLANC
Monitor_Call('NormalPageTable')
ASSEMBLY-500
Not available.MAC
MON 34 %Monitor call NormalPageTable.
JMP ERROR %Error return from monitor call.
...
ERROR, ... %Error number in register A.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
35B - OutNumber (IOUT)¶
Writes a number to the user's terminal. The number can be output as an octal or a decimal value.
- The number may be in the range -32768 to 32767.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Octal or decimal output. Use 8 for octal and 10 for decimal. |
Param2 |
UNKNOWN | I | The number to be written. |
See Also¶
OutMessage, OutUpTo8Bytes, Out8Bytes, OutString, OutputString, and OutByte
Examples¶
Pascal
Format, Number : INTEGER2;
...
OutNumber(Format, Number);
COBOL
01 Format COMP.
01 Number COMP.
...
MONITOR-CALL "OutNumber" USING Format, Number.
Fortran
INTEGER Format, Number
...
Monitor_Call('OutNumber', Format, Number)
PLANC
INTEGER : Format, Number
...
Monitor_Call('OutNumber', Format, Number)
ASSEMBLY-500
Format : W BLOCK 1 %12B=decimal, 10B=octal, 20B=hexadecimal, 2=bitpattern.
Number : W BLOCK 1
OutNumber : EQU 37B9 + 35B
CALLG OutNumber, 2, Format, Number
MAC
| Instruction | Operand | Comment |
|-------------|---------|----------------------------------|
| LDT | FORM | %Format of number to be printed. |
| LDA | NUM | %Number to be printed. |
| MON | 35 | %Monitor call OutNumber. |
| ... | | |
| FORM, | 12 | %Interpret NUM as a decimal digit.|
| NUM, | ... | |
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 381
36B - NoWaitSwitch (NOWT)¶
Switches No Wait on and off. No Wait is useful for input from, and output to several devices simultaneously. In No Wait, the program does not wait for input or output to complete. Monitor calls like InByte return error code 3 instead.
- SuspendProgram or WaitForRestart may passivate the program afterwards. The program restarts when input or output to the device is completed.
- For performance reasons, use TerminalNoWait (TNOWAI, mon 307) rather than NoWaitSwitch.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number of a character device. See appendix B. |
UNKNOWN | I | |
Input or output flag. Use 0 for input and 1 for output. |
UNKNOWN | I | |
No Wait flag. Use 0 to switch No Wait off, and any other number to switch it on. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
InByte, OutByte, and TerminalNoWait
Examples¶
Pascal
DeviceNumber, IOFlag, WaitFlag : INTEGER2;
...
NoWaitSwitch(DeviceNumber, IOFlag, WaitFlag);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 IOFlag COMP.
01 WaitFlag COMP.
01 ErrCode COMP.
...
MONITOR-CALL "NoWaitSwitch" USING DeviceNumber, IOFlag, WaitFlag.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, IOFlag, WaitFlag
...
Monitor_Call('NoWaitSwitch', DeviceNumber, IOFlag, WaitFlag)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, IOFlag, Waitflag
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('NoWaitSwitch', DeviceNumber, IOFlag, Waitflag)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
IOFlag : W BLOCK 1
WaitFlag : W BLOCK 1
ErrCode : W BLOCK 1
NoWaitSwitch : EQU 37B9 + 36B
...
CALLG NoWaitSwitch, 3, DeviceNumber, IOFlag, WaitFlag
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 36 %Monitor call NoWaitSwitch.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Handle this error.
...
PAR, DEVNO %Logical device number.
IOF %Input/output flag.
WAITFL %No Wait flag.
...
DEVNO, ...
IOF, ...
WAITFL, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 359
37B - ReadADChannel (AIRDW)¶
Reads an analog to digital channel.
PARAMETERS¶
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See OpenFile. |
Param2 |
UNKNOWN | I | Block number. |
Param3 |
UNKNOWN | I | Array for data returned. |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
Examples¶
Pascal
FileNumber, BlockNo : INTEGER2;
DataDestination : ARRAY [0..15] OF RECORD...END;
...
ReadBlock(FileNumber, BlockNo, DataDestination);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 BlockNo COMP.
01 DataDestination.
02 array COMP OCCURS 256 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "ReadBlock" USING FileNumber, BlockNo, DataDestination.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber, BlockNo
INTEGER DataDestination(256)
...
Monitor Call('ReadBlock', FileNumber, BlockNo, DataDestination(1))
IF (ErrCode .NE. 0) THEN ...
ASSEMBLY-500
NoOfChannels : W BLOCK 1
Channel : W BLOCK 512
Buffer : W BLOCK 512
ReturnValue : W BLOCK 1
ReadADChannel : EQU 37B9 + 37B
...
CALLG ReadADChannel, 4, NoOfChannels, Channel, Buffer, ReturnValue
IF K GO Error
...
Error, ...
MAC
MON 37 %Monitor call ReadADChannel.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 393
40B - CloseSpoolingFile (SPCLO)¶
Appends an opened file to a spooling queue. You specify a text to be printed on the error device when the file is to be printed.
- If the file is not a spooling file, a normal close is performed.
- Does not work for remote files. For these, a normal close is performed.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File Number |
File number given when the file was opened. | I | |
Text |
Text to be output on the error device. | I | |
NoOfCopies |
Number of print copies. | I | |
PrintFlag |
Print flag. If 0, the text is only output if required by @DEFINE-SPOOLING-CONDITIONS. If not 0, the file is printed unconditionally. A stop print condition occurs before printing. | I | |
ErrCode |
Standard Error Code. See appendix A. | I |
See Also¶
CloseFile, AppendSpooling, @DEFINE-SPOOLING-CONDITIONS
Examples¶
Pascal
FileNo, NoOfCopies, PrintFlag : INTEGER2;
UserText : PACKED ARRAY [0..79] OF CHAR;
...
CloseSpoolingFile(FileNo, UserText, NoOfCopies, PrintFlag);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 NoOfCopies COMP.
01 PrintFlag COMP.
01 UserText PIC X(100).
01 ErrCode COMP.
...
MONITOR-CALL "CloseSpoolingFile" USING FileNo, UserText,
NoOfCopies, PrintFlag.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, NoOfCopies, PrintFlag
CHARACTER UserText*80
...
Monitor_Call('CloseSpoolingFile', FileNo, UserText(1:80),
NoOfCopies, PrintFlag)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNo, NoOfCopies, PrintFlag
BYTES : UserText(0:79)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('CloseSpoolingFile', FileNo, UserText, NoOfCopies, PrintFlag)
ASSEMBLY-500
FileNo : W BLOCK 1
NoOfCopies : W BLOCK 1
PrintFlag : W BLOCK 1
UserText : STRINGDATA 'Printing file...'
ErrCode : W BLOCK 1
CloseSpoolingFile : EQU 37B9 + 40B
...
CALLG CloseSpoolingFile. 4, FileNo, UserText, NoOfCopies, PrintFlag
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
LDT FILNO %File number returned from earlier open.
LDA NOCOP %Number of copies.
COPY SA D0
LDA FLAG %Condition flag.
LDX (TEXT %Address of text to be sent to error device.
MON 40 %Monitor call CloseSpoolingFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
TEXT, 'GUMMED LABELS' %Message when the file is to be printed.
NOCOP, ...
FLAG, 0 %Text is only written if required by
% @DEFINE-SPOOLING-CONDITIONS.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 119
41B - ReadObjectEntry (ROBJE)¶
Gets information about an opened file. An object entry describes each file. It contains the file name, the access rights, the date last opened for read and write, the size, and more. See the file system description in the SINTRAN III System Supervisor (ND-830003). You specify the file number.
- There is one object entry for each version of a file.
- The device number location in the object entry contains the logical device number and the unit number where the mass-storage file resides. The logical device number is placed in bit 11-0. The unit number in bit 15-12. The location contains the logical device number for peripheral files.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | ➞ The file number. See Openfile. |
Param2 |
UNKNOWN | I | ➞ The 64 byte object entry. See appendix C. |
Param3 |
UNKNOWN | I | ➞ Standard Error Code. See appendix A. |
See Also¶
GetObjectEntry, SetObjectEntry
Examples¶
Pascal
FileNumber : INTEGER2;
Buff : ARRAY [0..1] OF RECORD...END;
...
ReadObjectEntry(FileNumber, Buff);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 Buff.
02 array COMP OCCURS 32 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "ReadObjectEntry" USING FileNumber, Buff.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER Buff(32)
...
Monitor_Call('ReadObjectEntry', FileNumber, Buff(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
BYTES : Buff(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReadObjectEntry', FileNumber, Buff(0))
ASSEMBLY-500
FileNumber : W BLOCK 1
Buff : H BLOCK 40B
ErrCode : W BLOCK 1
ReadObjectEntry : EQU 37B9 + 41B
...
CALLG ReadObjectEntry, 2, FileNumber, Buff
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LDA {BUFF %Address of buffer to receive object entry.
MON 41 %Monitor call ReadObjectEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
BUFF, 0
*+40/ %Make a 32 words large buffer.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 401
43B - CloseFile (CLOSE)¶
Closes one or more files. Files must be opened before they are accessed. Afterwards they should be closed.
- CloseFile also resets peripheral files. This is similar to DeviceControl with control flag -1.
- For non-RT programs, files are closed when your program terminates.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number returned when the file was opened. Use -1 to close all your files wh |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
OpenFile, CloseSpoolingFile, BackupClose, and @CLOSE-FILE
Examples¶
Pascal
FileNumber : INTEGER2;
...
CloseFile(FileNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "CloseFile" USING FileNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
...
Monitor_Call('CloseFile', FileNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('Closefile', FileNumber)
ASSEMBLY-500
FileNumber : W BLOCK 1
ErrCode : W BLOCK 1
CloseFile : EQU 37B9 + 43B
...
CALLG CloseFile, 1, FileNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %Load register T with file number.
MON 43 %Monitor call Closefile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 117
44B - GetUserEntry (RUSER)¶
Gets information about a user. The user entry in the directory is returned. It contains the user name, default file accesses, the pages in use, the password, the table of friends, and more.
- Only user RT and user SYSTEM may read the user entries of other users.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
User name |
It may include a directory name, e.g. PACK-ONE:P-HANSEN. | I | |
User entry |
The 64-byte user entry. See appendix C. | I | |
Error Code |
Standard Error Code. See appendix A. | I |
See Also¶
GetUserName, @DUMP-USER-ENTRY
Examples¶
Pascal
UserName : PACKED ARRAY [0..63] OF CHAR;
Buff : ARRAY [0..1] OF RECORD...END;
...
ReadUserEntry(UserName, Buff); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 UserName PIC X(64).
01 Buff.
02 array COMP OCCURS 32 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetUserEntry" USING UserName, Buff.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER UserName*64
INTEGER Buff(32)
...
Monitor Call('GetUserEntry', UserName(1:64), Buff(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : UserName(0:63)
BYTES : Buff(0:63)
**ON ROUTINEERROR DO**
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetUserEntry', UserName, Buff(0))
ASSEMBLY-500
UserName : STRINGDATA 'A-HANSEN' %Get entry of user A-HANSEN.
Buff : H BLOCK 40B
ErrCode : W BLOCK 1
GetUserEntry : EQU 37B9 + 44B
...
CALLG GetUserEntry, 2, UserName, Buff
IF K GO ERROR
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
LDA (BUFF %Address for receiving user entry.
LDX (USER %Address of string containing user name.
MON 44 %Monitor call GetUserEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
USER, 'A-HANSEN' %Obtain user entry for A-HANSEN.
BUFF, 0
*+40/ %Make a buffer of 32 words.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 297
50B - OpenFile (OPEN)¶
Opens a file. You cannot access a file before you open it. Specify what kind of access you want, e.g. sequential write or random read.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
0 |
Sequential write. | I | |
1 |
Sequential read. | I | |
2 |
Random read or write. | I | |
3 |
Random read only. | I | |
4 |
Sequential read or write. | I | |
5 |
Sequential write append. | I | |
6 |
Random read or write common on contiguous files. | I | |
7 |
Random read common on contiguous files. | I | |
8 |
Random read or write on contiguous files. Direct transfer for ReadFromFile, WriteToFile and DeviceFunction in RT programs. | I | |
9 |
Random read, write append for WriteToFile. | I |
See Also¶
ScratchOpen, SetPermanentOpen, DirectOpen, and @OPEN-FILE
Examples¶
Pascal
FileNo, AccessCode : INTEGER;
FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
...
OpenFile(FileNo, AccessCode, FileName, FileType);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 AccessCode COMP.
01 FileName PIC X(64).
01 FileType PIC X(4).
01 ErrCode COMP.
MOVE 0 TO FileNo.
MONITOR-CALL "OpenFile" USING FileNo, AccessCode, FileName, FileType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, AccessCode
CHARACTER FileName*64, FileType*4
PLANC
plaintext
INTEGER : FileNo, AccessCode
BYTES : FileName(0:63), FileType(0:3)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
0 =: FileNo
Monitor_Call('OpenFile', FileNo, AccessCode, FileName, FileType)
ASSEMBLY-500
| Variable | Type | Description |
|------------|-----------|------------------------------------------------------------|
| FileNo | W BLOCK 1 | %Returned ND-500 open file number if 0 on input. |
| S3No | W BLOCK 1 | %SINTRAN III open file number as optional parameter. |
| AccessCode | W BLOCK 1 | |
| FileName | STRINGDATA| 'EXAMPLE' |
| FileType | STRINGDATA| 'SYMB' |
| ErrCode | W BLOCK 1 | |
| OpenFile | EQU 37B9 + 50B | |
plaintext
...
CALLG OpenFile, 4, FileNo, AccessCode, FileName, FileType
IF K GO ERROR
...
ERROR = W1 =: ErrCode %ErrorCode in W1 register.
MAC
plaintext
LDX (FILE %If 0, the name is read from the terminal.
LDA (TYPE %Address of default file type string.
LDT ACCES %Access code.
MON 50 %Monitor call OpenFile.
JMP ERROR %Error return from monitor call.
STA FILNO %Normal return, store the file number returned.
...
ERROR, ... %Error number in register A.
FILNO, 0
ACCES, ...
FILE, 'EXAMPLE' %Open EXAMPLE:SYMB
TYPE, 'SYMB' %
ND-100 and ND-500 | All users | All programs
---|---|---
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 369
52B - TerminalMode (TERMO)¶
Selects various terminal functions. You may stop output on full page. Input may be converted to uppercase letters. A delay after carriage return can be set. You may also set automatic logout if the line between the terminal and the computer is broken.
- Terminal mode can also be set on TADs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The logical device number of the terminal. See appendix B. Use 1 for your own te |
Param2 |
UNKNOWN | I | The terminal mode. The numbers below are used. |
Terminal mode |
Capital letters? | Delay after return? | Stop on full page? |
0 |
No | No | No |
1 |
Yes | No | No |
2 |
No | Yes | No |
3 |
Yes | Yes | No |
4 |
No | No | Yes |
5 |
Yes | No | Yes |
6 |
No | Yes | Yes |
7 |
Yes | Yes | Yes |
8 |
No | No | No |
9 |
Yes | No | No |
10 |
No | Yes | No |
11 |
Yes | Yes | No |
12 |
No | No | Yes |
13 |
Yes | No | Yes |
14 |
No | Yes | Yes |
15 |
Yes | Yes | Yes |
See Also¶
GetTerminalMode, @TERMINAL-MODE
Examples¶
Pascal
DeviceNumber, Mode : INTEGER2;
...
TermMode(DeviceNumber, Mode); \[Note routine name.\]
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP. 01 Mode COMP.
01 ErrCode COMP.
MONITOR-CALL "TerminaIMode" USING DeviceNumber, Mode.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, Mode
...
Monitor_Call('TerminalMode', DeviceNumber, Mode)
If (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, Mode
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('TerminalMode', DeviceNumber, Mode)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
Mode : W BLOCK 1
ErrCode : W BLOCK 1
TerminalMode : EQU 37B9 + 52B
...
CALLG TerminalMode, 2, DeviceNumber, Mode
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 52 %Monitor call TerminalMode.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Error number in register A.
...
PAR, DEVNO %Logical device number.
MODE %Communication mode.
...
DEVNO, ...
MODE, ...
| ND-100 and ND-500 | All users | Background programs |
|-------------------|------------------|---------------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 533
53B - GetSegmentEntry (RSEGM)¶
Gets information about a segment in the ND-100. The monitor call returns the segment entry. You specify the segment number. See the SINTRAN III Real Time Guide (ND-860133) for further information.
- Use GetSegmentNo to get a segment number from a segment name.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Segment number |
Use 0 for RT common. Only the returned segment link, the first physical page, and the flag are relevant to RT common. | I |
See Also¶
@LIST-SEGMENT, the SINTRAN-SERVICE-PROGRAM command DUMP-SEGMENT-TABLE-ENTRY
Examples¶
Pascal
SegmentNumber : INTEGER2;
Buffer : RECORD...END;
...
ReadSegmentEntry(SegmentNumber, Buffer); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 SegmentNumber COMP.
01 Buffer.
02 array COMP OCCURS 5 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetSegmentEntry" USING SegmentNumber, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SegmentNumber
INTEGER Buffer(5)
...
Monitor_Call1('GetSegmentEntry', SegmentNumber, Buffer(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SegmentNumber
BYTES : Buffer(0:9)
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
...
Monitor_Call('GetSegmentEntry', SegmentNumber, Buffer(0))
ASSEMBLY-500
SegmentNumber : W BLOCK 1
Buffer : W BLOCK 5
GetSegmentEntry : EQU 37B9 + 53B
...
CALLG GetSegmentEntry, 2, SegmentNumber, Buffer
MAC
LDA (PAR %Load register A with address of parameter list.
MON 53 %Monitor call GetSegmentEntry.
JMP ERROR %Handle error.
... %Normal return.
ERROR, ...
...
PAR, SEGNO %Segment number.
BUFF %Buffer for receiving a segment entry.
...
SEGNO, ...
BUFF, 0
*+6/ %Make a 6 word buffer.
...
| ND-100 and ND-500 | User RT and user SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 277
54B - DeleteFile (MDLFI)¶
Deletes a file. The pages of the file are released.
- You must have directory access to the file in order to delete it. RT programs can delete a file if user RT has directory access to it.
- Include a version number in the file name to delete specific versions of a file. Otherwise, all versions are deleted.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File name |
I | ||
Standard Error Code |
See appendix A. | I |
See Also¶
@DELETE-FILE, @DELETE-USERS-FILES, and CreateFile
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
...
DeleteFile(FileName);
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "DeleteFile" USING FileName.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64
...
Monitor_Call('DeleteFile', FileName(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DeleteFile', FileName)
ASSEMBLY-500
FileName : STRINGDATA 'EXAMPLE:SYMB'
ErrCode : W BLOCK 1
DeleteFile : EQU 37B9 + 54B
...
CALLG DeleteFile, 1, FileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode
MAC
LDX (FILE %Load register X with address of file name.
MON 54 %Monitor call DeleteFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Delete file EXAMPLE:SYMB.
| ND-100 and ND-500 | All users | All programs |
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 137
55B - GetSpoolingEntry (RSQPE)¶
Gets the next spooling queue entry, that is, the next file to be printed. The entry is removed from the spooling queue.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number of the printer. See appendix B. |
Param2 |
UNKNOWN | I | The 272-byte spooling entry. |
Param3 |
UNKNOWN | I | Byte 0:1 Number of printed copies. |
Param4 |
UNKNOWN | I | 2:3 If ASCII apostrophe, the file is printed independently of spooling condition |
Param5 |
UNKNOWN | I | 4:97 File name of spooling file. |
Param6 |
UNKNOWN | I | 98:255 Message to be output on the error device before printing. |
Param7 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
AppendSpooling, CloseSpoolingFile, and @LIST-SPOOLING-QUEUE
Examples¶
Pascal
SpoolDevNumber : INTEGER2;
Buffer : ARRAY [0..8] OF RECORD...END;
...
GetSpoolingEntry(SpoolDevNumber, Buffer);
IF ErrCode <> 0 THEN ...
COBOL
01 SpoolDevNumber COMP.
01 Buffer.
02 array COMP OCCURS 136 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetSpoolingEntry" USING SpoolDevNumber, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SpoolDevNumber
INTEGER Buffer(136)
...
Monitor Call('GetSpoolingEntry', SpoolDevNumber, Buffer(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SpoolDevNumber
BYTES : Buffer(0:271)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetSpoolingEntry', SpoolDevNumber, Buffer(0))
ASSEMBLY-500
SpoolDevNumber : W BLOCK 1
Buffer : BY BLOCK 1000B
ErrCode : W BLOCK 1
GetSpoolingEntry : EQU 37B9 + 55B
...
CALLG GetSpoolingEntry, 2, SpoolDevNumber, Buffer
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (BUFF %Address of buffer for receiving queue entry.
LDT SPOOL %Logical number of spooling device.
MON 55 %Monitor call GetSpoolingEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
SPOOL, 5 %Obtain spooling entry of line printer no. 1.
BUFF, 0
*+128/ %Make a buffer of 256 bytes.
| ND-100 and ND-500 | All users | All programs |
|---------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 281
56B - SetUserParam (PASET)¶
Sets information about a background program. Use GetUserParam to read the 5 parameters when a program is terminated.
Notes¶
- SINTRAN III sets some of the parameter values if you give the command @ENABLE-TERMINATION-HANDLING first.
- The parameters are returned if the user press the ESCAPE key, if the monitor calls ExitFromProgram or ErrorMessage are executed, or if a fatal error occurs. You can set all parameters if no termination handling is enabled.
See Also¶
TerminationHandling, GetUserParam, @DEFINE-TERMINATION-HANDLING, @DISABLE-TERMINATION-HANDLING, and @SET-USER-PARAMETERS
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
The five user parameters. |
ARRAY | I | This is an array of 16-bit integers on the ND-100. ND-500 uses an array of 32-bit integers. SINTRAN III's termination handling returns the following: Parameter 1: The last byte contains the user index. The byte in front of it contains the directory index. 2: Logical device number of the terminal. 3: Fatal error or the monitor call ErrorMessage returns the error number. If ESCAPE was pressed, -1 is returned. 4: Set by SetUserParam. 5: Set by SetUserParam. |
Examples¶
Pascal
Buff : RECORD...END;
...
SetUserParam(Buff);
IF ErrCode <> 0 THEN ...
COBOL
01 Buff.
02 array COMP OCCURS 5 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "SetUserParam" USING Buff.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Buff(5)
...
Monitor_Call('SetUserParam', Buff(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER ARRAY : Buff(0:4)
...
Monitor_Call('SetUserParam', Buff(0))
ASSEMBLY-500
Buff : H BLOCK 5
SetUserParam : EQU 37B9 + 56B
...
CALLG SetUserParam, 1, Buff
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 56 %Monitor call SetUserParam.
...
PAR, BUFF %Buffer of 5 words for setting user parameters.
BUFF, index. %Left byte: directory index, Right byte: user
... %Logical device number, terminal number.
... %-1 if escape, otherwise error number.
... %User defined.
... %User defined.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
57B - GetUserParam (PAGEI)¶
Gets information about why the last program terminated. There are 5 parameters for each background user. These can be set by SINTRAN III or your background program.
- Use SetUserParam to set the parameter values.
- SINTRAN III sets some of the parameter values if you give the command @ENABLE-TERMINATION-HANDLING first.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
1 |
The last byte contains the user index. The byte in front of it contains the directory index. | I | |
2 |
Logical device number of the terminal. | I | |
3 |
Fatal error or the monitor call ErrorMessage returns the error number. If escape was pressed, -1 is returned. | I | |
4 |
User defined. | I | |
5 |
User defined. | I |
See Also¶
TerminationHandling, GetND500Param, @DEFINE-TERMINATION-HANDLING, @DISABLE-TERMINATION-HANDLING, and @SET-USER-PARAMETERS
Examples¶
Pascal
Buff : RECORD...END;
...
GetUserParam(Buff);
COBOL
01 Buff.
02 array COMP OCCURS 5 TIMES.
...
MONITOR-CALL "GetUserParam" USING Buff.
Fortran
INTEGER Buff(5)
...
Monitor_Call('GetUserParam', Buff(1))
PLANC
BYTES : Buff(0:9)
...
Monitor_Call('GetUserParam', Buff(0))
ASSEMBLY-500
Buff : H BLOCK 5
GetUserParam : EQU 37B9 + 57B
CALLG GetUserParam, 1, Buff
MAC
LDA (PAR %Load register A with address of parameter list.
MON 57 %Monitor call GetUserParam.
PAR BUFF
%Buffer of 5 words to receive user parameters.
BUFF |
---|
0 | %Left byte: dir.index. Right byte: user index.
0 | %Logical device number, terminal number.
0 | %-1 if escape, otherwise error number.
0 | %User defined.
0 | %User defined.
ND-100 and ND-500 | All users | Background programs
---|---|---
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 301
61B - MemoryAllocation (FIXC5)¶
Fixes or unfixes ND-100 segments to be used by the ND-500 Monitor. You may also reserve a contiguous area in physical memory. Various other memory functions are reserved for the ND-500 Monitor.
Notes¶
- This monitor call is not normally used by ordinary programs.
- You may use this monitor call to reserve space for DMA buffers.
See Also¶
FixScattered, FixInMemory, FixContiguous, and UnFixSegment
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Function code. |
UNKNOWN | I | Function codes 4, 5 and 6 are the only values allowed. The functions and parameters are described on the third page for this call. |
Parameter 2. |
UNKNOWN | I/O | Depends on the function code. |
Parameter 3. |
UNKNOWN | I/O | Depends on the function code. |
Parameter 4. |
UNKNOWN | I/O | Depends on the function code. |
Parameter 5. |
UNKNOWN | I/O | Depends on the function code. |
Parameter 6. |
UNKNOWN | I/O | Depends on the function code. |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500, or register A for MAC. |
Examples¶
Pascal
FuncCode, Param2, Param3, Param4, Param5, Param6 : INTEGER2;
...
MemoryAllocation(FuncCode, Param2, Param3, Param4, Param5, Param6);
IF ErrCode <> 0 THEN ...
COBOL
01 FuncCode COMP.
01 Param2 COMP.
01 Param3 COMP.
01 Param4 COMP.
01 Param5 COMP.
01 Param6 COMP.
01 ErrCode COMP.
...
MONITOR-CALL "MemoryAllocation" USING FuncCode, Param2, Param3, Param4, Param5, Param6.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FuncCode, Param2, Param3, Param4, Param5, Param6
...
Monitor_Call('MemoryAllocation', FuncCode, Param2, Param3,
C Param4, Param5, Param6)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FuncCode, Param2, Param3, Param4, Param5, Param6
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('MemoryAllocation', FuncCode, Param2, Param3, &
Param4, Param5, Param6)
ASSEMBLY-500
Not available.MAC
LDA (PAR %Load register A with address of parameter list.
MON 61 %Monitor call MemoryAllocation.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
PAR, FUNC %For the rest of this example, a special case
PARA2 %(function code = 4) is taken, in order to
PARA3 %emphasize that all parameters must be included.
PARA4
DUMMY %All parameters MUST be included, even if they
DUMMY %are dummy for a particular function code.
...
FUNC, 4 %Function code, in this case 4 (fix a segment contiguously at any address within a specified physical memory area.
PARA2, 200 %Segment number.
PARA3, 0 %First legal physical memory page.
PARA4, -1 %Last legal physical memory page. The value -1 is the maximum value.
DUMMY, 0 %Dummy value for parameters 5 and 6.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
62B - GetBytesInFile (RMAX)¶
Gets the number of bytes in a file. Only the bytes containing data are counted.
- The file must be open.
- The number of bytes are only relevant to sequentially accessed files.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number. See OpenFile. |
UNKNOWN | I | |
Number of bytes in the file. |
UNKNOWN | O | |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
SetMaxBytes, GetBytesInFile, and @FILE-STATISTICS
Examples¶
Pascal
FileNumber : INTEGER2;
NoOfBytes : LONGINT;
...
GetBytesInFile(FileNumber, NoOfBytes);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 NoOfBytes COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "GetBytesInFile" USING FileNumber, NoOfBytes.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER*4 NoOfBytes
...
Monitor Call('GetBytesInFile', FileNumber, NoOfBytes)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER FileNumber
INTEGER4: NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetBytesInFile', FileNumber, NoOfBytes)
ASSEMBLY-500
FileNumber: W BLOCK 1
NoofBytes: W BLOCK 1
ErrCode: W BLOCK 1
GetBytesInFile: EQU 37B9 + 62B
...
CALLG GetBytesInFile, 2, FileNumber, NoOfBytes
IF K GO ERROR
...
ERROR: W1 := ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
MON 62 %Monitor call GetBytesInFile.
JMP ERROR %Error return from monitor call.
STD BYTES %Normal return, store the number of bytes obtained.
...
ERROR, %Error number in register A.
...
FILNO,
...
BYTES, O %A double word
0 %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
63B - In4x2Bytes (B41NW)¶
Reads 8 bytes from a word-oriented or character-oriented device, e.g. internal devices.
- Do not use this monitor call for terminals.
- This monitor call was mainly used for SIBAS communication via ND-NET. It is now seldom used.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. |
See appendix B. | I | |
Number of bytes read. |
I | ||
The string of bytes read. |
I | ||
Standard Error Code. |
See appendix A. | I |
See Also¶
In8Bytes, InUpTo8Bytes, In8AndFlag, InString, InputString, InByte, and Out8Bytes
Examples¶
Pascal
DeviceNumber, NoOfBytes : INTEGER2;
DataRead : PACKED ARRAY [0..7] OF CHAR;
...
In4x2Bytes(DeviceNumber, NoOfBytes, DataRead);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 DataRead PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "In4x2Bytes" USING DeviceNumber, NoOfBytes, DataRead.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
CHARACTER DataRead*8
...
Monitor_Call('In4x2Bytes', DeviceNumber, NoOfBytes, DataRead(1:8))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
BYTES : DataRead(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call(’In4x2Bytes’, DeviceNumber, NoOfBytes, DataRead)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
DataRead : STRING 8
ErrCode : W BLOCK 1
In4x2Bytes : EQU 37B9 + 63B
...
CALLG In4x2Bytes, 2, DeviceNumber, DataRead
IF K GO ERROR
W1 =: NoOfBytes
...
ERROR : W1 =: ErrCode % ErrorCode in W1 register.
MAC
LDT DEVNO % Logical device number.
MON 63 % Monitor call In4x2Bytes.
JMP ERROR % Error return from monitor call.
STD BYTES % Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2 % Store next 2 bytes read.
STX BYTES+3 % Store last 2 bytes read.
STT COUNT % Store number of bytes read.
...
ERROR, ... % Error number in register A.
...
DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 309
64B - WarningMessage (ERMSG)¶
Outputs a file system error message. Appendix A shows the messages connected to each error code. The error code is input. The program continues.
- The error message is output to the terminal. In batch jobs, mode jobs, and RT programs it is output to the error device. The error device is normally the console.
- Error code 0 is illegal.
See Also¶
GetErrorMessage, ErrorMessage. ErrorMessage writes out the error message, terminates the program
Examples¶
Pascal
ErrCode : INTEGER2;
...
WarningMessage(ErrCode);
COBOL
01 ErrCode COMP.
...
MONITOR-CALL "WarningMessage" USING ErrCode.
Fortran
INTEGER ErrCode
...
Monitor_Call('WarningMessage', ErrCode)
PLANC
INTEGER : ErrCode
...
Monitor_Call('WarningMessage', ErrCode)
ASSEMBLY-500
ErrCode : W BLOCK 1
WarningMessage : EQU 37B9 + 64B
...
CALLG WarningMessage, 1, ErrCode
MAC
| Command | Parameter | Description |
|---------|-----------|----------------------------------------------|
| LDA | ERRNO | %Error number of error message to be printed.|
| MON | 64 | %Monitor call WarningMessage. |
| | | |
...
ERRNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 559
65B - ErrorMessage (QERMS)¶
Displays a file system error message. Appendix A shows the messages connected to each error number. The error number is input. The program terminates.
- The error message is displayed on the terminal. RT programs write it to the error device. The error device is normally the console.
- Do not input error number 0.
See Also¶
GetErrorMessage, WarningMessage. WarningMessage writes out the error message without terminating the program
Examples¶
Pascal
ErrNumber : INTEGER2;
...
ErrorMessage(ErrNumber);
COBOL
01 ErrNumber COMP.
...
MONITOR-CALL "ErrorMessage" USING ErrNumber.
Fortran
INTEGER ErrNumber
...
Monitor_Call('ErrorMessage', ErrNumber)
PLANC
INTEGER : ErrNumber
...
Monitor_Call('ErrorMessage', ErrNumber)
ASSEMBLY-500
ErrNumber : W BLOCK 1
ErrorMessage : EQU 37B9 + 65B
...
CALLG ErrorMessage, 1, ErrNumber
IF K GO Error
...
Error, ...
MAC
LDA ERRNO %Error number of message to be printed.
MON 65 %Monitor call ErrorMessage.
...
ERRNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 171
66B - InBufferSpace (ISIZE)¶
Gets the current number of bytes in the input buffer. Terminals and other character devices place input in a buffer. All input monitor calls read from this buffer.
- Use ExecutionInfo to get the logical device number for terminals. You can specify 1 for your own terminal.
- The buffer size depends on the device.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Number of bytes in the buffer. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
InBufferState, ClearInBuffer, OutBufferSpace
Examples¶
Pascal
DeviceNumber, NoOfBytes : INTEGER2;
...
BytesInBuffer(DeviceNumber, NoOfBytes); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 ErrCode COMP.
...
MONITOR-CALL "InBufferSpace" USING DeviceNumber, NoOfBytes.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
...
Monitor Call1('InBufferSpace', DeviceNumber, NoOfBytes)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
...
ON ROUTINEERROR DO
 IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('InBufferSpace', DeviceNumber, NoOfBytes)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
InBufferSpace : EQU 3789 + 66B
...
CALLG InBufferSpace, i, DeviceNumber
IF K GO ERROR
W1 =: NoOfBytes %Result is returned in W1 register.
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA DEVNO %Logical device number.
MON 66 %Monitor call InBufferSpace.
JMP ERROR %Error return from monitor call.
STA COUNT %Normal return, store number of bytes in inbuffer.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 315
67B - OutBufferSpace (OSIZE)¶
Gets the number of free bytes in the output buffer (number of bytes which can be written before the program must wait). Terminals and other character devices place output in a buffer. Monitor calls like OutByte writes to this buffer.
- Use ExecutionInfo to get the logical device number for terminals. You can specify 1 for your own terminal.
- This monitor call is not available for internal devices. Use InBufferSpace and subtract this size from the inbuffer size.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Number of bytes which can be written before the program must wait. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
ClearOutBuffer, InBufferSpace
Examples¶
Pascal
DeviceNumber, NoOfBytes : INTEGER2;
...
OutBufferSpace(DeviceNumber, NoOfBytes);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 ErrCode COMP.
...
MONITOR-CALL "OutBufferSpace" USING DeviceNumber, NoOfBytes.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
...
Monitor_Cal1('OutBufferSpace', DeviceNumber, NoOfBytes)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OutBufferSpace', DeviceNumber, NoOfBytes)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
OutBufferSpace : EQU 37B9 + 67B
...
CALLG OutBufferSpace, 1, DeviceNumber
IF K GO ERROR
W1 =: NoOfBytes %Result is returned in W1 register.
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
MON 67 %Monitor call OutBufferSpace.
JMP ERROR %Error return from monitor call.
STA COUNT %Normal return, store number of bytes.
ERROR,
... %Error number in register A.
DEVNO, ...
COUNT, 0 %Number of bytes free space in outbuffer.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 375
70B - CallCommand (COMMND)¶
Executes a SINTRAN III command from a program. The program terminates if an error occurs in the command.
- You are advised to use the newer monitor call, ExecuteCommand (UECOM), instead of CallCommand.
- Some commands may destroy your program. Use care with commands which affect your program's memory area.
- Note that the program may terminate if an error occurs. Use ExecuteCommand (UECOM) to avoid this problem.
- For commands with output, but without an output file as a parameter, e.g. @WHO, output is displayed automatically on the terminal of the user executing the program.
- Use SuspendProgram to wait a specified time interval between two CallCommands which depend on each other, e.g. CreateFile and OpenFile.
- The following commands are allowed from ND-500 programs: @DATCL, @COPY, @COPY-FILE, @SCHEDULE, @HOLD, @TERMINAL-MODE, @OPERATOR, @WAIT-FOR-OPERATOR, @SET-TERMINAL-TYPE, @GET-TERMINAL-TYPE, @CREATE-FILE, @EXPAND-FILE, @DELETE-FILE, @RENAME-FILE, @LIST-FILE, @FILE-STATISTICS, @OPEN-FILE, @CONNECT-FILE, @SET-FILE-ACCESS, @CLOSE-FILE, @LIST-OPEN-FILE, @SET-BLOCK-SIZE, @SET-PERMANENT-OPEN, @SET-BYTE-POINTER, @SET-BLOCK-POINTER, @APPEND-SPOOLING-FILE, @DELETE-SPOOLING-FILE, @SET-TEMPORARY-FILE, and @SCRATCH-OPEN.
See Also¶
ExecuteCommand, SetCommandBuffer. ExecuteCommand does not terminate the program if an error occurs
Examples¶
Pascal
Command : PACKED ARRAY [0..79] OF CHAR;
...
CallCommand(Command);
COBOL
01 Command PIC X(100).
...
MONITOR-CALL "CallCommand" USING Command.
Fortran
CHARACTER Command*80
...
Monitor_Call('Call')Command', Command(1:80))
PLANC
BYTES : Command(0:79)
...
Monitor_Call('CallCommand', Command)
ASSEMBLY-500
Command : STRINGDATA 'CLOSE-FILE 102'''
ErrCode : W BLOCK 1
CallCommand : EQU 3789 + 70B
...
CALLG CallCommand, 1, Command
IF K GO Error
...
Error, W1 =: ErrCode
MAC
LDA (CMND %Address of string with command to be executed.
MON 70 %Monitor call CallCommand.
...
CMND, 'CLOSE-FILE 102' %Execute @CLOSE-FILE 102
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 99
71B - DisableEscape (DESCF)¶
The ESCAPE key on the terminal normally terminates a program. This is called user break. This monitor call disables the escape function.
- The escape function is enabled again by EnableEscape.
- The escape function is enabled when you log out.
- When escape function is disabled, the escape character is treated as any other character.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
The terminal's logical device number. |
UNKNOWN | I | This parameter is ignored for background programs. Your own terminal is always selected. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
EnableEscape, SetEscapeHandling, and @DISABLE-ESCAPE-FUNCTION
Examples¶
Pascal
DeviceNumber : INTEGER2;
...
EscapeDisable(DeviceNumber); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "DisableEscape" USING DeviceNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber
...
Monitor_Call('DisableEscape', DeviceNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber
...
Monitor_Call('DisableEscape', DeviceNumber)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
DisableEscape : EQU 37B9 + 71B
...
CALLG DisableEscape, 1, DeviceNumber
MAC
LDT DEVNO %Logical device number.
MON 71 %Monitor call DisableEscape.
...
DEVNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
72B - EnableEscape (EESCF)¶
Enables the ESCAPE key on the terminal. The ESCAPE key normally terminates a program. This is called user break. You can disable this key with DisableEscape. To enable it again you should use EnableEscape.
- The escape function is enabled when you log out.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The terminal's logical device number. This parameter is ignored for background p |
See Also¶
DisableEscape, SetEscapeHandling, and @ENABLE-ESCAPE-FUNCTION
Examples¶
Pascal
DeviceNumber : INTEGER2;
...
EscapeEnable(DeviceNumber); [Note routine name.]
COBOL
01 DeviceNumber COMP.
...
MONITOR-CALL "EnableEscape" USING DeviceNumber.
Fortran
INTEGER DeviceNumber
...
Monitor_Call('EnableEscape', DeviceNumber)
PLANC
INTEGER : DeviceNumber
...
Monitor_Call('EnableEscape', DeviceNumber)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
EnableEscape : EQU 37B9 + 72B
...
CALLG EnableEscape, 1, DeviceNumber
IF K GO Error
...
Error,
MAC
| LDT | DEVNO | %Logical device number. |
| MON | 72 | %Monitor call EnableEscape. |
| ... | | |
| DEVNO, ... | |
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 165
73B - SetMaxBytes (SMAX)¶
Sets the value of the maximum byte pointer in an opened file (i.e. the number of bytes minus 1). The specified number of bytes are stored when the file is closed. The error code 3 is returned if you later try to read beyond this size. Error code 3 means end of file.
- The file must be opened for write.
- This monitor call is only relevant for sequential access.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number. See OpenFile. |
UNKNOWN | I | |
Maximum file size in bytes. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
GetBytesInfile, SetStartByte
Examples¶
Pascal
FileNumber : INTEGER2;
MaxBytePointer : LONGINT;
...
SetMaxBytes(FileNumber, MaxBytePointer);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 MaxBytePointer COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "SetMaxBytes" USING FileNumber, MaxBytePointer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER*4 MaxBytePointer
...
Monitor_Call('SetMaxBytes', FileNumber, MaxBytePointer)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
INTEGER4 : MaxBytePointer
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetMaxBytes', FileNumber, MaxBytePointer)
ASSEMBLY-500
FileNumber : W BLOCK 1
MaxBytePointer : W BLOCK 1
ErrCode : W BLOCK 1
SetMaxBytes : EQU 37B9 + 73B
...
CALLG SetMaxBytes, 2, FileNumber, MaxBytePointer
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LDD POINT %Maximum byte pointer.
MON 73 %Monitor call SetMaxBytes.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, %Error number in register A.
...
FILNO,
...
POINT, %A double word.
...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 449
74B - SetStartByte (SETBT)¶
Sets the next byte to be read or written in an opened mass-storage file.
- The bytes in a file are numbered upwards from 0.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See OpenFile. |
Param2 |
UNKNOWN | I | Start byte in the file, i.e. number of next byte to be read or written. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
GetStartByte, SetStartBlock, SetMaxBytes, and @SET-BYTE-POINTER
Examples¶
Pascal
FileNumber : INTEGER2;
BytePointer : LONGINT;
...
SetBytePointer(FileNumber, BytePointer); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 BytePointer COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "SetStartByte" USING FileNumber, BytePointer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER*4 BytePointer
...
Monitor_Call('SetStartByte', FileNumber, BytePointer)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
INTEGER4 : BytePointer
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetStartByte', FileNumber, BytePointer)
ASSEMBLY-500
FileNumber : W BLOCK 1
BytePointer : W BLOCK 1
ErrCode : W BLOCK 1
SetStartByte : EQU 37B9 + 74B
...
CALLG SetStartByte, 2, FileNumber, BytePointer
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LOD POINT %Byte pointer.
MON 74 %Monitor call SetStartByte.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
POINT, ... %A double word.
... %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 471
75B - GetStartByte (REABT)¶
Gets the number of the next byte to access in a file. The bytes in a file are numbered from 0.
- The file must be opened for sequential access.
- You cannot use this monitor call for peripheral files.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ File number. |
See OpenFile. | I | |
↔ The number of the next byte to access. |
UNKNOWN | I | |
← Standard Error Code. |
See appendix A. | I |
See Also¶
Examples¶
Pascal
FileNumber : INTEGER2;
BytePointer : LONGINT;
...
GetStartByte(FileNumber, BytePointer);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 BytePointer COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "GetStartByte" USING FileNumber, BytePointer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER*4 BytePointer
...
Monitor Call1('GetStartByte', FileNumber, BytePointer)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
INTEGER4 : BytePointer
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetStartByte', FileNumber, BytePointer)
ASSEMBLY-500
FileNumber : W BLOCK 1
BytePointer : W BLOCK 1
ErrCode : W BLOCK 1
GetStartByte : EQU 37B9 + 75B
...
CALLG GetStartByte, 2, FileNumber, BytePointer
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
MON 75 %Monitor call GetStartByte.
JMP ERROR %Error return from monitor call.
STD POINT %Normal return, store byte pointer.
...
ERROR, ... %Error number in register A.
...
FILNO, ...
POINT, 0 %A double word.
0 %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 283
76B - SetBlockSize (SETBS)¶
Sets the block size of an opened file. Monitor calls which read randomly from, or write randomly to a file, operate on blocks. See ReadFromFile and WriteToFile.
- The standard block size is 512 bytes. This block size is set when the file is opened.
- The block size is reset when the file is closed.
- Factors of 2048 bytes are the most efficient block sizes.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
⮞ |
File number. See OpenFile. | I | |
⮞ |
Block size in bytes. It must be an even number. | I | |
⮜ |
Standard Error Code. See appendix A. | I |
See Also¶
SetStartBlock, ReadFromFile, WriteToFile, and @SET-BLOCK-SIZE
Examples¶
Pascal
FileNumber : INTEGER2;
BlockSize : LONGINT;
...
SetBlockSize(FileNumber, BlockSize);
If ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 BlockSize COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "SetBlockSize" USING FileNumber, BlockSize.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
INTEGER*4 BlockSize
...
Monitor_Call('SetBlockSize', FileNumber, BlockSize)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
INTEGER : BlockSize
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetBlockSize', FileNumber, BlockSize)
ASSEMBLY-500
FileNumber : W BLOCK 1
BlockSize : W BLOCK 1
ErrCode : W BLOCK 1
SetBlockSize : EQU 37B9 + 76B
...
CALLG SetBlockSize, 2, FileNumber, BlockSize
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LDA SIZE %Block size in words.
MON 76 %Monitor call SetBlockSize.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
FILNO, ...
SIZE, ... %New block size.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 433
77B - SetStartBlock (SETBL)¶
Sets the next block to be read or written in an opened file. You may access the first bytes in the block with the monitor calls to read and write bytes.
- The standard block size is 512 bytes. This block size is set when the file is opened. You can change this with SetBlockSize.
- The first block of a file is number 0.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number |
See OpenFile. | I | |
Block number |
Next block to be read or written. | I | |
Standard Error Code |
See appendix A. | I |
See Also¶
SetStartByte, @SET-BLOCK-POINTER. The monitor call is identical to SetStartByte with the block number multiplied by the block size as parameter
Examples¶
Pascal
FileNumber, BlockNumber : INTEGER2;
...
SetStartBlock(FileNumber, BlockNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 BlockNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetStartBlock" USING FileNumber, BlockNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber, BlockNumber
...
Monitor Call('SetStartBlock', FileNumber, BlockNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber, BlockNumber
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetStartBlock', FileNumber, BlockNumber)
ASSEMBLY-500
FileNumber : W BLOCK 1
BlockNumber : W BLOCK 1
ErrCode : W BLOCK 1
SetStartBlock : EQU 3789 + 77B
...
CALLG SetStartBlock, 2, FileNumber, BlockNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LDA BLKNO %Block number.
MON 77 %Monitor call SetStartBlock.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
BLKNO, ...
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 469
100B - StartRTProgram (RT)¶
Starts an RT program. The program is moved to the execution queue. It is executed according to its priority.
- The program may be in the execution queue. Then it restarts as soon as it terminates.
- You can terminate RT programs with StopRTProgram.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of RT description. Use 0 for your own RT description address. |
See Also¶
StartupTime, StartupInterval, DelayStart, and @RT
Examples¶
Pascal
RTProgram : INTEGER2;
...
StartRTProgram(RTProgram);
COBOL
01 RTProgram COMP.
...
MONITOR-CALL "StartRTProgram" USING RTProgram.
Fortran
INTEGER RTProgram
...
Monitor_Call('StartRTProgram', RTProgram)
PLANC
INTEGER : RTProgram
...
Monitor_Call('StartRTProgram', RTProgram)
ASSEMBLY-500
RTProgram : W BLOCK 1
StartRTProgram : EQU 37B9 + 100B
...
CALLG StartRTProgram, 1, RTProgram
MAC
| | | |
|--------|------------|--------------------------------------------------|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 100 | %Monitor call StartRTProgram. |
| ... | | |
| PAR, | RTPRO | %Address of RT description. |
| ... | | |
| RTPRO, | | |
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
|-------------------|-------------------------|-------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 485
101B - DelayStart (SET)¶
Starts an RT program after a specified time. The RT program is put in the time queue. It is moved to the execution queue after the specified period.
- RT programs already in the time queue are reinserted according to the new specifications.
- AdjustClock and @CLADJ do not affect the specified period.
- A period less than or equal to 0 moves the RT program to the execution queue the next time the basic time unit counter is incremented.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. Use 0 for the calling program. |
Param2 |
UNKNOWN | I | The number of time units to stay in the time queue. |
Param3 |
UNKNOWN | I | The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = secon |
See Also¶
@SET, StartupTime
Examples¶
Pascal
RTProgram, TimeUnits, UnitType : INTEGER2;
...
DelayStart(RTProgram, TimeUnits, UnitType);
COBOL
01 RTProgram COMP.
01 TimeUnits COMP.
01 UnitType COMP.
...
MONITOR-CALL "DelayStart" USING RTProgram, TimeUnits, UnitType.
Fortran
INTEGER RTProgram, TimeUnits, UnitType
...
Monitor_Call('DelayStart', RTProgram, TimeUnits, UnitType)
PLANC
INTEGER : RTProgram, TimeUnits, UnitType
...
Monitor_Call('DelayStart', RTProgram, TimeUnits, UnitType)
ASSEMBLY-500
RTProgram : W BLOCK 1
TimeUnits : W BLOCK 1
UnitType : W BLOCK 1
DelayStart : EQU 37B9 + 101B
...
CALLG DelayStart, 3, RTProgram, TimeUnits, UnitType
MAC
LDA (PAR %Load register A with address of parameter list.
MON 101 %Monitor call DelayStart.
...
PAR,
RTPRO
TIME
BASE
...
RTPRO, ... %Address of RT description.
TIME, ... %Number of time units.
BASE, ... %Base time units.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 135
102B - StartupTime (ABSET)¶
Starts an RT program at a specified time of the day. The RT program is then put in the time queue. It is moved to the execution queue at the specified time.
- The time of the day specified may have already passed. In this case, the program starts the next day.
- RT programs already in the time queue are reinserted according to the new specifications.
- AdjustClock, and @CLADJ affect the system's clock. Whenever the system time is changed, RT programs start according to the new time.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. Use 0 for the calling program. |
Param2 |
UNKNOWN | I | Seconds. |
Param3 |
UNKNOWN | I | Minutes. |
Param4 |
UNKNOWN | I | Hours. |
See Also¶
ExactStartup, DelayStartup, AdjustClock, @ABSET
Examples¶
Pascal
RTProgram, Seconds, Minutes, Hours: INTEGER2;
...
StartTime(RTProgram, Seconds, Minutes, Hours); [Note routine name.]
COBOL
01 RTProgram COMP.
01 Seconds COMP.
01 Minutes COMP.
01 Hours COMP.
...
MONITOR-CALL "StartupTime" USING RTProgram, Seconds, Minutes, Hours.
Fortran
INTEGER RTProgram, Seconds, Minutes, Hours
...
Monitor_Call('StartupTime', RTProgram, Seconds, Minutes, Hours)
PLANC
INTEGER : RTProgram, Seconds, Minutes, Hours
...
Monitor_Call('StartupTime', RTProgram, Seconds, Minutes, Hours)
ASSEMBLY-500
RTProgram : W BLOCK 1
Seconds : W BLOCK 1
Minutes : W BLOCK 1
Hours : W BLOCK 1
StartupTime : EQU 37B9 + 102B
...
CALLG StartupTime, 4, RTProgram, Seconds, Minutes, Hours
MAC
| Operation | Parameters | Description |
|-----------|----------------|--------------------------------------------------|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 102 | %Monitor call StartupTime. |
...
PAR, RTPRO %Address of RT description.
SEC %Seconds.
MIN %Minutes.
HOUR %Hour of day.
...
RTPRO, ...
SEC, ...
MIN, ...
HOUR, ...
ND-100 and ND-500 - User RT and user SYSTEM - RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 489
103B - StartupInterval (INTV)¶
Prepares an RT program for periodic execution. The interval between the executions can be specified in hours, minutes, seconds, and basic time units. A basic time unit is 1/50th of a second.
- The RT program is not started. Use StartRTProgram, @RT, or similar, to start it.
- StopRTProgram, Disconnect, @ABORT or @DSCNT cancel this monitor call.
- One execution may be unfinished when it is time for the next execution, in which case the program's restart flag is set. If the delay becomes as long as two intervals, one execution is lost.
- The interval replaces any earlier specified intervals.
- AdjustClock and @CLADJ do not affect the interval.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Address of an RT description. |
UNKNOWN | I | 0 means calling program. GetRtAddress gives RT description addresses. |
Number of time units between executions of the program. |
UNKNOWN | I | |
The type of time units. |
UNKNOWN | I | 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
ExactInterval and @INTV. ExactInterval allows you to specify intervals between 0 and 4294967647 basic time units.
Examples¶
Pascal
RTProgram, Time, Units : INTEGER2;
...
StartInterval (RTProgram, Time, Units); [Note routine name.]
COBOL
01 RTProgram COMP.
01 Time COMP.
01 Units COMP.
...
MONITOR-CALL "StartupInterval" USING RTProgram, Time, Units.
Fortran
INTEGER RTProgram, Time, Units
...
Monitor_Call('StartupInterval', RTProgram, Time, Units)
PLANC
INTEGER : RTProgram, Time, Units
...
Monitor_Call('StartupInterval', RTProgram, Time, Units)
ASSEMBLY-500
RTProgram : W BLOCK 1
Time : W BLOCK 1
Units : W BLOCK 1
StartupInterval : EQU 37B9 + 103B
...
CALLG StartupInterval, 3, RTProgram, Time, Units
MAC
LDA (PAR %Load register A with address of parameter list.
MON 103 %Monitor call StartupInterval.
...
PAR, RTPRO %Address of RT description.
TIME %Interval between each execution of program.
UNIT %Time units.
...
RTPRO, ...
UNIT, ...
BASE, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
104B - SuspendProgram (HOLD)¶
Suspends the execution of your program for a given time. The execution then continues after the time specified by the monitor call.
See Also¶
TimeOut, WaitForRestart, @HOLD
Examples¶
Pascal
TimeUnits, UnitType : INTEGER2;
...
SuspendProgram(TimeUnits, UnitType);
COBOL
01 TimeUnits COMP.
01 UnitType COMP.
...
MONITOR-CALL "SuspendProgram" USING TimeUnits, UnitType.
Fortran
INTEGER TimeUnits, UnitType
...
Monitor_Call('SuspendProgram', TimeUnits, UnitType)
PLANC
INTEGER : TimeUnits, UnitType
...
Monitor_Call('SuspendProgram', TimeUnits, UnitType)
ASSEMBLY-500
TimeUnits : W BLOCK 1
UnitType : W BLOCK 1
SuspendProgram : EQU 37B9 + 104B
...
CALLG SuspendProgram, 2, TimeUnits, UnitType
MAC
| LDA | (PAR | %Load register A with address of parameter list. |
|--------|---------------|--------------------------------------------------|
| MON | 104 | %Monitor call SuspendProgram. |
| PAR, | TIME | %Number of time units the program has to wait. |
| BASE | | %Base time units. |
| TIME, | ... | |
| BASE, | ... | |
ND-100 and ND-500 | All users | All programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 497
105B - StopRTProgram (ABORT)¶
Stops an RT program. It is removed from the time or execution queue. All reserved devices and files are released. RT programs schedules for periodic execution are also stopped.
- Nothing happens if the RT program is already stopped.
- The RT program restarts immediately if its restart flag is set.
See Also¶
ExitRTProgram, @ABORT
Examples¶
COBOL
01 RTProgram COMP.
MONITOR-CALL "StopRTProgram" USING RTProgram.
Fortran
INTEGER RTProgram
Monitor_Call('StopRTProgram', RTProgram)
PLANC
INTEGER : RTProgram
Monitor_Call('StopRTProgram', RTProgram)
ASSEMBLY-500
RTDescr : W BLOCK 1
...
StopRTProgram : EQU 37B9 + 105B
CALLG StopRTProgram, 1, RTDescr
MAC
LDA (PAR %Load register A with address of parameter list.
MON 105 %Monitor call StopRTProgram
...
PAR, RTPRO %Address of RT description.
...
RTPRO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 495
106B - StartOnInterrupt (CONCT)¶
StartOnInterrupt connects an RT program to interrupts from a device. The RT program starts when an interrupt occurs. Use either WaitForRestart or SuspendProgram to make the program wait.
- You can remove this connection with NoInterruptStart.
- Several devices may be connected to one program.
- It is impossible to connect to some devices. Connection can be made if SINTRAN III has been generated with a connect driver routine for the device.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of RT description. Use 0 for your own RT description address. |
Param2 |
UNKNOWN | I | Logical device number. See appendix B. |
See Also¶
NoInterruptStart, @CONCT
Examples¶
Pascal
RTProgram, DeviceNumber : INTEGER2;
...
StartOnInterrupt(RTProgram, DeviceNumber);
COBOL
01 RTProgram COMP.
01 DeviceNumber COMP.
...
MONITOR-CALL "StartOnInterrupt" USING RTProgram, DeviceNumber.
Fortran
INTEGER RTProgram, DeviceNumber
...
Monitor_Call('StartOnInterrupt', RTProgram, DeviceNumber)
PLANC
INTEGER : RTProgram, DeviceNumber
...
Monitor_Call('StartOnInterrupt', RTProgram, DeviceNumber)
ASSEMBLY-500
RTProgram : W BLOCK 1
DeviceNumber : W BLOCK 1
StartOnInterrupt : EQU 3789 + 106B
...
CALLG StartOnInterrupt, 2, RTProgram, DeviceNumber
MAC
LDA (PAR %Load register A with address of parameter list.
MON 106 %Monitor call StartOnInterrupt.
...
| PAR | RTPRO | %Address of RT description. |
|--------|-------------|-----------------------------|
| DEVNO | | %Logical device number. |
| ... | RTPRO, ... | |
| DEVNO, | ... | |
ND-100 and ND-500 | User RT and user SYSTEM | RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 481
107B - NoInterruptStart (DSCNT)¶
StartOnInterrupt connects an RT program to interrupts from a device. You remove this connection with NoInterruptStart.
- The program may be in the time queue. It is then removed. Periodic execution is prevented.
- Reserved resources are not released.
- The program is not removed from the execution queue.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of RT description. |
See Also¶
StartOnInterrupt, @DSCNT
Examples¶
Pascal
RTProgram : INTEGER2;
...
NoInterruptStart(RTProgram);
COBOL
01 RTProgram COMP.
...
MONITOR-CALL "NoInterruptStart" USING RTProgram.
Fortran
INTEGER RTProgram
...
Monitor_Call('NoInterruptStart', RTProgram)
ASSEMBLY-500
RTProgram : W BLOCK 1
NoInterruptStart : EQU 37B9 + 107B
...
CALLG NoInterruptStart, 1, RTProgram
MAC
LDA (PAR %Load register A with address of parameter list.
MON 107 %Monitor call NoInterruptStart.
...
PAR, RTPRO %Address of RT description.
...
RTPRO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 355
110B - SetRTPriority (PRIOR)¶
Sets the priority of an RT program. RT programs may be given priorities from 0 to 255. SINTRAN III executes the RT program with the highest priority.
- The priority of background programs vary between 20 and 60.
- Programs with priority 0 will never start. You may use this to suspend programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. You may use 0 for your own program. |
Param2 |
UNKNOWN | I | Priority. |
Param3 |
UNKNOWN | I | The previous priority. |
See Also¶
SetND500Priority, @PRIOR
Examples¶
Pascal
RTProgram, PriorityLevel, OldPriority : INTEGER2;
...
SetRTPriority(RTProgram, PriorityLevel, OldPriority);
COBOL
01 RTProgram COMP.
01 PriorLevel COMP.
01 OldPriority COMP.
...
MONITOR-CALL "SetRTPriority" USING RTProgram, PriorLevel, OldPriority.
Fortran
INTEGER RTProgram, PriorityLevel, OldPriority
...
Monitor_Call('SetRTPriority', RTProgram, PriorityLevel, OldPriority)
PLANC
INTEGER : RTProgram, PriorityLevel, OldPriority
...
Monitor_Call('SetRTPriority', RTProgram, PriorityLevel, OldPriority)
ASSEMBLY-500
RTProgram : W BLOCK 1
PriorityLevel : W BLOCK 1
OldPriority : W BLOCK 1
SetRTPriority : EQU 37B9 + 110B
CALLG SetRTPriority, 2, RTProgram, PriorityLevel
Wl =: OldPriority %Result is returned in Wl register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 110 %Monitor call SetRTPriority.
STA OLDP %Store old priority returned.
...
OLDP, 0
PAR, RTPRO %Address of RT description.
PRIOR %New priority.
...
RTPRO, ...
PRIOR, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 467
111B - SetClock (UPDAT)¶
Gives new values to the computer's clock and calendar. If the computer panel has a clock, it is updated.
- The startup time for RT programs can be set by StartupTime. Such RT programs start according to the new time.
- Illegal time values, e.g. 61 minutes, stop the program and output a message.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Minutes. |
Param2 |
UNKNOWN | I | Hours. |
Param3 |
UNKNOWN | I | Days. |
Param4 |
UNKNOWN | I | Months. |
Param5 |
UNKNOWN | I | Years. |
See Also¶
AdjustClock, GetCurrentTime, and GetBasicTime
Examples¶
Pascal
Minute, Hour, Day, Month, Year : INTEGER2;
...
SetClock(Minute, Hour, Day, Month, Year);
COBOL
01 Minute COMP.
01 Hour COMP.
01 Day COMP.
01 Month COMP.
01 Year COMP.
...
MONITOR-CALL "SetClock" USING Minute, Hour, Day, Month, Year.
Fortran
INTEGER Minute, Hour, Day, Month, Year
...
Monitor_Call('SetClock', Minute, Hour, Day, Month, Year)
PLANC
INTEGER : Minute, Hour, Day, Month, Year
...
Monitor_Call('SetClock', Minute, Hour, Day, Month, Year)
ASSEMBLY-500
| Minute | :W BLOCK 1 |
| --- | --- |
| Hour | :W BLOCK 1 |
| Day | :W BLOCK 1 |
| Month | :W BLOCK 1 |
| Year | :W BLOCK 1 |
SetClock : EQU 37B9 + 111B
...
CALLG SetClock, 5, Minute, Hour, Day, Month, Year
MAC
LDA (PAR %Load register A with address of parameter list.
MON 111 %Monitor call SetClock.
| PAR, | MIN | %New minutes of hour. |
| --- | --- | --- |
| | HOUR | %New hour of day. |
| | DAY | %New day of month. |
| | MONTH | %New month of year. |
| | YEAR | %New value for year. |
MIN, ...
HOUR, ...
DAY, ...
MONTH, ...
YEAR, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 437
112B - AdjustClock (CLADJ)¶
Sets the computer's clock (i.e. the current system time) forward or back. If the operator panel has a clock, it is also adjusted.
- The startup time for RT programs can be set by StartupTime. When the current system time is modified, the next startup times of periodic programs started by StartupTime are also affected. Other scheduling times are not affected.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Number of time units the clock will be adjusted by. Negative values make the clo |
Param2 |
UNKNOWN | I | The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = secon |
See Also¶
SetClock, GetCurrentTime, StartupTime, GetBasicTime
Examples¶
Pascal
TimeUnits, UnitType : INTEGER2;
...
AdjustClock(TimeUnits, UnitType);
COBOL
01 TimeUnits COMP.
01 UnitType COMP.
...
MONITOR-CALL "AdjustClock" USING TimeUnits, UnitType.
Fortran
INTEGER TimeUnits, UnitType
...
Monitor_Call('AdjustClock', TimeUnits, UnitType)
PLANC
INTEGER : TimeUnits, UnitType
...
Monitor_Call('AdjustClock', TimeUnits, UnitType)
ASSEMBLY-500
TimeUnits : W BLOCK 1
UnitType : W BLOCK 1
ErrCode : W BLOCK 1
AdjustClock : EQU 3789 + 112B
...
CALLG AdjustClock, 2, TimeUnits, UnitType
IF K GO ERROR
...
Error : W1 =: ErrCode
MAC
LDA (PAR %Load register A with address of parameter list.
MON 112 %Monitor call AdjustClock.
...
PAR, TIME %Number of time units the clock is adjusted by.
BASE %Time units.
...
TIME, ...
BASE, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 75
113B - GetCurrentTime (CLOCK)¶
Gets the current system time and date.
- The current system time is returned as basic time units, seconds, minutes, hours, day, month, and year.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
0:1 |
basic time units | 0:3 on the ND-500 | |
2:3 |
seconds | 4:7 on the ND-500 | |
4:5 |
minutes | 8:11 on the ND-500 | |
6:7 |
hours | 12:15 on the ND-500 | |
8:9 |
day | 16:19 on the ND-500 | |
10:11 |
month | 20:23 on the ND-500 | |
12:13 |
year | 24:27 on the ND-500 |
See Also¶
GetBasicTime, AdjustClock, SetClock, and @DATCL
Examples¶
Pascal
TimeBuffer : record;
...
GetCurrentTime(TimeBuffer);
COBOL
01 TimeBuffer.
02 array COMP OCCURS 7 TIMES.
...
MONITOR-CALL "GetCurrentTime" USING TimeBuffer.
Fortran
INTEGER TimeBuffer(7)
...
Monitor_Call('GetCurrentTime', TimeBuffer(1))
PLANC
INTEGER ARRAY : TimeBuffer(0:6)
...
Monitor_Call('GetCurrentTime', TimeBuffer(0))
ASSEMBLY-500
TimeBuffer : W BLOCK 7
GetCurrentTime : EQU 37B9 + 113B
...
CALLG GetCurrentTime, 1, TimeBuffer
MAC
| Instruction | Parameter | Comment |
|-------------|-----------|----------------------------------------------|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 113 | %Monitor call GetCurrentTime. |
| ... | | |
| PAR, | CLOK | |
| ... | | |
| CLOK, 0 | | %Basic time units. |
| | 0 | %Seconds. |
| | 0 | %Minutes. |
| | 0 | %Hours. |
| | 0 | %Day. |
| | 0 | %Month. |
| | 0 | %Year. |
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 227
114B - GetTimeUsed (TUSED)¶
Gets the time you have used the CPU since you logged in. In batch jobs, you get the time since you entered the job.
- The CPU time used is given in basic time units. A basic time unit is 1/50th of a second.
- Can also be used from RT-programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The CPU time used. |
See Also¶
@TIME-USED
Examples¶
Pascal
TimeUsed : LONGINT;
...
GetTimeUsed(TimeUsed);
COBOL
01 TimeUsed COMP PIC S9(10).
...
MONITOR-CALL "GetTimeUsed" USING TimeUsed.
Fortran
INTEGER*4 TimeUsed
...
Monitor_Call('GetTimeUsed', TimeUsed)
PLANC
INTEGER4 : TimeUsed
...
Monitor_Call('GetTimeUsed', TimeUsed)
ASSEMBLY-500
TimeUsed : W BLOCK 1
GetTimeUsed : EQU 37B9 + 114B
...
CALLG GetTimeUsed, 0
W1 =: TimeUsed %Result is returned in W1 register.
MAC
MON 114 %Monitor call GetTimeUsed.
STD TIME %Store CPU time.
...
TIME, 0 %A double word.
0 %
| **ND-100 and ND-500** | **All users** | **Background programs** |
|-----------------------|-----------------|------------------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 293
115B - FixScattered (FIX)¶
Place a segment in physical memory. Its pages will no longer be swapped to the disk. The segment must be non demand. Its pages will be scattered in physical memory. You may, for example, use this function for time critical operations or for allocating DMA buffers.
- Use UnFixSegment or @UNFIX to allow the RT LOADER to clear the segment.
- Your program terminates if you refer to a nonexistent segment or a demand segment. An error message is output on the error device.
- Only a limited number of pages can be fixed. This limit is defined when SINTRAN III is generated. You may change it with the command CHANGE-VARIABLE in the SINTRAN-SERVICE-PROGRAM.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number to be fixed in memory. |
See Also¶
UnFixSegment, FixContiguous, FixInMemory, MemoryAllocation, FixIOArea, and @FIXC
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
FixScattered(SegmentNumber);
COBOL
01 SegmentNumber COMP.
...
MONITOR-CALL "FixScattered" USING SegmentNumber.
Fortran
INTEGER SegmentNumber
...
Monitor_Call('FixScattered', SegmentNumber)
PLANC
INTEGER : SegmentNumber
...
Monitor_Call('FixScattered', SegmentNumber)
ASSEMBLY-500
SegmentNumber : W BLOCK 1
FixScattered : EQU 37B9 + 115B
...
CALLG FixScattered, 1, SegmentNumber
MAC
LDA (PAR %Load register A with address of parameter list.
MON 115 %Monitor call FixScattered
...
PAR, SEGNO %Segment number to be fixed in memory.
...
SEGNO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
|-------------------|-------------------------|-------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 207
116B - UnfixSegment (UNFIX)¶
Releases a fixed segment and removes it from the Page Index Table (PIT). Its pages may then be swapped from physical memory to the disk. Use FixScattered or FixContiguous to fix the segment.
- You must use UnFixSegment or @UNFIX to allow the RT-LOADER to clear the segment.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number to be released. |
See Also¶
FixInMemory, MemoryAllocation, FixIOArea, and @UNFIX
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
UnFixSegment(SegmentNumber);
COBOL
01 SegmentNumber COMP.
...
MONITOR-CALL "UnfixSegment" USING SegmentNumber.
Fortran
INTEGER SegmentNumber
...
Monitor_Call('UnfixSegment', SegmentNumber)
PLANC
INTEGER : SegmentNumber
...
Monitor_Call('UnfixSegment', SegmentNumber)
ASSEMBLY-500
SegmentNumber : W BLOCK 1
UnfixSegment : EQU 37B9 + 116B
...
CALLG UnfixSegment, 1, SegmentNumber
MAC
| LDA | (PAR | %Load register A with address of parameter list. |
| MON 116 | | %Monitor call UnfixSegment. |
| ... | | |
| PAR, SEGNO | | %Segment number to be unfixed. |
| ... | | |
| SEGNO, ... | | |
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 553
117B - ReadFromFile (RFILE)¶
Reads any number of bytes from a file. The read operation must start at the beginning of a block. The file must be opened for random read access.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
- You may use access code D for direct transfer. Then the block size must be a multiple of the page size. The number of bytes to transfer must be a multiple of the block size.
- Peripheral files are always read sequentially.
- Data transfer across segment or RT common limits is illegal as this would be likely to result in inconsistent data.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number |
See Openfile. | I | |
Wait flag |
Use 0 to suspend the program until the transfer is completed. Other values make the program continue. You may check that the transfer is completed by AwaitFileTransfer. | I | |
Transferred data |
I | ||
Block number |
To start the read operation. Use -1 to read the next block. | I | |
Number of bytes |
To read. | I | |
Standard Error Code |
See appendix A. | I |
See Also¶
SetStartBlock, SetBlockSize, ReadDiskPage, ReadBlock, WriteBlock, and WriteToFile
Examples¶
Pascal
FileNo, WaitFlag, BlockNo : INTEGER2;
Buff : ARRAY [0..15] OF RECORD...END;
NoOfBytes : LONGINT;
...
ReadFromFile(FileNo, WaitFlag, Buff, BlockNo, NoOfBytes);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 WaitFlag COMP.
01 Buff.
02 array COMP OCCURS 256 TIMES.
01 BlockNo COMP.
01 NoOfBytes COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "ReadFromFile" USING FileNo, WaitFlag, Buff,
BlockNo, NoOfBytes.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, WaitFlag, BlockNo
INTEGER Buff(256)
INTEGER*4 NoOfBytes
...
Monitor_Call('ReadFromFile', FileNo, WaitFlag, Buff(1),
BlockNo, NoOfBytes)
C IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNo, RetFlag, BlockNo
BYTES : Buff(0:511)
INTEGER4 : NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('ReadfromFile', FileNo, RetFlag, Buff(0), BlockNo, NoOfBytes)
ASSEMBLY-500
FileNo : W BLOCK 1
WaitFlag : W BLOCK 1
Buff : W BLOCK 256 %Must start on an even byte address.
BlockNo : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
ReadFromFile : EQU 37B9 + 117B
...
CALLG ReadfromFile, 5, FileNo, WaitFlag, Buff, BlockNo, NoOfBytes
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 117 %Monitor call ReadFromFile.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Error number in register A.
...
PAR, FILNO %File number returned from earlier call to OpenFile.
RETUR %Return flag.
BUFF %Buffer to receive data.
BLKNO %Block number in file where data starts.
COUNT %Number of words to be read.
...
FILNO, ...
RETUR, 0
BUFF, 0
*+400/ %Make a buffer of 256 words.
BLKNO, ...
COUNT, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 399
120B - WriteToFile (WFILE)¶
Writes any number of bytes to a file. The read operation must start at the beginning of a block. The file must be opened for random write access.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
- You may use access code D for direct transfer. Then the block size must be a multiple of the page size. The number of bytes to transfer must be a multiple of the block size. The data must be fixed contiguously in memory.
- Peripheral files are always written to sequentially.
- Data transfer across segment or RT common limits is illegal as this would be likely to result in inconsistent data.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See OpenFile. |
Param2 |
UNKNOWN | I | Wait flag. Use 0 to suspend the program until the transfer is completed. Other v |
Param3 |
UNKNOWN | I | Data to be transferred. |
Param4 |
UNKNOWN | I | Block number to start writing from. Use -1 to write to the next block. |
Param5 |
UNKNOWN | I | Number of bytes to be written. |
Param6 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
SetStartBlock, SetBlockSize, WriteDiskPage, WriteBlock, and ReadFromFile
Examples¶
Pascal
FileNo, ReturnFlag, BlockNo : INTEGER;
NoOfBytes : LONGINT;
Buff : ARRAY [0..15] OF RECORD...END;
...
WriteToFile(FileNo, ReturnFlag, Buff, BlockNo, NoOfBytes);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP. 01 ReturnFlag COMP.
01 Buff.
02 array COMP OCCURS 256 TIMES.
01 BlockNo COMP. 01 NoOfBytes COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "WriteToFile" USING FileNo, ReturnFlag, Buff,
BlockNo, NoOfBytes.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, ReturnFlag, BlockNo
INTEGER Buff(256)
INTEGER*4 NoOfBytes
...
Monitor_Call('WriteToFile', FileNo, ReturnFlag, Buff(1),
BlockNo, NoOfBytes)
C IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNo, ReturnFlag, BlockNo
BYTES : Buff(0:511)
INTEGER4 : NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteToFile', FileNo, ReturnFlag, Buff(0), BlockNo, NoOfBytes)
ASSEMBLY-500
FileNo : W BLOCK 1
ReturnFlag : W BLOCK 1
Buff : W BLOCK 256
BlockNo : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
WriteToFile : EQU 3789 + 120B
...
CALLG WriteToFile, 5, FileNo, ReturnFlag, Buff, BlockNo, NoOfBytes
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 120 %Monitor call WriteToFile.
JAF ERROR %Do error handling if register A is non-zero.
ERROR, ... %Error number in register A.
...
PAR, FILNO %File number returned from earlier open.
FLAG %Wait flag.
BUFF %Buffer containing data to be written.
BLKNO %Block number where writing is started.
COUNT %Number of words to transfer.
...
FILNO, ...
FLAG, ...
BUFF, 0
*+1000/ %Make a buffer of 512 words, 4 blocks.
BLKNO ...
COUNT, 0
1000 %Transfer 512 words.
ND-100 and ND-500 All users Background programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 569
121B - AwaitFileTransfer (WAITF)¶
Checks that a data transfer to or from a mass-storage file is completed. The monitor call is relevant to ReadFromFile and WriteToFile operations. These data transfers are carried out independently of the CPU.
See Also¶
Examples¶
Pascal
FileNumber, ReturnFlag, Status : INTEGER2;
...
AwaitFileTransfer(FileNumber, ReturnFlag, Status);
COBOL
01 FileNumber COMP.
01 ReturnFlag COMP.
01 Status COMP.
...
MONITOR-CALL "AwaitFileTransfer" USING FileNumber, ReturnFlag, Status.
Fortran
INTEGER FileNumber, ReturnFlag, Status
...
Monitor_Call('AwaitfileTransfer', FileNumber, ReturnFlag, Status)
PLANC
INTEGER : FileNumber, ReturnFlag, Status
...
Monitor_Call('AwaitFileTransfer', FileNumber, ReturnFlag, Status)
ASSEMBLY-500
FileNumber : W BLOCK 1
ReturnFlag : W BLOCK 1
Status : W BLOCK 1
AwaitFileTransfer : EQU 37B9 + 121B
...
CALLG AwaitFileTransfer, 2, FileNumber, ReturnFlag
IF K GO Error
...
Error, W1 =: Status %Status is returned in W1 register.
MAC
LOA (PAR %Load register A with address of parameter list.
MON 121 %Monitor call AwaitFileTransfer.
STA STAT %Store returned status.
JAP ERROR %Handle error if STAT is greater than 0.
...
ERROR, ... %Handle the error with error number in STAT.
...
STAT, 0
PAR, FILNO %File number.
FLAG %Return flag.
...
FILNO, ...
FLAG, 0
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 87
122B - ReserveResource (RESRV)¶
Reserves a device or file for your program only. You release it with ReleaseResource. Some devices, e.g. terminals, have both an input and output part. You can only reserve one part with each ReserveResource call.
- A normal termination of an RT program releases all resources.
- Release the device with ReleaseResource or ForceRelease.
- A background program does not release a resource when you press the ESCAPE key.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Input or output flag. Use 0 for the input part and 1 for the output part. |
Param3 |
UNKNOWN | I | Wait flag. Use 0 to make the program wait if the resource is already reserved. U |
Param4 |
UNKNOWN | I | Return status. Only used if the wait flag is 1. A negative value is returned if |
See Also¶
ForceReserve, ReserveDir, @RESRV, @RESERVE-FILE, and @RESERVE-DEVICE-UNIT
Examples¶
Pascal
DeviceNo, IOFlag, WaitFlag, ReturnStatus : INTEGER2;
...
ReserveResource(DeviceNo, IOFlag, WaitFlag, ReturnStatus);
COBOL
01 DevNo COMP.
01 IOFlag COMP.
01 WaitFlag COMP.
01 RetStatus COMP.
...
MONITOR-CALL "ReserveResource" USING DevNo, IOFlag, WaitFlag, RetStatus.
Fortran
INTEGER DevNo, IOFlag, WaitFlag, ReturnStatus
...
Monitor_Call('ReserveResource', DevNo, IOFlag, WaitFlag, ReturnStatus)
PLANC
INTEGER: DeviceNo, IOFlag, WaitFlag, ReturnStatus
...
Monitor_Call('ReserveResource', DeviceNo, IOFlag, WaitFlag, ReturnStatus)
ASSEMBLY-500
DeviceNo : W BLOCK 1
IOFlag : W BLOCK 1
WaitFlag : W BLOCK 1
Status : W BLOCK 1
ReserveResource : EQU 37B9 + 122B
...
CALLG ReserveResource, 3, DeviceNo, IOFlag, WaitFlag
W1 =: Status
MAC
LDA (PAR %Load register A with address of parameter list.
MON 122 %Monitor call ReserveResource.
...
PAR, DEVNO %Logical device number.
IOF %Input/output flag.
WFLAG %Wait flag
STAT %Status
| DEVNO, ... | |
|------------|---|
| IOF, ... | |
| WFLAG, ... | |
| STAT, ... | |
ND-100 and ND-500 | All users | All programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 419
123B - ReleaseResource (RELES)¶
Releases a reserved device or file. The resource can then be used by another program. You reserve a device or opened file with ReserveResource. Some devices, e.g. terminals, have both an input and output part. You can only release one part with each ReleaseResource.
- A normal termination of an RT program release all resources.
- Reserve the device with ReserveResource or ForceReserve.
- CloseFile or @CLOSE-FILE releases reserved files.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Input or output flag. Use 0 for the input part and 1 for the output part. |
See Also¶
ForceRelease, ReserveResource, ReleaseDir, @RESRV, @RELEASE-FILE, and @RELEASE-DEVICE-UNIT
Examples¶
Pascal
DeviceNumber, IOFlag : INTEGER2;
...
ReleaseResource(DeviceNumber, IOFlag);
COBOL
01 DeviceNumber COMP.
01 IOFlag COMP.
...
MONITOR-CALL "ReleaseResource" USING DeviceNumber, IOFlag.
Fortran
INTEGER DeviceNumber, IOFlag
...
Monitor_Call('ReleaseResource', DeviceNumber, IOFlag)
PLANC
INTEGER : DeviceNumber, IOFlag
...
Monitor_Call('ReleaseResource', DeviceNumber, IOFlag)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
IOFlag : W BLOCK 1
ReleaseResource : EQU 3789 + 123B
...
CALLG ReleaseResource, 2, DeviceNumber, IOFlag
MAC
LDA (PAR %Load register A with address of parameter list.
MON 123 %Monitor call ReleaseResource.
...
PAR, DEVNO %Logical device number.
IOF %Input/output flag.
DEVNO, ...
IOF, ...
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 411
124B - ForceReserve (PRSRV)¶
Reserves a device for an RT program other than that which is calling. Use ForceRelease if the device is already reserved.
- You can only release peripheral devices, such as terminals and printers, and semaphores in this way.
- Programs in a waiting queue may reserve the device between your ForceRelease and ForceReserve calls if they have higher priority than your program.
- The SINTRAN III Real Time Guide (ND-860133) describes this in more detail.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Input or output flag. Use 0 for the input part and 1 for the output part. |
Param3 |
UNKNOWN | I | RT description address of the RT program to reserve the device. Use 0 for your o |
Param4 |
UNKNOWN | I | Return status. 0 means OK. A negative value is returned if the device already wa |
See Also¶
ForceRelease, ReserveResource, and @PRSRV
Examples¶
Pascal
DeviceNo, IOflag, RTProgram, Stat : INTEGER2;
...
PrivReserve(DeviceNo, IOflag, RTProgram, Stat); [Note routine name.]
COBOL
01 DeviceNo COMP.
01 IOFlag COMP.
01 RTProgram COMP.
01 Stat COMP.
...
MONITOR-CALL "ForceReserve" USING DeviceNo, IOFlag, RTProgram, Stat.
Fortran
INTEGER DeviceNo, IOFlag, RTProgram, Stat
...
Monitor_Call('ForceReserve', DeviceNo, IOFlag, RTProgram, Stat)
PLANC
INTEGER : DeviceNo, IOFlag, RTProgram, Stat
...
Monitor_Call('ForceReserve', DeviceNo, IOFlag, RTProgram, Stat)
ASSEMBLY-500
DeviceNo : W BLOCK 1
IOFlag : W BLOCK 1
RTProgram : W BLOCK 1
ForceReserve : EQU 3789 + 124B
...
CALLG ForceReserve, 3, DeviceNo, IOFlag, RTProgram
MAC
LDA (PAR %Load register A with address of parameter list.
MON 124 %Monitor call ForceReserve.
STA STAT %Store status returned.
...
STAT, 0
PAR, DEVNO %Logical device number.
IOF %Input or Output flag.
RTPRO %Address of RT description.
...
DEVNO, ...
IOF, ...
RTPRO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 211
125B - ForceRelease (PRLRS)¶
Releases a device reserved by an RT program other than that which is calling. You can then reserve the device for your own RT program. Some devices, such as terminals, have both an input and output part. You can only release one part with each ForceRelease.
- Use ReservationInfo to get the RT description address of the reserving RT program. You may then give the device back with ForceReserve.
- Programs in a waiting queue may reserve the device between your ForceRelease and ReserveResource calls if they have higher priority than your program.
- The SINTRAN III Real Time Guide (ND-860133) describes this in more detail.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Input or output flag. Use 0 for the input part and 1 for the output part. |
See Also¶
ForceReserve, ReleaseResource, and @PRLRS
Examples¶
Pascal
DeviceNumber, IOflag: INTEGER2;
...
PrivRelease(DeviceNumber, IOflag); [Note routine name.]
COBOL
01 DeviceNumber COMP.
01 IOflag COMP.
...
MONITOR-CALL "ForceRelease" USING DeviceNumber, IOflag.
Fortran
INTEGER DeviceNumber, IOflag
...
Monitor_Call('ForceRelease', DeviceNumber, IOflag)
PLANC
INTEGER : DeviceNumber, IOflag
...
Monitor_Call('ForceRelease', DeviceNumber, IOflag)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
IOflag : W BLOCK 1
ForceRelease : EQU 37B9 + 125B
...
CALLG ForceRelease, 2, DeviceNumber, IOflag
MAC
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 125 | %Monitor call ForceRelease. |
| ... | | |
| PAR, DEVNO | %Logical device number. |
| IOFL | % | Input or Output flag. |
| ... | | |
DEVNO, ...
IOFL, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 209
126B - ExactDelayStart (DSET)¶
Sets an RT program to start after a given period. It is then moved from the time queue to the execution queue. The period is specified in basic time units. A basic time unit is 1/50th of a second. The period may be from 1 to 4294967647 basic time units.
- The program may already be in the time queue. It is then reinserted according to the new specifications.
- A period less than or equal to 0 transfers the RT program to the execution queue the next time the basic time unit counter is incremented.
- SetClock, AdjustClock and @CLADJ do not affect the interval.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. Use 0 for the calling program. |
Param2 |
UNKNOWN | I | The number of basic time units to stay in the time queue. |
See Also¶
SetClock, AdjustClock, DelayStart
Examples¶
Pascal
RTProgram, BasicTimeUnits : INTEGER2;
...
ExactDelayStart(RTProgram, BasicTimeUnits);
COBOL
01 RTProgram COMP.
01 BasicTimeUnits COMP.
...
MONITOR-CALL "ExactDelayStart" USING RTProgram, BasicTimeUnits.
Fortran
INTEGER RTProgram, BasicTimeUnits
...
Monitor_Call('ExactDelayStart', RTProgram, BasicTimeUnits)
PLANC
INTEGER : RTProgram, BasicTimeUnits
...
Monitor_Call('ExactDelayStart', RTProgram, BasicTimeUnits)
ASSEMBLY-500
RTProgram : W BLOCK 1
BasicTimeUnits : W BLOCK 1
ExactDelayStart : EQU 37B9 + 126B
...
CALLG ExactDelayStart, 2, RTProgram, BasicTimeUnits
MAC
LDA (PAR %Load register A with address of parameter list.
MON 126 %Monitor call ExactDelayStart.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
127B - ExactStartup (DABST)¶
Starts an RT program at a specific time. The time is given in basic time units. A basic time unit is 1/50th of a second. The RT program is moved from the time queue to the execution queue at the specified time.
- It may already be later than the time specified. The RT program is then scheduled for the next day.
- The RT program may already be in the time queue. It is then reinserted according to the new time specifications.
- AdjustClock and @CLADJ affect the startup. The RT program starts according to the new time.
- Use GetBasicTime to read the internal time in basic time units.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of an RT description. 0 means calling program. GetRtAddress gives RT des |
Param2 |
UNKNOWN | I | StartupTime in basic time units. |
See Also¶
StartupTime. StartupTime allows you to specify the time in hours, minutes or seconds
Examples¶
Pascal
RTProgram, BasicTimeUnits : INTEGER2;
...
ExactStartup(RTProgram, BasicTimeUnits);
COBOL
01 RTProgram COMP.
01 BasicTimeUnits COMP.
...
MONITOR-CALL "ExactStartup" USING RTProgram, BasicTimeUnits.
Fortran
INTEGER RTProgram, BasicTimeUnits
...
Monitor_Call('ExactStartup', RTProgram, BasicTimeUnits)
PLANC
INTEGER : RTProgram, BasicTimeUnits
...
Monitor_Call('ExactStartup', RTProgram, BasicTimeUnits)
ASSEMBLY-500
RTProgram : W BLOCK 1
BasicTimeUnits : W BLOCK 1
ExactStartup : EQU 3789 + 127B
...
CALLG ExactStartup, 2, RTProgram, BasicTimeUnits
MAC
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 127 | %Monitor call ExactStartup. |
| ... | | |
| PAR, RTProgram | %Address of RT description. |
| TIME | %Time when the program is to be executed. |
| ... | | |
| RTPRO, ... | %A double word giving time in basic time units. |
| TIME, ... | % |
ND-100 and ND-500 | User RT and user SYSTEM | RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 179
130B - ExactInterval (DINTV)¶
Prepares an RT program for periodic execution. The interval between the executions may be from 1 to 4294967647 basic time units. A basic time unit is 1/50th of a second.
- The RT program is not started. Use, for example, StartRTProgram or @RT to start it.
- StopRTProgram, Disconnect, @ABORT or @DSCNT cancel this monitor call.
- One execution may be unfinished when it is time for the next execution. In this case, the program's restart flag is set. If the delay becomes as long as two intervals, one execution is lost.
- The interval replaces any earlier specified intervals.
- AdjustClock and @CLADJ do not affect the interval.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of an RT description. 0 means calling program. GetRtAddress gives RT des |
Param2 |
UNKNOWN | I | Period between executions in basic time units. |
See Also¶
StartupInterval, @DINTV. StartupInterval allows you to specify intervals in seconds, minutes or hours
Examples¶
Pascal
RTProgram, BasicTimeUnits : INTEGER2;
...
ExactInterval(RTProgram, BasicTimeUnits);
COBOL
01 RTProgram COMP.
01 BasicTimeUnits COMP.
...
MONITOR-CALL "ExactInterval" USING RTProgram, BasicTimeUnits.
Fortran
INTEGER RTProgram, BasicTimeUnits
...
Monitor_Call('ExactInterval', RTProgram, BasicTimeUnits)
PLANC
INTEGER : RTProgram, BasicTimeUnits
...
Monitor_Call('ExactInterval', RTProgram, BasicTimeUnits)
ASSEMBLY-500
RTProgram : W BLOCK 1
BasicTimeUnits : W BLOCK 1
ExactInterval : EQU 37B9 + 130B
...
CALLG ExactInterval, 2, RTProgram, BasicTimeUnits
MAC
LDA (PAR %Load register A with address of parameter list.
MON 130 %Monitor call ExactInterval.
...
PAR, RTPRO %Address of RT description.
TIME %Time of interval between each execution.
...
RTPRO, ...
TIME, ... %A double word giving number of basic time units.
...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 177
131B - DataTransfer (ABSTR)¶
Transfers data between physical memory and a mass-storage device, e.g. a disk or magnetic tape. You may perform various device control functions. This monitor call is mainly used by the operating system itself. For more details, refer to the ND-100 SCSI Reference Guide, ND-12.048.
- With SINTRAN III/VSX, the monitor call and the parameters must reside on a fixed segment on protection ring 2. With SINTRAN III/VSE, the monitor call and parameters must reside in resident memory.
- The physical memory area must be contiguous. Older versions of magnetic tapes or disk controllers cannot cross physical memory bank boundaries of 128 Kbytes. These magnetic tapes have ND numbers less than ND-537. The disks have ND numbers less than ND-559.
- If you write code to be independent of whether it is run on SINTRAN III VSE or VSX, you are advised to use TransferData (EXABS, mon 335).
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Function code. See the tables on the following pages. |
Param3 |
UNKNOWN | I | Physical memory address. |
Param4 |
UNKNOWN | I | Block address on the disk. See the tables on the following pages. |
Param5 |
UNKNOWN | I | Number of blocks to transfer. |
Param6 |
UNKNOWN | I | Error code. Negative if error. Contains a hardware status. |
See Also¶
TransferData, ReadFromFile, WriteToFile. TransferData allows you to use any page table
Examples¶
Pascal
DeviceNo, Func, BlockAddr, NoOfBlocks, Stat : INTEGER2;
MemoryAddr : LONGINT;
...
DataTransfer(DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat);
COBOL
01 DeviceNo COMP.
01 Func COMP.
01 BlockAddr COMP.
01 NoOfBlocks COMP.
01 Stat COMP.
01 MemoryAddr COMP PIC S9(10).
...
MONITOR-CALL "DataTransfer" USING DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat.
Fortran
INTEGER DeviceNo, Func, BlockAddr, NoOfBlocks, Stat
INTEGER*4 MemoryAddr
...
Monitor_Call('DataTransfer', DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat)
Scanned by Jonny Oddene for Sintran Data © 2020
PLANC
INTEGER : DeviceNo, Func, BlockAddr, NoOfBlocks, Stat
INTEGER4 : MemoryAddr
Monitor_Call('DataTransfer', DeviceNo, Func, MemoryAddr, & BlockAddr, NoOfBlocks, Stat)
ASSEMBLY-500
DeviceNo : W BLOCK 1
Func : W BLOCK 1
MemoryAddr : W BLOCK 1 %ND-100 memory address.
BlockAddr : W BLOCK 1
NoOfBlocks : W BLOCK 1
Stat : W BLOCK 1
DataTransfer : EQU 37B9 + 131B
CALLG DataTransfer, 5, DeviceNo, Func, MemoryAddr, &
BlockAddr, NoOfBlocks
IF K GO Error
Error, W1 =: Stat
MAC
| Code | Description |
|-------|----------------------------------------------|
| LDT | DEVNO %Logical device number. |
| LDA | (PAR %Load register A with address of parameter list. |
| MON | 131 %Monitor call DataTransfer. |
| JAN | ERROR %Error if register A is negative. |
%Continue with processing.
%Error number in register A.
| Variable | Description |
|----------|---------------------------------------|
| DEVNO | ... |
| PAR | FUNC %Function code etc. |
| DMEM | %Memory address. |
| BLOCK | %Block address. |
| NOBLK | %Number of blocks to transfer. |
% ... indicates continuation of descriptions, more variables, or other details.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 127
132B - JumpToSegment (MCALL)¶
Calls a routine on another segment in the ND-100. You can divide an ND-100 RT program between various segments. This monitor call switches one or both of the current segments according to what you specify in parameter 2. ChangeSegment may be used instead of JumpToSegment and ExitFromSegment. The segment numbers are restricted to 8-bits (values 0-255). Use SegmentFunction (MON 341) with version K of SINTRAN III.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of routine. |
Param2 |
UNKNOWN | I | New segments. The most significant byte identifies the first segment. The least |
See Also¶
ExitFromSegment, ChangeSegment, SegmentFunction
Examples¶
Pascal
SubroutineAddr, NewSegment : INTEGER2;
...
JumpToSegment(SubroutineAddr, NewSegment);
MAC
| LDT (PAR | %Load register T with address of parameter list. |
|---------------|-----------------------------------------------------|
| MON 132 | %Monitor call JumpToSegment. |
| ... | %Return after ExitFromSegment. |
| PAR, SUBR | %Address of subroutine. |
| SEG | %New segment to be loaded. |
| ... | |
| SUBR, ... | |
| SEG, 10030 | %New segments are 20B and 30B in this example. |
| | %ExitFromProgram shows the code on segment 30. |
| ND-100 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 329
133B - ExitFromSegment (MEXIT)¶
Exchanges one or both current segments. Commonly used to return after the monitor call JumpToSegment. ChangeSegment may be used instead of JumpToSegment and ExitFromSegment. The segment numbers are restricted to 8-bits (values 0-255). Use SegmentFunction (MON 341) with version K of SINTRAN III.
See Also¶
JumpToSegment, ChangeSegment, SegmentFunction
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
ExitFromSegment(SegmentNumber);
MAC
| Command | Description |
|---------|-------------|
| ... | %See JumpToSegment. |
| ... | %This code is on segment 30B. |
| SUBR, STT SEGNO | %Entry point after JumpToSegment. |
| COPY SL DT | %Save T and L registers. |
| STT RETUR | %L register contains return address. |
| ... | %Any processing on the segment. |
| ... | |
| LDT RETUR | %Restore return address in L register. |
| COPY ST DL | |
| LDT SEGNO | %Restore calling segment number. |
| MON 133 | %Monitor call ExitFromSegment. |
| SEGNO, ... | %Segment number. |
| RETUR, ... | %Return address. |
ND-100 | User RT and user SYSTEM | RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 187
134B - ExitRTProgram (RTEXT)¶
Terminates the calling RT or background program. Releases all reserved resources. The monitor call has the same effect as exit for interactive background programs.
- Batch jobs are aborted.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Pascal |
UNKNOWN | I | |
ExitRTProgram; |
UNKNOWN | I | |
COBOL |
UNKNOWN | I | |
MONITOR-CALL "ExitRTProgram". |
UNKNOWN | I | |
FORTRAN |
UNKNOWN | I | |
Monitor_Call('ExitRTProgram') |
UNKNOWN | I |
See Also¶
ExitFromProgram, StopRTProgram
Examples¶
PLANC
Monitor_Call('ExitRTProgram')
ASSEMBLY-500
ExitRTProgram: EQU 37B9 + 134B
...
CALLG ExitRTProgram, 0
MAC
MON 134 %Monitor call ExitRTProgram.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 189
135B - WaitForRestart (RTWT)¶
Sets the RT program in a waiting state. It is restarted by StartRTProgram or @RT. Execution continues after the monitor call.
Notes¶
- The RT program restarts immediately if its restart flag is set.
- No reserved devices or files are released.
Parameters¶
This monitor call has no parameters.
See Also¶
Examples¶
Pascal
WaitForRestart;
COBOL
MONITOR-CALL "WaitForRestart".
Fortran
Monitor_Call('WaitForRestart')
PLANC
Monitor_Call('WaitForRestart')
ASSEMBLY-500
WaitForRestart : EQU 37B9 + 135B
...
CALLG WaitForRestart, 0
MAC
MON 135 %Monitor call WaitForRestart.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
136B - EnableRTStart (RTON)¶
RTON RT programs cannot be started after DisableRTStart has been executed. Use EnableRTStart to do this.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. 0 means calling program. |
See Also¶
DisableRTStart, and @RTON
Examples¶
Pascal
RTProgram : INTEGER2;
...
EnableRTStart(RTProgram);
COBOL
01 RTProgram COMP.
...
MONITOR-CALL "EnableRTStart" USING RTProgram.
Fortran
INTEGER RTProgram
...
Monitor_Call('EnableRTStart', RTProgram)
PLANC
INTEGER : RTProgram
...
Monitor_Call('EnableRTStart', RTProgram)
ASSEMBLY-500
RTProgram : W BLOCK 1
EnableRTStart : EQU 37B9 + 136B
...
CALLG EnableRTStart, 1:, RTProgram
MAC
LDA (PAR %Load register A with address of parameter list.
MON 136 %Monitor call EnableRTStart.
...
PAR, RTPRO %Address of RT description.
...
RTPRO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 169
137B - DisableRTStart (RTOFF)¶
Disables start of RT programs. No RT program can be started before EnableRTStart is executed.
- RT programs in the time queue will not start. Other active RT programs are not affected.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Address of the RT description. 0 means calling program. |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
EnableRTStart, and @RTOFF
Examples¶
Pascal
RTProgram : INTEGER2;
DisableRTStart(RTProgram);
COBOL
01 RTProgram COMP.
MONITOR-CALL "DisableRTStart" USING RTProgram.
Fortran
INTEGER RTProgram
Monitor_Call('DisableRTStart', RTProgram)
PLANC
INTEGER : RTProgram
...
Monitor_Call('DisableRTStart', RTProgram)
ASSEMBLY-500
RTProgram : W BLOCK 1
DisableRTStart : EQU 37B9 + 137B
...
CALLG DisableRTStart, 1, RTProgram
MAC
LDA (PAR %Load register A with address of parameter list.
MON 137 %Monitor call DisableRTStart.
...
PAR, RTPRO %Address of RT description.
...
RTPRO, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
|-------------------|-------------------------|-------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 157
140B - ReservationInfo (WHDEV)¶
Checks that a device is not reserved. If it is reserved, you will receive information about which RT program that reserves it.
- Some devices have both an input and an output part. You have to use ReservationInfo for each part.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. |
Param2 |
UNKNOWN | I | Input or output flag. 0 means the input part. 1 means the output part. |
Param3 |
UNKNOWN | I | RT description address of reserving RT program. 0 means not reserved. Errors in |
See Also¶
ReserveResource, ReleaseResource, and @LIST-DEVICE
Examples¶
Pascal
DeviceNumber, IOFlag, ReturnValue : INTEGER2;
...
ReservationInfo(DeviceNumber, IOFlag, ReturnValue);
COBOL
01 DeviceNumber COMP.
01 IOFlag COMP.
01 ReturnValue COMP.
...
MONITOR-CALL "ReservationInfo" USING DeviceNumber, IOFlag, ReturnValue.
Fortran
INTEGER DeviceNo, IOFlag, ReturnValue
...
Monitor_Call('ReservationInfo', DeviceNo, IOFlag, ReturnValue)
PLANC
INTEGER : DeviceNumber, IOFlag, ReturnValue
...
Monitor_Call('ReservationInfo', DeviceNumber, IOFlag, ReturnValue)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
IOFlag : W BLOCK 1
ReturnValue : W BLOCK 1
ReservationInfo : EQU 37B9 + 140B
...
CALLG ReservationInfo, 2, DeviceNumber, IOFlag
W1 =: ReturnValue %Result is returned in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 140 %Monitor call ReservationInfo.
STA STAT %Store status returned.
AAA -1 %Test if -1. JAN not applicable because of RT
JAZ ERROR %addresses above 100000.
...
...
ERROR, ...
STAT, 0 %RT description address if any.
PAR, DEVNO %Logical device number.
IOF %Input or output flag.
DEVNO, ...
IOF, ...
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 415
141B - DeviceControl (IOSET)¶
Sets control information for a character device, e.g. a terminal or a printer. The control information depends on the device.
- The device must be reserved. See ReserveResource.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. You cannot use 1 for your own terminal. U |
Param2 |
UNKNOWN | I | Input or output part of the device. Use 0 for input and 1 for output. |
Param3 |
UNKNOWN | I | Address of RT description of reserving program. Use 0 for the calling program. |
Param4 |
UNKNOWN | I | Control flag. Use -2 to empty the TAD output buffer. Use -1 to reset the device. |
Param5 |
UNKNOWN | I | Return status. 0 means no errors. An illegal RT description address returns -1. |
See Also¶
DeviceFunction, @IOSET
Examples¶
Pascal
DeviceNo, IOFlag, RTProgram, CtrlFlag, Status : INTEGER2;
...
DeviceControl(DeviceNo, IOFlag, RTProgram, CtrlFlag, Status);
COBOL
01 DevNo COMP.
01 IOFlag COMP.
01 RTProgram COMP.
01 CtrlFlag COMP.
01 ReturnStatus COMP.
...
MONITOR-CALL "DeviceControl" USING DevNo, IOFlag, RTProgram, CtrlFlag,
ReturnStatus.
Fortran
INTEGER DeviceNo, IOFlag, RTProgram, CtrlFlag, ReturnStatus
...
Monitor_Call('DeviceControl', DeviceNo, IOFlag, RTProgram,
CtrlFlag, ReturnStatus)
PLANC
INTEGER : DeviceNo, IOFlag, RTProgram, CtrlFlag, ReturnStatus
...
Monitor_Call('DeviceControl', DeviceNo, IOFlag, RTProgram, CtrlFlag, ReturnStatus)
ASSEMBLY-500
DeviceNo : W BLOCK 1
IOFlag : W BLOCK 1
RTProgram : W BLOCK 1
CtrlFlag : W BLOCK 1
ReturnStatus : W BLOCK 1
DeviceControl : EQU 37B9 + 141B
...
CALLG DeviceControl, 4, DeviceNo, IOFlag, RTProgram, CtrlFlag
W1 =: ReturnStatus %Status is returned in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 141 %Monitor call DeviceControl.
JAN ERROR %Error if register A is negative.
...
ERROR, ... %Handle the error.
...
PAR, DEVNO %Logical device number.
IOF %Input or Output flag.
PROG %RealTime (program) description.
CTRL %Control flag.
...
DEVNO, ...
IOF, ...
PROG, ...
CTRL, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 141
142B - ToErrorDevice (ERMON)¶
Outputs a user-defined, real-time error. The error message is output on the error device, i.e. normally the console. The following is an example of such a message: 23.10.59 ERROR 59 AT XPROG AT 134562, USER ERROR, SUBERROR 4. See appendix A.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Error number. You may use error numbers 50 to 69. This number is output followin |
Param2 |
UNKNOWN | I | Suberror number. |
See Also¶
WarningMessage, ErrorMessage, and OutMessage
Examples¶
Pascal
ErrorNumber, SubErrorNumber : INTEGER2;
...
ToErrorDevice(ErrorNumber, SubErrorNumber);
COBOL
01 ErrorNumber COMP.
01 SubErrorNumber COMP.
...
MONITOR-CALL "ToErrorDevice" USING ErrorNumber, SubErrorNumber.
Fortran
INTEGER ErrorNumber, SubErrorNumber
...
Monitor_Call('ToErrorDevice', ErrorNumber, SubErrorNumber)
PLANC
INTEGER : ErrorNumber, SubErrorNumber
...
Monitor_Call('ToErrorDevice', ErrorNumber, SubErrorNumber)
ASSEMBLY-500
ErrorNumber : W BLOCK 1 %In ASCII characters.
SubErrorNumber : W BLOCK 1
ToErrorDevice : EQU 378B9 + 142B
...
CALLG ToErrorDevice, 2, ErrorNumber, SubErrorNumber
MAC
LDA ERRNO %Error number.
LDT SUBER %Sub-error number.
MON 142 %Monitor call ToErrorDevice.
...
ERRNO, ... %Error number as two ASCII characters.
SUBER, ... %Suberror number as two ASCII characters.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 543
143B - ExecutionInfo (RSIO)¶
Gets information about the execution of the calling program. You are told whether the program executes interactively, as a batch or mode job, or as an RT program. The monitor call returns some additional information for non-RT programs, consisting of the command input file, the command output file, and the directory index and user index of the program's owner.
Examples¶
Pascal
ExecutionMode, InputDev, OutputDev, UserIndex : INTEGER2;
...
ExecutionInfo(ExecutionMode, InputDev, OutputDev, UserIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 ExecutionMode COMP.
01 InputDev COMP.
01 OutputDev COMP.
01 UserIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ExecutionInfo" USING ExecutionMode, InputDev,
OutputDev, UserIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ExecutionMode, InputDev, OutputDev, UserIndex
Monitor_Call('ExecutionInfo', ExecutionMode, InputDev,
OutputDev, UserIndex)
C IF (ErrCode .NE. 0) THEN ...
ASSEMBLY-500
ExecutMode : W BLOCK 1
InputDev : W BLOCK 1
OutputDev : W BLOCK 1
UserIndex : W BLOCK 1
ExecutionInfo : EQU 37B9 + 143B
...
CALLG ExecutionInfo, 4, ExecutMode, InputDev, OutputDev, UserIndex
MAC
| MON | 143 | %Monitor call ExecutionInfo. |
|------|------|-----------------------------------------------|
| STA | EXMOD| %Store execution mode. |
| STT | IFILE| %Store file number of command input file. |
| COPY | SD DA| |
| STA | OFILE| %Store file number of command output file. |
| STX | INDEX| %Store directory and user indexes. |
| ... | | |
EXMOD, 0
IFILE, 0
OFILE, 0
INDEX, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 183
144B - DeviceFunction (MAGTP)¶
Performs various operations on floppy disks, magnetic tapes, Versatec plotters, and SCSI streamers.
- The parameter values depend on the device.
- If the function code is in the range 5B to 24B, except 23B, the parameter buffer and the two device dependent parameters are dummies.
- If the function code is in the range 20B to 24B, except 23B, the hardware status is returned.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code. See the following pages. |
Param2 |
UNKNOWN | I | Buffer used for data transfer to and from the device. |
Param3 |
UNKNOWN | I | Logical device number (or open-file number). See appendix B. |
Param4 |
UNKNOWN | I | First device dependent parameter. See the following pages. |
Param5 |
UNKNOWN | I | Second device dependent parameter. See the following pages. |
Param6 |
UNKNOWN | I | Device dependent status code. See the following pages. |
See Also¶
DeviceControl, @DEVICE-FUNCTION
Examples¶
Pascal
DevNo, Func, Param1, Param2 : INTEGER2;
Buff : ARRAY [0..63] OF RECORD...END;
...
DeviceFunction(Func, Buff, DevNo, Param1, Param2);
IF ErrCode <> 0 THEN ...
COBOL
01 DevNo COMP.
01 Func COMP.
01 Param1 COMP.
01 Param2 COMP.
01 Buff.
02 array COMP OCCURS 1024 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "DeviceFunction" USING Func, Buff, DevNo, Param1, Param2.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DevNo, Func, Param1, Param2
INTEGER Buff(1024)
...
Monitor Call('DeviceFunction', Func, Buff(1), DevNo, Param1, Param2)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DevNo, Func, Param1, Param2
BYTES : Buff(0:2047)
...
ON ROUTINEERROR DO
IF ErrCode >‹ 0 THEN ...
ENDON
Monitor_Call(‘DeviceFunction‘, Func, Buff(0), DevNo, Param1, Param2)
ASSEMBLY-500
DevNo : W BLOCK 1
Func : W BLOCK 1
Param1 : W BLOCK 1
Param2 : W BLOCK 1
Buff : W BLOCK 1024
ErrCode : W BLOCK 1
DeviceFunction : EQU 3789 + 144B
...
CALLG DeviceFunction, 5, Func, Buff, DevNo, Param1, Param2
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 144 %Monitor call DeviceFunction.
STA STAT %Store status returned.
...
STAT, 0
PAR, FUNC %Function to be performed.
BUFF %Address of buffer used for data transfer.
DEVNO %Logical device number.
PARA1 %Device dependent parameter.
PARA2 %Device dependent parameter.
...
FUNC, ...
BUFF, 0
**+120/ %Make a buffer of 80 words.
DEVNO, ...
PARA1, ...
PARA2, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 143
146B - PrivInstruction (IPRIV)¶
Executes a privileged machine instruction on the ND-100. Privileged instructions may, for example, turn the paging and interrupt mechanisms on and off.
- The instruction uses the register contents of the calling program. The registers may be changed.
See Also¶
Examples¶
Pascal
Instruction : INTEGER2;
...
PrivInstruction(Instruction);
COBOL
01 Instruction COMP.
...
MONITOR-CALL "PrivInstruction" USING Instruction.
Fortran
INTEGER Instruction
...
Monitor_Call('PrivInstruction', Instruction)
PLANC
INTEGER : Instruction
...
Monitor_Call('PrivInstruction', Instruction)
ASSEMBLY-500
TReg : W BLOCK 1
AReg : W BLOCK 1
DReg : W BLOCK 1
XReg : W BLOCK 1
ErrCode : W BLOCK 1
PrivInstruction : EQU 37B9 + 146B
...
CALLG PrivInstruction, 4, TReg, AReg, DReg, XReg
IF K GO Error
...
Error, W1 =: ErrCode
MAC
| LDT | INSTR | %Instruction to be executed. |
|------|--------|------------------------------------------------|
| MON | 146 | %Monitor call PrivInstruction. |
| ... | | |
| INSTR, | 150404 | %Turn off memory management system. Dangerous! |
ND-100 and ND-500 User RT and user SYSTEM RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 391
147B - CAMACFunction (CAMAC)¶
Operates the CAMAC, i.e. executes the NAF register. CAMAC is a standardized way to connect peripheral equipment to a computer. NAF data looks like this: 15 13 9 8 5 4 0 ----------------------------- | Q X | STATION | SUBADDRESS | FUNCTION | ----------------------------- If Q=1 and/or X=1, then Q and X responses from the station are automatically checked. A Control/Status register (COST register) holds some extra information. If the Function parameter is 3 (clear), the contents of COST are returned in the Value parameter. If Function=0 (read), data is returned in Value. For both these functions, parameter 2 must be ≥0 on entry. If Function=1 (write) parameter 2 must be <0 before the call. If bit 15 in Crate Number is set to 1, Value is treated as an integer instead of floating point.
Source: ND-860228.2 EN, Page N/A
150B - CAMACGLRegister (GL)¶
Read the CAMAC GL (Graded LAM -"look at me") register or the last CAMAC identification number. See under CAMACfunction (mon 147) for more general information. When a program requests interrupt, it generates a LAM to the control station. Up to 23 such signals may arrive, but for efficient handling in the computer, these must be reduced to 16 lines called Graded LAMs. The GL register, which may be read by the program, holds a bit mask giving the current LAM requests (bit=1 indicates LAM). The different graded LAM lines have individual IDENT codes (Bits 0-3: Graded LAM code. Bits 4-7: crate code. Bit 8=1 : CAMAC). A LAM Mask Register is used to enable (bit=1) or disable (bit=0) any of the 16 graded LAMs. Each time an IDENT code is read, the associated bit in the MASK register is cleared and must be set by the program to enable a new interrupt.
Source: ND-860228.2 EN, Page N/A
151B - GetRTAddress (GRTDA)¶
Gets the address of an RT description. You specify the name of the RT program. See the SINTRAN III Real Time Guide (ND-860133) for further information.
- In SINTRAN III, version J and older, this monitor call is only available to RT programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
RT-program name. |
UNKNOWN | I | The name must be given in capital letters. It must end with an apostrophe if less than 7 characters long (applies to high-level languages). When using a high-level language together with NPL or MAC, it is advisable to use an RT-program name of not more than 5 characters. |
RT program address. |
UNKNOWN | O | Non-existent RT-program names return -1. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
GetRTDescr, GetRTName, and @LIST-RT-PROGRAM
Examples¶
Pascal
RTProgramName: PACKED ARRAY [0..6] OF CHAR;
RTProgram : INTEGER2;
...
GetRTAddress (RTProgramName, RTProgram);
COBOL
01 RTProgramName PIC X(7).
01 RTProgram COMP.
...
MONITOR-CALL "GetRTAddress" USING RTProgramName, RTProgram.
Fortran
CHARACTER RTProgramName*7
INTEGER RTProgram
...
Monitor_Call('GetRTAddress', RTProgramName(1:7), RTProgram)
PLANC
BYTES : RTProgramName(0:6)
INTEGER : RTProgram
...
Monitor_Call('GetRTAddress', RTProgramName, RTProgram)
ASSEMBLY-500
RTProgramName : STRINGDATA 'SIB2A'''
RTProgram : W BLOCK 1
GetRTAddress : EQU 37B9 + 151B
...
%Get address of process SIB2A.
CALLG GetRTAddress, 1, RTProgramName
IF K GO Error
...
W1 := RTProgram
MAC
LDA (PAR %Load register A with address of parameter list.
MON 151 %Monitor call GetRTAddress.
STA RTPRO %Store address of RT description.
...
RTPRO, 0
...
PAR, RTNAM %String containing name of RT program.
...
RTNAM, 'SIB2A' %Get address of RT description of SIB2A.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
152B - GetRTName (GRTNA)¶
Gets the name of an RT program. You specify the RT description address.
- This monitor call is only available to background programs in SINTRAN III VSX, version K.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The address of the RT description. Use 0 for the calling program. |
Param2 |
UNKNOWN | I | Name of the RT program. The name is returned with a terminal apostrophe if less |
See Also¶
GetOwnRTAddress, GetRTAddress, GetRTDescr, @GET-RT-NAME, and @LIST-RT-Programs
Examples¶
Pascal
RTProgram : INTEGER2;
RTProgramName : PACKED ARRAY [0..6] OF CHAR;
...
GetRTName(RTProgram, RTProgramName);
COBOL
01 RTProgram COMP.
01 RTProgramName PIC X(7).
...
MONITOR-CALL "GetRTName" USING RTProgram, RTProgramName.
IF RTProgramName = "'"
...
Fortran
INTEGER RTProgram
CHARACTER RTProgramName*6
...
Monitor_Call1('GetRTName', RTProgram, RTProgramName(1:7))
IF RTProgramName(1) = '
...
PLANC
INTEGER : RTProgram
BYTES : RTProgramName(0:6)
...
Monitor_Call('GetRTName', RTProgram, RTProgramName)
IF RTProgramName(0)=#1 THEN
...
ASSEMBLY-500
RTProgram : W BLOCK 1
RTProgramName : BY BLOCK 7
GetRTName : EQU 37B9 + 152B
...
CALLG GetRTName, 2, RTProgram, RTProgramName
MAC
LDA (PAR %Load register A with address of parameter list.
MON 152 %Monitor call GetRTName.
SKP IF DD UEQ 0
JMP ERR
STT RTNAM %Store 1st word of packed RT name.
STD RTNAM+1 %Store 2nd two words of packed RT name.
...
ERR, ...
PAR, RTPRO %Address of RT description.
...
RTPRO, ...
RTNAM, 0
*+4/ %Make a string of 7 bytes.
| ND-100 and ND-500 | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 273
153B - CAMACIOInstruction (IOXN)¶
Executes a single IOX instruction for CAMAC. See under CAMACFunction (mon 147) for general information.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DataWord. |
UNKNOWN | IO | Input of data if write. Output if read. |
IOXCode. |
UNKNOWN | I | Physical device number in the range 2000B-4000B. |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500 (K flag indicates error). |
See Also¶
CAMACFunction, AssignCAMACLAM, BCNAFCAMAC, BCNAF1CAMAC, and CAMACGLRegister
Examples¶
Pascal
DataWord, IOXCode : INTEGER2;
...
CAMACIOInstruction (DataWord, IOXCode);
IF ErrCode <> 0 THEN ...
COBOL
01 DataWord COMP.
01 IOXCode COMP.
01 ErrCode COMP.
...
MONITOR-CALL "CAMACIOInstruction" USING DataWord, IOXCode.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DataWord, IOXCode
...
Monitor_Call('CAMACIOInstruction', DataWord, IOXCode)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DataWord, IOXCode
...
Monitor_Call('CAMACIOInstruction', DataWord, IOXCode)
ASSEMBLY-500
DataWord : W BLOCK 1
IOXCode : W BLOCK 1
ErrCode : W BLOCK 1
CAMACIOInstruction : EQU 37B9 + 153B
...
CALLG CAMACIOInstruction, 2, DataWord, IOXCode
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA DEVNO %Hardware device number.
COPY SA DD
LDA DATA %Data if write.
MON 153 %Monitor call CAMACIOInstruction.
STA DATA %Store data if read.
...
DATA,
DEVNO,
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 104
154B - AssignCAMACLAM (ASSIG)¶
Assigns a graded LAM in the CAMAC identification table to a logical device number in the logical number table. See CAMACFunction and CAMACGLRegister for more details.
- Remove the LAM by specifying logical device number -1.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. See appendix B. |
UNKNOWN | I | |
Graded LAM number. |
UNKNOWN | I | Use 0 for high priority on interrupt level 13. |
CAMAC crate number in the range 0:15. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500 (K flag indicates error). |
See Also¶
CAMACFunction, BCNAFCAMAC, BCNAF1CAMAC, CAMACIOInstruction, and CAMACGLRegister
Examples¶
Pascal
DeviceNumber, GradedLAMNumber, CrateNumber : INTEGER2;
...
AssignCAMACLAM(DeviceNumber, GradedLAMNumber, CrateNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNo COMP.
01 GradedLAMNumber COMP.
01 CrateNo COMP.
01 ErrCode COMP.
...
MONITOR-CALL "AssignCAMACLAM" USING DeviceNo, GradedLAMNumber, CrateNo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNo, GradedLAMNumber, CrateNo
...
Monitor Call('AssignCAMACLAM', DeviceNo, GradedLAMNumber, CrateNo)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNo, GradedLAMNumber, CrateNo
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('AssignCAMACLAM', DeviceNo, GradedLAMNumber, CrateNo)
ASSEMBLY-500
DeviceNo : W BLOCK 1
GradedLAMNumber : W BLOCK 1
CrateNo : W BLOCK 1
ErrCode : W BLOCK 1
AssignCAMACLAM : EQU 37B9 + 154B
...
CALLG AssignCAMACLAM, 3, DeviceNo, GradedLAMNumber, CrateNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT GRLAM %Graded LAM.
LDA CRATE %Crate number.
COPY SA DD
LDA DEVNO %Logical device number.
MON 154 %Monitor call AssignCAMACLAM.
JAN ERROR %Error if register A is negative.
...
ERROR, ... %Error number in register A.
...
GRLAM, ...
DEVNO, ...
CRATE, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 104
155B - GraphicFunction (GRAPH)¶
Executes various functions on a graphic peripheral, such as a NORDCOM terminal, a pen plotter, or a Textronix display.
Notes¶
- Some functions require a delay from the calling program. See the specifications for the peripheral in use. SuspendProgram delays a program.
- The old monitor call PLOT is obsolete.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Ycoor |
INTEGER | I | The Y-coordinate of new line relative to current reference point. |
Xcoor |
INTEGER | I | The X-coordinate of new line relative to current reference point. |
Code |
INTEGER | I | Integer code. |
DeviceNo |
INTEGER | I | Logical device number. |
Func |
INTEGER | I | Function code. 0 means PLOT. 1 means PLOTS, i.e. establish reference point and/or clear a NORDCOM screen. 2 means NEWP, i.e. select pen or screen. |
ReturnValue |
INTEGER | O | Return value. Output parameter for the PLOT function. Not used on the ND-500. |
See Also¶
Examples¶
Pascal
Xcoor, Ycoor, Code, DeviceNo, Func, ReturnValue : INTEGER2;
...
GraphicFunction(Xcoor, Ycoor, Code, DeviceNo, Func, ReturnValue);
COBOL
01 Xcoor COMP.
01 Ycoor COMP.
01 Code COMP.
01 DeviceNo COMP.
01 Func COMP.
01 ReturnValue COMP.
...
MONITOR-CALL "GraphicFunction" USING Xcoor, Ycoor, Code, DeviceNo, Func, ReturnValue.
Fortran
INTEGER Xcoor, Ycoor, Code, DeviceNo, Func, ReturnValue
...
Monitor_Call('GraphicFunction', Xcoor, Ycoor, Code, DeviceNo, Func, ReturnValue)
PLANC
INTEGER : Xcoor, Ycoor
INTEGER : Code, DeviceNo, Func, ReturnValue
...
Monitor_Call('GraphicFunction', Xcoor, Ycoor, Code, DeviceNo, &
Func, ReturnValue)
ASSEMBLY-500
Xcoor : W BLOCK 1
Ycoor : W BLOCK 1
Code : W BLOCK 1
DeviceNo : W BLOCK 1
Func : W BLOCK 1
GraphicFunction : EQU 37B9 + 155B
...
CALLG GraphicFunction, 5, Xcoor, Ycoor, Code, DeviceNo, Func
MAC
LDA (PAR %Load register A with address of parameter list.
MON 155 %Monitor call Graphic.
STA STAT %Store return status.
...
STAT, 0
PAR,
XCOOR %X coordinate of endpoint.
YCOOR %Y coordinate of endpoint.
CODE %Integer code.
DEVNO %Logical device number.
FUNC %Function.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
157B - SegmentToPageTable (ENTSG)¶
Enters a routine as a direct task or as a device driver, and "remembers" which segments have been entered (up to 24 segments). These are reentered at restart following a power failure. The routines are connected to the interrupt system. They are loaded with the RT LOADER or by DMAC.
- The segment where the routine resides must be fixed in memory. See FixScattered.
- The segments can be removed from the selected PIT by using function 4 of ChangeActiveSegments (MON 341).
- Unfixing the segment (using UnFixSegment, MON 116), removes it from the Page Index Table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number where the routine resides. |
Param2 |
UNKNOWN | I | Page table to use for the segment. In practice, this should be 3. For SINTRAN II |
Param3 |
UNKNOWN | I | The interrupt level where the direct task should run. You must specify one of th |
Param4 |
UNKNOWN | I | Start address of the routine (entry point). |
Param5 |
UNKNOWN | I | Error code in A-register = 0 : OK |
Code |
Explanation | I | |
-1 |
attempt to enter too many segments | I | |
-2 |
illegal segment number | I | |
-3 |
illegal Page Index Table | I | |
-4 |
segment is not fixed | I | |
-5 |
illegal interrupt level | I | |
-6 |
PIT already in use | I |
See Also¶
@ENTSEG
Examples¶
Pascal
SegmentNo, PageTable, InterruptLevel, StartAddr : INTEGER2;
... [Note routine name.]
EnterSegment(SegmentNo, PageTable, InterruptLevel);
COBOL
01 SegmentNo COMP.
01 PageTable COMP.
01 InterruptLevel COMP.
01 StartAddress COMP.
...
MONITOR-CALL "SegmentToPageTable" USING SegmentNo, PageTable,
InterruptLevel, StartAddress.
Fortran
INTEGER SegmentNo, PageTable
INTEGER InterLevel, StartAddress
...
Monitor_Call('SegmentToPageTable', SegmentNo, PageTable,
C InterLevel, StartAddress)
PLANC
INTEGER : SegNo, PageTable, InterruptLevel, StartAddress
...
Monitor_Call('SegmentToPageTable', SegNo, PageTable, &
InterruptLevel, StartAddress)
ASSEMBLY-500
SegNo : W BLOCK 1
PageTable : W BLOCK 1
InterLevel : W BLOCK 1
StartAddr : W BLOCK 1
SegmentToPageTable : EQU 37B9 + 157B
...
CALLG SegmentToPageTable, 4, SegNo, PageTable, InterLevel, StartAddr
MAC
LDA (PAR %Load register A with address of parameter list.
MON 157 %Monitor call SegmentToPageTable.
...
PAR, SEG %The segment where the routine resides.
PAGE %Page table to be used.
INTR %Interrupt level where the direct task will run.
ENTRY %Entry point, start address of direct task.
...
SEG, ...
PAGE, ...
INTR, ...
ENTRY, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 431
160B - FixContiguous (FIXC)¶
Places a segment in physical memory. Its pages will no longer be swapped to the disk. The segment is placed in a contiguous area of physical memory. This function is useful for time-critical operations.
- The segment must be created with the RT LOADER as a non-demand segment.
- Use UnfixSegment or @UNFIX to allow the RT LOADER to clear the segment.
- Your program normally terminates if you refer to a nonexistent segment or a demand segment. An error message is output on the error device. See parameters 1 and 3 to get a status value instead.
- Only a limited number of pages can be fixed. This limit is defined when SINTRAN III is generated. You may change it with the command CHANGE-VARIABLE in the SINTRAN-SERVICE-PROGRAM.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number to be fixed. Set bit 15 to 1 if you want a return status. |
Param2 |
UNKNOWN | I | First physical page number to be used. |
Param3 |
UNKNOWN | I | Return status if bit 15 of the segment number is set. Dummy on the ND-500. 0 mea |
See Also¶
UnfixSegment, FixScattered, FixInMemory, MemoryAllocation, FixIOArea, and @FIXC
Examples¶
Pascal
SegmentNo, PageNumber, Stat : INTEGER2;
...
FixContiguous(SegmentNo, PageNumber, Stat);
COBOL
01 SegmentNo COMP.
01 PageNumber COMP.
01 Stat COMP.
...
MONITOR-CALL "FixContiguous" USING SegmentNo, PageNumber, Stat.
Fortran
INTEGER SegmentNo, PageNumber, Stat
...
Monitor_Call('FixContiguous', SegmentNo, PageNumber, Stat)
PLANC
INTEGER : SegmentNo, PageNumber, Stat
...
Monitor_Call('FixContiguous', SegmentNo, PageNumber, Stat)
ASSEMBLY-500
SegmentNo : W BLOCK 1
PageNumber : W BLOCK 1
FixContiguous : EQU 37B9 + 160B
...
CALLG FixContiguous, 2, SegmentNo, PageNumber
MAC
LDA (PAR %Load register A with address of parameter list.
MON 160 %Monitor call FixContiguous.
STA STAT %Returned status.
...
STAT, 0
PAR, SEGNO %Segment number to be fixed.
PAGE %First physical page number.
...
SEGNO, ...
PAGE, ...
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 201
161B - INSTRING (INSTR)¶
Reads a string of characters from a peripheral device, e.g. a terminal.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DeviceNo |
Logical device number of a peripheral device. See appendix B. | I | |
TextRead |
String of characters. | I | |
NoOfBytes |
Maximum number of characters to be read. | I | |
Terminator |
Terminating character. Input stops when this character is read. | I | |
ReturnStatus |
A 16-bit integer status. Errors in parameters return -1. If bit 15:14 is 0, the maximum number of characters is read. If 1, a termination character is read. 2 means not terminated. This applies only to RT program. 3 means device error. Bit 7:0 contains the error number. If bit 15:14 are 0, 1 or 2, the number of characters read is returned in bit 13:0. | I |
See Also¶
InputString, In8AndFlag, InUpTo8Bytes, In8Bytes, In4x2Bytes, and OutString
Examples¶
Pascal
pascal
DeviceNo, NoOfBytes, Terminator, ReturnStatus : INTEGER2;
TextRead : PACKED ARRAY [0..255] OF CHAR;
...
InString(DeviceNo, TextRead, NoOfBytes, Terminator, ReturnStatus);
COBOL
01 DeviceNo COMP.
01 TextRead PIC X(256).
01 NoOfBytes COMP.
01 Terminator COMP.
01 ReturnStatus COMP.
...
MONITOR-CALL "InString" USING DeviceNo, TextRead, NoOfBytes,
Terminator, ReturnStatus.
Fortran
fortran
INTEGER DeviceNo, NoOfBytes, Terminator, ReturnStatus
CHARACTER TextRead*256
...
Monitor_Call('InString', DeviceNo, TextRead(1:256), NoOfBytes,
C Terminator, ReturnStatus)
PLANC
INTEGER : DeviceNo, NoOfBytes, Terminator, ReturnStatus
BYTES : TextRead(0:255)
Monitor_Call(‘InString’. DeviceNo, TextRead, NoOfBytes, &
Terminator, ReturnStatus)
ASSEMBLY-500
| DeviceNo | : W BLOCK 1 |
|------------|-----------------|
| TextRead | : STRING 4000B |
| NoOfBytes | : W BLOCK 1 |
| Terminator | : W BLOCK 1 |
| ReturnStatus | : W BLOCK 1 |
| InString | : EQU 37B9 + 161B |
CALLG InString, 4, DeviceNo, TextRead, NoOfBytes, Terminator
IF K GO Error
W1 := ReturnStatus %Status is returned in W1 register.
Error.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 161 %Monitor call InString.
STA STAT %Store status returned.
| STAT. 0 | |
|---------|-----------------------|
| PAR, | DEVNO %Logical device number |
| TEXT | %String read. |
| COUNT | %Maximum number of characters to be read. |
| TERM | %Terminator character. |
DEVNO,
TEXT, 0 \
**+50/ %Make a string of 80 characters.
COUNT, 120 %To read maximum 80 characters.
TERM, @' %Terminate reading when @ is read.
ND-100 and ND-500 All users All programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 323
162B - OutString (OUTST)¶
Writes a string of characters to a peripheral file, e.g., a terminal or a printer.
- You cannot use this monitor call for mass-storage files.
- The output buffer of the device may be too small. Then the program waits until the required buffer space becomes available.
- Parameters are fetched and returned through the alternative page table.
- The maximum string length is 2048 bytes (as in OutputString).
- For performance reasons, it is inadvisable to use this call from the ND-500(0). Use OutputString instead.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical device number. See appendix B. You cannot use 1 for your own terminal. U |
Param2 |
UNKNOWN | I | Character string to be output. |
Param3 |
UNKNOWN | I | Number of characters to be output. |
Param4 |
UNKNOWN | I | Return status: |
See Also¶
OutMessage, OutUpTo8Bytes, Out8Bytes, OutputString, OutNumber, OutByte, and InString
Examples¶
Pascal
DeviceNo, NoOfBytes, ReturnStatus : INTEGER2;
TextWrite : PACKED ARRAY [0..79] OF CHAR;
...
OutString(DeviceNo, TextWrite, NoOfBytes, ReturnStatus);
COBOL
01 DevNo COMP.
01 NoOfBytes COMP.
01 RetStatus COMP.
01 TextWrite PIC X(100).
...
MONITOR-CALL "OutString" USING DevNo, TextWrite, NoOfBytes, RetStatus.
Fortran
INTEGER DeviceNo, NoOfBytes, RetStatus
CHARACTER TextWrite*80
...
Monitor_Call('OutString', DeviceNo, TextWrite(1:80), NoOfBytes, RetStatus)
PLANC
INTEGER : DeviceNo, NoOfBytes, ReturnStatus
BYTES : TextWrite(0:79)
...
Monitor_Call('OutString', DeviceNo, TextWrite, NoOfBytes, ReturnStatus)
ASSEMBLY-500
DeviceNo : W BLOCK 1
TextWrite : STRINGDATA 'This is a text...'
ReturnStatus : W BLOCK 1
OutString : EQU 37B9 + 162B
...
CALLG OutString, 2, DeviceNo, TextWrite
IF K GO Error
W1 := ReturnStatus % Status is returned in W1
...
Error, ...
register.
MAC
LOA (PAR % Load register A with address of parameter list.
MON 162 % Monitor call OutString.
STA STAT % Store status returned.
...
STAT, 0
PAR, DEVNO % Logical device number.
TEXT % String to be written.
COUNT % Number of characters to be written.
...
DEVNO, ...
TEXT, 'THIS IS A TEST'
COUNT, 16 % Write 14 characters.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 385
164B - SaveSegment (WSEG)¶
Saves a segment in the ND-100. All pages in physical memory which have been changed, are written back to the disk.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number. |
See Also¶
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
SaveSegment(SegmentNumber);
COBOL
01 SegmentNumber COMP.
...
MONITOR-CALL "SaveSegment" USING SegmentNumber.
Fortran
INTEGER SegmentNumber
...
Monitor_Call('SaveSegment', SegmentNumber)
PLANC
INTEGER : SegmentNumber
...
Monitor_Call('SaveSegment', SegmentNumber)
ASSEMBLY-500
SegmentNumber : W BLOCK 1
SaveSegment : EQU 3789 + 164B
...
CALLG SaveSegment, 1, SegmentNumber
MAC
| Instruction | | Comment |
|-------------|--|---------|
| LDA | {PAR | %Load register A with address of parameter list. |
| MON | 164 | %Monitor call SaveSegment. |
| ... | | |
| PAR, SEGNO | | %Segment number. |
| ... | | |
| SEGNO, ... | | |
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 423
165B - GetInRegisters (DIW)¶
Reads the device interface registers.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
NoOfReg |
INTEGER | I | Number of registers. |
Buffer |
ARRAY | I | Buffer with logical unit. |
DataBuffer |
ARRAY | I | Data buffer. |
ErrorIndicator |
INTEGER | O | Error indicator. |
See Also¶
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
NoOfReg : W BLOCK 1
Buffer : W BLOCK 1024
DataBuffer : W BLOCK 1024
ErrorIndicator : W BLOCK 1
GetInRegisters : EQU 37B9 + 165B
...
CALLG GetInRegisters, 4, NoOfReg, Buffer, DataBuffer, ErrorIndicator
MAC
Internal usage.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
167B - AttachSegment (REENT)¶
Attaches a reentrant segment to your two current segments. The address areas of the segments may overlap. Pages in the reentrant segment may be accessed for reading, writing, or fetching instructions. When written to, a page loses its reentrancy. It is stored on one of your current overlapping segments.
Notes¶
- The segment is treated as reentrant only for the RT programs which have attached it.
- Parts of the reentrant segment may not be outside the address area of your current segments. OUTSIDE SEGMENT BOUNDS is output if these parts are written to.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
SegmentNumber |
INTEGER | I | Segment number of the reentrant segment. See @LIST-REENTRANT. |
See Also¶
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
AttachSegment(SegmentNumber);
COBOL
01 SegmentNumber COMP.
...
MONITOR-CALL "AttachSegment" USING SegmentNumber.
Fortran
INTEGER SegmentNumber
...
Monitor_Call('AttachSegment', SegmentNumber)
PLANC
INTEGER : SegmentNumber
...
Monitor_Call('AttachSegment', SegmentNumber)
ASSEMBLY-500
Not available.MAC
LDA (PAR %Load register A with address of parameter list.
MON 167 %Monitor call AttachSegment.
...
PAR,
SEGNO %Segment number
SEGNO, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
170B - UserDef0 (US0)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
171B - UserDef1 (US1)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
172B - UserDef2 (US2)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
173B - UserDef3 (US3)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
174B - UserDef4 (US4)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
175B - UserDef5 (US5)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
176B - UserDef6 (US6)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
177B - UserDef7 (US7)¶
User-defined monitor call. You can implement up to 8 monitor calls yourself. These are named UserDef0, UserDef1,... UserDef7. The short names are US0, US1,...US7. To do this you need good knowledge of SINTRAN III. See the SINTRAN III listing parts one and two.
Notes¶
- Use the DMAC subsystem or the @LOOK-AT command to patch in the MAC instructions of your monitor call. Place the code in physical memory after the SINTRAN III symbol 7ENDC. You ought to do this from a mode file. The monitor call is lost in a warm start.
- Use the SINTRAN-SERVICE-PROGRAM command DEFINE-USER-MONITOR-CALL to define the entry point of the monitor call.
- There are other ways of implementing user-defined monitor calls.
- Some monitor calls are no longer in use. You may use these for user-defined monitor calls.
- If the subsystems TPS is installed, the user-defined monitor calls 170 to 175 may not be used.
- Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Parameters¶
Both input and output parameters are user-defined. Transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Depends on the monitor call.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
200B - XMSGFunction (XMSG)¶
Performs various data communication functions. All types of programs may communicate through this monitor call. The programs may be in different computers in a network.
- The monitor call operates by sending and receiving messages.
- The COSMOS Programmer Guide (ND-860164) describes XMSGFunction.
- The COSMOS Programmer Guide (ND-860164) describes the communication facilities offered to high-level languages.
Source: ND-860228.2 EN, Page N/A
201B - HDLCfunction (MHDLC)¶
Performs various HDLC functions. A HDLC is a high-level data link to another computer. You may send data, receive data, and control HDLC. Data is sent as Driver Control Blocks (DCB). This monitor call is also used by X.21 to transfer DCBs between the user programs and the X.21 driver. The system uses the Logical Device Number to distinguish between HDLC and X.21.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code: Use 0 to send DCB to driver and 1 to receive DCB from driver |
Param2 |
UNKNOWN | I | Logical device number: There are different logical device numbers for the input |
Param3 |
UNKNOWN | I | Address of driver control block: The first word in the DCB contains command info |
Param4 |
UNKNOWN | I | Size of the used part of the driver control block in bytes. |
Param5 |
UNKNOWN | I | Depends on the function code: maximum size of the driver control block in bytes |
Param6 |
UNKNOWN | I | HDLC error code: |
Param7 |
UNKNOWN | I | 1: LDN not reserved by calling program. |
Param8 |
UNKNOWN | I | 2: Illegal LDN. Not known by SINTRAN. |
Param9 |
UNKNOWN | I | 3: No DCB in receiver queue. |
Param10 |
UNKNOWN | I | 4: No vacant buffer for DCB. |
Param11 |
UNKNOWN | I | 5: Illegal used DCB size (parameter 4). |
Param12 |
UNKNOWN | I | 6: Illegal LDN. Not permitted from this monitor call. |
Param13 |
UNKNOWN | I | 7: Max. DCB size (parameter 5) is less than used DCB size. |
Param14 |
UNKNOWN | I | 10: Illegal function. |
Param15 |
UNKNOWN | I | 11: Fatal error. The table is inconsistent. |
Examples¶
Fortran
INTEGER SendRecDCB, LDN, Buffer, DCBusize, DCBmsize
INTEGER Buff(1024)
...
Monitor_Call('HDLCFunction', SendRecDCB, LDN, Buffer(1),
C DCBusize, DCBmsizeXcoor
Scanned by Jonny Oddene for Sintran Data © 2020
ASSEMBLY-500
Func : W BLOCK 1
DevNo : W BLOCK 1
Buffer : W BLOCK 1024 %Even byte address.
USize : W BLOCK 1
MSize : W BLOCK 1
Status : W BLOCK 1
HDLCfunction : EQU 37B9 + 201B
CALLG HDLCfunction, 5, Func, DevNo, Buffer, USize, MSize,
IF K GO Error
W1 =: Status
Error,
MAC
LDA (PAR %Load address of parameter list into reg.A
MON 201 %Monitor call HDLCfunction.
JMP ERROR
JMP OK
ERROR, ... %A-reg contains error code.
PAR, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 307
206B - TerminationHandling (EDTRM)¶
Switches termination handling on and off.
Notes¶
- Termination handling for RT programs is either on or off. Background programs may have termination handling on or off for either user break or fatal errors.
See Also¶
@ENABLE-TERMINATION-HANDLING and @DISABLE-TERMINATION-HANDLING
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
On or off flag. |
UNKNOWN | I | Use 1 for on and 0 for off. |
Circumstances for termination handling. |
UNKNOWN | I | Use 1 for termination handling on user break. Use 2 for fatal errors. Specify 0 for both. Always use 0 for RT programs. |
Examples¶
Pascal
EnDisFlag, Flag : INTEGER2;
...
TerminationHandling (EnDisFlag, Flag);
IF ErrCode <> 0 THEN ...
COBOL
01 EnDisFlag COMP.
01 Flag COMP.
01 ErrCode COMP.
...
MONITOR-CALL "TerminationHandling" USING EnDisFlag, Flag.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER EnDisFlag, Flag
...
Monitor_Call('TerminationHandling', EnDisFlag, Flag)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : EnDisFlag, Flag
...
Monitor_Call('TerminationHandling', EnDisFlag, Flag)
ASSEMBLY-500
EDFLAG : W BLOCK 1
FLAG : W BLOCK 1
...
LDA PAR, EDFLAG %Load register A with address of parameter list.
MON 206 %Monitor call TerminationHandling.
PAR, EDFLAG, %Enable / Disable flag.
FLAG, %Flag indicating user break or fatal error.
...
IF K GO ERROR
...
ERROR : W1 =: ErrCode %Error code in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
207B - GetErrorInfo (RERRP)¶
Gets information about the last real-time error. The monitor call returns the error, the RT program responsible for the error, and the program address where it occurred. A flag tells whether the RT program was aborted or not.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | A 12 byte error information. It has the meaning below. |
0:1 |
Error number as two ASCII characters. Parity bits are not set. See appendix A and F for error codes together with an ASCII table. | I | |
2:3 |
Pointer to the user program address where the error occurred. | I | |
4:5 |
Additional error information. See appendix A. | I | |
6:7 |
Additional error information. See appendix A. | I | |
8:9 |
RT description address of the RT program causing the error. | I | |
10:11 |
Flag. 0 if SINTRAN III aborted the RT program. | I | |
Param8 |
UNKNOWN | I | Returned status. 0 means OK, 153B means illegal output buffer. |
Examples¶
Pascal
Buffer : RECORD...END;
ReturnStatus : INTEGER2;
...
ReadErrorParam(Buffer, ReturnStatus); [Note routine name.]
COBOL
01 Buffer.
02 array COMP OCCURS 6 TIMES.
01 ReturnStatus COMP.
...
MONITOR-CALL "GetErrorInfo" USING Buffer, ReturnStatus.
Fortran
INTEGER Buffer(6)
INTEGER ReturnStatus
...
Monitor_Call('GetErrorInfo', Buffer(1), ReturnStatus)
PLANC
BYTES : Buffer(0:11)
INTEGER : ReturnStatus
Monitor_Call('GetErrorInfo', Buffer(0), ReturnStatus)
MAC
| LDA | (PAR) | %Load register A with address of parameter list. |
|-------|--------|---------------------------------------------------|
| MON | 207 | %Monitor call GetErrorInfo. |
| JAF | ERROR | %Do error handling if register A is non-zero. |
ERROR, ... %Error number in register A.
PAR, BUFF %Buffer for returned error information.
BUFF, 0
0
0
0
0
0
| ND-100 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 241
212B - ReentrantSegment (SREEN)¶
Connects a reentrant segment to your two current segments. All modified pages of your current segments are written to the segment file before the reentrant segment is fetched. This is almost equivalent to SaveSegment followed by AttachSegment. However, ReentrantSegment is more efficient. Only the modified pages overlapping the reentrant segment are written back.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number to attach. |
See Also¶
Examples¶
Pascal
SegmentNumber : INTEGER2;
...
ReentrantSegment(SegmentNumber);
COBOL
01 SegmentNumber COMP.
...
MONITOR-CALL "ReentrantSegment" USING SegmentNumber.
Fortran
INTEGER SegmentNumber
...
Monitor_Call('ReentrantSegment', SegmentNumber)
PLANC
INTEGER : SegmentNumber
...
Monitor_Call('ReentrantSegment', SegmentNumber)
MAC
| Instruction | Parameter | Description |
|-------------|-----------|-----------------------------------------|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 212 | %Monitor call ReentrantSegment. |
| PAR, | SEGNO | %Segment number. |
| ... | SEGNO, | ... |
| ND-100 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 407
213B - GetDirUserIndexes (MUIDI)¶
Gets a directory index and a user index. You have to specify a directory name and a user name.
- Use ExecutionInfo to get the user index and the directory index of the user executing a program.
See Also¶
GetDirNameIndexes, GetUserIndex, and GetAllFileIndexes
Examples¶
Pascal
UserName : PACKED ARRAY [0..15] OF CHAR;
DirIndex, UserIndex : INTEGER2;
...
GetDirUserIndexes(UserName, DirIndex, UserIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 UserName PIC X(16).
01 DirIndex COMP.
01 UserIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetDirUserIndexes" USING UserName, DirIndex, UserIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER UserName*16
INTEGER DirIndex, UserIndex
...
Monitor Call('GetDirUserIndexes',UserName(1:16),DirIndex,UserIndex)
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : UserName(0:15)
INTEGER : DirIndex, UserIndex
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetDirUserIndexes', UserName, DirIndex, UserIndex)
ASSEMBLY-500
UserName : STRINGDATA 'A-HANSEN'''
DirIndex : W BLOCK 1
UserIndex : W BLOCK 1
ErrCode : W BLOCK 1
GetDirUserIndexes : EQU 37B9 + 213B
CALLG GetDirUserIndexes, 3, UserName, DirIndex, UserIndex
IF K GO ERROR
ERROR : W1 =: ErrCode
%ErrorCode in W1 register.
MAC
LDX (USER
%Address of string with directory and user name.
MON 213
%Monitor call GetDirUserIndexes.
JMP ERROR
%Error return from monitor call.
STT INDEX
%Normal return, store indexes.
ERROR, ...
%Error number in register A.
USER, 'A-HANSEN'
%Obtain indexes for A-HANSEN.
INDEX, 0
%Left byte: dir index. Right byte: user index.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 237
214B - GetUserName (GUSNA)¶
Gets the name of a user. The user may be on a remote computer if the COSMOS network is installed. The remote system name is then returned.
- RT programs return the name of user RT.
See Also¶
Examples¶
Pascal
DirectoryIndex, UserIndex : INTEGER2;
UserName : PACKED ARRAY [0..15] OF CHAR;
...
FindUserName(UserName, DirectoryIndex, UserIndex); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DirectoryIndex COMP.
01 UserIndex COMP.
01 UserName PIC X(16).
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "GetUserName" USING UserName, DirectoryIndex, UserIndex,
RemoteFlag, RemoteSystem.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, UserIndex, RemoteFlag
CHARACTER UserName*16, RemoteSystem*64
...
Monitor_Call('GetUserName', UserName(1:16), DirIndex, UserIndex,
RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirectoryIndex, UserIndex, RemoteFlag
BYTES : UserName(0:15), RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetUserName', UserName, DirectoryIndex, UserIndex,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500
DirectoryIndex : W BLOCK 1
UserIndex : W BLOCK 1
UserName : STRING 16
SysId : STRING 16 %Optional parameter for remote system.
ErrCode : W BLOCK 1
GetUserName : EQU 37B9 + 214B
...
CALLG GetUserName, 3, UserName, DirectoryIndex, UserIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (USER %Address of string to receive user name.
LDX INDEX %Left byte: Dir index. Right byte: User index.
LDT (REMID %Remote identification if bit 15 in register X.
MON 214 %Monitor call GetUserName.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
USER, 0 %A string of 16 characters.
*+10/
INDEX, ... %Set bit 15 if remote user.
REMID, 0 %Remote system identification string.
*+32/
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 299
215B - GetObjectEntry (DROBJ)¶
Gets information about a file. An object entry describes each file. It contains the file name, the access rights, the date last opened for read and write, the size, and more. See the file system description in appendix C. You specify the directory index, the user index, and the object index.
- There is one object entry for each version of a file.
- Only user SYSTEM can get the object entry of a file without read or write access to the file.
- You may access files on remote computer systems. The computers must be connected through a COSMOS network.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The 64 byte object entry. |
Param2 |
UNKNOWN | I | The directory index. See GetAllFileIndexes. |
Param3 |
UNKNOWN | I | The user index. See GetAllFileIndexes. |
Param4 |
UNKNOWN | I | The object index. See GetAllFileIndexes. |
Param5 |
UNKNOWN | I | Remote flag. Use 0 for the local computer and 1 for a remote computer. |
Param6 |
UNKNOWN | I | Remote system identification if remote flag is 1. |
Param7 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
ReadObjectEntry, SetObjectEntry, and GetAllFileIndexes
Examples¶
Pascal
DirIndex, UserIndex, ObjectIndex : INTEGER2;
Buffer : ARRAY [0..1] OF RECORD...END;
...
GetObjectEntry(Buffer, DirIndex, UserIndex, ObjectIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 Buffer.
02 array COMP OCCURS 32 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetObjectEntry" USING Buffer, DirIndex, UserIndex,
ObjectIndex, RemoteFlag, RemoteSystem)
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, UserIndex, ObjectIndex, RemoteFlag
CHARACTER RemoteSystem*64
INTEGER Buffer(32)
...
Monitor_Call('GetObjectEntry', Buffer(1), DirIndex, UserIndex,
ObjectIndex, RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirIndex, UserIndex, ObjIndex, RemoteFlag
BYTES : RemoteSystem(0:63)
BYTES : Buffer(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetObjectEntry', Buffer(0), DirIndex, UserIndex, ObjIndex,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500
DirIndex : W BLOCK 1
UserIndex : W BLOCK 1
ObjectIndex : W BLOCK 1
Buffer : STRING 208
SysId : STRING 16 %Optional parameter if bit 7 in DirIndex set.
ErrCode : W BLOCK 1
GetObjectEntry : EQU 3789 + 215B
...
CALLG GetObjectEntry, 4, Buffer, DirIndex, UserIndex ObjectIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (REMID %Remote identification in register D.
COPY SA DD %Set bit 15 in register T if remote file.
LDA (BUFF %Address of buffer for returned object entry.
LDT INDEX %Left byte: Dir index. Right byte: User index.
LDX OBJIX %Object index.
MON 215 %Monitor call GetObjectEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
BUFF, 0
*+40/ %Make a buffer of 32 words.
INDEX, ... %Set bit 15 if remote object entry.
OBJIX, ...
REMID, 0 %Remote identification string..
*+40/ %Make a buffer of 32 words.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 261
216B - SetObjectEntry (DWOBJ)¶
Changes the description of a file. An object entry describes each file. It contains the file name, the access rights, the date it was last opened for read and write, the size, and more. You may use GetObjectEntry to read an object entry, change parts of it, then write it back with SetObjectEntry.
- You specify the directory index, the user index, and the object index.
- There is one object entry for each version of a file.
- Only user SYSTEM can change the object entry of a file without read or write access to the file.
- On the ND-100 you may access files on remote computer systems if the computers are connected through a COSMOS network.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The 64 byte object entry. See appendix C. |
Param2 |
UNKNOWN | I | The directory index. See GetAllFileIndexes. |
Param3 |
UNKNOWN | I | The user index. See GetAllFileIndexes. |
Param4 |
UNKNOWN | I | The object index. See GetAllFileIndexes. |
Param5 |
UNKNOWN | I | Remote flag. Use 0 for the local computer and 1 for a remote computer. |
Param6 |
UNKNOWN | I | Remote system identification if remote flag is 1. |
Param7 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
GetObjectEntry, GetAllFileIndexes, and @CHANGE-OBJECT-ENTRY
Examples¶
Pascal
Buff : ARRAY [0..1] OF RECORD...END;
DirIndex, UserIndex, ObjectIndex : INTEGER2;
...
SetObjectEntry(Buff, DirIndex, UserIndex, ObjectIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 Buff.
02 array COMP OCCURS 32 TIMES.
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "SetObjectEntry" USING Buff, DirIndex, UserIndex, ObjIndex,
RemoteFlag, RemoteSystem.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Buff(32)
INTEGER DirIndex, UserIndex, ObjIndex, RemoteFlag
CHARACTER RemoteSystem*64
...
Monitor_Call('SetObjectEntry', Buff(1), DirIndex, UserIndex, ObjIndex,
RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : Buff(0:63)
INTEGER : DirIndex, UserIndex, ObjIndex, RemoteFlag
BYTES : RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetObjectEntry', Buff(0), DirIndex, UserIndex, ObjIndex,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500
Buff : H BLOCK 32
DirIndex : W BLOCK 1 %SysId used if bit 7 is set to 1.
UserIndex : W BLOCK 1
ObjIndex : W BLOCK 1
SysId : STRING 20B %Dummy if not remote system
ErrCode : W BLOCK 1
SetObjectEntry : EQU 3789 + 216B
...
CALLG SetObjectEntry, 5, Buff, DirIndex, UserIndex, ObjIndex, SysId
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (REMID) %Remote identification in register D.
COPY SA DD %Used if bit 15 in register X is set.
LDA (BUFF) %Address of buffer containing source object entry.
LDT INDEX %Left byte: Dir. index, right byte: User index.
LDX OBJIX %Object index.
MON 216 %Monitor call SetObjectEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
BUFF, 0 %
*+40/ %Make a buffer of 32 words.
INDEX, ... %Set bit 15 if remote file.
OBJIX, ...
REMID, 0 %Remote system identification string.
*+32/ %Space for the string.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 453
217B - GetAllFileIndexes (GUIOI)¶
Gets the directory index, the user index, and the object index of a file. These are indexes in the SINTRAN III File System. Appendix C describes the File System.
- The file must be open.
- You may get the information if the file is on your local computer, or on a remote computer system if the computers are connected through a COSMOS network.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number |
See Openfile. | I | |
Directory index |
The directory index. | I | |
User index |
The user index. | I | |
Object index |
The object index. | I | |
Remote flag |
Set to 0 if the file is on the local computer. A file on a remote computer returns 1. | I | |
Remote system identification |
If the remote flag is set to 1. It includes information needed to log in, and is terminated by an apostrophe, e.g. SNURRE(P-HANSEN[&&&&&])'. The password, if present, is coded as a sequence of 6 control characters. | I | |
Standard Error Code |
See appendix A. | I |
See Also¶
GetDirUserIndexes, GetDirNameIndex, GetFileIndexes, GetDirEntry, GetUserEntry, GetObjectEntry, and GetDefaultDir
Examples¶
Pascal
FileNo, DirIndex, UserIndex, ObjectIndex : INTEGER2;
...
GetAllFileIndexes(FileNo, DirIndex, UserIndex, ObjectIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "GetAllFileIndexes" USING FileNo, DirIndex, UserIndex,
ObjectIndex, RemoteFlag, RemoteSystem.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, DirIndex, UserIndex, ObjectIndex, RemoteFlag
CHARACTER RemoteSystem*64
...
Monitor_Call('GetAllFileIndexes', FileNo, DirIndex, UserIndex,
ObjectIndex, RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
Scanned by Jonny Oddene for Sintran Data © 2020
PLANC
INTEGER : FileNo, DirIndex, UserIndex, ObjectIndex, RemoteFlag
BYTES : RemoteSystem(0:63)
...
ON ROUTINEERROR DO
 IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetAllFileIndexes', FileNo, DirIndex, UserIndex, ObjectIndex,&
  RemoteFlag, RemoteSystem)
ASSEMBLY-500
| Variable | Width | Description |
|---------------|-------|-------------|
| FileNo | W BLOCK 1 | |
| DirIndex | W BLOCK 1 | %If bit 7 is set, SysId is a 5th parameter. |
| UserIndex | W BLOCK 1 | |
| ObjectIndex | W BLOCK 1 | |
| SysId | STRING 16 | %Remote system name as an optional 5th parameter. |
| ErrCode | W BLOCK 1 | |
GetAllFileIndexes : EQU 37B9 + 217B
...
CALLG GetAllFileIndexes, 4, FileNo, DirIndex, UserIndex, ObjectIndex
% This call is for a local file. For a remote file, the
% format would be:
% CALLG GetAllFileIndexes, 5, FN, DI, UI, OI, SysID
IF K GO ERROR
...
ERROR : WI =: ErrCode %ErrorCode in W1 register.
MAC
LDA (BUFF %Buffer in which to return remote system
COPY SA DD % identification
LDA FILNO %File number returned from earlier OpenFile.
MON 217 %Monitor call GetAllFileIndexes.
JMP ERROR %Error return from monitor call.
STT INDEX %Normal return, store directory and user index.
STX OBJIX %Store object index.
COPY SD DA %Remote identification in D register if bit 15
STA REMID % in T register is set.
...
ERROR, ... %Error number in register A.
...
FILNO, ...
INDEX, 0 %Dir index: left byte. User index: right byte.
OBJIX, 0 %Object index.
REMID, 0 %Address of remote identification string.
BUFF, 0
*+40/
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 221
220B - DirectOpen (DOPEN)¶
Opens a file. Files must be opened before they can be accessed. For public users this monitor call is identical to OpenFile. User SYSTEM and user RT are given the same access rights as the owner of a file.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. |
Param2 |
UNKNOWN | I | Access code. The legal values are shown below. |
0 |
Sequential write. | I | |
1 |
Sequential read. | I | |
2 |
Random read or write. | I | |
3 |
Random read only. | I | |
4 |
Sequential read or write. | I | |
5 |
Sequential write append. | I | |
6 |
Random read or write common on contiguous files. | I | |
7 |
Random read common on contiguous files. | I | |
8 |
Random read or write on contiguous files. Direct transfer for ReadFromFile, WriteToFile and DeviceFunction in RT programs. | I | |
9 |
Random read, write append for WriteToFile. | I | |
Param13 |
UNKNOWN | I | File name. |
Param14 |
UNKNOWN | I | File type. Do not include the colon. Default is 'SYMB'. |
Param15 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
FileNumber, AccCode : INTEGER2;
FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
...
DirectOpen(FileNumber, AccCode, FileName, FileType);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 AccCode COMP.
01 FileName PIC X(64).
01 FileType PIC X(4).
01 ErrCode COMP.
...
MONITOR-CALL "DirectOpen" USING FileNumber, AccCode, FileName, FileType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber, AccCode
CHARACTER FileName*64, FileType*4
...
Monitor_Call('DirectOpen', FileNumber, AccCode, FileName(1:64), FileType(1:4))
C IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber, AccCode
BYTES : FileName(0:63), FileType(0:3)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DirectOpen', FileNumber, AccCode, FileName, FileType)
ASSEMBLY-500
FileNumber : W BLOCK 1
AccCode : W BLOCK 1
FileName : STRINGDATA 'EXAMPLE'
FileType : STRINGDATA 'SYMB'
ErrCode : W BLOCK 1
DirectOpen : EQU 3789 + 220B
...
CALLG DirectOpen, 4, FileNumber, AccCode, FileName, FileType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of file name string.
LDA (TYPE %Address of file type string.
LDT ACCES %Access code.
MON 220 %Monitor call DirectOpen.
JMP ERROR %Error return from monitor call.
STA FILNO %Normal return, store the filenumber returned.
...
ERROR, ... %Error number in register A.
...
FILNO, 0
ACCES, ...
FILE, 'EXAMPLE' %Open EXAMPLE:SYMB
TYPE, 'SYMB' %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 151
221B - CreateFile (CRALF)¶
Creates a file. The file may be indexed, contiguous, or allocated. Most files are indexed. The size of indexed files expands automatically when written to. Contiguous and allocated files have shorter access time.
- You need directory access to the user who owns the file.
- User SYSTEM and RT always have the owner's access rights.
- An indexed file not yet written to may be converted to a contiguous file. Use ExpandFile or @EXPAND-FILE.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File name. Default file type is :DATA. |
Param2 |
UNKNOWN | I | Start address in the directory. Use 0 if you want to create a contiguous or inde |
Param3 |
UNKNOWN | I | Length of the file in pages. Use 0 if you want to create an indexed file. |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
@CREATE-FILE, @ALLOCATE-FILE, NewFileVersion, and ExpandFile
Examples¶
Pascal
StartAddress, NoofPages : LONGINT;
FileName : PACKED ARRAY [0..63] OF CHAR;
...
CreateFile(FileName, StartAddress, NoofPages);
IF ErrCode <> 0 THEN ...
COBOL
01 StartAddress COMP PIC S9(10).
01 NoofPages COMP PIC S9(10).
01 FileName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "CreateFile" USING FileName, StartAddress, NoofPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER*4 StartAddress, NoofPages
CHARACTER FileName*64
...
Monitor_Call('CreateFile', FileName(1:64), StartAddress, NoofPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER4 : StartAddress, NoOfPages
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('CreateFile', FileName, StartAddress, NoOfPages)
ASSEMBLY-500
StartAddress : W BLOCK 1
NoOfPages : W BLOCK 1
FileName : STRINGDATA 'EXAMPLE:SYMB'...
ErrCode : W BLOCK 1
CreateFile : EQU 37B9 + 221B
...
CALLG CreateFile, 3, FileName, StartAddress, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of file name string.
LDD START %Load register AD with start address.
LDT (SIZE %Address of double word with number of pages.
MON 221 %Monitor call CreateFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Create EXAMPLE:SYMB.
START, ... %Start address, ie. page address in directory.
... %A double word.
SIZE, ... %File size as a double word.
... %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 125
222B - GetAddressArea (GBSIZ)¶
Gets the size of your address area. Your address area may consist of one or two 128 Kbyte areas. This depends on the size of the background segments:
Notes¶
- The size of the background segment is defined when SINTRAN III is generated for your computer.
See Also¶
@CHANGE-BACKGROUND-SEGMENT-SIZE
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
The size of the address area. |
UNKNOWN | O | 100B means one 128 Kbyte address area. 200B means two 128 Kbyte address areas, one for instructions and one for data. |
Examples¶
Pascal
SegmentSize : INTEGER2;
...
GetAddressArea (SegmentSize);
IF ErrCode <> 0 THEN ...
COBOL
01 SegmentSize COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetAddressArea" USING SegmentSize.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SegmentSize
...
Monitor_Call('GetAddressArea', SegmentSize)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SegmentSize
...
Monitor_Call('GetAddressArea', SegmentSize)
ASSEMBLY-500
Not available.MAC
MON 222 %Monitor call GetAddressArea.
STA SIZE, 0 %Store returned size of background segment.
...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
227B - SetEscLocalChars (MSDAE)¶
You can terminate most programs with the ESCAPE key. A LOCAL key has a similar function. It terminates a connection to a remote computer in a network. This monitor call allows you to select other keys for these functions.
Notes¶
- The local function is only used by COSMOS.
- Appendix F shows the ASCII values of the characters.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DeviceNo |
INTEGER | I | Logical device number. See appendix B. Only used by RT programs. Your own terminal is always used in background program. |
DisconnectChar |
INTEGER | I | The local character. |
EscapeChar |
INTEGER | I | The escape character. |
See Also¶
Examples¶
Pascal
DeviceNo, DisconnectChar, EscapeChar : INTEGER2;
...
SetEscLocalChar(DeviceNo, DisconnectChar, EscapeChar);
COBOL
01 DeviceNo COMP.
01 DisconChar COMP.
01 EscapeChar COMP.
...
MONITOR-CALL "SetEscLocalChar" USING DeviceNo, DisconChar, EscapeChar.
Fortran
INTEGER DeviceNo, DisconChar, EscapeChar
...
Monitor_Call('SetEscLocalChar', DeviceNo, DisconChar, EscapeChar)
PLANC
INTEGER : DeviceNo, DisconnectChar, EscapeChar
...
Monitor_Call('SetEscLocalChar', DeviceNo, DisconnectChar, EscapeChar)
ASSEMBLY-500
DeviceNo : W BLOCK 1
DisconnectChar : W BLOCK 1
EscapeChar : W BLOCK 1
SetEscLocalChar : EQU 37B9 + 227B
...
CALLG SetEscLocalChar, 3, DeviceNo, DisconnectChar, EscapeChar
MAC
LDT DEVNO %Logical device number.
LDA CHAR %Left byte: disconnect char,
% right byte: escape char.
MON 227 %Monitor call SetEscLocalHandling.
...
DEVNO, ...
CHAR, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
230B - GetEscLocalChars (MGDAE)¶
Gets ESCAPE and LOCAL characters. You can terminate most programs with the ESCAPE key. A LOCAL key has a similar function. It terminates a connection to a remote computer in a COSMOS network. The system supervisor may select other keys for these functions. This monitor call tells you which keys to use.
Notes¶
- The local function is only used by COSMOS.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DeviceNo |
INTEGER | I | Logical device number. Only used by RT programs. Your own terminal is always used in background program. See appendix B. |
DisconnectChar |
INTEGER | O | The local character. |
EscapeChar |
INTEGER | O | The escape character. |
See Also¶
Examples¶
Pascal
DeviceNo, DisconnectChar, EscapeChar : INTEGER2;
...
GetEscLocalChar(DeviceNo, DisconnectChar, EscapeChar);
COBOL
01 DeviceNo COMP.
01 DisconChar COMP.
01 EscapeChar COMP.
...
MONITOR-CALL "GetEscLocalChar" USING DeviceNo, DisconChar, EscapeChar.
Fortran
INTEGER DeviceNo, DisconChar, EscapeChar
...
Monitor_Call('GetEscLocalChar', DeviceNo, DisconChar, EscapeChar)
PLANC
INTEGER : DeviceNo, DisconnectChar, EscapeChar
...
Monitor_Call('GetEscLocalChar', DeviceNo, DisconnectChar, EscapeChar)
ASSEMBLY-500
DeviceNo : W BLOCK 1
DisconnectChar : W BLOCK 1
EscapeChar : W BLOCK 1
GetEscLocalChar : EQU 37B9 + 230B
...
CALLG GetEscLocalChar, 3, DeviceNo, DisconnectChar, EscapeChar
MAC
LDT DEVNO %Logical device number.
MON 230 %Monitor call GetEscLocalChar.
STA CHAR %Store returned characters.
...
DEVNO, ...
CHAR, 0 %Left byte: discon char. Right byte: escape char.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
231B - ExpandFile (EXPFI)¶
Expands the file size. You use this monitor call to increase the size of contiguous and allocated files. The space following the file on the disk must be free.
- Indexed files created with 0 pages may be expanded.
- Public users must have directory access to the file. User RT and SYSTEM can expand any file.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➙ File name. It may be abbreviated, but this slows down execution. |
UNKNOWN | I | |
➙ Number of additional pages. |
UNKNOWN | I | |
➙ Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
CreateFile, @EXPAND-FILE
Examples¶
Pascal
NoOfPages : LONGINT;
FileName : PACKED ARRAY [0..63] OF CHAR;
...
ExpandFile(FileName, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 NoOfPages COMP PIC S9(10).
01 FileName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "ExpandFile" USING FileName, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER*4 NoOfPages
CHARACTER FileName*64
...
Monitor_Call('ExpandFile', FileName(1:64), NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER4 : NoOfPages
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode >‹ O THEN ...
ENDON
Monitor_Call('ExpandFile', FileName, NoOfPages)
ASSEMBLY-500
NoOfPages : W BLOCK 1
FileName : STRING 64
ErrCode : W BLOCK 1
ExpandFile : EQU 37B9 + 231B
...
CALLG ExpandFile, 2, FileName, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of file name string.
LDT (PAGES %Address of double word with number of pages.
MON 231 %Monitor call ExpandFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %File name.
PAGES, ... %A double word.
... %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 191
232B - RenameFile (MRNFI)¶
See also @RENAME-FILE.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Old file name. |
Param2 |
UNKNOWN | I | New file name with file type, e.g. ADDRESS-LIST:TEXT. Do not use the directory n |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
@RENAME-FILE
Examples¶
Pascal
OldFileName, NewFileName : PACKED ARRAY [0..63] OF CHAR;
...
RenameFile(OldFileName, NewFileName);
IF ErrCode <> 0 THEN ...
COBOL
01 OldFileName PIC X(64).
01 NewFileName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "RenameFile" USING OldFileName, NewFileName.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER OldFileName*64, NewFileName*64
...
Monitor_Call('RenameFile', OldFileName(1:64), NewFileName(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : OldFileName(0:63), NewFileName(0:63)
...
ON ROUTINEERROR DO
  IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('RenameFile', OldFileName, NewFileName)
ASSEMBLY-500
OldFileName : STRINGDATA 'TEXT:TEXT'
NewFileName : STRINGDATA 'EXAMPLE:SYMB'
ErrCode : W BLOCK 1
RenameFile : EQU 37B9 + 232B
...
CALLG RenameFile, 2, OldFileName, NewFileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode     %ErrorCode in W1 register.
MAC
LDX  (OLDFI)  %Address of string with old file name.
LDA  (NEWFI)  %Address of string with new file name.
MON   232    %Monitor call RenameFile.
JMP   ERROR    %Error return from monitor call.
...        %Normal return.
ERROR, ...    %Error number in register A.
OLDFI, 'TEXT:TEXT'   %Change name of file TEXT:TEXT to EXAMPLE:SYMB.
NEWFI, 'EXAMPLE:SYMB'
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 413
233B - SetTemporaryFile (STEFI)¶
Defines a file to store information temporarily. The file can be read once. When it is closed, its contents are deleted. The empty file will still exist.
- GetObjectEntry and @FILE-STATISTICS shows whether a file is temporary or not.
- Files to be printed are commonly defined as temporary. Their contents exist until they have been printed.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
→ File name. |
I | ||
← Standard Error Code. |
See appendix A. | I |
See Also¶
CreateFile, @SET-TEMPORARY-FILE
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
...
SetTemporaryFile(FileName);
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "SetTemporaryFile" USING FileName.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64
...
Monitor_Call('SetTemporaryFile', FileName(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetTemporaryFile', FileName)
ASSEMBLY-500
FileName : STRINGDATA 'TEMP-FILE:SYMB''
ErrCode : W BLOCK 1
SetTemporaryFile : EQU 37B9 + 233B
...
CALLG SetTemporaryFile, 1, FileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of string with file name.
MON 233 %Monitor call SetTemporaryFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'TEMP-FILE:SYMB' %Treat TEMP-FILE:SYMB as a temporary file.
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 473
234B - SetPeripheralName (SPEFI)¶
Defines a peripheral file, e.g. a printer. You connect a file name to the logical device number of the peripheral.
- The file name should exist in advance, but with no file type. Otherwise you may include the file name in double quotes ("..."). An empty file type is default.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ File name for the peripheral. See appendix G. |
UNKNOWN | I | |
➞ Logical device number. See appendix B. |
UNKNOWN | I | |
⬅ Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
SetTerminalFile, @SET-PERIPHERAL-FILE
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
DeviceNumber : INTEGER2;
...
SetPeripheralName(FileName, DeviceNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 DeviceNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetPeripheralName" USING FileName, DeviceNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64
INTEGER DeviceNumber
...
Monitor_Call('SetPeripheralName', FileName(1:64), DeviceNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : FileName(0:63)
INTEGER : DeviceNumber
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetPeripheralName', FileName, DeviceNumber)
ASSEMBLY-500
FileName : STRINGDATA 'LINE-PRINTER''' %Use LINE-PRINTER as name of dev.
DeviceNumber : W DATA 5 % no. 5 (line printer no. 1).
ErrCode : W BLOCK 1
SetPeripheralName : EQU 37B9 + 234B
...
CALLG SetPeripheralName, 2, FileName, DeviceNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of string with file name.
LDA DEVNO %Logical device number.
MON 234 %Monitor call SetPeripheralFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'LINE-PRINTER' %Use LINE-PRINTER as name of device number 5.
DEVNO, 5 %Device number of line printer no. 1.
| ND-100 and ND-500 | User SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 457
235B - ScratchOpen (SCROP)¶
Opens a file as a scratch file. A maximum of 64 pages of the file is kept when you close the file. Use SET-CLOSED-FILE-SIZE in the SINTRAN-SERVICE-PROGRAM to change this.
- The scratch file is closed like any other opened file.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number. |
UNKNOWN | O | Used by monitor calls for input and output. |
Access code. |
UNKNOWN | I | 0 = Sequential write, 1 = Sequential read, 2 = Random read or write, 3 = Random read only, 4 = Sequential read or write, 5 = Sequential write append, 6 = Random read or write common on contiguous files, 7 = Random read common on contiguous files, 8 = Random read or write on contiguous files. Direct transfer for ReadFromFile, WriteToFile and DeviceFunction in RT programs, 9 = Random read, write append for WriteToFile and ReadFromFile. |
File name. |
UNKNOWN | I | The name of the file to be opened. |
Default file type. |
UNKNOWN | I | Specifies the file type. The colon should not be included. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
OpenFile, SetPermanentOpen, DirectOpen, CloseFile, and @SCRATCH-OPEN
Examples¶
Pascal
FileNo, AccessCode : INTEGER2;
FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
...
ScratchOpen (FileNo, AccessCode, FileName, FileType);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 AccessCode COMP.
01 FileName PIC X(64).
01 FileType PIC X(4).
01 ErrCode COMP.
...
MONITOR-CALL "ScratchOpen" USING FileNo, AccessCode, FileName, FileType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, AccessCode
CHARACTER FileName*64, FileType*4
...
Monitor_Call('ScratchOpen', FileNo, AccessCode, FileName(1:64), FileType(1:4))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNo, AccessCode
BYTES : FileName(0:63), FileType(0:3)
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('ScratchOpen', FileNo, AccessCode, FileName, FileType)
ASSEMBLY-500
FileNo : W BLOCK 1
AccessCode : W BLOCK 1
FileName : STRINGDATA 'EXAMPLE'''
FileType : STRINGDATA 'SYMB'''
ErrCode : W BLOCK 1
ScratchOpen : EQU 37B9 + 235B
...
CALLG ScratchOpen, 4, FileNo, AccessCode, FileName, FileType
IF K GO ERROR
...
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of file name string.
LDA (TYPE %Address of default file type string.
LDT ACODE %Access code.
MON 235 %Monitor call ScratchOpen.
JMP ERROR %Error return from monitor call.
STA FILNO %Normal return, store file number.
...
ERROR, ... %Error number in register A.
...
FILNO, 0
ACODE, ...
FILE, 'EXAMPLE' %Open EXAMPLE:SYMB as a scratch file.
TYPE, 'SYMB'
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
236B - SetPermanentOpen (SPERD)¶
Sets a file permanently open. The file is not closed by CloseFile with -1 as file number. You have to specify the file number or -2.
- The file must already be open.
- Only mass-storage files can be set permanently open.
- The file is not closed when your program terminates.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number |
See OpenFile. | I | |
Standard Error |
Code. See appendix A. | I |
See Also¶
OpenFile, CloseFile, and @SET-PERMANENT-OPEN
Examples¶
Pascal
FileNumber : INTEGER2;
...
SetPermanentOpen(FileNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetPermanentOpen" USING FileNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber
...
Monitor_Call('SetPermanentOpen', FileNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetPermanentOpen', FileNumber)
ASSEMBLY-500
FileNumber : W BLOCK 1
ErrCode : W BLOCK 1
SetPermanentOpen : EQU 3789 + 236B
...
CALLG SetPermanentOpen, 1, FileNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
MON 236 %Monitor call SetPermanentOpen.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 459
237B - SetFileAccess (SFACC)¶
Sets the access protection for a file. You should specify the access for yourself, friends, and other users. The default file access for yourself is full access. Your friends have read access only. Other users have no access.
- You need directory access to a file to change the file access. User SYSTEM and RT may set the access protection for any files.
- Use the characters R, W, A, C, D, and N to specify the legal file access. R means Read. W means Write. A means Append to the end of a file. C means Common, i.e. more than one user may access the file at a time. D means Directory access, i.e. the file may be deleted, new versions created, etc. N means No access.
- Use @FILE-STATISTICS to check the file access.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File name. It is most efficient to use unabbreviated file names, e.g. EXAMPLE:TE |
Param2 |
UNKNOWN | I | Public access. Use N or a combination of R, W, A, C, and D. Public access is typ |
Param3 |
UNKNOWN | I | Friend access. Use N or a combination of R, W, A, C, and D. Friend access is typ |
Param4 |
UNKNOWN | I | Own access. Use N or a combination of R, W, A, C, and D. Own access is typically |
Param5 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
CreateFriend, SetObjectEntry, @SET-FILE-ACCESS, and @SET-DEFAULT-FILE-ACCESS
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
PubAccess, FriendAccess, OwnAccess : PACKED ARRAY [0..4] OF CHAR;
...
SetFileAccess(FileName, PubAccess, FriendAccess, OwnAccess);
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 PubAcc PIC X(5).
01 FriendAcc PIC X(5).
01 OwnAcc PIC X(5).
01 ErrCode COMP.
...
MONITOR-CALL "SetFileAccess" USING FileName, PubAcc, FriendAcc, OwnAcc.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64, PubAcc*5, FriendAcc*5, OwnAcc*5
...
Monitor_Call('SetFileAccess', FileName(1:64), PubAcc(1:5),
FriendAcc(1:5), OwnAcc(1:5))
IF (ErrCode .NE. 0) THEN ...
Scanned by Jonny Oddene for Sintran Data © 2020
PLANC
BYTES : FileName(0:63), PubAccess(0:5), FriendAccess(0:5), OwnAccess(0:5)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetFileAccess', FileName, PubAccess, FriendAccess, OwnAccess)
ASSEMBLY-500
FileName : STRINGDATA 'EXAMPLE:SYMB''' %Set access of file EXAMPLE:SYMB to
PubAccess : STRINGDATA 'N''' % no public access
FriendAccess : STRINGDATA 'RA''' % read, append access for friends
OwnAccess : STRINGDATA 'RWACD''' % full own access
ErrCode : W BLOCK 1
SetFileAccess : EQU 37B9 + 237B
...
CALLG SetFileAccess, 4, FileName, PubAccess, FriendAccess, OwnAccess
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of string with file name.
LDT (PUBAC %Address of string with public access characters.
LDA (FRIAC %Address of string with own access characters.
COPY SA DD
LDA (OWNAC %Address of string with friend access characters.
MON 237 %Monitor call SetFileAccess.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Change access for EXAMPLE:SYMB.
PUBAC, 'N' %No public access.
FRIAC, 'RA' %Read write append access for friend.
OWNAC, 'RWACD' %Full own access.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 447
240B - AppendSpooling (APSPE)¶
Prints a file. The printer has a queue of files waiting to be output. The file is appended to this queue. One or more copies can be printed.
- You may connect a text, e.g. INVOICE, to the job. The operator uses the text to select all files to be printed on special paper.
- SINTRAN III, version K, allows both the file and the printer to be on remote systems. The complete standard syntax for remote file specification is as follows:
system(user(password:project)).(directory:user)file:type;version
See Also¶
CloseSpoolingFile, @APPEND-SPOOLING-FILE
Examples¶
Pascal
FileName, PrinterName : PACKED ARRAY [0..63] OF CHAR;
NoOfCopies : INTEGER2;
UserText : PACKED ARRAY [0..127] OF CHAR;
...
AppendSpooling(FileName, PrinterName, NoOfCopies, UserText);
IF ErrCode <> 0 THEN ...
COBOL
01 NoOfCopies COMP.
01 FileName PIC X(64).
01 PrinterName PIC X(64).
01 UserText PIC X(128).
01 ErrCode COMP.
...
>>> Comment: If UserText is present, add 32768 to NumberOfCopies
ADD 32768 TO NoOfCopies.
MONITOR-CALL "AppendSpooling" USING FileName, PrinterName, NoOfCopies, UserText.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER NoOfCopies
CHARACTER FileName*64, PrinterName*64, UserText*128
...
C If UserText is present, add 100000B to NoOfCopies
NoOfCopies=NoOfCopies+100000B
CALL Monitor_Call('AppendSpooling', FileName(1:64), PrinterName(1:64),
& NoOfCopies, UserText(1:128))
C IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : NoOfCopies
BYTES : FileName(0:63), PrinterName(0:63), UserText(0:127)
...
% If UserText is present, set bit 15 in NoOfCopies to 1
TRUE =: Bit(NoOfCopies,15)
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('AppendSpooling', FileName, PrinterName, NoOfCopies, UserText)
ASSEMBLY-500
NoOfCopies : W BLOCK 1
FileName : STRINGDATA 'EXAMPLE:SYMB'...
PrinterName : STRINGDATA 'LINE-PRINTER'...
UserText : STRINGDATA 'File queued'...
ErrCode : W BLOCK 1
AppendSpooling : EQU 3789 + 240B
...
CALLG AppendSpooling, 4, FileName, PrinterName, NoOfCopies, UserText
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Memory address of file name.
LDT NOCOP %Number of copies to be printed in bit 0:14.
LDA (TEXT %Memory address of message to the error device.
COPY SA DO
LDA (DEV %Memory address of name of spooling device.
MON 240 %Monitor call AppendSpooling.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Send EXAMPLE:SYMB to a printer.
DEV, 'LINE-PRINTER' %Print file on the device LINE-PRINTER.
NOCOP, ... %Bit 15 set to 1 means print message.
TEXT, 'GUMMED LABELS' %Message to be send to error device.
`ND-100 and ND-500` | `All users` | `All programs`
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 79
241B - NewUser (SUSCN)¶
Switches the user name you are logged in under. The command is similar to logging out and then logging in as another user. Your program continues under this user name.
- Restore the old user name with OldUser.
- OldUser always resets the first user name. From the ND-100 you may execute NewUser more than once without OldUser in between. This is not the case from the ND-500.
- If originally logged in as user RT, it is not possible to log in as user SYSTEM.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | New user name. |
Param2 |
UNKNOWN | I | Password. Use the contents of the password location in the user entry. |
Param3 |
UNKNOWN | I | Project password. |
Param4 |
UNKNOWN | I | Return status. Public users return 0. User SYSTEM returns 1. User RT returns 2. |
Param5 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
OldUser, @ENTER
Examples¶
Pascal
UserName, ProjPasswd : PACKED ARRAY [0..15] OF CHAR;
UserPasswd : INTEGER2;
ReturnStatus : INTEGER2;
...
NewUser(UserName, UserPasswd, ProjPasswd, ReturnStatus);
IF ErrCode <> 0 THEN ...
COBOL
01 UserName PIC X(16).
01 UserPasswd COMP.
01 ProjPasswd PIC X(16).
01 RetStat COMP.
01 ErrCode COMP.
...
MONITOR-CALL "NewUser" USING UserName, UserPasswd, ProjPasswd, RetStat.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ReturnStatus, UserPasswd
CHARACTER UserName*16, ProjPasswd*16
...
Monitor_Call1('NewUser', UserName(1:16), UserPasswd,
C ProjPasswd(1:16), ReturnStatus)
IF (ErrCode .NE. 0) THEN ...
ASSEMBLY-500
UserType : W BLOCK 1
UserName : STRINGDATA 'A-HANSEN'''
UserPasswd : W BLOCK 1
ProjPasswd : STRING 40B
ErrCode : W BLOCK 1
NewUser : EQU 37B9 + 241B
...
CALLG NewUser, 4, UserName, UserPasswd, ProjPasswd, UserType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT (PROJP %Address of project password.
LDX (USER %Address of string containing user name.
LDA (PASSW %User password coded as integer.
MON 241 %Monitor call NewUser.
JMP ERROR %Error return from monitor call.
STA STAT %Normal return, store status returned.
...
ERROR, ... %Error number in register A.
USER, 'A-HANSEN' %Use A-HANSEN as user name.
PASSW, ... %Password as represented in the user entry.
PROJP, ...
STAT, 0
| ND-100 and ND-500 | User RT and user SYSTEM | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 353
242B - OldUser (RUSCN)¶
Switches back to the user name you were logged in under before NewUser. The command is similar to logging out and then log in as another user. Your program continues under the old user.
- The monitor call has no function if NewUser has not been executed.
- You may execute NewUser more than once without OldUser in between. OldUser always reset the first user name.
See Also¶
NewUser, QENTER
Examples¶
Pascal
OldUser;
IF ErrCode <> 0 THEN ...
COBOL
01 ErrCode COMP.
...
MONITOR-CALL "OldUser"
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
Monitor Call('OldUser')
IF (ErrCode .NE. 0) THEN ...
PLANC
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('OldUser')
ASSEMBLY-500
ErrCode : W BLOCK 1
OldUser : EQU 37B9 + 242B
...
CALLG OldUser, 0
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
MON 242 %Monitor call OldUser.
JMP ERROR %Error return from monitor call.
%Normal return.
ERROR, ... %Error number in register A.
...
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 365
243B - GetDirNameIndex (FDINA)¶
Gets directory index and name index. The name index identifies the device description of the disk. You have to specify the directory name.
See Also¶
GetDirUserIndexes, GetAllFileIndexes, and GetDirEntry
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Directory name. |
STRING | I | Directory name string (1-16 characters). |
Directory index. |
UNKNOWN | O | |
Name index. |
UNKNOWN | O | |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500, or register A for MAC. |
Examples¶
Pascal
DirName : PACKED ARRAY [0..15] OF CHAR;
DirIndex, NameIndex : INTEGER2;
...
GetDirNameIndex (DirName, DirIndex, NameIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 DirName PIC X(16).
01 DirIndex COMP.
01 NameIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetDirNameIndex" USING DirName, DirIndex, NameIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER DirName*16
INTEGER DirIndex, NameIndex
...
Monitor_Call('GetDirNameIndex', DirName (1:16), DirIndex, NameIndex)
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : DirName(0:15)
INTEGER : DirIndex, NameIndex
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('GetDirNameIndex', DirName, DirIndex, NameIndex)
ASSEMBLY-500
DirName : STRINGDATA 'PACK-TWO'''
DirIndex : W BLOCK 1
NameIndex : W BLOCK 1
ErrCode : W BLOCK 1
GetDirNameIndex : EQU 37B9 + 243B
...
CALLG GetDirNameIndex, 3, DirName, DirIndex, NameIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (DIRNAM %Address of directory name string.
MON 243 %Monitor call GetDirNameIndex.
JMP ERROR %Error return from monitor call.
STT DIRIX %Normal return, store directory index.
STA NAMIX %Store name index.
...
ERROR, ... %Error number in register A.
...
DIRNAM, 'PACK-TWO' %Obtain directory and name index of PACK-TWO.
DIRIX, 0
NAMIX, 0
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
244B - GetDirEntry (GDIEN)¶
Gets information about a directory. The directory entry is returned. Appendix C describes the file system in more detail.
- You may access directories on remote systems. The computers must be connected through a COSMOS network.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The directory index. See GetDirUserIndexes. |
Param2 |
UNKNOWN | I | The 42-byte directory entry. See appendix C. |
Param3 |
UNKNOWN | I | Flag indicating whether or not the disk has spare-track allocation. |
Param4 |
UNKNOWN | I | Remote flag. Use 0 for the local computer and 1 for a remote computer. |
Param5 |
UNKNOWN | I | Remote system identification if remote flag is 1. |
Param6 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
GetDirUserIndexes, WriteDirEntry, GetUserEntry, and GetObjectEntry
Examples¶
Pascal
DirectoryIndex, Flag : INTEGER2;
DirEntry : ARRAY [0..1] OF RECORD...END;
...
GetDirEntry(DirectoryIndex, DirEntry, Flag);
IF ErrCode <> 0 THEN ...
COBOL
01 DirectoryIndex COMP.
01 Flag COMP.
01 DirEntry.
02 array COMP OCCURS 24 TIMES.
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "GetDirEntry" USING DirectoryIndex, DirEntry, Flag,
RemoteFlag, RemoteSystem)
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirectoryIndex, Flag, RemoteFlag
CHARACTER RemoteSystem*64
INTEGER DirEntry(24)
...
Monitor_Call('GetDirEntry', DirectoryIndex, DirEntry(1), Flag,
RemoteFlag, RemoteSystem(1:16))
C IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirectoryIndex, Flag, RemoteFlag
BYTES : DirEntry(0:47)
BYTES : RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetDirEntry', DirectoryIndex, DirEntry(0), Flag, RemoteFlag, &
RemoteSystem)
ASSEMBLY-500
DirectoryIndex : W BLOCK 1 %Bit 7 set if SysId is supplied.
Flag : W BLOCK 1
DirEntry : W ARRAY 25B
SysId : STRING 16 %Remote system name as an optional 4th parameter.
ErrCode : W BLOCK 1
GetDirEntry : EQU 37B9 + 244B
...
CALLG GetDirEntry, 3, DirectoryIndex, DirEntry, Flag
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DIRIX %Directory index.
LDX (BUFF %Buffer to receive directory entry.
LDA (REMID %Remote system identification in D register.
COPY SA DD %Used only if bit 15 in X register is set.
MON 244 %Monitor call GetDirEntry.
JMP ERROR %Error return from monitor call.
...
%Normal return.
%A-reg.=1 or 5 : disk has spare-track allocation.
%A-reg.=3 : no spare-track allocation.
ERROR, ... %Error number in register A.
...
DIRIX, ... %Set bit 15 if remote system.
BUFF, 0 %
*+30/ %24 word long buffer.
REMID, 0 %Remote identification string.
*+40/ %32 words for string.
| ND-100 and ND-500 | User RT and user SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 233
245B - GetNameEntry (GNAEN)¶
Gets information about devices, e.g. disks and floppy disks. The monitor call returns the name entry of a device. You specify the name index.
- GetDirNameIndex provides the name index.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The name index of the device. |
Param2 |
UNKNOWN | I | The 28 byte name entry. It contains the following: |
0:15 |
Device name. | I | |
16:19 |
Storage capacity in pages (PAVA1 and PAVA2) | I | |
20:21 |
Sector size of the disk. | I | |
22:23 |
Various flags. | I | |
Bit 15 |
Cartridge disk. | I | |
Bit 14 |
Not used. | I | |
Bit 13 |
Single user device, e.g. floppy disk or magnetic tape. | I | |
Bit 12 |
Not used. | I | |
Bit 11 |
Magnetic tape station. | I | |
Bit 10 |
EEC disks. | I | |
Bit 9 |
Not used. | I | |
Bit 8 |
Floppy disk. | I | |
Bit 7 |
Phoenix disk. | I | |
Bit 6 |
Little Winchester disk. | I | |
Bit 5 |
SCSI streamer. | I | |
Bit 4 |
SCSI disk. | I | |
Bit 3 |
Read-only WORM disk (optical). | I | |
Bit 2:0 |
Maximum number of subunits on this device (0002 means 8 subunits, 0012-1112 means maximum number of subunits). | I | |
24:25 |
Address of data transfer routine in SINTRAN III. | I | |
26:27 |
Logical device number of the disk's semaphore. | I | |
Param23 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
NameIndex : INTEGER2;
NameTableEntry : RECORD...END;
...
GetNameEntry(NameIndex, NameTableEntry);
IF ErrCode <> 0 THEN ...
COBOL
01 NameIndex COMP.
01 NameTableEntry.
02 array COMP OCCURS 14 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetNameEntry" USING NameIndex, NameTableEntry.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER NameIndex
INTEGER NameTableEntry(14)
...
PLANC
INTEGER : NameIndex
BYTES : NameTableEntry(0:27)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetNameEntry', NameIndex, NameTableEntry(0))
ASSEMBLY-500
NameIndex : W BLOCK 1
NameTableEntry : BY BLOCK 34B
ErrCode : W BLOCK 1
GetNameEntry : EQU 37B9 + 245B
...
CALLG GetNameEntry, 2, NameIndex, NameTableEntry
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT NAMIX %Name index.
LDX (BUFF %Address of buffer to receive name table entry.
MON 245 %Monitor call GetNameEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
NAMIX, ...
BUFF, 0
+*16/ %Make a buffer of 14 words.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 257
246B - ReserveDir (REDIR)¶
Reserves a directory for special use. The directory must be entered. Other users will not be able to open files on a reserved directory.
- All files in the directory must be closed.
- Only user RT and the current user may be logged in if main directory.
- Use ReleaseDir to release the directory.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Directory index. Use @LIST-DIRECTORIES to find the directory index. |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
DirectoryIndex : INTEGER2;
...
ResDirectory(DirectoryIndex); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DirectoryIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ReserveDir" USING DirectoryIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirectoryIndex
...
Monitor_Call('ReserveDir', DirectoryIndex)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirectoryIndex
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReserveDir', DirectoryIndex)
ASSEMBLY-500
| DirectoryIndex : W BLOCK 1 |
|----------------------------|
| ErrCode : W BLOCK 1 |
| ReserveDir : EQU 3789 + 246B |
| ... |
| CALLG ReserveDir, 1, DirectoryIndex |
| IF K GO ERROR |
| ... |
| ERROR : W1 =: ErrCode |
%ErrorCode in W1 register.
MAC
LDT DIRIX %Directory index.
MON 246 %Monitor call ReserveDir.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DIRIX, ...
ND-100 and ND-500 | User RT and user SYSTEM | All programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 417
247B - ReleaseDir (RLDIR)¶
Releases a directory. The directory must have been reserved with ReserveDir.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Directory index. Use @LIST-DIRECTORIES to find the directory index. |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
DirectoryIndex : INTEGER2;
...
RelDirectory(DirectoryIndex); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DirectoryIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ReleaseDir" USING DirectoryIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirectoryIndex
...
Monitor_Call('ReleaseDir', DirectoryIndex)
IF (ErrCode .NE. 0) THEN ...
ASSEMBLY-500
DirectoryIndex : W BLOCK 1
ErrCode : W BLOCK 1
ReleaseDir : EQU 3789 + 247B
...
CALLG ReleaseDir, 1, DirectoryIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DIRIX %Directory index.
MON 247 %Monitor call ReleaseDir.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DIRIX, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 409
250B - GetDefaultDir (FDFDI)¶
Gets the user’s default directory. The directory index and the user index are returned.
- Use ExecutionInfo to get the user index and the directory index of the user executing the program.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ |
The user name. A user in a remote system may be identified. | I | |
➞ |
The directory index. | I | |
➞ |
The user index in the directory. | I | |
➞ |
Standard Error Code. See appendix A. | I |
See Also¶
GetDirUserIndexes, GetDirNameIndex, GetFileIndexes, GetDirEntry, GetUserEntry, GetObjectEntry, and GetAllFileIndexes
Examples¶
Pascal
DirectoryIndex, UserIndex : INTEGER2;
UserName : PACKED ARRAY [0..15] OF CHAR;
...
GetDefaultDir(UserName, DirectoryIndex, UserIndex);
IF ErrCode <> 0 THEN ...
COBOL
01 DirectoryIndex COMP.
01 UserIndex COMP.
01 UserName PIC X(16).
01 ErrCode COMP.
...
MONITOR-CALL "GetDefaultDir" USING UserName, DirectoryIndex, UserIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, UserIndex
CHARACTER UserName*16
...
Monitor_Call('GetDefaultDir', UserName(1:16), DirIndex, UserIndex)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirectoryIndex, UserIndex
BYTES : UserName(0:15)
...
ON ROUTINEERROR DO
IF ErrCode >0 THEN ...
ENDON
Monitor_Call('GetDefaultDir', UserName, DirectoryIndex, UserIndex)
ASSEMBLY-500
DirectoryIndex : W BLOCK 1
UserIndex : W BLOCK 1
UserName : STRINGDATA 'A-HANSEN'''
ErrCode : W BLOCK 1
GetDefaultDir : EQU 37B9 + 250B
...
CALLG GetDefaultDir, 3, UserName, DirectoryIndex, UserIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (USER %Address of string containing user name.
MON 250 %Monitor call GetDefaultDir.
JMP ERROR %Error return from monitor call.
STT DIRIX %Normal return, store directory index.
STX USRIX %Store user index in default directory.
...
ERROR, ... %Error number in register A.
...
USER, 'A-HANSEN' %To find default directory of user A-HANSEN.
DIRIX, 0
USRIX, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 229
251B - CopyPage (COPAG)¶
Copies file pages between two opened files. One of the files may be a magnetic tape or floppy disk with volume.
- This is a special monitor call used by the BACKUP-SYSTEM. No high-level language interface exists. The use of the X and D registers is tailored for reading labels on magnetic tape.
- Copying stops at end-of-file, a non-existent page, or if a short magnetic tape record is found.
- CopyPage is only used for sequential copying, i.e., a sequence of CopyPage calls must start with page number zero.
- Files should be opened for random read or write.
- Both files must be local files.
Source: ND-860228.2 EN, Page N/A
252B - BackupClose (BCLOS)¶
Closes a file. The version number and the last date accessed are unchanged. The number of pages in temporary files and spooling files is not affected.
- This monitor call is mainly used by the BACKUP-SYSTEM.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File number of the opened file. See OpenFile. |
UNKNOWN | I | |
Modified flag. |
UNKNOWN | I | If 0, the file is not marked as modified. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
Examples¶
Pascal
FileNumber, Flag : INTEGER2;
...
BackupClose(FileNumber, Flag);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNumber COMP.
01 Flag COMP.
01 ErrCode COMP.
...
MONITOR-CALL "BackupClose" USING FileNumber, Flag.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNumber, Flag
...
Monitor_Call ('BackupClose', FileNumber, Flag)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNumber, Flag
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('BackupClose', FileNumber, Flag)
ASSEMBLY-500
FileNumber : W BLOCK 1
Flag : W BLOCK 1
ErrCode : W BLOCK 1
BackupClose : EQU 37B9 + 252B
...
CALLG BackupClose, 2, FileNumber, Flag
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number returned from earlier open.
LDA FLAG %Reset modified flag.
MON 252 %Monitor call BackupClose.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILNO, ...
FLAG, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
253B - NewFileVersion (CRALN)¶
Creates new versions of a file. You may create new versions for both indexed, contiguous and allocated files.
- You must have directory access to the user area where you create the file. User SYSTEM and RT get the owners access rights.
- The number following the semicolon in a file name is the version number. For example, TEST:SYMB:4 version 4 of the file.
- The file must exist in advance.
- Use DeleteFile to delete file versions.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The file name including the version number. The version number defines the total |
Param2 |
UNKNOWN | I | Start address of the first new version. Use 0 for contiguous and indexed files. |
Param3 |
UNKNOWN | I | File size in pages. Use 0 for indexed files. |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
CreateFile, @CREATE-NEW-VERSIONS, and @ALLOCATE-NEW-VERSIONS
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
FirstPage, NoOfPages : LONGINT;
...
NewFileVersion(FileName, FirstPage, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 FirstPage COMP PIC S9(10).
01 NoOfPages COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "NewFileVersion" USING FileName, FirstPage, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64
INTEGER*4 FirstPage, NoOfPages
...
Monitor_Call('NewFileVersion', FileName(1:64), FirstPage, NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER4 : FirstPage, NoOfPages
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('NewFileVersion', FileName, FirstPage, NoOfPages)
ASSEMBLY-500
FileName : STRINGDATA 'EXAMPLE:SYMB;2''' %Make a 2nd version of ...
FirstPage : W BLOCK 1
NoOfPages : W BLOCK 1
ErrCode : W BLOCK 1 % EXAMPLE:SYMB.
NewFileVersion : EQU 37B9 + 253B
...
CALLG NewFileVersion, 3, FileName, FirstPage, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of string containing file name.
LDD PAGNO %Page number of first page.
LDT (PAGES %Address of number of pages.
MON 253 %Monitor call NewFileVersion.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
FILE, 'EXAMPLE:SYMB;2' %Create 2nd version of file EXAMPLE:SYMB
PAGNO, ... %
... %A double word.
PAGES, ... %
... %A double word.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 351
254B - GetErrorDevice (GERDV)¶
Gets the logical device number of the error device. The error device may be reserved by an RT program. If this is the case, the monitor call returns the address of the RT description. The error device is the terminal which outputs system errors and RT program messages. The error device is normally the console.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The logical device number of the error device. |
Param2 |
UNKNOWN | I | RT description address of reserving RT program. 0 means unreserved. |
See Also¶
@GET-ERROR-DEVICE, @SET-ERROR-DEVICE
Examples¶
Pascal
ErrorDevice, RTProgram : INTEGER2;
...
FindErrorDevice(ErrorDevice, RTProgram); [Note routine name.]
COBOL
01 ErrorDevice COMP.
01 RTProgram COMP.
...
MONITOR-CALL "GetErrorDevice" USING ErrorDevice, RTProgram.
Fortran
INTEGER ErrorDevice, RTProgram
...
Monitor_Call('GetErrorDevice', ErrorDevice, RTProgram)
PLANC
INTEGER : ErrorDevice, RTProgram
...
Monitor_Call('GetErrorDevice', ErrorDevice, RTProgram)
ASSEMBLY-500
ErrorDevice : W BLOCK 1
RTProgram : W BLOCK 1
GetErrorDevice : EQU 37B9 + 254B
...
CALLG GetErrorDevice, 2, ErrorDevice, RTProgram
MAC
MON 254 %Monitor call GetErrorDevice.
STA ERDEV %Store logical number of error device.
COPY SD DA
STA RTPRO %Store address of RT description.
...
ERDEV, 0
RTPRO, 0
| ND-100 and ND-500 | User SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 239
255B - PIOCFunction (PIOCM)¶
PIOC is a programmable input and output processor primarily used in data communication to handle networks like X.25 and Ethernet. It is controlled via a monitor call from SINTRAN III. More details, functions, and examples are provided in the PIOC Software Guide (ND-860161). PIOC is based on an MC 68000 processor. A PLANC compiler is available for PIOC.
Notes¶
- See the PIOC Software Guide (ND-860161) for more details, functions, and examples.
- Function number (0-7). Stored in the ND-100 T-register.
- 0: Reserve the ND-100 side of a slot.
- 1: Release the ND-100 side of a slot.
- 2: Send information to a PIOC-process.
- 3: Read a message from a PIOC-process.
- 4: Load segment into PIOC memory.
- 5: Unload all segments from PIOC memory.
- 6: Start the PIOC.
- 7: Stop the PIOC.
- Status code (octal): 1: Successful execution. 2: No answer from the PIOC ND-100 driver. -10: No privilege. This call may only be used by user SYSTEM, from an RT-program or from ring 2. -11: Function not allowed before the PIOC is started. -24: Illegal function code. -25: The slot is occupied by another process. -26: Illegal slot number. -27: Slot not reserved by you. -30: The mailbox is not empty so it cannot receive information. -31: The mailbox is empty. No message to fetch. -32: Illegal LDN. -33: The PIOC is not initiated. -34: The PIOC memory is not all fixed. 41: Space not available. 42: Illegal segment. 43: Segment not loaded. 44: Attempt to fix demand segment. 45: Attempt to fix too many pages. 46: Segment already fixed at different address.
See Also¶
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical Device number. |
UNKNOWN | I | Specifies which PIOC module to access. |
Slot number (1-8). |
UNKNOWN | I | Refers to the PIOC kick channel. Not applicable for functions 4, 5, 6, or 7. |
Function number (0-7). |
UNKNOWN | I | Further details are on the following page. |
The message itself (2 bytes of information). |
UNKNOWN | I | Used by functions 2 and 3. |
Segment number to be loaded. |
UNKNOWN | I | Applicable for function 4. |
Page number where the loading should start. |
UNKNOWN | I | Applicable for function 4. |
Status code (octal). |
UNKNOWN | O | Further details are on the following page. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
Not available.MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
256B - FullFileName (DEABF)¶
Returns a complete file name from an abbreviated one. The directory, the user, the file name, the file type, and the version are returned.
- You must have read access to the file.
- The abbreviation must be unambiguous.
- SINTRAN III, version K, allows remote file names. If the abbreviated file name contains a remote specification, the name of the remote system cannot be abbreviated.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Abbreviated File Name. |
UNKNOWN | I | The abbreviated file name. May include a file type. |
Full File Name. |
UNKNOWN | O | The complete file name, terminated by an apostrophe ('). |
Default File Type. |
UNKNOWN | I | The default file type (do not include the colon). This parameter is used on ND-100 only and is ignored by the ND-500. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
Examples¶
Pascal
AbbrevFileName, FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
...
FullFileName(AbbrevFileName, FileName, FileType);
IF ErrCode <> 0 THEN ...
COBOL
01 AbbrevFileName PIC X(64).
01 FileName PIC X(64).
01 FileType PIC X(4).
01 ErrCode COMP.
...
MONITOR-CALL "FullFileName" USING AbbrevFileName, FileName, FileType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER AbbrevFileName*64, FileName*64, FileType*4
...
Monitor_Call('FullFileName', AbbrevFileName(1:64), FileName(1:64),
C FileType(1:4))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : AbbrevFileName(0:63), FileName(0:63), FileType(0:3)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('FullFileName', AbbrevFileName, FileName, FileType)
ASSEMBLY-500
AbbrevFileName : STRINGDATA 'EX'''
FileName : STRING 64
FileType : STRINGDATA 'SYMB''' %Default file type.
ErrCode : W BLOCK 1
FullFileName : EQU 37B9 + 256B
...
CALLG FullFileName, 3, AbbrevFileName, FileName, FileType
IF K GO ERROR
...
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
LDX (ABBR) %Address of abbreviated file name string.
LDA (FILE) %Address of string to receive full file name.
LDT (TYPE) %Address of default file type string.
MON 256 %Monitor call FullFileName.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
ABBR, 'EX' %Find full file name of EX.
FILE, 0 %Empty string. (A and X may be identical.)
*+76/ %Make space to receive full file name.
TYPE, 'SYMB' %Default file type SYMB.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
257B - OpenFileInfo (FOPEN)¶
Monitor call 257B - OpenFileInfo
Source: ND-860228.2 EN, Page N/A
262B - GetSystemInfo (CPUST)¶
Gets various system information. The system number, the CPU type, the SINTRAN III version, the instruction set, the patch indicator, and the system generation time are returned.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | A number. It should always be 0. |
Param2 |
UNKNOWN | I | The i2-word (24 byte) array containing system information. Details are given on |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
Examples¶
Pascal
Number : INTEGER2;
Buff : RECORD...END;
...
GetSystemInfo(Number, Buff);
IF ErrCode <> 0 THEN ...
COBOL
01 Number COMP.
01 Buff.
02 array COMP OCCURS 12 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "GetSystemInfo" USING Number, Buff.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Number
INTEGER Buff(12)
...
Monitor_Call('GetSystemInfo', Number, Buff(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : Number
BYTES : Buff(0:23)
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetSystemInfo', Number, Buff(0))
ASSEMBLY-500
Number : W BLOCK 1
Buff : H BLOCK 14B
ErrCode : W BLOCK 1
GetSystemInfo : EQU 3789 + 262B
...
CALLG GetSystemInfo, 2. Number, Buff
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
SAA 0 %Load register A with zero.
LDX (BUFF %Address of a 12-word long buffer.
MON 262 %Monitor call GetSystemInfo.
JMP ERROR %Error return from monitor call. (If A not 0.)
... %Normal return.
ERROR, ... %Error number in register A.
...
BUFF, 0
*+14/ %A 12-word long buffer.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 285
263B - GetDeviceType (GDEVT)¶
Gets the device type, e.g. terminal, floppy disk, mass-storage file, etc. The monitor call also provides information on how to handle the device.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. |
UNKNOWN | I | Logical device number (1= own terminal). See appendix B. |
Input or output part. |
UNKNOWN | I | Use 0 for input and 1 for output. |
Device type. |
UNKNOWN | O | Device type. The numbers below are returned: 0: Unspecified. 1: Terminal. 2: Terminal access device (TAD). 3: Communication channel. 4: Internal block device. 5: Floppy disk drive. 6: Magnetic tape station. 7: Mass-storage file. |
Device information. |
UNKNOWN | O | Device information (returned in the combined A and D registers. The bits have the following meaning: Bit 0: InByte or OutByte allowed. Bit 1: StartOnInterrupt allowed. Bit 2: DeviceControl allowed. Bit 3: Block calls allowed. Bit 4: ClearDevice available. Bit 5: Reservation not needed. Bit 6: COSMOS remote open file. Bit 10g: NOTS (NET/One Terminal Server) terminal. Bit 11g: MTAD device. |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500, or register A for MAC. |
Examples¶
Pascal
DeviceNo, IOFlag, DevType : INTEGER2;
DevAttr : LONGINT;
...
GetDeviceType (DeviceNo, IOFlag, DevType, DevAttr);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNo COMP.
01 IOFlag COMP.
01 DevType COMP.
01 DevAttr COMP PIC S9(10).
01 ErrCode COMP.
...
MONITOR-CALL "GetDeviceType" USING DeviceNo, IOFlag, DevType, DevAttr.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNo, IOFlag, DevType
INTEGER*4 DevAttr
...
Monitor_Call('GetDeviceType', DeviceNo, IOFlag, DevType, DevAttr)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNo, IOFlag, DevType
INTEGER4 : DevAttr
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetDeviceType', DeviceNo, IOFlag, DevType, DevAttr)
ASSEMBLY-500
DeviceNo : W BLOCK 1
IOFlag : W BLOCK 1
DevType : W BLOCK 1
DevAttr : W BLOCK 1
ErrCode : W BLOCK 1
GetDeviceType : EQU 37B9 + 263B
...
CALLG GetDeviceType, 4, DeviceNo, IOFlag, DevType, DevAttr
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
LDA IOF %Input/output flag.
MON 263 %Monitor call GetDeviceType.
JMP ERROR %Error return from monitor call.
STT TYPE %Normal return, store device type.
STD ATBUT %Store device attributes.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
IOF, ...
TYPE, 0
ATBUT, 0
0 %A double number.
0 %
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
267B - TimeOut (TMOUT)¶
Suspends the execution of your program for a given time. The execution then continues after the monitor call. The restart cause is indicated. Avoid using Time Out from ND-500, use ND500TimeOut instead.
- No reserved files or devices are released.
- The execution continues immediately if the program has its restart flag set.
- You may use NoWaitSwitch. Then the program restarts when a break occurs.
- If a program has been rescheduled by the monitor call SET (mon 101, DelayStart) or ABSET (mon 102, StartupTime), this rescheduling will be destroyed when you use TimeOut.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Number of time units to suspend the program. |
Param2 |
UNKNOWN | I | The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = secon |
Param3 |
UNKNOWN | I | Restart cause. 0 means that the defined time has elapsed. 1 means that a break r |
See Also¶
SuspendProgram, WaitforRestart, and ND500TimeOut
Examples¶
Pascal
NoTimeUnits, UnitType, ReturnStatus : INTEGER2;
...
TimeOut(NoTimeUnits, UnitType, ReturnStatus);
IF ErrCode <> 0 THEN ...
COBOL
01 NoTimeUnits COMP.
01 UnitType COMP.
01 ReturnStatus COMP.
01 ErrCode COMP.
...
MONITOR-CALL "TimeOut" USING NoTimeUnits, UnitType, ReturnStatus.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER NoTimeUnits, UnitType, ReturnStatus
...
Monitor_Call('TimeOut', NoTimeUnits, UnitType, ReturnStatus)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : NoTimeUnits, UnitType, ReturnStatus
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('TimeOut', NoTimeUnits, UnitType, ReturnStatus)
ASSEMBLY-500
NoTimeUnits : W BLOCK 1
UnitType : W BLOCK 1
RestartReason : W BLOCK 1
ErrCode : W BLOCK 1
TimeOut : EQU 37B9 + 267B
...
CALLG TimeOut, 3, NoTimeUnits, UnitType, RestartReason
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 267 %Monitor call TimeOut.
STA STAT %Store status returned.
...
STAT, 0
PAR, TIME %Number of time units.
BASE %Unit base type.
...
TIME, ...
BASE, ...
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Scanned by Jonny Oddene for Sintran Data © 2020
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 541
270B - ReadDiskPage (RDPAG)¶
Reads one or more directory pages. Any page can be read.
- The directory must be reserved with ReserveDir.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Directory index. See GetDirUserIndexes. |
Param2 |
UNKNOWN | I | Buffer to receive pages. |
Param3 |
UNKNOWN | I | Address of the destination pages on the disk. |
Param4 |
UNKNOWN | I | Number of pages to transfer. Each page is 2048 bytes. |
See Also¶
Examples¶
Pascal
DirIndex, NoOfPages : INTEGER2;
PageAddr : LONGINT;
Buffer : ARRAY [0..63] OF RECORD...END;
...
ReadDiskPage(DirIndex, Buffer, PageAddr, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 DirIndex COMP.
01 NoOfPages COMP.
01 PageAddr COMP PIC S9(10).
01 Buffer.
02 array COMP OCCURS 1024 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "ReadDiskPage" USING DirIndex, Buffer, PageAddr, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, NoOfPages
INTEGER*4 PageAddr
INTEGER Buffer(1024)
...
Monitor_Call('ReadDiskPage', DirIndex, Buffer(1), PageAddr, NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirIndex, NoOfPages
INTEGER4 : PageAddr
BYTES : Buffer(0:2047)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReadDiskPage', DirIndex, Buffer(0), PageAddr, NoOfPages)
ASSEMBLY-500
DirIndex : W BLOCK 1
PageAddr : W BLOCK 1
NoOfPages : W BLOCK 1
Buffer : H BLOCK 1024 % Must start on an even byte address.
ErrCode : W BLOCK 1
ReadDiskPage : EQU 37B9 + 270B
...
CALLG ReadDiskPage, 4,. DirIndex, Buffer, PageAddr, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode % ErrorCode in W1 register.
MAC
LDT DIRIX % Directory index.
LDX (BUFF % Address of buffer to receive data read.
LDA COUNT % Number of pages to transfer.
COPY SA DD
LDA (PAGNO % Address of double word with disk page address.
MON 270 % Monitor call ReadDiskPage.
JMP ERROR % Error return from monitor call.
... % Normal return.
ERROR, ... % Error number in register A.
...
DIRIX, ...
BUFF, 0
*+4000/ % Make a buffer of 2048 words.
PAGNO, ... % A double word.
...
COUNT, 2 % Read 2 pages of 1024 words.
| ND-100 and ND-500 | User RT and user SYSTEM | Background programs |
|-------------------|-------------------------|---------------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 397
271B - WriteDiskPage (WDPAG)¶
Writes to one or more pages in a directory. Any page can be written to.
- The directory must be reserved with ReseveDir.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Directory index. See GetDirUserIndexes. |
Param2 |
UNKNOWN | I | Address of buffer with pages to transfer. |
Param3 |
UNKNOWN | I | Address of the destination pages on the disk. |
Param4 |
UNKNOWN | I | Number of pages to transfer. Each page is 2048 bytes. |
See Also¶
Examples¶
Pascal
DirIndex, NoOfPages : INTEGER2;
Buffer : ARRAY [0..63] OF RECORD...END;
PageAddr : LONGINT;
...
WriteDiskPage(DirIndex, Buffer, PageAddr, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 DirIndex COMP.
01 NoOfPages COMP.
01 PageAddr COMP PIC S9(10).
01 Buffer.
02 array COMP OCCURS 1024 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "WriteDiskPage" USING DirIndex, Buffer, PageAddr, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, NoOfPages
INTEGER*4 PageAddr
INTEGER Buffer(1024)
...
Monitor__Call('WriteDiskPage', DirIndex, Buffer(1), PageAddr, NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirIndex, NoOfPages
INTEGER4 : PageAddr
BYTES : Buffer(0:2047)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteDiskPage', DirIndex, Buffer(0), PageAddr, NoOfPages)
ASSEMBLY-500
DirIndex : W BLOCK 1
PageAddr : W BLOCK 1
NoofPages : W BLOCK 1
Buffer : W BLOCK 1024 %Must start on an even byte address.
ErrCode : W BLOCK 1
WriteDiskPage : EQU 37B9 + 271B
...
CALLG WriteDiskPage, 4, DirIndex, Buffer, PageAddr, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DIRIX %Directory index.
LDX (BUFF %Address of buffer containing data to be written.
LDA PAGES %Number of pages to transfer.
COPY SA DD
LDA (PAGNO %Address of double word with disk page address.
MON 271 %Monitor call WriteDiskPage.
JMP ERROR %Error return from monitor call.
... %Normal return.
... %Error number in register A.
...
DIRIX, ...
BUFF, 0
*+4000/ %Make a buffer of 2048 words, 2 pages.
PAGNO, ... %A double word.
... %
PAGES, 2 %Transfer 2 pages.
| ND-100 and ND-500 | User RT and user SYSTEM | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 565
272B - DeletePage (DELPG)¶
Deletes pages from a file. Pages between two page numbers are removed.
- The file must be opened.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. |
Param2 |
UNKNOWN | I | First page to be deleted. |
Param3 |
UNKNOWN | I | Last page to be deleted. The value -1 means delete to end of the file. |
Param4 |
UNKNOWN | I | Number of pages deleted. |
Param5 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
FileNo : INTEGER2;
FirstPage, LastPage, NoOfPages : LONGINT;
...
DeletePage(FileNo, FirstPage, LastPage, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 FirstPage COMP PIC S9(10).
01 LastPage COMP PIC S9(10).
01 NoOfPages COMP PIC S9(10).
ErrCode COMP.
...
MONITOR-CALL "DeletePage" USING FileNo, FirstPage, LastPage, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo
INTEGER*4 FirstPage, LastPage, NoOfPages
...
Monitor Call1('DeletePage', FileNo, FirstPage, LastPage, NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FileNo
INTEGER4 : FirstPage, LastPage, NoOfPages
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DeletePage', FileNo, FirstPage, LastPage, NoOfPages)
ASSEMBLY-500
FileNo : W BLOCK 1
FirstPage : W BLOCK 1
LastPage : W BLOCK 1
NoOfPages : W BLOCK 1
ErrCode : W BLOCK 1
DeletePage : EQU 37B9 + 272B
...
CALLG DeletePage, 4, FileNo, FirstPage, LastPage, NoOfPages
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT FILNO %File number.
LDA (FIRST %Address of double word with first page.
LDX (LAST %Address of double word with last page.
MON 272 %Monitor call DeletePage.
JMP ERROR %Error return from monitor call.
STD NODEL %Normal return, store the number of pages deleted.
ERROR, ... %Error number in register A.
...
FILNO, ...
FIRST, ... %A double word.
... %
LAST, ... %A double word.
... %
NODEL, 0 %A double word.
0 %
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 139
273B - GetFileName (MGFIL)¶
Gets the name of a file. You specify the directory index, the user index, and the object index. The file name, the file type, and the version are returned.
- The file need not be open.
- On the ND-100 you may specify a file on a remote computer system. The computers must be connected through a COSMOS network.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Directory index. |
Param2 |
UNKNOWN | I | User index. |
Param3 |
UNKNOWN | I | Object index. |
Param4 |
UNKNOWN | I | File name. |
Param5 |
UNKNOWN | I | Remote flag. Use 0 for a file on the local computer. Use 1 for a file on a remot |
Param6 |
UNKNOWN | I | Remote system identification if remote flag is 1. Not returned by ND-500. |
Param7 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
FullFileName
Examples¶
Pascal
DirIndex, UserIndex, ObjectIndex : INTEGER2;
FileName : PACKED ARRAY [0..63] OF CHAR;
...
GetFileName(DirIndex, UserIndex, ObjectIndex, FileName);
IF ErrCode <> 0 THEN ...
COBOL
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 FileName PIC X(64).
01 RemoteFlag COMP.
01 RemoteSystem PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "GetFileName" USING DirIndex, UserIndex, ObjectIndex,
FileName, RemoteFlag, RemoteSystem.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex, UserIndex, ObjIndex, RemoteFlag
CHARACTER FileName*64, RemoteSystem*64
...
Monitor_Call('GetFileName', DirIndex, UserIndex, ObjIndex,
FileName(1:64), RemoteFlag, RemoteSystem(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirIndex, UserIndex, ObjectIndex, RemoteFlag
BYTES : FileName(0:63), RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetFileName', DirIndex, UserIndex, ObjectIndex, FileName,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500
DirIndex : W BLOCK 1
UserIndex : W BLOCK 1
ObjectIndex : W BLOCK 1
FileName : STRING 64
SysId : STRING 20 %Optional parameter if bit 7 in DirIndex is set.
ErrCode : W BLOCK 1
GetFileName : EQU 37B9 + 273B
...
CALLG GetFileName, 4, DirIndex, UserIndex, ObjectIndex, FileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT INDEX %Left byte: dir index. Right byte: user index.
LDA (REMID) %Remote system identification in register D.
COPY SA DD %Used only if bit 15 in register A is set.
LDA OBJIX %Object index.
LDX (BUFF) %Address of buffer to receive file name.
MON 273 %Monitor call GetFileName.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
INDEX, ... %Set bit 15 if remote file.
OBJIX, ...
BUFF, 0 %
*+32/ %Make a buffer big enough to receive file name.
REMID, 0 %Remote identification string.
*+40/ %32 words for string.
ND-100 and ND-500 | All users | All programs
---|---|---
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 249
274B - GetFileIndexes (FOBJN)¶
Gets the directory index, the user index, and the object index of a file. These are indexes in the file system. See the SINTRAN III System Supervisor {ND-830003} for more details.
- The file need not be open.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
File name |
Abbreviated file names are less efficient. | I | |
File type |
Not used on the ND-100. Do not include the colon. | I | |
Directory index |
- | I | |
User index |
- | I | |
Object index |
- | I | |
Object index of the next file version |
Equal to object index if no more versions exist. | I | |
Standard Error Code |
See appendix A. | I |
See Also¶
GetAllFileIndexes, GetDirUserIndexes, GetDirNameIndex, GetDirEntry, GetUserEntry, GetObjectEntry, and GetDefaultDir
Examples¶
Pascal
FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
DirIndex, UserIndex, ObjectIndex, NextObjectIndex : INTEGER2;
...
FindFileIndexes(FileName, FileType, DirIndex, UserIndex,
ObjectIndex, NextObjectIndex); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 FileName PIC X(64).
01 FileType PIC X(4).
01 DirIndex COMP.
01 UserIndex COMP.
01 ObjectIndex COMP.
01 NextObjectIndex COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetfileIndexes" USING FileName, FileType, DirIndex,
UserIndex, ObjectIndex, NextObjectIndex.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER FileName*64, FileType*4
INTEGER DirIndex, UserIndex, ObjectIndex, NextObjectIndex
...
Monitor_Call('GetFileIndexes', FileName(1:64), FileType(1:4),
C DirIndex, UserIndex, ObjectIndex, NextObjectIndex)
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : FileName(0:63), FileType(0:3)
INTEGER : DirIndex, UserIndex, ObjectIndex, NextObjectIndex
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetFileIndexes', FileName, FileType, DirIndex, &
UserIndex, ObjectIndex, NextObjectIndex)
ASSEMBLY-500
FileName : STRING 64
FileType : STRING 4
DirIndex : W BLOCK 1
UserIndex : W BLOCK 1
ObjectIndex : W BLOCK 1
NextObjectIndex : W BLOCK 1
ErrCode : W BLOCK 1
GetFileIndexes : EQU 37B9 + 274B
...
CALLG GetFileIndexes, 6, FileName, FileType, DirIndex, &
UserIndex, ObjectIndex, NextObjectIndex
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of file name string.
MON 274 %Monitor call GetFileIndexes.
JMP ERROR %Error return from monitor call.
STT INDEX %Normal return, store obtained indexes.
STA OBJIX %Store object index.
COPY SD DA
STA NEXTO %Store object index of next version.
...
ERROR, ... %Error number in register A.
FILE, 'EXAMPLE:SYMB' %Obtain object index of file EXAMPLE:SYMB.
INDEX, 0 %Directory index in left byte. User index right.
OBJIX, 0
NEXTO, 0
ND-100 and ND-500 | All users | All programs
--- | --- | ---
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 247
275B - SetTerminalName (STRFI)¶
Defines the file name to be used for terminals. This is normally TERMINAL:. Background users identify their own terminal with this file name.
- You may use this monitor call more than once. Each file name will identify the terminals.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File name. |
Param2 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
SetPeripheralName, @SET-TERMINAL-FILE
Examples¶
COBOL
01 TerminalName PIC X(64).
01 ErrCode COMP.
...
MONITOR-CALL "SetTerminalName" USING TerminalName.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER TerminalName*64
...
Monitor_Call('SetTerminalName', TerminalName(1:64))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : TerminalName(0:63)
assemble
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('SetTerminalName', TerminalName)
ASSEMBLY-500
assemble
FileName : STRINGDATA 'TERMINAL'...
ErrCode : W BLOCK 1
...
SetTerminalName : EQU 37B9 + 275B
CALLG SetTerminalName, 1, FileName
IF K GO ERROR
...
ERROR : W1 =. ErrCode %ErrorCode in W1 register.
MAC
assemble
LDX (NAME %Address of string containing terminal name.
MON 275 %Monitor call SetTerminalName.
...
NAME, 'TERMINAL' %Set terminal name to TERMINAL.
| ND-100 and ND-500 | User SYSTEM | All programs |
|-------------------|-------------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 475
276B - EnableLocal (ELOFU)¶
You may log in on remote computers through the COSMOS data network. A key on the terminal returns you to your local computer. This local function can be disabled. You enable it again with EnableLocal.
Notes¶
- You disable the key with DisableLocal.
- The key is disabled when a program terminates.
- The COSMOS CONNECT-TO program tells you which key to use as the LOCAL key.
See Also¶
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Program address of local handling. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in register A for MAC. |
Examples¶
Pascal
LocalEnable;
[Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 ProgramAddress COMP.
01 ErrCode COMP.
...
MONITOR-CALL "EnableLocal" USING ProgramAddress.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ProgramAddress
...
Monitor_Call('EnableLocal', ProgramAddress)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : ProgramAddress
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('EnableLocal', ProgramAddress)
ASSEMBLY-500
Not available.MAC
LDA (LOC %Load local handling function address into reg. A
MON 276 %Monitor call EnableLocal.
JMP ERROR %Error return from monitor call.
... %Normal return.
LOC, ...
ERROR, ... %Error number in register A.
...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
277B - DISABLELOCAL (DLOFU)¶
You may log in on remote computers through the COSMOS data network. A key on the terminal returns you to your local computer. This monitor call disables the function of this key.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Standard Error Code. See appendix A. |
PASCAL |
UNKNOWN | I | |
LocalDisable; [Note routine name.] |
UNKNOWN | I | |
IF ErrCode <> 0 THEN ... |
UNKNOWN | I | |
COBOL |
UNKNOWN | I | |
01 ErrCode COMP. |
UNKNOWN | I | |
... |
UNKNOWN | I | |
MONITOR-CALL "DisableLocal". |
UNKNOWN | I | |
CALL "CbError" USING ErrCode. |
UNKNOWN | I | |
IF ErrCode NOT = 0 GO ... |
UNKNOWN | I | |
FORTRAN |
UNKNOWN | I | |
Monitor_Call('DisableLocal') |
UNKNOWN | I | |
IF (ErrCode .NE. 0) THEN ... |
UNKNOWN | I |
See Also¶
Examples¶
PLANC
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DisableLocal')
MAC
| | | |
|--------|-----|---------------------------------|
| MON | 277 | %Monitor call DisableLocal. |
| JMP | ERROR | %Error return from monitor call. |
| | | %Normal return. |
| ERROR, | ... | %Error number in register A. |
| | | |
ND-100 | All users | All programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 155
300B - SetEscapeHandling (EUSEL)¶
Enables user-defined escape handling. When the ESCAPE key is pressed, execution continues at the specified address in your program.
Notes¶
- Disable the user-defined escape handling with StopEscapeHandling.
- The normal escape handling is reset when the program aborts.
See Also¶
EnableEscape and OffEscLocalFunction
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Contents of first location of escape-handler routine. |
UNKNOWN | I | See PLANC example. |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in register A for MAC. |
Examples¶
Pascal
EscapeHandler : INTEGER2;
...
SetEscapeHandling (EscapeHandler);
IF ErrCode <> 0 THEN ...
COBOL
01 EscapeHandler COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetEscapeHandling" USING EscapeHandler.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER EscapeHandler
...
Monitor_Call('SetEscapeHandling', EscapeHandler)
IF (ErrCode .NE. 0) THEN ...
PLANC
TYPE rvv=ROUTINE VOID,VOID
INTEGER POINTER: ip
rvv POINTER: rp=ip
ROUTINE VOID,VOID : EscHandling
...
ENDROUTINE
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
...
Addr EscHandling =:rp
Monitor_Call('SetEscapeHandling', Ind(ip))
ASSEMBLY-500
Not available.MAC
LDA PROG %Address of user escape handler routine.
MON 300 %Monitor call SetEscapeHandling.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
PROG, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
301B - StopEscapeHandling (DUSEL)¶
Disables user-defined escape handling. The ESCAPE key terminates the program as normal. StartEscapeHandling starts user-defined escape handling.
See Also¶
StartEscapeHandling, DisableEscape
Examples¶
COBOL
MONITOR-CALL "StopEscapeHandling".
CALL "CbError" USING ErrCode.
IF ErrCode NOT 0 GO ....
Fortran
Monitor_Call ('StopEscapeHandling')
IF (ErrCode .NE. 0) THEN...
PLANC
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN...
ENDON
...
Monitor_Call('StopEscapeHandling')
MAC
| Command | Code | Description |
|---------|------|------------------------------------|
| MON | 301 | %Monitor call StopEscapeHandling. |
| JMP | ERROR| %Error return from monitor call. |
| ... | ... | %Normal return. |
| ERROR, | ... | %Error number in register A. |
| ... | ... | |
| ND-100 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 491
302B - ONESCLOCALFUNCTION (ELON)¶
Enables delayed escape and local functions for your terminal. The ESCAPE key then terminates a program unless it is disabled. The key with the local function will terminate connections to remote computers.
See Also¶
SetEscapeHandling, OffEscLocalFunction, EnableEscape, and EnableLocal
Examples¶
Pascal
OnEscLocalFunction;
IF ErrCode <> 0 THEN ...
COBOL
01 ErrCode COMP.
...
MONITOR-CALL "OnEscLocalFunction".
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
Monitor Call('OnEscLocalFunction')
IF (ErrCode .NE. 0) THEN ...
PLANC
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OnEscLocalFunction')
MAC
| | | |
|---------|-------|-------------------------------------------|
| MON | 302 | %Monitor call OnEscLocalFunction. |
| JMP | ERROR | %Error return from monitor call. |
| ... | | %Normal return. |
| ERROR, | ... | %Error number in register A. |
ND-100 All users Background programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 367
303B - OffEscLocalFunction (ELOFF)¶
Delays the escape and local functions for your terminal. Then the ESCAPE key or LOCAL key does not terminate a program or remote connection immediately. Their functions are delayed until OnEscLocalFunction is executed.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
SetEscapeHandling, OnEscLocalFunction, DisableEscape, and DisableLocal
Examples¶
Pascal
OffEscLocalFunction;
IF ErrCode <> 0 THEN ...
COBOL
01 ErrCode COMP.
...
MONITOR-CALL "OffEscLocalFunction".
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
Monitor_Call('OffEscLocalFunction')
IF (ErrCode .NE. 0) THEN ...
PLANC
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OffEscLocalFunction')
MAC
| | | |
| --- | --- | --- |
| MON | 303 | %Monitor call OffEscLocalFunction. |
| JMP | ERROR | %Error return from monitor call. |
| ... | ... | %Normal return. |
| ERROR, | ... | %Error number in register A. |
ND-100 | All users | Background programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 363
306B - GetTerminalMode (GTMOD)¶
Gets the terminal mode. The terminal mode tells how the terminal function, i.e. if all letters are converted to uppercase, if output stops when a full page is displayed, etc.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The logical device number of the terminal. See appendix B. |
Param2 |
UNKNOWN | I | The terminal mode. The numbers below are used. |
Terminal mode |
Capital letters? | Delay after return? | Stop on full page? |
0 |
No | No | No |
1 |
Yes | No | No |
2 |
No | Yes | No |
3 |
Yes | Yes | No |
4 |
No | No | Yes |
5 |
Yes | No | Yes |
6 |
No | Yes | Yes |
7 |
Yes | Yes | Yes |
8 |
No | No | No |
9 |
Yes | No | No |
10 |
No | Yes | No |
11 |
Yes | Yes | No |
12 |
No | No | Yes |
13 |
Yes | No | Yes |
14 |
No | Yes | Yes |
15 |
Yes | Yes | Yes |
Param20 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
TerminalMode, @TERMINAL-MODE
Examples¶
Pascal
DeviceNumber, TerminalMode : INTEGER2;
...
GetTermMode(DeviceNumber, TerminalMode); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 TerminalMode COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetTerminalMode" USING DeviceNumber, TerminalMode.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, TerminalMode
...
Monitor_Call('GetTerminalMode', DeviceNumber, TerminalMode)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, TerminalMode
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetTerminalMode', DeviceNumber, TerminalMode)
ASSEMBLY-500
Devno : W DATA 1 % Own terminal
TermMode : W BLOCK 1
ErrCode : W BLOCK 1
GetTerminalMode: EQU 37B9+306B
...
CALLG GetTerminalMode,2,DevNo,TerMode
IF K GO Error
...
Error: W1:=ErrCode %ErrorCode in I1 register
MAC
LDT DEVNO %Logical device number.
MON 306 %Monitor call GetTerminalMode.
JMP ERROR %Error return from monitor call.
STA TMODE %Normal return, store terminal mode number.
...
ERROR, ...
...
DEVNO, ...
TMODE, 0
| ND-100 and ND-500 | All users | All programs |
|-------------------|-----------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 289
307B - TerminalNoWait (TNOWAI)¶
Switches No Wait on and off. No Wait is useful for input from, and output to, character devices, e.g. terminals. In No Wait, the program does not wait for input or output. Monitor calls like InByte return the error code 3 instead.
- SuspendProgram or WaitForRestart may passivate the program afterwards. The program then restarts when the device detects a break.
- The input buffer must be emptied before passivating the program.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
DevNo |
Logical device number of a character device. See appendix B. | I | |
IOFlag |
Input or output flag. Use 0 for input and 1 for output. | I | |
NoWaitFlag |
No Wait flag. Use 0 to switch No Wait off, and any other number to switch it on. | I | |
RetStatus |
Return status. | I |
See Also¶
InByte, OutByte, and NoWaitSwitch
Examples¶
Pascal
DevNo, IOFlag, NoWaitFlag, RetStatus.: INTEGER2;
...
TermNoWait(DevNo, IOFlag, NoWaitFlag, RetStatus); [Note routine name.]
COBOL
01 DevNo COMP.
01 IOFlag COMP.
01 NoWaitFlag COMP.
01 RetStat COMP.
...
MONITOR-CALL "TerminalNoWait" USING DevNo, IOFlag, NoWaitFlag, RetStat.
Fortran
INTEGER DevNo, IOFlag, NoWaitFlag, RetStatus
...
Monitor_Call('TerminalNoWait', DevNo, IOFlag, NoWaitFlag, RetStatus)
PLANC
INTEGER : DevNo, IOFlag, NoWaitFlag, RetStatus
...
Monitor_Call('TerminalNoWait', DevNo, IOFlag, NoWaitFlag, RetStatus)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
IOFlag : W BLOCK 1
NoWaitFlag : W BLOCK 1
TerminalNoWait : EQU 3789 + 307B
...
CALLG TerminalNoWait, 3, DeviceNumber, IOFlag, NoWaitFlag
MAC
LDA (PAR %Load register A with address of parameter list.
MON 307 %Monitor call TerminalNoWait.
STA STAT %Store status returned.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Error: illegal input.
...
STAT, 0
PAR, DEVNO %Logical device number of a terminal.
IOF %Input/output flag.
FLAG %No Wait flag.
...
DEVNO, ...
IOF, ...
FLAG, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 535
310B - In8AndFlag (TBIN8)¶
Reads 8 bytes from a device, e.g., a terminal. The monitor call applies to the defined echo and break setting. See SetEcho and SetBreak.
- Input of a break character stops the reading. The number of characters read are output. It is output as a negative number if a break character has been read. That is, bit 15 is set to 1.
- This monitor call can be used together with SetBreak and SetEcho.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. See appendix B. |
UNKNOWN | I | |
Number of bytes read. A negative number means that a break character is read. |
UNKNOWN | I | |
The string of bytes read. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
In8Bytes, InUpTo8Bytes, InByte, InString, InputString, In4x2Bytes, and Out8Bytes
Examples¶
Pascal
DeviceNumber, NoOfBytes : INTEGER2;
Buffer : PACKED ARRAY [0..7] OF CHAR;
...
In8AndFlag(DeviceNumber, NoOfBytes, Buffer);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 NoOfBytes COMP.
01 Buffer PIC X(8).
01 ErrCode COMP.
...
MONITOR-CALL "In8AndFlag" USING DeviceNumber, NoOfBytes, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoOfBytes
CHARACTER Buffer*8
...
Monitor_Call('In8AndFlag', DeviceNumber, NoOfBytes, Buffer(1:8))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoOfBytes
BYTES : Buffer(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('In8AndFlag', DeviceNumber, NoOfBytes, Buffer)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
Buffer : STRING 8
In8AndFlag : EQU 37B9 + 310B
...
CALLG In8AndFlag, 3, DeviceNumber, NoOfBytes, Buffer
IF K GO Error,
...
Error, ...
MAC
LDT DEVNO %Logical device number.
MON 310 %Monitor call In8AndFlag.
JMP ERROR %Error return.
STD BYTES %Store first 4 bytes read.
COPY SL DA
STA BYTES+2 %Store next 2 bytes read.
STX BYTES+3 %Store last 2 bytes read.
STT COUNT %Store number of bytes read.
...
ERROR, ... %Error handling.
...
DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 311
311B - WriteDirEntry (WDIEN)¶
Changes the information about a directory. The complete contents of the directory entry is set. The SINTRAN III System Supervisor (ND-830003) describes the file system in more detail.
- The directory must be entered.
- The directory must be reserved.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | The directory index. See GetDirUserIndexes. |
Param2 |
UNKNOWN | I | The 48 byte directory entry. See Appendix C. |
Param3 |
UNKNOWN | I | Standard Error Code. See Appendix A. |
See Also¶
GetDirUserIndexes, and GetDirEntry
Examples¶
Pascal
DirIndex : INTEGER2;
DirEntry : ARRAY [0..1] OF RECORD...END;
...
SetDirEntry(DirIndex, DirEntry); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DirIndex COMP.
01 DirEntry.
02 array COMP OCCURS 24 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "WriteDirEntry" USING DirIndex, DirEntry.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DirIndex
INTEGER DirEntry(24)
...
Monitor_Call('WriteDirEntry', DirIndex, DirEntry(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DirIndex
BYTES : DirEntry(0:47)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteDirEntry', DirIndex, DirEntry(0))
ASSEMBLY-500
DirIndex : W BLOCK 1
DirEntry : W ARRAY 24
ErrCode : W BLOCK 1
WriteDirEntry : EQU 37B9 + 311B
...
CALLG WriteDirEntry, 2, DirIndex, DirEntry
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DIRIX %Directory index.
LDX (ENTRY) %Address of buffer containing directory entry.
MON 311 %Monitor call WriteDirEntry.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DIRIX, ...
ENTRY, ... %
... %A buffer of 24 words.
| ND-100 and ND-500 | User SYSTEM | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 563
312B - CheckMonCall (MOINF)¶
Some monitor calls are optional or only available in later versions of SINTRAN III. This monitor call checks if a monitor call exists in your particular SINTRAN III system. Optional monitor calls are included or left out when SINTRAN III is generated.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Monitor-call number. |
Param2 |
UNKNOWN | I | Address of the monitor call entry. 0 means not implemented. |
Examples¶
Pascal
MonCallNumber, MonCallEntry : INTEGER2;
...
CheckMonCall(MonCallNumber, MonCallEntry);
COBOL
01 MonCallNumber COMP.
01 MonCallEntry COMP.
...
MONITOR-CALL "CheckMonCall" USING MonCallNumber, MonCallEntry.
Fortran
INTEGER MonCallNumber, MonCallEntry
...
Monitor_Call('CheckMonCall', MonCallNumber, MonCallEntry)
PLANC
INTEGER : MonCallNumber, MonCallEntry
...
Monitor_Call('CheckMonCall', MonCallNumber, MonCallEntry)
ASSEMBLY-500
MonCallNumber : W BLOCK 1
MonCallEntry : W BLOCK 1
CheckMonCall : EQU 3789 + 312B
...
CALLG CheckMonCall, 2, MonCallNumber, MonCallEntry
...
MAC
LDA MONNO %Load register A with monitor call number.
MON 312 %Monitor call CheckMonCall.
...
%Return: Monitor call not implemented in system.
STA ENTRY %Skipreturn: Monitor call is implemented.
...
MONNO, ... %Monitor call number.
ENTRY, 0 %Monitor call entry returned if implemented.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 109
313B - InBufferState (IBRISZ)¶
Gets information about an input buffer. The current number of bytes in it, and the number of bytes until a break character, are returned.
- Use ExecutionInfo to get the logical device number for terminals. You can specify 1 for your own terminal.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. |
See appendix B. | I | |
Number of bytes in the buffer. |
I | ||
Number of bytes before break |
(zero if no break character in the buffer). | I | |
Standard Error Code. |
See appendix A. | I |
See Also¶
InBufferSpace, ClearInBuffer, OutBufferSpace
Examples¶
Pascal
DeviceNumber, NoInBuffer, NoUntilBreak : INTEGER2;
...
InBufferState(DeviceNumber, NoInBuffer, NoUntilBreak);
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNo COMP.
01 NoInBuffer COMP.
01 NoUntilBreak COMP.
01 ErrCode COMP.
...
MONITOR-CALL "InBufferState" USING DeviceNo, NoInBuffer, NoUntilBreak.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber, NoInBuffer, NoUntilBreak
...
Monitor_Call('InBufferState', DeviceNumber, NoInBuffer, NoUntilBreak)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber, NoInBuffer, NoUntilBreak
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('InBufferState', DeviceNumber, NoInBuffer, NoUntilBreak)
ASSEMBLY-500
DeviceNumber : W BLOCK 1
NoInBuffer : W BLOCK 1
NoUntilBreak : W BLOCK 1
ErrCode : W BLOCK 1
InBufferState : EQU 3789 + 313B
...
CALLG InBufferState, 2, DeviceNumber, NoUntilBreak
IF K GO ERROR
W1 := NoOfBytes
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDT DEVNO %Logical device number.
MON 313 %Monitor call InBufferState.
JMP ERROR %Error return from monitor call.
STA COUNT %Normal return, store number of bytes in inbuffer.
STX NOBRK %Store number of bytes in inbuffer until break.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
NOBRK, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 317
314B - DefaultRemoteSystem (SRUSI)¶
Sets default values for COSMOS remote file access. You can specify the default remote system, the remote user, and the remote user's passwords. The specified values are used when you omit values in a remote file access.
- Empty parameters remove previous default values. Default values are then the local user's name and passwords.
- SetRemoteMode switches the remote search on and off.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ Remote system name. |
I | ||
➞ User owning the files in the remote system. |
I | ||
➞ The user's password. |
I | ||
➞ The user's project password. |
I | ||
➞ Standard Error Code. See appendix A. |
I |
See Also¶
@SET-DEFAULT-REMOTE-SYSTEM, @RESET-DEFAULT-REMOTE-SYSTEM
Examples¶
Pascal
SystemName: PACKED ARRAY [0..15] OF CHAR;
UserName, Password, ProjPassword : PACKED ARRAY [0..15] OF CHAR;
...
DefaultRemoteSystem(SystemName, UserName, Password, ProjPassword);
IF ErrCode <> 0 THEN ...
COBOL
01 SystemName PIC X(16).
01 UserName PIC X(16).
01 Password PIC X(16).
01 ProjPassword PIC X(16).
01 ErrCode COMP.
...
MONITOR-CALL "DefaultRemoteSystem" USING SystemName, UserName,
Password, ProjPassword.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
CHARACTER SystemName*16
CHARACTER UserName*16, Password*16, ProjPassword*16
...
Monitor_Call('DefaultRemoteSystem', SystemName(1:16),
UserName(1:16), Password(1:16), ProjPassword(1:16))
IF (ErrCode .NE. 0) THEN ...
PLANC
BYTES : SystemName(0:15), UserName(0:15), Password(0:15), ProjPassword(0:15)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DefaultRemoteSystem', SystemName, UserName, &
Password, ProjPassword)
ASSEMBLY-500
SystemName : STRINGDATA 'STORE'...
UserName : STRINGDATA 'A-HANSEN'''
Password : STRINGDATA 'MAY'''
ProjPassword : STRINGDATA 'CHEESE'''
ErrCode : W BLOCK 1
DefaultRemoteSystem : EQU 37B9 + 314B
...
CALLG DefaultRemoteSystem, 4, SystemName, UserName, &
Password, ProjPassword
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
| LDX | (SYS) | %Address of remote system name. |
| --- | --- | --- |
| LDT | (USER) | %Address of remote user identifier string. |
| LDA | (PROJP) | %Address of remote project password string. |
| COPY | SA DD | |
| LDA | (PASSW) | %Address of remote user password string. |
| MON | 314 | %Monitor call DefaultRemoteSystem. |
| JMP | ERROR | %Error return from monitor call. |
| ... | | %Normal return. |
| ERROR, ... | | %Error number in register A. |
SYS, 'STORE' %Set up STORE as default remote system.
USER, 'A-HANSEN' %Set up A-HANSEN as default remote user.
PASSW, 'MAY' %Set up MAY as default remote user password.
PROJP, 'CHEESE' %Set up CHEESE as default remote project password.
| ND-100 and ND-500 | All users | All programs |
| --- | --- | --- |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 133
315B - LAMUFunction (MLAMU)¶
Performs various functions on the LAMU system. A LAMU is a logically addressed memory unit. The LAMU system is an extension to the ND-100 segment structure. Programs may address more space than provided by the 3 available segments.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code. |
Param2 |
UNKNOWN | I | 1 means create a LAMU. |
Param3 |
UNKNOWN | I | 2 means delete a LAMU. |
Param4 |
UNKNOWN | I | 3 means connect a LAMU to the calling program or another program. |
Param5 |
UNKNOWN | I | 4 means disconnect a particular LAMU or all LAMUs from the calling program or an |
Param6 |
UNKNOWN | I | 7 means protect LAMU. |
Param7 |
UNKNOWN | I | 8 means get LAMU information. |
Param8 |
UNKNOWN | I | 9 means create system-LAMU. |
Param9 |
UNKNOWN | I | 10 means create temporary system LAMU and connect it to the calling program. |
Param10 |
UNKNOWN | I | Function-dependent parameter 2. See the following pages. |
Param11 |
UNKNOWN | I | Function-dependent parameter 3. See the following pages. |
Param12 |
UNKNOWN | I | Function-dependent parameter 4. See the following pages. |
Param13 |
UNKNOWN | I | A Standard Error Code is returned in the A register. See appendix A. |
Examples¶
Pascal
Func, Para2, Para3, Para4 : INTEGER2;
...
LAMUfunction(Func, Para2, Para3, Para4);
IF ErrCode <> 0 THEN ...
COBOL
01 Func COMP.
01 Para2 COMP.
01 Para3 COMP.
01 Para4 COMP.
...
MONITOR-CALL "LAMUfunction" USING Func, Para2, Para3, Para4.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Func, Para2, Para3, Para4
...
Monitor_Call('LAMUfunction', Func, Para2, Para3, Para4)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER . Func. Para2, Para3, Para4
ON ROUTINEERROR DO
[IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('LAMUfunction', Func. Para2, Para3, Para4
MAC
LDA {PAR % Load register A with address of parameter list.
MON 315 % Monitor call LAMUfunction.
JMP ERROR % Error return from monitor call.
% Normal return.
ERROR % Error number in register A.
PAR, FUNC % Function.
PARA2
PARA3
PARA4
FUNC,
PARA2,
PARA3,
PARA4,
| ND-100 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 331
316B - SetRemoteAccess (SRLMO)¶
Switches remote file access on and off. The COSMOS network allows you to access files in remote computers directly. Use DefaultRemoteSystem or QSET-DEFAULT-REMOTE-SYSTEM to specify a default remote system. If a file does not exist in the local system, the default remote system is searched. SetRemoteAccess switches this function on and off.
- You may include a remote system identification in the file name. Only the specified system is searched.
- This monitor call is only available with COSMOS.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ |
Remote mode flag. Use 0 to switch remote mode off. Switch it on with 1. | I | |
⬅ |
Standard Error Code. See appendix A. | I |
See Also¶
QSET-LOCAL-MODE or QSET-REMOTE-MODE
Examples¶
Pascal
Mode : INTEGER2;
...
SetRemoteAccess(Mode);
IF ErrCode <> 0 THEN ...
COBOL
01 Mode COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetRemoteAccess" USING Mode.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Mode
...
Monitor Call('SetRemoteAccess', Mode)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : Mode
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetRemoteAccess', Mode)
ASSEMBLY-500
Mode : W BLOCK 1
SetRemoteAccess : EQU 37B9 + 316B
...
CALLG SetRemoteAccess, 1, Mode
MAC
LDA | MODE | %Local / Remote Flag.
--- | --- | ---
MON | 316 | %Monitor call SetRemoteAccess.
... | ... | ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 465
317B - ExecuteCommand (UECOM)¶
Executes a SINTRAN III command. Specify the command name and the parameters as a text string.
- An error message is output if an error occurs. The program does not terminate.
- Some commands may destroy your program. Commands which affect your program’s memory area should be used with care.
- Some commands have output, e.g. @LIST-FILES. This is displayed on the terminal.
- Use SuspendProgram to wait a second between two ExecuteCommands which depend on each other, e.g. CreateFile and OpenFile.
- It may be advisable to use @enable-escape before this call, to avoid having problems terminating some commands.
See Also¶
CallCommand, SetCommandBuffer. CallCommand terminates the program if an error occurs
Examples¶
Pascal
Command : PACKED ARRAY [0..34] OF CHAR;
...
ExecuteCommand(Command);
COBOL
01 Command PIC X(35).
...
MONITOR-CALL "ExecuteCommand" USING Command.
Fortran
CHARACTER Command*35
...
Monitor_Call('ExecuteCommand', Command(1:35))
PLANC
BYTES : Command(0:35)
...
Monitor_Call('ExecuteCommand', Command)
ASSEMBLY-500
Command : STRING 35
ExecuteCommand : EQU 37B9 + 317B
...
CALLG ExecuteCommand, 1, Command
MAC
| | |
|--------|-------------------------|
| LDA | (CMND | %Address of string with SINTRAN command. |
| MON | 317 | %Monitor call ExecuteCommand. |
| ... | | |
| CMND, | 'CLOSE-FILE 102' | %Execute CLOSE-FILE 102. |
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 181
322B - GetSegmentNo (GSGNO)¶
Gets the number of a segment in the ND-100. You specify the segment name. Segment names are created with the RT LOADER or when a program is dumped reentrant. See @DUMP-PROGRAM-REENTRANT.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment name. |
Param2 |
UNKNOWN | I | Segment number. Nonexistent segment names return a negative value. |
See Also¶
Examples¶
Pascal
SegmentNumber : INTEGER2;
SegmentName : PACKED ARRAY [0..5] OF CHAR;
...
GetSegmentNo(SegmentName, SegmentNumber);
COBOL
01 SegmentNumber COMP.
01 SegmentName PIC X(6).
...
MONITOR-CALL "GetSegmentNo" USING SegmentName, SegmentNumber.
Fortran
INTEGER SegmentNumber
CHARACTER SegmentName*6
...
Monitor_Call('GetSegmentNo', SegmentName(1:6), SegmentNumber)
PLANC
INTEGER : SegmentNumber
BYTES : SegmentName(0:5)
...
Monitor_Call('GetSegmentNo', SegmentName, SegmentNumber)
ASSEMBLY-500
SegmentNumber : W BLOCK 1
SegmentName : STRINGDATA 'EXSEG' %Get number of segment EXSEG.
ErrCode : W BLOCK 1
GetSegmentNo : EQU 37B9 + 322B
...
CALLG GetSegmentNo, 1, SegmentName
IF K GO ERROR
W1 =: SegmentNumber
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA (PAR %Load register A with address of parameter list.
MON 322 %Monitor call GetSegmentNo.
JAN ERROR %Handle error if register A is negative.
STA SEGNO %Store segment number.
...
ERROR, ... %No segment has EXSEG as name.
...
SEGNO, 0
PAR, SEGNAM %String containing segment name.
...
SEGNAM, 'EXSEG' %Obtain segment number of EXSEG.
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 279
323B - SegmentOverlay (SPLRE)¶
Used to build multisegment programs in the ND-100. It is mainly for internal use. A new reentrant segment and two address areas in this segment are specified.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Segment number. The segment must be reentrant. |
Param2 |
UNKNOWN | I | Page number of first page in address-area 1. Normally in the program bank. |
Param3 |
UNKNOWN | I | Number of pages in address-area 1. |
Param4 |
UNKNOWN | I | Page number of first page in address-area 2. Normally in the data bank. |
Param5 |
UNKNOWN | I | Number of pages in address-area 2. |
Param6 |
UNKNOWN | I | Clear flag. If not 0, the earlier specified overlay areas are cleared. Use 0 the |
Param7 |
UNKNOWN | I | Standard Error Code. See appendix A. |
Examples¶
Pascal
SegmentNo, Page1A1, NoPageA1, Page1A2, NoPageA2, ClearFlag : INTEGER2;
...
SegmentOverlay(SegmentNo, Page1A1, NoPageA1, Page1A2, NoPageA2, ClearFlag);
COBOL
01 SegmentNo COMP.
01 Page1A1 COMP.
01 NoPageA1 COMP.
01 Page1A2 COMP.
01 NoPageA2 COMP.
01 ClearFlag COMP.
...
MONITOR-CALL "SegmentOverlay" USING SegmentNo, Page1A1, NoPageA1,
Page1A2, NoPageA2, ClearFlag.
Fortran
INTEGER SegmentNo, Page1A1, NoPageA1, Page1A2, NoPageA2, ClearFlag
...
Monitor_Call('SegmentOverlay', SegmentNo, Page1A1, NoPageA1,
Page1A2, NoPageA2, ClearFlag)
PLANC
INTEGER : SegmentNo, Page1A1, NoPageA1, Page1A2, NoPageA2, Clearflag
...
Monitor_Call('SegmentOverlay', SegmentNo, Page1A1, NoPageA1, &
Page1A2, NoPageA2, Clearflag)
MAC
LDA (PAR %Load register A with address of parameter list.
MON 323 %Monitor call SegmentOverlay.
...
PAR, SEGNO %Segment number.
AREA1 %First page in area 1.
NUM1 %Number of pages in area 1.
AREA2 %First page in area 2.
NUM2 %Number of pages in area 2.
CLEAR %Clear flag.
...
SEGNO, ...
AREA1, ...
NUM1, ...
AREA2, ...
NUM2, ...
CLEAR, ...
| ND-100 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 429
324B - OctobusFunction (OCTIO)¶
Performs various functions on an old Octobus (earlier than version 3).
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function number: |
Param2 |
UNKNOWN | I | 0 means kick. |
Param3 |
UNKNOWN | I | 1 means wait for kick. |
Param4 |
UNKNOWN | I | 5 means read Octobus status. |
Param5 |
UNKNOWN | I | 6 means "Who am I". |
Param6 |
UNKNOWN | I | Logical device number. |
Param7 |
UNKNOWN | I | Function dependent parameter. |
Param8 |
UNKNOWN | I | Function 0 returns the destination station. |
Param9 |
UNKNOWN | I | Function 5 and 6 return a status value. |
Param10 |
UNKNOWN | I | The last transmit status is returned in bit 31:16. |
Param11 |
UNKNOWN | I | The hardware status is in bit 15:0. |
Param12 |
UNKNOWN | I | Function 1 does not use this parameter. |
Examples¶
ASSEMBLY-500
| Parameter | Type | Block | Description |
|-------------|----------|-------|-------------------------------------------------|
| Func | W | BLOCK 1 | |
| DevNo | W | BLOCK 1 | |
| Par3 | W | BLOCK 1 | May be destination station or return value. |
| Status | W | BLOCK 1 | |
| OctobusFunction | EQU | 37B9 + 324B | |
CALLG OctobusFunction, 3, Func, DevNo, Par3
IF K GO Error
W1 =: Status
...
Error, ...
MAC
LDA (PAR
%Load register A with address of parameter list.
MON 324
%Monitor call OctobusFunction.
PAR, FUNC
LDN
STAT
FUNC, O
%Function.
LDN, ...
%Logical device number.
STAT, ...
%Status.
| ND-100 and ND-500 | All users | All programs |
|-------------------|--------------|--------------|
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 361
325B - BatchModeEcho (MBECH)¶
Controls echo of input and output if the program is executed in a batch or mode job. The purpose is to allow the program to communicate with the terminal in mode jobs.
Notes¶
- The state set by this monitor call is reset when the next batch or mode job starts.
- This monitor call is mainly used by the JEC system.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
ControlBitmask |
INTEGER | I/O | Bit mask to set the echo. Bit 0 set to 1 means no echo in batch and mode executions. Bit 1 set to 1 means output on terminal from mode executions. Bit 2 set to 1 means input from terminal in mode executions. If the parameter is -1, the bit mask from the previous batch or mode job is returned in the A register (ASSEMBLY-500) or via the parameter (high-level languages). |
See Also¶
Examples¶
Pascal
ControlBitmask : INTEGER2;
...
BatchModeEcho(ControlBitmask);
COBOL
01 ControlBitmask COMP.
...
MONITOR-CALL "BatchModeEcho" USING ControlBitmask.
Fortran
INTEGER ControlBitmask
...
Monitor_Call('BatchModeEcho', ControlBitmask)
PLANC
INTEGER : ControlBitmask
...
Monitor_Call('BatchModeEcho', ControlBitmask)
ASSEMBLY-500
OldMask : W BLOCK 1
%The lower 16 bit of the Il register holds the
% control bit mask from the previous BatchModeEcho
% if ControlBitMask was -1.
ControlBitmask : W BLOCK 1
ErrCode : W BLOCK 1
BatchModeEcho : EQU 37B9 + 325B
...
CALLG BatchModeEcho, 1, ControlBitmask
IF K GO Error
W1 := OldMask
...
Error, ...
MAC
LDA CTRL %Load register A with control bitmask.
MON 325 %Monitor call BatchModeEcho.
...
CTRL, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
326B - LogInStart (MLOGI)¶
Logs in a user on a terminal and starts a subsystem.
Notes¶
- The terminal must be free.
- The subsystem must be reentrant. See @DUMP-PROGRAM-REENTRANT.
See Also¶
SetUserParam and @DUMP-PROGRAM-REENTRANT
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number of a terminal. |
UNKNOWN | I | |
User name. |
STRING | I | |
Password. |
STRING | I | |
Project password. |
STRING | I | |
Subsystem to start. |
STRING | I | |
The 5 user parameters. See SetUserParam. |
ARRAY | I | Array of 5 elements. |
Return status. |
UNKNOWN | O | Unsuccessful log in returns -1. |
Examples¶
Pascal
TermNo : INTEGER2;
UserName : PACKED ARRAY [0..63] OF CHAR;
Password, ProjPassword : PACKED ARRAY [0..15] OF CHAR;
Subsystem : PACKED ARRAY [0..31] OF CHAR;
UserParam : RECORD END;
...
LogInStart(TermNo, UserName, Password, ProjPassword, Subsystem, UserParam);
IF ErrCode <> 0 THEN ...
COBOL
01 TermNo COMP.
01 UserName PIC X(64).
01 Password PIC X(16).
01 ProjPassword PIC X(16).
01 Subsystem PIC X(32).
01 UserParam.
02 array COMP OCCURS 5 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "LogInStart" USING TermNo, UserName, Password, ProjPassword, Subsystem, UserParam.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER TermNo
CHARACTER UserName*64, Password*16, ProjPassword*16, Subsystem*32
INTEGER UserParam(5)
...
Monitor_Call('LogInStart', TermNo, UserName(1:64), Password(1:16), ProjPassword(1:16), Subsystem(1:32), UserParam(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : TermNo
BYTES : UserName(0:63), Password(0:15), ProjPassword(0:15), Subsystem(0:31)
INTEGER ARRAY UserParam(0:4)
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('LogInStart', TermNo, UserName, Password, ProjPassword, &
Subsystem, UserParam(0))
ASSEMBLY-500
Not available.MAC
LDA (PAR %Load register A with address of parameter list.
MON 326 %Monitor call LogInStart.
JMP ERROR %Handle error if STAT is negative.
...
PAR, TERNO, %Terminal number
USER, %User name
PASSW, %Password.
PROJP, %Project password.
SUBSYS, %Subsystem
USRPAR, %User parameter.
STAT, %Status returned.
...
USER, 'A-HANSEN' %Login user A-HANSEN.
PASSW, 'MAY' %Use MAY as password.
PROJP, 'CHEESE' %Use CHEESE as a project password.
SUBSYS, 'NOTIS-WP' %Use NOTIS-WP as a subsystem.
STAT, 0 %
ERROR, ... %Error number in register A.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
327B - FileSystemFunction (FSMTY)¶
Multifunction monitor call to make sure that an uncontrolled system stop does not leave the file system inconsistent. The file index block of an open file is written back to the disk.
Notes¶
- This monitor call is particularly useful for SIBAS and ISAM applications.
- Only function 1 is available on ND-100.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Function code. |
INTEGER | I | 1 = write back to disk the index block of an open file. 2 = return the block size of an opened file. 3 = get full file name of an opened file. 4 = get information about a file or device. (More details on page 190.) |
File number. |
INTEGER | I | See OpenFile. |
Parameter 2. |
INTEGER | I/O | Block size if function code 2. Buffer to receive file name if function code 3. If function code 4: TYPRING, status, SINTRAN III open-file number or device number. |
Parameter 3. |
BYTES | I/O | Buffer (64 bytes or 26 words). Used for file name or other data depending on function code. |
Standard Error Code. See appendix A. |
INTEGER | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500, or register A for MAC. |
See Also¶
Examples¶
Pascal
FuncCode, FileNo : INTEGER2;
...
FileSystemFunction(FuncCode, FileNo);
IF ErrCode <> 0 THEN ...
COBOL
01 FuncCode COMP.
01 FileNo COMP.
01 Param2 COMP.
01 Param3 X PIC (64).
01 ErrCode COMP.
...
MONITOR-CALL "FileSystemFunction" USING FuncCode, FileNo, Param3, Param2.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FuncCode, FileNo, Param2
CHARACTER Param3*64
...
Monitor_Call('FileSystemFunction', FuncCode, FileNo, Param3, Param2)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FuncCode, FileNo, Param2
BYTES : Param3(0:63)
...
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('FileSystemFunction', FuncCode, FileNo, Param3, Param2)
ASSEMBLY-500
Func1Code : W DATA 1 %Various function codes.
Func2Code : W DATA 2
Func3Code : W DATA 3
FileNo : W BLOCK 1
BlockSize : W BLOCK 1
FileName : STRING 200B
ErrCode : W BLOCK 1
FileSystemFunction : EQU 37B9 + 327B
...
CALLG FileSystemFunction, 2, Func1Code, FileNo
IF K GO Error
CALLG FileSystemFunction, 3, Func2Code, FileNo, BlockSize
IF K GO Error
CALLG FileSystemFunction, 3, Func3Code, FileNo, FileName
IF K GO Error
...
Error, W1 := ErrCode
MAC
LDT FUNC %Load register T with the function code.
LDA FILNO %Load register A with the file number.
LDX (BUFF %Load register X with buffer address.
MON 327 %Monitor call FileSystemFunction.
JMP ERROR %Error return.
STA PAR2 %Returned parameter 2 if func = 2.
...
ERROR, ...
FUNC, 1 %Only function 1 is available on ND-100.
FILNO, ...
BUFF, 0 %Buffer of 26 words.
*+26/
PAR2, 0 %Block size.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
330B - TerminalStatus (TERST)¶
Gets information about a terminal. The user logged in, the time logged in, the CPU time used, the job being executed, and more is returned.
- You may use the monitor call for batch jobs.
- This call can only be used from background programs, not RT programs.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | ⟶ Logical device number of a terminal. Use 1 for your own terminal. |
Param2 |
UNKNOWN | I | ⟵ Information about the terminal. The 44 bytes are used as follows: |
0:15 |
Name of user logged in. Terminated by '.' if less than 16 bytes. | I | |
16:17 |
Mode. 1 means command. 2 means program running. | I | |
18:19 |
State. -1 means no one logged in. 0 means idle batch processor. 1 means active terminal. | I | |
20:21 |
CPU time used in minutes. | I | |
22:23 |
Time logged in in minutes. | I | |
24:43 |
The last command executed. Terminated by an ' (apostrophe). | I | |
Param9 |
UNKNOWN | I | ⟵ Standard Error Code. See appendix A. |
See Also¶
@TERMINAL-STATUS
Examples¶
Pascal
DeviceNumber : INTEGER2;
Buffer : ARRAY [0..1] OF RECORD...END;
...
TermStatus(DeviceNumber, Buffer); [Note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 DeviceNumber COMP.
01 Buffer.
02 array COMP OCCURS 22 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "TerminalStatus" USING DeviceNumber, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER DeviceNumber
INTEGER Buffer(22)
...
Monitor_Call('TerminalStatus', DeviceNumber, Buffer(1))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : DeviceNumber
BYTES : Buffer(0:43)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('TerminalStatus', DeviceNumber, Buffer(0))
ASSEMBLY-500
DeviceNumber : W BLOCK 1
Buffer : H BLOCK 25B
ErrCode : W BLOCK 1
TerminalStatus : EQU 37B9 + 330B
...
CALLG TerminalStatus, 2, DeviceNumber, Buffer
IF K GO ERROR
...
ERROR : W1 =: ErrCode
%ErrorCode in W1 register.
MAC
LDT LDN %Load register T with the logical device number.
LDA (BUF %Load register A with address of return buffer.
MON 330 %Monitor call TerminalStatus.
STA STAT %Returned status.
...
LDN, 1
BUF, 0
*+26/ %Buffer of 44 bytes.
STAT, 0
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 537
332B - TerminalLineInfo (TREPP)¶
Gets information about a terminal line. You may also enable programs to continue in spite of errors on the terminal line.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code. Use 1 to enable program to continue after line errors. 0 disa |
Param2 |
UNKNOWN | I | Logical device number of a terminal. Use 1 for your own terminal. |
Param3 |
UNKNOWN | I | Terminal line information. Dummy for function code 0 and 1. The following bi |
Param4 |
UNKNOWN | I | Bit 0: Set if the terminal line does not function. |
Param5 |
UNKNOWN | I | 1: Set if logout waits for ExitFromProgram. |
Param6 |
UNKNOWN | I | 2: Overflow in input buffer. Some characters are lost. |
Param7 |
UNKNOWN | I | 3: Parity error on input. |
Param8 |
UNKNOWN | I | 4: Framing error on input. |
Param9 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
FuncCode, DeviceNo, ReturnInfo : INTEGER2
TermLineInfo(FuncCode, DeviceNo, ReturnInfo); [note routine name.]
IF ErrCode <> 0 THEN ...
COBOL
01 FuncCode COMP.
01 DeviceNo COMP.
01 ReturnInfo COMP.
01 ErrCode COMP.
MONITOR-CALL "TerminalLineInfo" USING FuncCode, DeviceNo, ReturnInfo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FuncCode, DeviceNo, ReturnInfo
Monitor Call('TerminalLineInfo', FuncCode, DeviceNo, ReturnInfo)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : FuncCode, DeviceNo, ReturnInfo
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('TerminalLineInfo', FuncCode, DeviceNo, ReturnInfo)
ASSEMBLY-500
FuncCode : W BLOCK 1
DeviceNo : W BLOCK 1
ReturnInfo : W BLOCK 1
ErrCode : W BLOCK 1
TerminalLineInfo : EQU 37B9 + 332B
...
CALLG TerminalLineInfo, 2, FuncCode, DeviceNo
IF K GO ERROR
W1 := ReturnInfo
...
ERROR : W1 =: ErrCode
%ErrorCode in W1 register.
MAC
LDT LDN %Load register T with the logical device number.
LDA FUNC %Load register A with function code.
MON 332 %Monitor call TerminalStatus.
STA STAT %Returned status. Standard Error Code.
STA LINFO %Returns here if function code = 2 and no
%errors have occurred.
...
LDN, 1
FUNC, 0
LINFO, 0
STAT, 0
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 531
333B - DMAFunction (UDMA)¶
Monitor call 333B - DMAFunction
Source: ND-860228.2 EN, Page N/A
334B - GetErrorMessage (GETXM)¶
Gets a SINTRAN III error message text. Appendix A shows the messages connected to each error number. The error number is input. The program continues.
- This monitor call is convenient for advanced use of the terminal screen. For example, you may output the error message in inverse video at the bottom line.
- Do not input error number 0.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ Error number of the message to be printed. Use octal numbers. |
I | ||
➞ Error message text. |
I | ||
← Standard Error Code. See appendix A. |
I |
See Also¶
WarningMessage, ErrorMessage. ErrorMessage writes out the error message, terminates the program
Examples¶
Pascal
ErrorNo : INTEGER2;
Buffer : PACKED ARRAY [0..127] OF CHAR;
...
GetErrorMessage(ErrorNo, Buffer);
IF ErrCode <> 0 THEN ...
COBOL
01 ErrCode COMP.
01 Buffer PIC X(128).
01 ErrorNo COMP.
...
MONITOR-CALL "GetErrorMessage" USING ErrorNo, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ErrorNo
CHARACTER Buffer*128
...
Monitor_Call('GetErrorMessage', ErrorNo, Buffer(1:128))
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : ErrorNo
BYTES : Buffer(0:127)
...
ON ROUTINEERROR DO
IF ErrCode > < 0 THEN ...
ENDON
Monitor_Call('GetErrorMessage', ErrorNo, Buffer)
ASSEMBLY-500
ErrCode : W BLOCK 1
Buffer : W BLOCK 100
ErrorNo : W BLOCK 1
GetErrorMessage : EQU 37B9 + 334B
...
CALLG GetErrorMessage, 2, ErrorNo, Buffer
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDA ERRNO %Error number of error message to be printed.
LDX (BUF %Address of buffer to receive the error message.
MON 334 %Monitor call GetErrorMessage.
STA STAT %Returns here if error occurs.
... %Normal return here.
ERRNO, ...
BUF, ...
*+100/
STAT, ...
| ND-100 and ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 243
335B - TRANSFERDATA (EXABS)¶
Transfers data between physical memory and a mass-storage device, e.g. a disk. You may perform various device control functions. This monitor call is mainly used by the operating system itself.
See Also¶
DataTransfer, ReadFromFile, and WriteToFile
Examples¶
Pascal
DeviceNumber, Func, RetStatus : INTEGER2;
MemAddr, BlockAddr, NoOfBlocks : LONGINT;
...
TransferData(DeviceNumber, Func, MemAddr, BlockAddr, NoOfBlocks, RetStatus);
COBOL
01 DeviceNumber COMP.
01 Func COMP.
01 ReturnStatus COMP.
01 MemAddr COMP PIC S9(10).
01 BlockAddr COMP PIC S9(10).
01 NoOfBlocks COMP PIC S9(10).
...
MONITOR-CALL "TransferData" USING DeviceNumber, Func, MemAddr,
BlockAddr, NoOfBlocks, ReturnStatus.
Fortran
INTEGER DeviceNumber, Func, ReturnStatus
INTEGER*4 MemAddr, BlockAddr, NoOfBlocks
...
Monitor_Call('TransferData', DeviceNumber, Func, MemAddr,
BlockAddr, NoOfBlocks, ReturnStatus)
PLANC
INTEGER : DeviceNumber, Func, ReturnStatus
INTEGERA : MemAddr, BlockAddr, NoOfBlocks
...
Monitor_Call('TransferData', DeviceNumber, Func, MemAddr, &
BlockAddr, NoOfBlocks, ReturnStatus)
MAC
LDT DEVNO %Logical device number.
LDA (PAR %Load register A with address of parameter list.
MON 335 %Monitor call DataTransfer.
JAN ERROR %Error if register A is negative.
... %Continue with processing.
ERROR, ... %Error number in register A.
| DEVNO, ... | |
|------------|-------|
| PAR, FUNC | %Function code etc. |
| | DMEM %Memory address. |
| | BLOCK %Block address. |
| | NOBLK %Number of blocks to transfer. |
| FUNC, ... | |
|-----------|-------|
| DMEM, 0:0 | %These three parameters are 32-bit long. Use |
| BLOCK, 0:0| %the most significant word for 16-bit parameters. |
| NOBLK, 0:0| % |
ND-100 | User RT and user SYSTEM | RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 545
336B - TERMINAL (IOMTY)¶
This I/O multifunction monitor call is used to change the attributes of terminal and terminal access device (TAD) input/output. It is also used to configure NET/One interfaces and SCSI disks.
This monitor call needs a varying number of input and output parameters depending upon function. All parameters are therefore placed in an array.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code (more details on page 496). |
Param2 |
UNKNOWN | I | Length of function parameter array (must be greater than or equal number of inpu |
Param3 |
UNKNOWN | I | Function parameter array. (More details are given on page 496.) |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
MAC
| Instruction | Operand | Comment |
|-------------|---------|---------|
| LDT | NTERM | %Load register T with new terminal. |
| SAA | 0 | |
| COPY | SA DL | %Copy function code 0 to the L register |
| LDA | 0 | %No translation to uppercase letters. |
| MON | 336 | %TerminalFunction with function code 0. |
| STA | ERROR | %Returns here if errors. |
- **NTERM, ...**
%Logical device number of a terminal.
- **ERROR, ...**
| ND-100 and ND-500 | All users | Background programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 503
337B - ChangeSegment (SPCHG)¶
Changes the segment and the page table your program uses. The monitor call is similar to JumpToSegment and ExitFromSegment. In addition, you may change the two page tables in use. The segment numbers are restricted to 8-bits (values 0-255). SegmentFunction (MON 341) is the equivalent monitor call for version K of SINTRAN III.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Pascal |
Cobol | Fortran | |
Not available. |
Not available. | Not available. |
See Also¶
JumpToSegment, ExitFromSegment, and SegmentFunction
Examples¶
MAC
%Code on initial segment. JumpToSegment is performed.
| Instruction | Description |
|---------------|---------------------------------------------------|
| SAA 3 | %Page table 1 and 2 in A register. |
| COPY SA DD | %Copy to D register. |
| LDT (PAR | %Address of parameter list in T register. |
| MON 337 | %ChangeSegment with bit 15 in D register = 0. |
| CONT, ... | %Execution continues here after ExitFromSegment. |
| PAR, SUBRO | %Start address on the new segment. |
| 100201 | %Segment 200B and 201B. |
%Code on new segment. ExitFromSegment is performed.
| Instruction | Description |
|-----------------|-----------------------------------------------|
| SUBRO, STT SAVET| %Save T, L, and D registers. |
| COPY SL DT | |
| STT SAVEL | |
| COPY SD DT | |
| STT SAVED | |
| ... | |
| LDT SAVED | %Restore D register |
| COPY ST DD | |
| BSET ONE DD 170 | %Set bit 15 for ExitFromSegment function. |
| LDT SAVEL | %Restore L and T registers. |
| COPY ST DL | |
| LDT SAVET | |
| MON 337 | %ChangeSegment to return to original segment. |
| ND-100 | User RT and user SYSTEM | RT programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 107
340B - READSYSTEMRECORD (RSREC)¶
Used to read the system record into a buffer.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Record type (A-reg.): 1 = RT-description. |
Param2 |
UNKNOWN | I | RT-description address or segment number (T-reg.). |
Param3 |
UNKNOWN | I | Buffer address (X-reg.). Address of buffer to receive system record. This buffer |
Param4 |
UNKNOWN | I | FØrmat (only for ND-500): 0 = return information on 16-bit integer format |
Param5 |
UNKNOWN | I | If parameter 1 =1, then A-register returns the number of devices connected with |
Param6 |
UNKNOWN | I | Standard Error Code. See appendix A. |
PASCAL |
I | ||
Not available. |
I | ||
COBOL |
I | ||
Not available. |
I | ||
FORTRAN |
I | ||
Not available. |
I |
Examples¶
ASSEMBLY-500
| RECTYPE | W BLOCK 1 | % RT-description/segment entry |
|---------|------------|-------------------------------------------|
| ADDNO | W BLOCK 1 | % address of RT-descr/ND-100 segment |
| ENTRY | H BLOCK 38 | % buffer, 38 words |
| FORMAT | W BLOCK 1 | % format (16/32-bit integer) |
| RSREC | EQU 37000000340B | % RSREC = MON 340 |
CALLG RSREC,4,RECTYPE,ADDNO,ENTRY,FORMAT % MON RSREC with 4 parameters
IF K GO ERROR % on error return, W1 = error code
MAC
- LDA RECTP %Load A register with the record type.
- LDT RTADR %Load T register with RT address or segment no.
- LDX (BUFFR %Load X register with address of the buffer.
- MON 340 %Monitor call ReadSystemRecord.
- JMP ERROR %Error return.
... %Normal return.
| RECTP. | 1 |
|--------|------|
| RTADR. | 54214|
| BUFFR. | 0 *+46/ %Reserve 46 (38 words). |
ND-100 and ND-500 User RT and user SYSTEM RT programs
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 405
341B - SegmentFunction (SGMTY)¶
This is a multifunction monitor call used to change the active segments of a program, or the page index tables used by a program.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function code. |
Param2 |
UNKNOWN | I | 0 = JumpToSegment (MCALL) without PIT change |
Param3 |
UNKNOWN | I | 1 = ExitFromSegment (MEXIT) without PIT change |
Param4 |
UNKNOWN | I | 2 = JumpToSegment (MCALL) with PIT change |
Param5 |
UNKNOWN | I | 3 = ExitFromSegment (MEXIT) with PIT change |
Param6 |
UNKNOWN | I | 4 = REMSG (remove segment entered by ENTSEG) |
Param7 |
UNKNOWN | I | Start/return address |
Param8 |
UNKNOWN | I | New segment 1 |
Param9 |
UNKNOWN | I | New segment 2 |
Param10 |
UNKNOWN | I | New page index tables |
Function |
Register | I | |
Functions 0 and 2 |
(MCALL): | I | |
T |
Old segment 1 | I | |
D |
Old segment 2 | I | |
L |
Return address | I | |
X |
Old PITs if PITs changed (function 2) | I | |
Functions 1 and 3 |
(MEXIT): No register change | I | |
Function 4 |
(REMSG): A = 0 : ok | I | |
Param19 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
ChangeSegment, JumpToSegment, ExitFromSegment
Examples¶
MAC
| Command | Description |
|---------|-------------|
| LDT (PARLI | %Load T register with address of parameter list. |
| MON 341 | %Monitor call SegmentFunction. |
| JMP ERROR | %Error return. |
| ... | %Normal return. |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 427
400B - ErrorReturn (MACROE)¶
Terminates the program and sets an error code. The error code can be tested by the commands IF-ERROR-MACRO-STOP and IF-ERROR-FULL-STOP commands in the ND-500 Monitor. See the manual ND Linker User Guide and Reference Manual (ND-860289) for details about macros.
Parameters¶
This monitor call has no parameters.
Examples¶
Pascal
ErrorReturn;
COBOL
MONITOR-CALL "ErrorReturn".
Fortran
Monitor_Call('ErrorReturn')
PLANC
INTEGER : RTProgram, BasicTimeUnits
...
Monitor_Call('ExactDelayStart', RTProgram, BasicTimeUnits)
PLANC
Monitor_Call('ErrorReturn')
ASSEMBLY-500
ErrorReturn : EQU 37B9 + 400B
...
CALLG ErrorReturn, 0
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 173
</details>
*Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 173*
[↑ Back to Top](#table-of-contents)
---
### 401B - DisAssemble (DIASS)
 
Disassembles one machine instruction on the ND-500. Output is the instruction in ASSEMBLY-500 language. See the manual ND-500 ASSEMBLER Reference Manual (ND-860113).
#### Parameters
| Name | Type | I/O | Description |
|------|------|-----|-------------|
| `Param1` | UNKNOWN | I | Program address. |
| `Param2` | UNKNOWN | I | The assembly instruction. |
| `Param3` | UNKNOWN | I | Maximum number of characters in the assembly instruction. |
#### Examples
<details>
<summary><strong>Pascal</strong></summary>
```pascal
ProgPointer, MaxNoOfChar : LONGINT;
ReturnString : PACKED ARRAY [0..79] OF CHAR;
...
DisAssemble(ProgPointer, ReturnString, MaxNoOfChar);
COBOL
01 ProgPointer COMP.
01 MaxNoOfChar COMP.
01 ReturnString PIC X(100).
...
MONITOR-CALL "DisAssemble" USING ProgPointer, ReturnString, MaxNoOfChar.
Fortran
INTEGER ProgPointer, MaxChar
CHARACTER RetString*80
...
Monitor_Call('DisAssemble', ProgPointer, RetString(1:80), MaxChar)
PLANC
INTEGER : ProgPointer, MaxNoOfChar
BYTES : ReturnString(0:79)
...
Monitor_Call('DisAssemble', ProgPointer, ReturnString, MaxNoOfChar)
ASSEMBLY-500
ProgPointer : W BLOCK 1
MaxNoOfChar : W BLOCK 1
ReturnString : STRINGDATA
DisAssemble : EQU 37B9 + 401B
...
CALLG DisAssemble, 3, ProgPointer, ReturnString, MaxNoOfChar
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 159
402B - GetInputFlags (RFLAG)¶
ND-100 and ND-500 programs may communicate through two 32-bit flag arrays. You can use the flags as you wish. GetInputFlags reads the input flags. The ND-100 sets these flags with the monitor call ND500Function. See the manual ND Linker User Guide and Reference Manual (ND-860289).
- You get the last values written to the flags. There is no queue.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Flag values as a 32-bit integer. |
See Also¶
SetOutputFlags, ND500Function
Examples¶
Pascal
Value : LONGINT;
...
GetInputFlags(Value);
COBOL
01 Value COMP.
...
MONITOR-CALL "GetInputFlags" USING Value.
Fortran
INTEGER Value
...
Monitor_Call('GetInputFlags', Value)
PLANC
INTEGER : Value
...
Monitor_Call('GetInputFlags', Value)
ASSEMBLY-500
Value : W BLOCK 1
GetInputFlags : EQU 37B9 + 402B
...
CALLG GetInputFlags, 1, Value
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 251
403B - SetOutputFlags (WFLAG)¶
ND-100 and ND-500 programs may communicate through two 32-bit flag arrays. You can use the flags as you want. SetOutputFlags writes to the output flags. The ND-100 reads these flags with the monitor call ND500Function. See the manual ND Linker User Guide and Reference Manual (ND-860289).
- You store the last values written to the flags. There is no queue.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
➞ |
Flag values as a 32-bit integer. | I |
See Also¶
Examples¶
Pascal
Value : LONGINT;
...
SetOutputFlags(Value);
COBOL
01 Value COMP.
...
MONITOR-CALL "SetOutputFlags" USING Value.
Fortran
INTEGER Value
...
Monitor_Call('SetOutputFlags', Value)
PLANC
INTEGER : Value
...
Monitor_Call('SetOutputFlags', Value)
ASSEMBLY-500
Value : W BLOCK 1
SetOutputFlags : EQU 37B9 + 403B
...
CALLG SetOutputFlags, 1, Value
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 455
404B - FixIOArea (IOFIX)¶
Fixes an address area in a domain in physical memory. The memory area can be used for later input and output monitor calls, e.g. ReadFromFile or WriteTofile.
- Use MemoryUnFix to release the pages.
- The pages are released when the domain terminates.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Start address in the domain. |
Param2 |
UNKNOWN | I | Number of bytes to fix. |
See Also¶
FixScattered, FixContiguous, FixInMemory, and MemoryAllocation
Examples¶
Pascal
FirstAddress, SizeOfArea : LONGINT;
...
FixIOArea(FirstAddress, SizeOfArea);
COBOL
01 FirstAddress COMP.
01 SizeOfArea COMP.
...
MONITOR-CALL "FixIOArea" USING FirstAddress, SizeOfArea.
Fortran
INTEGER FirstAddress, SizeOfArea
...
Monitor_Call('FixIOArea', FirstAddress, SizeOfArea)
PLANC
INTEGER : FirstAddress, SizeOfArea
...
Monitor_Call('FixIOArea', FirstAddress, SizeOfArea)
ASSEMBLY-500
Buffer : W BLOCK 1000B
SizeOfArea : W BLOCK 1
FixIOArea : EQU 37B9 + 404B
...
CALLG FixIOArea, 2, Buffer, SizeOfArea
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 205
405B - SwitchUserBreak (USTRK)¶
Switches user-defined escape handling on and off. The user-defined escape handling transfers control to a routine when you press the ESCAPE key.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | On/off flag. Use 1 for on and 0 for off. |
Param2 |
UNKNOWN | I | Program address to start at when you press the ESCAPE key. |
See Also¶
Examples¶
Pascal
Func, Address : LONGINT;
...
SwitchUserBreak(Func, Address);
COBOL
01 Func COMP.
01 Address COMP.
...
MONITOR-CALL "SwitchUserBreak" USING Func, Address.
Fortran
INTEGER Func, Address
...
Monitor_Call('SwitchUserBreak', Func, Address)
PLANC
INTEGER : Func, Address
...
Monitor_Call('SwitchUserBreak', Func, Address)
ASSEMBLY-500
Func : W BLOCK 1
Address : W BLOCK 1
SwitchUserBreak : EQU 37B9 + 405B
...
CALLG SwitchUserBreak, 2, Func, Address
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 501
406B - AccessRTCommon (RWRTC)¶
Reads from or writes to RT common from an ND-500 program. RT common is an area in physical memory where RT programs may exchange data.
- Some SINTRAN III systems are generated without RT common. The size of RT common is defined at the time of system generation. The size may be increased by up to 8 pages by the SINTRAN-SERVICE-PROGRAM command DEFINE-RTCOMMON-SIZE (see the SINTRAN III Commands Reference Manual, ND-860128, for more information).
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Function. Use 0 to read, and 1 to write. |
Param2 |
UNKNOWN | I | RT common address. This is a logical ND-100 address in the logical address area |
Param3 |
UNKNOWN | I | Number of bytes to read or write. |
Param4 |
UNKNOWN | I | Buffer of data to be read or written. |
See Also¶
Examples¶
Pascal
Func, RTCommon, NoOfBytes : LONGINT;
Buffer : ARRAY [0..6] OF RECORD...END;
AccessRTCommon(Func, RTCommon, NoOfBytes, Buffer);
COBOL
01 Func COMP.
01 RTCommon COMP.
01 NoOfBytes COMP.
01 Buffer.
02 array COMP OCCURS 100 TIMES.
...
MONITOR-CALL "AccessRTCommon" USING Func, RTCommon, NoOfBytes, Buffer.
Fortran
INTEGER Func, RTCommon, NoOfBytes
INTEGER Buffer(100)
...
Monitor_Call('AccessRTCommon', Func, RTCommon, NoOfBytes, Buffer(1))
PLANC
INTEGER : Func, RTCommon, NoOfBytes
BYTES : Buffer(0:199)
Monitor_Call('AccessRTCommon', Func, RTCommon, NoOfBytes, Buffer(0))
ASSEMBLY-500
Func : W BLOCK 1
RTCommon : W BLOCK 1
NoOfBytes : W BLOCK 1
Buffer : W ARRAY 100
ErrCode : W BLOCK 1
AccessRTCommon : EQU 37B9 + 406B
CALLG AccessRTCommon, 4, Func, RTCommon, NoOfBytes, Buffer
IF K GO ERROR
Error : W1 = ErrCode %Error code in the W1 register.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 73
410B - FixInMemory (FIXMEM)¶
Fixes a logical segment (either whole or in part) of a user's domain in physical memory. This action is intended to speed up access to the segment and is also useful for segment sharing.
- Only data segments can be fixed.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
FixType. |
UNKNOWN | I | 0 = Fixes pages that are scattered (non-contiguous). 1 = Fixes pages contiguously and returns the starting address. 2 = Fixes pages at a given memory address. |
FirstAddr. |
UNKNOWN | I | The starting address within the user's domain. This should be a 32-bit address, including the segment number. |
Length. |
UNKNOWN | I | The length of the segment to fix, specified in bytes. A value of -1 can be used to fix the remaining part of the segment. |
ND100Addr. |
UNKNOWN | IO | The physical memory address in the ND-100 system. This parameter is used if FixType is 1 or 2. The address provided or returned is the start of a physical page. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
Examples¶
Pascal
FixType, FirstAddr, Length, ND100Addr : LONGINT;
...
FixInMemory (FixType, FirstAddr, Length, ND100Addr);
COBOL
01 FixType COMP.
01 FirstAddr COMP.
01 Length COMP.
01 ND100Addr COMP.
...
MONITOR-CALL "FixInMemory" USING FixType, FirstAddr, Length, ND100Addr.
Fortran
INTEGER FixType, FirstAddr, Length, ND100Addr
...
Monitor_Call('FixInMemory', FixType, FirstAddr, Length, ND100Addr)
PLANC
INTEGER : FixType, FirstAddr, Length, ND100Addr
...
Monitor_Call('FixInMemory', FixType, FirstAddr, Length, ND100Addr)
ASSEMBLY-500
FixType : W BLOCK 1
FirstAddr : W BLOCK 1
Length : W BLOCK 1
ND100Addr : W BLOCK 1
FixInMemory : EQU 37B9 + 410B
...
CALLG FixInMemory, 4, FixType, FirstAddr, Length, ND100Addr
IF K GO Error
...
Error, ...
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
411B - MemoryUnfix (UNFIXM)¶
Releases a fixed segment in your domain from physical memory. A fixed segment has all its pages fixed in physical memory. After MemoryUnfix the pages may be swapped between the disk and physical memory.
See Also¶
FixInMemory
Examples¶
Pascal
Address : LONGINT;
...
MemoryUnfix(Address);
COBOL
01 Address COMP.
...
MONITOR-CALL "MemoryUnfix" USING Address.
Fortran
INTEGER Address
...
Monitor_Call('MemoryUnfix', Address)
PLANC
INTEGER : Address
...
Monitor_Call('MemoryUnFix', Address)
ASSEMBLY-500
Address : W BLOCK 1
MemoryUnfix : EQU 37B9 + 411B
...
CALLG MemoryUnfix, 1, Address
IF K GO error,
...
Error, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 347
412B - FileAsSegment (FSCNT)¶
Connects a file as a segment to your domain. You can then access the file as a logical segment. This reduces the access time.
- The file must be open. The access must be specified in the OpenFile call.
- The file is disconnected when it is closed.
- A file may be connected to several processes simultaneously. It is your responsibility to synchronize simultaneous accesses.
- You may not use ReadFromFile (mon 117) or WriteToFile (mon 120) on a file which is connected to a segment. Refer to these monitor calls for further details.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See OpenFile. |
Param2 |
UNKNOWN | I | Logical segment number in the domain. The segment number must be free. Use 0 to |
Param3 |
UNKNOWN | I | Access type. Use 0 if the file contains initial data. 1 means uninitialized, emp |
Param4 |
UNKNOWN | I | Logical segment number selected if you give 0 in the second parameter. |
Param5 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
FileNotAsSegment which disconnects the file
Examples¶
Pascal
FileNo, LogSegmentNo, Type, SegmentNo : LONGINT;
...
FileAsSegment(FileNo, LogSegmentNo, Type, SegmentNo);
IF ErrCode <> 0 THEN ...
COBOL
01 FileNo COMP.
01 LogSegmentNo COMP.
01 Type COMP.
01 SegNo COMP.
01 ErrCode COMP.
...
MONITOR-CALL "FileAsSegment" USING FileNo, LogSegmentNo, Type, SegNo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER FileNo, LogSegmentNo, Type, SegmentNo
...
Monitor_Call('FileAsSegment', FileNo, LogSegmentNo, Type, SegmentNo)
IF (ErrCode .NE. 0) THEN ...
ASSEMBLY-500
FileNo : W BLOCK 1
LogSegmentNo : W BLOCK 1
Type : W BLOCK 1
SegmentNo : W BLOCK 1
ErrCode : W BLOCK 1
FileAsSegment : EQU 37B9 + 412B
...
CALLG FileAsSegment, 4, FileNo, LogSegmentNo, Type, SegmentNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 193
413B - FileNotAsSegment (FSCDNT)¶
Disconnects a file as a segment in your domain. FileAsSegment allows files to be accessed as segments. This monitor call disconnects the file.
- The file is not closed.
- The file is automatically disconnected by CloseFile.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See OpenFile. |
Param2 |
UNKNOWN | I | Segment number (optional parameter). |
See Also¶
Examples¶
Pascal
FileNumber, LogSegNumber: LONGINT;
...
FileNotAsSegment(FileNumber, LogSegNumber);
COBOL
01 FileNumber COMP.
02 LogSegNumber COMP.
...
MONITOR-CALL "FileNotAsSegment" USING FileNumber, LogSegNumber.
Fortran
INTEGER FileNumber, LogSegNumber
...
Monitor_Call('FileNotAsSegment', FileNumber, LogSegNumber)
PLANC
INTEGER : FileNumber, LogSegNumber
...
Monitor_Call('FileNotAsSegment', FileNumber, LogSegNumber)
ASSEMBLY-500
FileNumber : W BLOCK 1
LogSegNumber : W BLOCK 1
FileNotAsSegment : EQU 37B9 + 413B
...
CALLG FileNotAsSegment, 2, FileNumber, LogSegNumber
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 195
414B - BCNAFCAMAC (BCNAF)¶
Special CAMAC function on the ND-500. (Same as mon 156 TRACB.)
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Function. |
UNKNOWN | I | |
Address. |
UNKNOWN | I | |
Data. |
UNKNOWN | I | |
Status. |
UNKNOWN | O | Returned via Status variable in high-level languages, or in W1 register for ASSEMBLY-500 (K flag indicates error). |
See Also¶
CAMACFunction, AssignCAMACLAM, BCNAF1CAMAC, CAMACIOInstruction, and CAMACGLRegister
Examples¶
Pascal
Func, Address, Data, Status : LONGINT;
...
BCNAFCAMAC(Func, Address, Data, Status);
IF ErrCode <> 0 THEN ...
COBOL
01 Func COMP.
01 Address COMP.
01 Data COMP.
01 Status COMP.
01 ErrCode COMP.
...
MONITOR-CALL "BCNAFCAMAC" USING Func, Address, Data, Status.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Func, Address, Data, Status
...
Monitor_Call('BCNAFCAMAC', Func, Address, Data, Status)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : Func, Address, Data, Status
...
Monitor_Call('BCNAFCAMAC', Func, Address, Data, Status)
ASSEMBLY-500
Func : W BLOCK 1
Address : W BLOCK 1
Data : W BLOCK 1
Status : W BLOCK 1
BCNAFCAMAC : EQU 37B9 + 414B
...
CALLG BCNAFCAMAC, 4, Func, Address, Data, Status
IF K GO ERROR
...
ERROR : W1 =: Status %Status in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
415B - BCNAF1CAMAC (BCNAF1)¶
Special CAMAC monitor call for the ND-500. (Same as mon 176 - user-defined monitor call.)
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Function. |
UNKNOWN | I | |
Address. |
UNKNOWN | I | |
Data. |
UNKNOWN | I | |
Status. |
UNKNOWN | O | Returned via Status variable in high-level languages, or in W1 register for ASSEMBLY-500 (K flag indicates error). |
See Also¶
CAMACFunction, AssignCAMACLAM, BCNAFCAMAC, CAMACIOInstruction, and CAMACGLRegister
Examples¶
Pascal
Funct, Address, Data, Status : LONGINT;
...
BCNAF1CAMAC(Funct, Address, Data, Status);
IF ErrCode <> 0 THEN ...
COBOL
01 Func COMP.
01 Address COMP.
01 Data COMP.
01 Status COMP.
01 ErrCode COMP.
...
MONITOR-CALL "BCNAF1CAMAC" USING Func, Address, Data, Status.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER Func, Address, Data, Status
...
Monitor_Call('BCNAF1CAMAC', Func, Address, Data, Status)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : Func, Address, Data, Status
...
Monitor_Call('BCNAF1CAMAC', Func, Address, Data, Status)
ASSEMBLY-500
Func : W BLOCK 1
Address : W BLOCK 1
Data : W BLOCK 1
Status : W BLOCK 1
BCNAF1CAMAC : EQU 37B9 + 415B
...
CALLG BCNAF1CAMAC, 4, Func, Address, Data, Status
IF K GO ERROR
...
ERROR : W1 =: Status %Status in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
416B - SaveND500Segment (WSEGN)¶
Writes all modified pages of a segment back to the disk.
- Not allowed when fixed in memory.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical segment number in the domain. If 0, the segment number is retrieved from |
Param2 |
UNKNOWN | I | First logical page in the segment. |
Param3 |
UNKNOWN | I | Last logical page in the segment. |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
LogSegmentNo, FirstPage, LastPage : LONGINT;
...
SaveND500Segment(LogicalSegmentNo, FirstPage, LastPage);
IF ErrCode <> 0 THEN ...
COBOL
01 LogSegmentNo COMP.
01 FirstPage COMP.
01 LastPage COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SaveND500Segment" USING LogSegmentNo, FirstPage, LastPage.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER LogSegmentNo, FirstPage, LastPage
...
Monitor_Call('SaveND500Segment', LogSegmentNo, FirstPage, LastPage)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : LogSegmentNo, FirstPage, LastPage
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SaveND500Segment', LogSegmentNo, FirstPage, LastPage)
ASSEMBLY-500
LogSegmentNo : W BLOCK 1
FirstPage : W BLOCK 1
LastPage : W BLOCK 1
ErrCode : W BLOCK 1
SaveND500Segment : EQU 37B9 + 416B
...
CALLG SaveND500Segment, 3, LogSegmentNo, FirstPage, LastPage
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 421
417B - MaxPagesInMemory (MXPISG)¶
Sets the maximum number of pages a segment may have in physical memory at a time.
- This monitor call applies to ND-500 logical segments only.
- The segment must be in use.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Logical segment number in your domain. If you specify 0, a segment number is fou |
Param2 |
UNKNOWN | I | Segment type. Use 0 for data segments and 1 for program segments. |
Param3 |
UNKNOWN | I | Number of pages. |
Param4 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
FixInMemory
Examples¶
Pascal
SegmentNo, SegType, NoOfPages : LONGINT;
...
MaxPagesInMemory(SegmentNo, SegType, NoOfPages);
IF ErrCode <> 0 THEN ...
COBOL
01 SegmentNo COMP.
01 SegType COMP.
01 NoOfPages COMP.
01 ErrCode COMP.
...
MONITOR-CALL "MaxPagesInMemory" USING SegmentNo, SegType, NoOfPages.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SegmentNo, SegType, NoOfPages
...
Monitor Call('MaxPagesInMemory', SegmentNo, SegType, NoOfPages)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SegmentNo, SegType, NoOfPages
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('MaxPagesInMemory', SegmentNo, SegType, NoOfPages)
ASSEMBLY-500
SegmentNo : W BLOCK 1
SegType : W BLOCK 1
NoOfPages : W BLOCK 1
MaxPagesInMemory : EQU 37B9 + 417B
...
CALLG MaxPagesInMemory, 3, SegmentNo, SegType, NoOfPages
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 341
420B - GetUserRegisters (GRBLK)¶
SwitchUserBreak allows you to save the registers when you terminate an ND-500 program with the ESCAPE key. You can get the contents of the registers with GetUserRegisters.
Notes¶
- 39 registers are saved.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Buffer |
ARRAY | I/O | 154 bytes containing the registers in their number sequence. |
See Also¶
Examples¶
Pascal
Buffer : ARRAY [0..4] OF RECORD...END;
...
GetUserRegister(Buffer);
COBOL
01 Buffer.
02 array COMP OCCURS 77 TIMES.
...
MONITOR-CALL "GetUserRegister" USING Buffer.
Fortran
INTEGER Buffer(77)
...
Monitor_Call('GetUserRegister', Buffer(1))
PLANC
BYTES : Buffer(0:153)
...
Monitor_Call('GetUserRegister', Buffer(0))
ASSEMBLY-500
Buffer : W BLOCK 50B
GetUserRegister : EQU 37B9 + 420B
...
CALLG GetUserRegister, 1, Buffer
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
421B - GetActiveSegment (GASGM)¶
Gets the name of the segments in your domain. A 2048 byte buffer is returned. It contains 32 pointers to segment names in the buffer. Each pointer consists of 12 bytes. The first four is an address. The second four is the offset from this address to the start of the segment name. The last four are the offset to the end of the segment name.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | A 2048 byte buffer, i.e. 1 page, containing pointers to segment names. |
Examples¶
Pascal
Buffer : ARRAY [0..31] OF RECORD...END;
...
GetActiveSegment(Buffer);
COBOL
01 Buffer.
02 array COMP OCCURS 1024 TIMES.
...
MONITOR-CALL "GetActiveSegment" USING Buffer.
Fortran
INTEGER Buffer(1024)
...
Monitor_Call('GetActiveSegment', Buffer(1))
PLANC
BYTES : Buffer(0:2047)
...
Monitor_Call('GetActiveSegment', Buffer(0))
ASSEMBLY-500
Buffer : W BLOCK 1024
GetActiveSegment : EQU 37B9 + 421B
...
CALLG GetActiveSegment, 1, Buffer
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 217
422B - GetScratchSegment (GSWSP)¶
Connects an empty data segment to the user's domain and reserves space for it on the swap file. The segment is assigned the default name "SCRATCH-SEGMENT:DSEG".
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Segment size in bytes. |
UNKNOWN | I | Specifies the desired size of the segment. |
Logical segment number. |
UNKNOWN | I | The segment number to be used. It must be free. Using 0 will cause the system to select the first available free segment. |
Selected logical segment number. |
UNKNOWN | O | This parameter returns the logical segment number that was actually selected, especially if 0 was specified for the input logical segment number. |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
Examples¶
Pascal
SizeInBytes, LogSegmentNo, RetLogSegmentNo : LONGINT;
...
GetScratchSegment(SizeInBytes, LogSegmentNo, RetLogSegmentNo);
IF ErrCode <> 0 THEN ...
COBOL
01 SizeInBytes COMP.
01 LogSegmentNo COMP.
01 RetLogSegmentNo COMP.
01 ErrCode COMP.
...
MONITOR-CALL "GetScratchSegment" USING SizeInBytes, LogSegmentNo, RetLogSegmentNo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SizeInBytes, LogSegmentNo, RetLogSegmentNo
...
Monitor_Call('GetScratchSegment', SizeInBytes, LogSegmentNo, RetLogSegmentNo)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SizeInBytes, LogSegmentNo, RetLogSegNo
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetScratchSegment', SizeInBytes, LogSegmentNo, RetLogSegNo)
ASSEMBLY-500
SizeInBytes : W BLOCK 1
LogSegmentNo : W BLOCK 1
RetLogSegmentNo : W BLOCK 1
ErrCode : W BLOCK 1
GetScratchSegment : EQU 37B9 + 422B
...
CALLG GetScratchSegment, 3, SizeInBytes, LogSegmentNo, RetLogSegmentNo
IF K GO ERROR
...
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
423B - CopyCapability (CAPCOP)¶
Copies a capability for a segment. The segment itself is also copied. A capability describes each logical segment in a domain.
- The destination segment number must be unused.
See Also¶
Examples¶
Pascal
SourceSegNo, SourceType, DestSegNo, DestType, AccCode, RetSegNo : LONGINT;
...
CopyCapability(SourceSegNo, SourceType, DestSegNo,
DestType, AccCode, RetSegNo)
IF ErrCode <> 0 THEN ...
COBOL
01 SourceSegNo COMP.
01 SourceType COMP.
01 DestSegNo COMP.
01 DestType COMP.
01 AccCode COMP.
01 RetSegNo COMP.
01 ErrCode COMP.
...
MONITOR-CALL "CopyCapability" USING SourceSegNo, SourceType,
DestSegNo, DestType, AccCode, RetSegNo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER SourceSegNo, SourceType, DestSegNo, DestType
INTEGER AccCode, RetSegNo
...
Monitor_Call('CopyCapability', SourceSegNo, SourceType,
DestSegNo, DestType, AccCode, RetSegNo)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : SourceSegNo, SourceType, DestSegNo, DestType, AccCode, RetSegNo
...
ON ROUTINEERROR DO
  IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('CopyCapability', SourceSegNo, SourceType, DestSegNo, &
          DestType, AccCode, RetSegNo)
ASSEMBLY-500
| Parameter | Type |
|---------------|--------|
| SourceSegNo | W BLOCK 1 |
| SourceType | W BLOCK 1 |
| DestSegNo | W BLOCK 1 |
| DestType | W BLOCK 1 |
| AccCode | W BLOCK 1 |
| RetSegNo | W BLOCK 1 |
| ErrCode | W BLOCK 1 |
CopyCapability : EQU 37B9 + 423B
...
CALLG CopyCapability, 6, SourceSegNo, SourceType, DestSegNo, &
        DestType, AccCode, RetSegNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode   %ErrorCode in W1 register.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 121
424B - ClearCapability (CAPCLE)¶
Clears a capability. A capability describes each logical segment in a domain. The protection of the segment is removed. See the manual ND Linker User Guide and Reference Manual (ND-60289).
- The logical segment is available for other physical segments.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical segment number in your domain. |
Logical segment number in your domain. | I | |
Segment type. Use 0 for data segments, and 1 for program segments. |
Segment type. Use 0 for data segments, and 1 for program segments. | I | |
Standard Error Code. See appendix A. |
Standard Error Code. See appendix A. | I |
See Also¶
Examples¶
Pascal
LogicalSegmentNo, SegType : LONGINT;
...
ClearCapability(LogicalSegmentNo, SegType);
IF ErrCode <> 0 THEN ...
COBOL
01 LogicalSegmentNo COMP.
01 SegType COMP.
01 ErrCode COMP.
...
MONITOR-CALL "ClearCapability" USING LogicalSegmentNo, SegType.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER LogicalSegmentNo, SegType
...
Monitor_Call('ClearCapability', LogicalSegmentNo, SegType)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : LogicalSegmentNo; SegType
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ClearCapability', LogicalSegmentNo, SegType)
ASSEMBLY-500
LogicalSegmentNo : W BLOCK 1
SegType : W BLOCK 1
ErrCode : W BLOCK 1
ClearCapability : EQU 37B9 + 424B
...
CALLG ClearCapability, 2, LogicalSegmentNo, SegType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 111
425B - SetProcessName (SPRNAM)¶
Defines a new name for your process.
- Process names may be up to 16 characters and contain an additional user name, e.g. (P-HANSEN)WP-PROCESS.
See Also¶
GetProcessNo, GetOwnProcessInfo
Examples¶
Pascal
ProcessName : PACKED ARRAY [0..33] OF CHAR;
...
SetProcessName(ProcessName);
COBOL
01 ProcessName PIC X(34).
...
MONITOR-CALL "SetProcessName" USING ProcessName.
Fortran
CHARACTER ProcessName*34
...
Monitor_Call('SetProcessName', ProcessName(1:34))
PLANC
BYTES : ProcessName(0:33).
...
Monitor_Call('SetProcessName', ProcessName)
ASSEMBLY-500
ProcessName : STRINGDATA 'WP-PROCESS'...
SetProcessName : EQU 37B9 + 425B
...
CALLG SetProcessName, 1, ProcessName
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 461
426B - GetProcessNo (GPRNAM)¶
Gets the number of a process in the ND-500. You specify the process name. The process number is assigned when you start the ND-500 Monitor.
- The process name may not be abbreviated.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Process name. You may include a user name, e.g. (P-HANSEN)WP-PROCESS. |
Param2 |
UNKNOWN | I | Process number in bit 31:16 and magic number in bit 15:0. |
See Also¶
GetOwnProcessInfo, SetProcessName
Examples¶
Pascal
ProcessName : PACKED ARRAY [0..33] OF CHAR;
ProcessNumber : LONGINT;
...
GetProcessNo(ProcessName, ProcessNumber);
COBOL
01 ProcessName PIC X(34).
01 ProcessNumber COMP.
...
MONITOR-CALL "GetProcessNo" USING ProcessName, ProcessNumber.
Fortran
CHARACTER ProcessName*34
INTEGER ProcessNumber
...
Monitor_Call('GetProcessNo', ProcessName(1:34), ProcessNumber)
PLANC
BYTES : ProcessName(0:33)
INTEGER : ProcessNumber
...
Monitor_Call('GetProcessNo', ProcessName, ProcessNumber)
ASSEMBLY-500
ProcessName : STRING 44B
ProcessNumber : W BLOCK 1
GetProcessNo : EQU 37B9 + 426B
...
CALLG GetProcessNo, 2, ProcessName, ProcessNumber
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 267
427B - GetOwnProcessInfo (GPRNME)¶
Gets the name and number of your own process in the ND-500. You get a process each time you enter the ND-500 Monitor.
- The default process names are TERMINAL-xx where xx is a number.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Process name, maximum 34 bytes. |
Param2 |
UNKNOWN | I | Process number in bit 31:16 and magic number in bit 15:0. |
Param3 |
UNKNOWN | I | Standard Error Code. See appendix A. |
See Also¶
Examples¶
Pascal
ProcessName : PACKED ARRAY [0..33] OF CHAR;
ProcessNumber : LONGINT;
...
GetOwnProcessInfo(ProcessName, ProcessNumber);
COBOL
01 ProcessName PIC X(34).
01 ProcessNumber COMP.
...
MONITOR-CALL "GetOwnProcessInfo" USING ProcessName, ProcessNumber.
Fortran
CHARACTER ProcessName*34
INTEGER ProcessNumber
...
Monitor_Call('GetOwnProcessInfo', ProcessName(1:34), ProcessNumber)
PLANC
BYTES : ProcessName(0:33)
INTEGER : ProcessNumber
...
Monitor_Call('GetOwnProcessInfo', ProcessName, ProcessNumber)
ASSEMBLY-500
ProcessName : STRING 44B
ProcessNumber : W BLOCK 1
GetOwnProcessInfo : EQU 37B9 + 427B
...
CALLG GetOwnProcessInfo, 2, ProcessName, ProcessNumber
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 263
430B - TranslateAddress (ADR100)¶
Translates an ND-500 logical address to an ND-100 physical address. Use this monitor call to set up communication areas between the two CPUs.
Notes¶
- Applied only to data addresses, not program addresses.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
ND-500 array logical address. |
UNKNOWN | I | |
Physical word address in the ND-100. |
UNKNOWN | O |
Examples¶
Pascal
ND500Array, ND100PhysWordAddr : LONGINT;
...
TranslateAddress (ND500Array, ND100PhysWordAddr);
IF ErrCode <> 0 THEN ...
COBOL
01 ND500Array COMP.
01 ND100PhysWordAddr COMP.
01 ErrCode COMP.
...
MONITOR-CALL "TranslateAddress" USING ND500Array, ND100PhysWordAddr.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ND500Array, ND100PhysWordAddr
...
Monitor_Call('TranslateAddress', ND500Array, ND100PhysWordAddr)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : ND500Array, ND100PhysWordAddr
...
Monitor_Call('TranslateAddress', ND500Array, ND100PhysWordAddr)
ASSEMBLY-500
ND500Array : W BLOCK 1
ND100PhysWordAddr : W BLOCK 1
TranslateAddress : EQU 37B9 + 430B
...
CALLG TranslateAddress, 2, ND500Array, ND100PhysWordAddr
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
431B - AwaitTransfer (MWAITF)¶
Checks that a data transfer to or from a mass-storage file is completed. The monitor call is relevant to DeviceFunction, ReadFromFile and WriteToFile operations. These are carried out independently of the CPU. The number of bytes read or written is returned.
- You may specify that the program should wait if the transfer is not ready. It is set in the I/O wait state.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | File number. See Openfile. |
Param2 |
UNKNOWN | I | Wait flag. If 0, the program waits until the data transfer is completed. Other v |
Param3 |
UNKNOWN | I | Number of bytes transferred. |
See Also¶
Examples¶
Pascal
FileNumber, WaitFlag, NoOfBytes : LONGINT;
...
AwaitTransfer(FileNumber, WaitFlag, NoOfBytes);
COBOL
01 FileNumber COMP.
01 WaitFlag COMP.
01 NoOfBytes COMP.
...
MONITOR-CALL "AwaitTransfer" USING FileNumber, WaitFlag, NoOfBytes.
Fortran
INTEGER FileNumber, WaitFlag, NoOfBytes
...
Monitor_Call('AwaitTransfer', FileNumber, WaitFlag, NoOfBytes)
PLANC
INTEGER : FileNumber, WaitFlag, NoOfBytes
...
Monitor_Call('AwaitTransfer', FileNumber, WaitFlag, NoOfBytes)
ASSEMBLY-500
FileNumber : W BLOCK 1
WaitFlag : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
AwaitTransfer : EQU 37B9 + 431B
...
CALLG AwaitTransfer, 3, FileNumber, WaitFlag, NoOfBytes
IF K GO Error
...
Error, Wl =: ErrCode
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 89
435B - ForceTrap (PRT)¶
Forces a programmed trap to occur in another ND-500 process. The trap handler in this process is started.
- The trapped process gets your process number through GetTrapReason. It is stored in the upper half of the error code. The lower half contains the reason code you specify as a parameter.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Process number to be trapped. |
Param2 |
UNKNOWN | I | Reason code. Bit 31:16 contains the process number and bit 15:0 the magic number |
Language |
Availability | I | |
PASCAL |
Not available. | I | |
COBOL |
Not available. | I | |
FORTRAN |
Not available. | I |
See Also¶
Examples¶
ASSEMBLY-500
ProcessNumber : W BLOCK 1
ReasonCode : W BLOCK 1
ForceTrap : EQU 37B9 + 435B
...
CALLG ForceTrap, 2, ProcessNumber, ReasonCode
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 213
436B - SetND500Param (5PASET)¶
Sets information about an ND-500 program. Use GetND500Param to read the 5 parameters when a program is terminated.
- SINTRAN III sets some of the parameter values if you give the command @ENABLE-TERMINATION-HANDLING first.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
1 |
Bit 24:16 contains the user index. Bit 15:0 contains the directory index. | I | |
2 |
Logical device number of the terminal. | I | |
3 |
Fatal error or the monitor call ErrorMessage returns the error number. If ESCAPE was pressed, -1 is returned. | I | |
4 |
Set by SetND500Param. | I | |
5 |
Set by SetND500Param. | I |
See Also¶
TerminationHandling, GetUserParam, SetUserParam, and GetND500Param
Examples¶
Pascal
Buffer : RECORD...END;
...
SetND500Param(Buffer);
COBOL
01 Buffer.
02 array COMP OCCURS 5 TIMES.
...
MONITOR-CALL "SetND500Param" USING Buffer.
Fortran
INTEGER Buffer(5)
...
Monitor_Call('SetND500Param', Buffer(1))
PLANC
INTEGER ARRAY : Buffer(0:4)
...
Monitor_Call('SetND500Param', Buffer(0))
ASSEMBLY-500
Buffer : W BLOCK 5
SetND500Param : EQU 37B9 + 436B
...
CALLG SetND500Param, 1, Buffer
MAC
This monitor call is not available on the ND-100. See SetUserParam.
| ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 451
437B - GetND500Param (5PAGET)¶
Gets information about why the last ND-500 program terminated. There are five parameters for each background user. These can be set by SINTRAN III or your background program.
- Use SetND500Param to set the parameter values.
- SINTRAN III sets some of the parameter values if you give the command @ENABLE-TERMINATION-HANDLING first.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
1 |
Bit 24:16 contain the user index. Bit 7:0 contains the directory index. | I | |
2 |
Logical device number of the terminal. | I | |
3 |
Fatal error or the monitor call ErrorMessage returns the error number. If escape was pressed, -1 is returned. | I | |
4 |
User defined. | I | |
5 |
User defined. | I |
See Also¶
TerminationHandling, SetND500Param, GetUserParam, and SetUserParam
Examples¶
Pascal
Buffer : RECORD...END;
...
GetND500Param(Buffer);
COBOL
01 Buffer.
02 array COMP OCCURS 5 TIMES.
...
MONITOR-CALL "GetND500Param" USING Buffer.
Fortran
INTEGER Buffer(5)
...
Monitor_Call('GetND500Param', Buffer(1))
PLANC
BYTES : Buffer(0:9)
...
Monitor_Call('GetND500Param', Buffer(0))
ASSEMBLY-500
Buffer : W BLOCK 5
GetND500Param : EQU 37B9 + 437B
...
CALLG GetND500Param, 1, Buffer
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 259
440B - Attach500Segment (AT5SGM)¶
Maps a logical ND-500 data segment onto shared ND-100/ND-500(0) physical memory (multiport memory).
Notes¶
- The specified physical memory area must be defined in the "Not initialize page" table by use of the *CHANGE-TABLE command in the SINTRAN Service Program (follow this command by a warm start to put the change into effect). Note that you should not use the first pages of the multiport memory (starting at "ND-500 page 0") for this.
Example¶
@SINTRAN-SERVICE-PROGRAM
*CHANGE-TABLE
TABLE: MEMORY-AREA-INVISIBLE-FOR-THIS-SYSTEM
FUNCTION: INSERT-ELEMENT
IMAGE OR SAVE AREA (DEFAULT IS IMAGE): IMAGE
FIRST PAGE (OCT): 10000
LAST PAGE (OCT): 13777
FUNCTION: EXIT
*EXIT
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Function code. |
UNKNOWN | I | 0 = Detach (forget) a previously attached segment. 1 = Attach a segment. If a physical segment does not exist, create it and map the segment on to the physical ND-100 address area. 2 = Map an existing ND-500 logical data segment onto a physical ND-100 address area. |
Segment number (function code 0). |
UNKNOWN | I | Segment number in the range 0-31₁₀. |
ND-500 logical data segment address (function code 1). |
UNKNOWN | I | If you specify 0 (zero), the first free segment will be used. |
Length of segment in pages (function code 1). |
UNKNOWN | I | |
ND-100 physical page address (function code 1). |
UNKNOWN | I | |
Segment name (function code 1). |
STRING | I | A maximum of 35₁₀ characters in the name, including an optional user name, and a terminating apostrophe, which must be present. The parameter is a string descriptor. |
Access (function code 1). |
UNKNOWN | I | 0 = read only access. 1 = read/write access. |
Logical segment number (function code 1). |
UNKNOWN | O | |
Start address of ND-500 logical data segment (function code 2). |
UNKNOWN | I | |
Length of the (entire) segment in pages (function code 2). |
UNKNOWN | I | |
Physical ND-100 page address (function code 2). |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O | Returned via ErrCode variable in high-level languages, or in W1 register for ASSEMBLY-500, or register A for MAC. |
Examples¶
Pascal
Not available.COBOL
Not available.Fortran
Not available.PLANC
Not available.ASSEMBLY-500
**Example with function code 1:**FUNCTION : W DATA 1 %function = 1
SEGNO : W DATA 1000000000B %address 0 on segment no. 1
LENGTH : W DATA 4 %segment length = 4 pages
N1ADDR : W DATA 2000B %mapped at page address 2000₈
SEGNAME : STRINGDATA 'ATTSEG1' %segment name = ATTSEG1
ACCESS : W DATA 1 %read/write access
RETSEGNO : W BLOCK 1 %returned segment number
...
CALLG 37000000440B, 7, FUNCTION, SEGNO, LENGTH, N1ADDR, SEGNAME, ACCESS, &
RETSEGNO %Mon 440 with 7 parameters
IF K GO ERROR
...
ERROR : W1 =: ErrCode %on error return, W1 = error code
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
500B - StartProcess (STARTP)¶
Starts a process in the ND-500. You identify the process with the process number.
- The process may be active. The process then restarts as soon as it terminates.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Process number. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
Examples¶
Pascal
ProcessNumber : LONGINT;
...
StartProcess(ProcessNumber);
IF ErrCode <> 0 THEN ...
COBOL
01 ProcessNumber COMP.
01 ErrCode COMP.
...
MONITOR-CALL "StartProcess" USING ProcessNumber.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
Fortran
INTEGER ProcessNumber
...
Monitor_Call('StartProcess', ProcessNumber)
IF (ErrCode .NE. 0) THEN ...
PLANC
INTEGER : ProcessNumber
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('StartProcess', ProcessNumber)
ASSEMBLY-500
ProcessNumber : W BLOCK 1
ErrCode : W BLOCK 1
StartProcess : EQU 37B9 + 500B
...
CALLG StartProcess, 1, ProcessNumber
IF K GO ERROR
...
ERROR : W1 := ErrCode %ErrorCode in W1 register.
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
501B - StopProcess (STOPPR)¶
Sets the current process in a wait state. StartProcess restarts the process. Execution continues after the monitor call. The ESCAPE key terminates the waiting program.
- The process restarts immediately if it is scheduled for repeated execution.
- Use ExitFromProgram to terminate the execution.
See Also¶
StartProcess, SwitchProcess
Examples¶
COBOL
MONITOR-CALL "StopProcess"
Fortran
Monitor_Call('StopProcess')
PLANC
Monitor_Call('StopProcess')
MAC
StopProcess : EQU 37B9 + 501B
CALLG StopProcess
| ND-500 | All users | All programs |
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 493
502B - SwitchProcess (SWITCHP)¶
Sets the current process in a wait state. Restarts another process. This is similar to executing a StartProcess followed by a StopProcess.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Process number to start. |
See Also¶
StartProcess, StopProcess
Examples¶
Pascal
ProcessNumber : LONGINT;
...
SwitchProcess(ProcessNumber);
COBOL
01 ProcessNumber COMP.
...
MONITOR-CALL "SwitchProcess" USING ProcessNumber.
Fortran
INTEGER ProcessNumber
...
Monitor_Call('SwitchProcess', ProcessNumber)
PLANC
INTEGER : ProcessNumber
...
Monitor_Call('SwitchProcess', ProcessNumber)
ASSEMBLY-500
ProcessNumber : W BLOCK 1
SwitchProcess : EQU 37B9 + 502B
...
CALLG SwitchProcess, 1, ProcessNumber
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 499
503B - InputString (DVINST)¶
Reads a string from a device, e.g. a terminal or an opened file. This monitor call provide a fast input to ND-500 programs.
- Only the first four parameters are used for file input.
- An ASCII table is given in Appendix G.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number. |
UNKNOWN | I | See appendix B. Use 1 for your own terminal. The open file number is obtained by opening a file and specifying connection number 0. See the manual ND Linker User Guide and Reference Manual (ND-860289). |
Maximum number of bytes to read before break. |
UNKNOWN | I | |
Number of bytes read. |
UNKNOWN | O | |
Buffer to receive input. |
UNKNOWN | I | |
Break setting. |
UNKNOWN | I | See SetBreak. Use 8 for the last user-defined break table. |
Echo setting. |
UNKNOWN | I | See SetEcho. Use 8 for the last user-defined break table. |
Break table, bit 0:31. |
UNKNOWN | I | Bits set to 1 cause break on the character. |
Break table, bit 32:63. |
UNKNOWN | I | |
Break table, bit 64:95. |
UNKNOWN | I | |
Break table, bit 96:127. |
UNKNOWN | I | |
Echo table, bit 0:31. |
UNKNOWN | I | Bits set to 0 cause echo on the character. |
Echo table, bit 32:63. |
UNKNOWN | I | |
Echo table, bit 64:95. |
UNKNOWN | I | |
Echo table, bit 96:127. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | O |
See Also¶
InByte, InString, and OutputString
Examples¶
Pascal
DevNo, MaxNo, NoOfBytesRet, BreakStrat, EchoStrat, BreakT1: LONGINT;
BreakT2, BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4: LONGINT;
Buff : ARRAY [0..8] OF RECORD...END;
...
InputString(DevNo, MaxNo, NoOfBytesRet, Buff, BreakStrat, EchoStrat,
BreakT1, BreakT2, BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4);
COBOL
01 DevNo COMP.
01 MaxNo COMP.
01 NoOfBytesRet COMP.
01 BreakStrat COMP.
01 EchoStrat COMP.
01 BreakT1 COMP.
01 BreakT2 COMP.
01 BreakT3 COMP.
01 BreakT4 COMP.
01 EchoT1 COMP.
01 EchoT2 COMP.
01 EchoT3 COMP.
01 EchoT4 COMP.
01 Buff.
02 array COMP OCCURS 100 TIMES.
...
MONITOR-CALL "InputString" USING DevNo, MaxNo, NoOfBytesRet, Buff,
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3,
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4.
Fortran
INTEGER DevNo, MaxNo, NoOfBytesRet, BreakStrat, EchoStrat, BreakT1
INTEGER BreakT2, BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4
INTEGER Buff(100)
...
Monitor_Call('InputString', DevNo, MaxNo, NoOfBytesRet, Buff(1),
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3,
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4)
PLANC
INTEGER : DevNo, MaxNo, NoOfBytesRet, BreakStrat, EchoStrat, BreakT1
INTEGER : BreakT2, BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4
BYTES : Buff(0:199)
...
Monitor_Call('InputString', DevNo, MaxNo, NoOfBytesRet, Buff(1),
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3,
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4)
ASSEMBLY-500
DevNo : W BLOCK 1
MaxNo : W BLOCK 1
NoOfBytesRet: W BLOCK 1
BreakStrat: W BLOCK 1
EchoStrat: W BLOCK 1
BreakT1 : W BLOCK 1
BreakT2: W BLOCK 1
BreakT3: W BLOCK 1
BreakT4 : W BLOCK 1
EchoT1: W BLOCK 1
EchoT2: W BLOCK 1
EchoT3: W BLOCK 1
EchoT4 : W BLOCK 1
Buff : BY BLOCK 400B
InputString: EQU 37B9 + 503B
...
Monitor_Call('InputString', DevNo, MaxNo, NoOfBytesRet, Buff(0), &
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3, &
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4)
...
CALLG InputString, 14, DevNo, MaxNo, NoOfBytesRet, Buff, &
BreakStrat, EchoStrat, BreakT1, BreakT2, &
BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4
MAC
Not available.Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 0
504B - OutputString (DVOUTS)¶
Writes a string to a device, e.g. a terminal or an opened file.
- This is the most efficient way to output strings on the ND-500.
- The maximum string length is 2048 bytes.
- Appendix F contains an ASCII table.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Logical device number, e.g. a file number. See appendix B. You may use 1 for your own terminal. Use the SINTRAN III open file number if output to a file. The ND-500 open file number will not function. |
UNKNOWN | I | |
Number of bytes to write. |
UNKNOWN | I | |
String to be output. |
UNKNOWN | I | |
Standard Error Code. See appendix A. |
UNKNOWN | I |
See Also¶
OutMessage, OutUpTo8Bytes, Out8Bytes, OutString, OutNumber, OutByte, and InputString
Examples¶
Pascal
DeviceNo, NoOfBytes : LONGINT;
Buff : ARRAY [0..8] OF RECORD...END;
...
OutputString(DeviceNo, NoOfBytes, Buff);
COBOL
01 DeviceNo COMP.
01 NoOfBytes COMP.
01 Buff.
02 array COMP OCCURS 100 TIMES.
...
MONITOR-CALL "OutputString" USING DeviceNo, NoOfBytes, Buff.
Fortran
INTEGER DeviceNo, NoOfBytes
INTEGER Buff(100)
...
Monitor_Call('OutputString', DeviceNo, NoOfBytes, Buff(1))
PLANC
INTEGER : DeviceNo, NoOfBytes
BYTES : Buff(0:199)
...
Monitor_Call('OutputString', DeviceNo, NoOfBytes, Buff(0))
ASSEMBLY-500
DeviceNo : W BLOCK 1
NoOfBytes : W BLOCK 1
Buff : BY BLOCK 4000B
Status : W BLOCK 1
OutputString : EQU 37B9 + 504B
...
CALLG OutputString, 3, DeviceNo, NoOfBytes, Buff
IF K GO Error
W1 =: Status
...
Error, ...
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 383
505B - GetTrapReason (GERRCOD)¶
Gets the error code from the swapper process. This is only relevant to programmed trap handlers. The swapper process starts the trap handler when it detects a fatal error, e.g. address outside segment. Use this monitor call to get the error code.
Examples¶
Pascal
ErrorCode : LONGINT;
...
GetTrapReason(ErrorCode);
COBOL
01 ErrorCode COMP.
...
MONITOR-CALL "GetTrapReason" USING ErrorCode.
Fortran
INTEGER ErrorCode
...
Monitor_Call('GetTrapReason', ErrorCode)
PLANC
INTEGER : ErrorCode
...
Monitor_Call('GetTrapReason', ErrorCode)
ASSEMBLY-500
ErrorCode : W BLOCK 1
GetTrapReason : EQU 37B9 + 505B
...
CALLG GetTrapReason, 1, ErrorCode
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 295
507B - SetProcessPriority (SPRIO)¶
Sets the priority for a process in the ND-500. The priorities vary from 0 to 255. The process with the highest priority is executed first.
- The priorities of background programs normally vary between 20 and 64. SINTRAN III modifies the priorities all the time. This is done to allow several jobs to share the CPU. Specify 0 to execute a process in the same way.
- With SetProcessPriority, you may fix the priority.
See Also¶
Examples¶
Pascal
NewPriority : LONGINT;
...
SetProcessPriority(NewPriority);
COBOL
01 NewPriority COMP.
...
MONITOR-CALL "SetProcessPriority" USING NewPriority.
Fortran
INTEGER NewPriority
...
Monitor_Call('SetProcessPriority', NewPriority)
PLANC
INTEGER : NewPriority
...
Monitor_Call('SetProcessPriority', NewPriority)
ASSEMBLY-500
NewPriority : W BLOCK 1
SetProcessPriority : EQU 37B9 + 507B
...
CALLG SetProcessPriority, 1, NewPriority
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 463
514B - ND500TimeOut (5TMOUT)¶
Suspends the execution of an ND-500 program for a given time. The execution then continues after the monitor call. The program is placed in a time queue in the ND-500, not the ND-100.
- No reserved files or devices are released.
- Avoid using TimeOut (mon 267) from ND-500, use ND500TimeOut instead. Use TimeOut from ND-100.
Parameters¶
| Name | Type | I/O | Description |
|---|---|---|---|
Param1 |
UNKNOWN | I | Number of time units to suspend the program. Use 0 to restart programs immediate |
Param2 |
UNKNOWN | I | The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = secon |
Param3 |
UNKNOWN | I | Restart cause. 0 means that the defined time has elapsed. 1 means that an interr |
See Also¶
TimeOut, SuspendProgram, WaitForRestart
Examples¶
Pascal
NoOfTimeUnits, TimeUnit, ReturnStatus : LONGINT;
...
ND500TimeOut(NoOfTimeUnits, TimeUnit, ReturnStatus);
COBOL
01 NoOfTimeUnits COMP.
01 TimeUnit COMP.
01 ReturnStatus COMP.
...
MONITOR-CALL "ND500TimeOut" USING NoOfTimeUnits, TimeUnit, ReturnStatus.
Fortran
INTEGER NoOfTimeUnits, TimeUnit, ReturnStatus
...
Monitor_Call('ND500TimeOut', NoOfTimeUnits, TimeUnit, ReturnStatus)
PLANC
INTEGER : NoOfTimeUnits, TimeUnit, ReturnStatus
...
Monitor_Call('ND500TimeOut', NoOfTimeUnits, TimeUnit, ReturnStatus)
ASSEMBLY-500
NoOfTimeUnits : W BLOCK 1
TimeUnit : W BLOCK 1
ReturnStatus : W BLOCK 1
ND500TimeOut : EQU 3789 + 514B
...
CALLG ND500TimeOut, 3, NoOfTimeUnits, TimeUnit, ReturnStatus
Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 349
About This Document¶
This documentation was automatically generated from YAML files extracted from the SINTRAN III Monitor Calls reference manual (ND-860228.2 EN).
- Total Monitor Calls: 230
- Calls with Short Names: 230
- Extraction Date: 2025-01-06
For technical details about the extraction process, see:
- FINAL-EXTRACTION-REPORT.md
- SCHEMA-CLEANUP-ANALYSIS.md