Skip to content

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)

ND-100 ND-500 User RT

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

ExitRTProgram

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

↑ Back to Top


1B - InByte (INBT)

ND-100 ND-500 User RT

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

↑ Back to Top


2B - OutByte (OUTBT)

ND-100 ND-500

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

↑ Back to Top


3B - SetEcho (ECHOM)

User RT

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

SetBreak

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

↑ Back to Top


4B - SetBreak (BRKM)

ND-100 ND-500

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

SetEcho

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

↑ Back to Top


5B - ReadScratchFile (RDISK)

User RT

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

↑ Back to Top


6B - WriteScratchFile (WDISK)

ND-100

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

↑ Back to Top


7B - ReadBlock (RPAGE)

ND-100 ND-500 User RT

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

↑ Back to Top


10B - WriteBlock (WPAGE)

ND-100 ND-500 User RT

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

↑ Back to Top


11B - GetBasicTime (TIME)

ND-100 ND-500 User RT

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

↑ Back to Top


12B - SetCommandBuffer (SETCM)

ND-100 ND-500 User RT

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

↑ Back to Top


13B - ClearInBuffer (CIBUF)

ND-100 ND-500 User RT

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

↑ Back to Top


14B - ClearOutBuffer (COBUF)

ND-100 ND-500 User RT

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

↑ Back to Top


16B - GetTerminalType (MGTTY)

ND-100 ND-500 User RT

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

↑ Back to Top


17B - SetTerminalType (MSTTY)

ND-100 ND-500 User RT

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

↑ Back to Top


21B - InUpTo8Bytes (M8INB)

ND-100 ND-500 User RT

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
&nbsp;&nbsp;&nbsp;&nbsp;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
...
&nbsp;&nbsp;&nbsp;&nbsp;CALLG InUpTo8Bytes, 3, DeviceNumber, NoOfBytes, InData
&nbsp;&nbsp;&nbsp;&nbsp;IF K GO ERROR
...
ERROR : W1 =: ErrCode &nbsp;&nbsp;&nbsp;&nbsp;%ErrorCode in W1 register.
MAC
LDT DEVNO &nbsp;&nbsp;&nbsp;&nbsp;%Logical device number.
MON 21 &nbsp;&nbsp;&nbsp;&nbsp;%Monitor call InUpTo8Bytes.
JMP ERROR &nbsp;&nbsp;&nbsp;&nbsp;%Error return from monitor call.
STD BYTES &nbsp;&nbsp;&nbsp;&nbsp;%Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2 &nbsp;&nbsp;&nbsp;&nbsp;%Store next 2 bytes read.
STX BYTES+3 &nbsp;&nbsp;&nbsp;&nbsp;%Store last 2 bytes read.
STT COUNT &nbsp;&nbsp;&nbsp;&nbsp;%Store number of bytes (or words) read.
...
ERROR, ... &nbsp;&nbsp;&nbsp;&nbsp;%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

↑ Back to Top


22B - OutUpTo8Bytes (M8OUT)

ND-100 ND-500 User RT

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

↑ Back to Top


23B - In8Bytes (B8INB)

ND-100 ND-500 User RT

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

↑ Back to Top


24B - Out8Bytes (B8OUT)

ND-100 ND-500

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

↑ Back to Top


26B - GetLastByte (LASTC)

ND-100 ND-500

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

InByte

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

↑ Back to Top


27B - GetRTDescr (RTDSC)

ND-100 ND-500 RT

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

↑ Back to Top


30B - GetOwnRTAddress (GETRT)

ND-100 ND-500

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

↑ Back to Top


31B - IOInstruction (EXIOX)

ND-100 ND-500

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

↑ Back to Top


32B - OutMessage (MSG)

ND-100 ND-500

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

↑ Back to Top


33B - AltPageTable (ALTON)

ND-100

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

NormalPageTable

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

↑ Back to Top


34B - NormalPageTable (ALTOFF)

ND-100 User RT System

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

↑ Back to Top


35B - OutNumber (IOUT)

ND-100 ND-500

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

↑ Back to Top


36B - NoWaitSwitch (NOWT)

ND-100 ND-500

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

↑ Back to Top


37B - ReadADChannel (AIRDW)

ND-100

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

↑ Back to Top


40B - CloseSpoolingFile (SPCLO)

ND-100 ND-500

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

↑ Back to Top


41B - ReadObjectEntry (ROBJE)

ND-100 ND-500

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

↑ Back to Top


43B - CloseFile (CLOSE)

ND-100 ND-500

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

↑ Back to Top


44B - GetUserEntry (RUSER)

ND-100 ND-500

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

↑ Back to Top


50B - OpenFile (OPEN)

ND-100 ND-500

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

↑ Back to Top


52B - TerminalMode (TERMO)

ND-100 ND-500

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

&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%ErrorCode in W1 register.
MAC
LDA (PAR &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%Load register A with address of parameter list.
MON 52 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%Monitor call TerminalMode.
JAF ERROR &nbsp;%Handle error if register A is non-zero.
...
ERROR, ... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%Error number in register A.
...
PAR, DEVNO &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%Logical device number.
MODE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%Communication mode.
...
DEVNO, ...
MODE, ...


| ND-100 and ND-500 | All users        | Background programs |
|-------------------|------------------|---------------------|

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 533

↑ Back to Top


53B - GetSegmentEntry (RSEGM)

ND-100 ND-500

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

↑ Back to Top


54B - DeleteFile (MDLFI)

ND-100 ND-500

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
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


55B - GetSpoolingEntry (RSQPE)

ND-100 ND-500

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

↑ Back to Top


56B - SetUserParam (PASET)

ND-100 ND-500 User RT System

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

↑ Back to Top


57B - GetUserParam (PAGEI)

User RT

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

↑ Back to Top


61B - MemoryAllocation (FIXC5)

ND-100 User RT System

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

↑ Back to Top


62B - GetBytesInFile (RMAX)

ND-100 ND-500 User RT

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

↑ Back to Top


63B - In4x2Bytes (B41NW)

ND-100 ND-500

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

↑ Back to Top


64B - WarningMessage (ERMSG)

ND-100

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

↑ Back to Top


65B - ErrorMessage (QERMS)

ND-100 ND-500

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

↑ Back to Top


66B - InBufferSpace (ISIZE)

ND-100 ND-500

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
&emsp;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

↑ Back to Top


67B - OutBufferSpace (OSIZE)

ND-100 ND-500

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

↑ Back to Top


70B - CallCommand (COMMND)

ND-100 ND-500 RT

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

↑ Back to Top


71B - DisableEscape (DESCF)

ND-100 ND-500 User RT

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

↑ Back to Top


72B - EnableEscape (EESCF)

User RT

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

↑ Back to Top


73B - SetMaxBytes (SMAX)

ND-100 ND-500

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

↑ Back to Top


74B - SetStartByte (SETBT)

ND-100 ND-500

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

↑ Back to Top


75B - GetStartByte (REABT)

ND-100 ND-500

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

SetStartByte, SetStartBlock

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

↑ Back to Top


76B - SetBlockSize (SETBS)

ND-100 ND-500

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

↑ Back to Top


77B - SetStartBlock (SETBL)

ND-100 ND-500

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

↑ Back to Top


100B - StartRTProgram (RT)

ND-100 ND-500 User 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

↑ Back to Top


101B - DelayStart (SET)

ND-100 ND-500 User RT

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

↑ Back to Top


102B - StartupTime (ABSET)

ND-100 ND-500 User RT

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

↑ Back to Top


103B - StartupInterval (INTV)

ND-100 ND-500 User RT

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

↑ Back to Top


104B - SuspendProgram (HOLD)

ND-100 ND-500 User RT

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

↑ Back to Top


105B - StopRTProgram (ABORT)

ND-100 ND-500 User RT

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

↑ Back to Top


106B - StartOnInterrupt (CONCT)

ND-100 ND-500 User RT

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

↑ Back to Top


107B - NoInterruptStart (DSCNT)

ND-100 ND-500 User RT

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

↑ Back to Top


110B - SetRTPriority (PRIOR)

ND-100 ND-500 User RT

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

↑ Back to Top


111B - SetClock (UPDAT)

ND-100 ND-500 User RT

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

↑ Back to Top


112B - AdjustClock (CLADJ)

ND-100 ND-500 User RT

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

↑ Back to Top


113B - GetCurrentTime (CLOCK)

ND-100 ND-500 User RT

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

↑ Back to Top


114B - GetTimeUsed (TUSED)

ND-100 ND-500 User RT

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

↑ Back to Top


115B - FixScattered (FIX)

ND-100 ND-500 User RT

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

↑ Back to Top


116B - UnfixSegment (UNFIX)

ND-100 ND-500 User RT

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

↑ Back to Top


117B - ReadFromFile (RFILE)

ND-100 ND-500 User RT

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
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


120B - WriteToFile (WFILE)

ND-100 ND-500 User RT

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

↑ Back to Top


121B - AwaitFileTransfer (WAITF)

ND-100 ND-500 User RT

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

AwaitTransfer

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

↑ Back to Top


122B - ReserveResource (RESRV)

ND-100 ND-500 User RT

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

↑ Back to Top


123B - ReleaseResource (RELES)

ND-100 ND-500 User RT

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

↑ Back to Top


124B - ForceReserve (PRSRV)

ND-100 ND-500 User RT

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

↑ Back to Top


125B - ForceRelease (PRLRS)

ND-100 ND-500 User RT

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

↑ Back to Top


126B - ExactDelayStart (DSET)

ND-100 ND-500 User RT

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

↑ Back to Top


127B - ExactStartup (DABST)

ND-100 ND-500 User RT

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

↑ Back to Top


130B - ExactInterval (DINTV)

ND-100 ND-500 User RT

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

↑ Back to Top


131B - DataTransfer (ABSTR)

ND-100 ND-500 User RT

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

↑ Back to Top


132B - JumpToSegment (MCALL)

ND-100 ND-500 User RT

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

↑ Back to Top


133B - ExitFromSegment (MEXIT)

ND-100 ND-500 User RT

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

↑ Back to Top


134B - ExitRTProgram (RTEXT)

ND-100 ND-500 User RT

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

↑ Back to Top


135B - WaitForRestart (RTWT)

ND-100 ND-500 User RT

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

↑ Back to Top


136B - EnableRTStart (RTON)

ND-100 ND-500 User RT

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

↑ Back to Top


137B - DisableRTStart (RTOFF)

ND-100 ND-500 User RT

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

↑ Back to Top


140B - ReservationInfo (WHDEV)

ND-100 ND-500 User RT

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

↑ Back to Top


141B - DeviceControl (IOSET)

ND-100 ND-500 User RT

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

↑ Back to Top


142B - ToErrorDevice (ERMON)

ND-100 ND-500 User RT

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

↑ Back to Top


143B - ExecutionInfo (RSIO)

ND-100 ND-500 User RT

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

↑ Back to Top


144B - DeviceFunction (MAGTP)

ND-100 ND-500 User RT

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

↑ Back to Top


146B - PrivInstruction (IPRIV)

ND-100 ND-500 User RT

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

IOInstruction

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

↑ Back to Top


147B - CAMACFunction (CAMAC)

ND-100 ND-500 User RT

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

↑ Back to Top


150B - CAMACGLRegister (GL)

ND-100 ND-500 User RT

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

↑ Back to Top


151B - GetRTAddress (GRTDA)

ND-100 ND-500 User RT

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

↑ Back to Top


152B - GetRTName (GRTNA)

ND-100 ND-500 User RT

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

↑ Back to Top


153B - CAMACIOInstruction (IOXN)

ND-100 ND-500 User RT

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

↑ Back to Top


154B - AssignCAMACLAM (ASSIG)

ND-100 ND-500 User RT

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

↑ Back to Top


155B - GraphicFunction (GRAPH)

ND-100 ND-500 User RT

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

↑ Back to Top


157B - SegmentToPageTable (ENTSG)

ND-100 ND-500 User RT

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

↑ Back to Top


160B - FixContiguous (FIXC)

ND-100 ND-500 User RT

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

↑ Back to Top


161B - INSTRING (INSTR)

ND-100 ND-500 User RT

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

↑ Back to Top


162B - OutString (OUTST)

ND-100 ND-500 User RT

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

↑ Back to Top


164B - SaveSegment (WSEG)

ND-100 ND-500 User RT

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

SaveND500Segment

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

↑ Back to Top


165B - GetInRegisters (DIW)

ND-100 ND-500 User RT

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

↑ Back to Top


167B - AttachSegment (REENT)

ND-100 ND-500 User RT

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

↑ Back to Top


170B - UserDef0 (US0)

ND-100 ND-500 User RT System

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

↑ Back to Top


171B - UserDef1 (US1)

ND-100 ND-500 User RT System

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

↑ Back to Top


172B - UserDef2 (US2)

ND-100 ND-500 User RT System

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

↑ Back to Top


173B - UserDef3 (US3)

ND-100 ND-500 User RT System

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

↑ Back to Top


174B - UserDef4 (US4)

ND-100 ND-500 User RT System

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

↑ Back to Top


175B - UserDef5 (US5)

ND-100 ND-500 User RT System

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

↑ Back to Top


176B - UserDef6 (US6)

ND-100 ND-500 User RT System

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

↑ Back to Top


177B - UserDef7 (US7)

ND-100 ND-500 User RT System

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

↑ Back to Top


200B - XMSGFunction (XMSG)

ND-100 ND-500 User RT

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

↑ Back to Top


201B - HDLCfunction (MHDLC)

ND-100 ND-500 User RT

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

↑ Back to Top


206B - TerminationHandling (EDTRM)

ND-100 User RT

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

↑ Back to Top


207B - GetErrorInfo (RERRP)

ND-100 ND-500 User RT

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

↑ Back to Top


212B - ReentrantSegment (SREEN)

ND-100 ND-500 User RT

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

AttachSegment

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

↑ Back to Top


213B - GetDirUserIndexes (MUIDI)

ND-100 ND-500 User RT

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

↑ Back to Top


214B - GetUserName (GUSNA)

ND-100 ND-500 User RT

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

GetUserEntry, ExecutionInfo

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

↑ Back to Top


215B - GetObjectEntry (DROBJ)

ND-100 ND-500 User RT

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

↑ Back to Top


216B - SetObjectEntry (DWOBJ)

ND-100 ND-500 User RT

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

↑ Back to Top


217B - GetAllFileIndexes (GUIOI)

ND-100 ND-500 User RT

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
&emsp;IF ErrCode >< 0 THEN ...
ENDON

Monitor_Call('GetAllFileIndexes', FileNo, DirIndex, UserIndex, ObjectIndex,&
&emsp;&emsp;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

↑ Back to Top


220B - DirectOpen (DOPEN)

ND-100 ND-500 User RT

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

OpenFile, CloseFile

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

↑ Back to Top


221B - CreateFile (CRALF)

ND-100 ND-500 User RT

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

↑ Back to Top


222B - GetAddressArea (GBSIZ)

ND-100 User

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

↑ Back to Top


227B - SetEscLocalChars (MSDAE)

ND-100 ND-500 User RT

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

↑ Back to Top


230B - GetEscLocalChars (MGDAE)

ND-100 ND-500 User RT

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

↑ Back to Top


231B - ExpandFile (EXPFI)

ND-100 ND-500 User RT

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

↑ Back to Top


232B - RenameFile (MRNFI)

ND-100 ND-500 User RT

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
&emsp; 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 &emsp;&emsp;&emsp; %ErrorCode in W1 register.
MAC
LDX &emsp;(OLDFI) &emsp;%Address of string with old file name.
LDA &emsp;(NEWFI) &emsp;%Address of string with new file name.
MON &emsp; 232 &emsp;&emsp; %Monitor call RenameFile.
JMP &emsp; ERROR &emsp;&emsp; %Error return from monitor call.
... &emsp;&emsp;&emsp;&emsp;&emsp;&emsp; %Normal return.
ERROR, ... &emsp;&emsp; %Error number in register A.

OLDFI, 'TEXT:TEXT' &emsp; %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

↑ Back to Top


233B - SetTemporaryFile (STEFI)

ND-100 ND-500 User RT

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

↑ Back to Top


234B - SetPeripheralName (SPEFI)

ND-100 ND-500 User RT

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

↑ Back to Top


235B - ScratchOpen (SCROP)

ND-100 ND-500 User RT

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

↑ Back to Top


236B - SetPermanentOpen (SPERD)

ND-100 ND-500 User RT

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

↑ Back to Top


237B - SetFileAccess (SFACC)

ND-100 ND-500 User RT

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
&nbsp; &nbsp; IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetFileAccess', FileName, PubAccess, FriendAccess, OwnAccess)
ASSEMBLY-500
FileName : STRINGDATA 'EXAMPLE:SYMB''' &nbsp; &nbsp; %Set access of file EXAMPLE:SYMB to
PubAccess : STRINGDATA 'N''' &nbsp; &nbsp; % no public access
FriendAccess : STRINGDATA 'RA''' &nbsp; &nbsp; % read, append access for friends
OwnAccess : STRINGDATA 'RWACD''' &nbsp; &nbsp; % full own access
ErrCode : W BLOCK 1
SetFileAccess : EQU 37B9 + 237B
...
&nbsp; &nbsp; CALLG SetFileAccess, 4, FileName, PubAccess, FriendAccess, OwnAccess
&nbsp; &nbsp; IF K GO ERROR
...
ERROR : W1 =: ErrCode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %ErrorCode in W1 register.
MAC
LDX (FILE &nbsp; &nbsp; %Address of string with file name.
LDT (PUBAC &nbsp; &nbsp; %Address of string with public access characters.
LDA (FRIAC &nbsp; &nbsp; %Address of string with own access characters.
COPY SA DD
LDA (OWNAC &nbsp; &nbsp; %Address of string with friend access characters.
MON 237 &nbsp; &nbsp; %Monitor call SetFileAccess.
JMP ERROR &nbsp; &nbsp; %Error return from monitor call.
... &nbsp; &nbsp; %Normal return.
ERROR, ... &nbsp; &nbsp; %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' &nbsp; %Change access for EXAMPLE:SYMB.
PUBAC, 'N' &nbsp; %No public access.
FRIAC, 'RA' &nbsp; %Read write append access for friend.
OWNAC, 'RWACD' &nbsp; %Full own access.

| ND-100 and ND-500 | All users | All programs |

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 447

↑ Back to Top


240B - AppendSpooling (APSPE)

ND-100 ND-500 User RT

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

↑ Back to Top


241B - NewUser (SUSCN)

ND-100 ND-500 User RT

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

↑ Back to Top


242B - OldUser (RUSCN)

ND-100 ND-500 User RT

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

↑ Back to Top


243B - GetDirNameIndex (FDINA)

ND-100 ND-500 User RT System

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

↑ Back to Top


244B - GetDirEntry (GDIEN)

ND-100 ND-500 User RT

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

↑ Back to Top


245B - GetNameEntry (GNAEN)

ND-100 ND-500

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

GetDirEntry

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

↑ Back to Top


246B - ReserveDir (REDIR)

User RT

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

ReleaseDir

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
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


247B - ReleaseDir (RLDIR)

ND-100 ND-500

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

ReleaseResource

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

↑ Back to Top


250B - GetDefaultDir (FDFDI)

ND-100 ND-500

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

↑ Back to Top


251B - CopyPage (COPAG)

ND-100 ND-500 User RT

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

↑ Back to Top


252B - BackupClose (BCLOS)

ND-100 ND-500 User RT

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

CloseFile

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

↑ Back to Top


253B - NewFileVersion (CRALN)

ND-100 ND-500

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

↑ Back to Top


254B - GetErrorDevice (GERDV)

ND-100 ND-500

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

↑ Back to Top


255B - PIOCFunction (PIOCM)

ND-100 User RT System

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

XMSGFunction and HDLCFunction

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

↑ Back to Top


256B - FullFileName (DEABF)

ND-100 ND-500 User RT

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

GetFileName

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

↑ Back to Top


257B - OpenFileInfo (FOPEN)

ND-100 ND-500 User RT

Monitor call 257B - OpenFileInfo

Source: ND-860228.2 EN, Page N/A

↑ Back to Top


262B - GetSystemInfo (CPUST)

User RT

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

↑ Back to Top


263B - GetDeviceType (GDEVT)

ND-100 ND-500 User RT System

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

↑ Back to Top


267B - TimeOut (TMOUT)

ND-100 ND-500

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

↑ Back to Top


270B - ReadDiskPage (RDPAG)

ND-100 ND-500

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

WriteDiskPage

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

↑ Back to Top


271B - WriteDiskPage (WDPAG)

ND-100 ND-500

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

ReadDiskPage

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

↑ Back to Top


272B - DeletePage (DELPG)

ND-100 ND-500

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

DeleteFile

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

↑ Back to Top


273B - GetFileName (MGFIL)

User RT

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
&nbsp;&nbsp;&nbsp;&nbsp;IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetFileName', DirIndex, UserIndex, ObjectIndex, FileName,&
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


274B - GetFileIndexes (FOBJN)

User RT

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

↑ Back to Top


275B - SetTerminalName (STRFI)

ND-100 ND-500

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

↑ Back to Top


276B - EnableLocal (ELOFU)

ND-100 User RT System

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

DisableLocal

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

↑ Back to Top


277B - DISABLELOCAL (DLOFU)

User RT

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

EnableLocal

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

↑ Back to Top


300B - SetEscapeHandling (EUSEL)

ND-100 User

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

↑ Back to Top


301B - StopEscapeHandling (DUSEL)

ND-100

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

↑ Back to Top


302B - ONESCLOCALFUNCTION (ELON)

User RT

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

↑ Back to Top


303B - OffEscLocalFunction (ELOFF)

User RT

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

↑ Back to Top


306B - GetTerminalMode (GTMOD)

ND-100 ND-500

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

↑ Back to Top


307B - TerminalNoWait (TNOWAI)

ND-100 ND-500

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

↑ Back to Top


310B - In8AndFlag (TBIN8)

ND-100 ND-500

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

↑ Back to Top


311B - WriteDirEntry (WDIEN)

ND-100 ND-500

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

↑ Back to Top


312B - CheckMonCall (MOINF)

ND-100 ND-500

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

↑ Back to Top


313B - InBufferState (IBRISZ)

ND-100 ND-500

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

↑ Back to Top


314B - DefaultRemoteSystem (SRUSI)

ND-100 ND-500

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
&nbsp;&nbsp;&nbsp;&nbsp;IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DefaultRemoteSystem', SystemName, UserName, &
&nbsp;&nbsp;&nbsp;&nbsp;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
...
&nbsp;&nbsp;&nbsp;&nbsp;CALLG DefaultRemoteSystem, 4, SystemName, UserName, &
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Password, ProjPassword

&nbsp;&nbsp;&nbsp;&nbsp;IF K GO ERROR
...
ERROR : W1 =: ErrCode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%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' &nbsp;&nbsp;&nbsp;&nbsp;%Set up STORE as default remote system.
USER, 'A-HANSEN' &nbsp;&nbsp;&nbsp;&nbsp;%Set up A-HANSEN as default remote user.
PASSW, 'MAY' &nbsp;&nbsp;&nbsp;&nbsp;%Set up MAY as default remote user password.
PROJP, 'CHEESE' &nbsp;&nbsp;&nbsp;&nbsp;%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

↑ Back to Top


315B - LAMUFunction (MLAMU)

ND-100

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

↑ Back to Top


316B - SetRemoteAccess (SRLMO)

ND-100 ND-500

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
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


317B - ExecuteCommand (UECOM)

ND-100 ND-500

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

↑ Back to Top


322B - GetSegmentNo (GSGNO)

ND-100 ND-500

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

GetSegmentEntry

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

↑ Back to Top


323B - SegmentOverlay (SPLRE)

ND-100

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

↑ Back to Top


324B - OctobusFunction (OCTIO)

ND-100 ND-500

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

↑ Back to Top


325B - BatchModeEcho (MBECH)

ND-100 ND-500 User

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

↑ Back to Top


326B - LogInStart (MLOGI)

ND-100 User RT System

Logs in a user on a terminal and starts a subsystem.

Notes

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

↑ Back to Top


327B - FileSystemFunction (FSMTY)

ND-100 ND-500 User RT System

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

↑ Back to Top


330B - TerminalStatus (TERST)

User RT

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

↑ Back to Top


332B - TerminalLineInfo (TREPP)

ND-100 ND-500

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

TerminalStatus

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
&nbsp;&nbsp;&nbsp;&nbsp;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
...
&nbsp;&nbsp;&nbsp;&nbsp;CALLG TerminalLineInfo, 2, FuncCode, DeviceNo
&nbsp;&nbsp;&nbsp;&nbsp;IF K GO ERROR
&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


333B - DMAFunction (UDMA)

ND-100 ND-500 User RT

Monitor call 333B - DMAFunction

Source: ND-860228.2 EN, Page N/A

↑ Back to Top


334B - GetErrorMessage (GETXM)

ND-100 ND-500

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

↑ Back to Top


335B - TRANSFERDATA (EXABS)

ND-500

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, &
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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

↑ Back to Top


336B - TERMINAL (IOMTY)

User RT

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

SetBreak, SetEcho

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

↑ Back to Top


337B - ChangeSegment (SPCHG)

ND-100 RT

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

↑ Back to Top


340B - READSYSTEMRECORD (RSREC)

RT

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

↑ Back to Top


341B - SegmentFunction (SGMTY)

ND-100 RT

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

↑ Back to Top


400B - ErrorReturn (MACROE)

ND-500 User RT System

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

↑ Back to Top

</details>

*Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 173*

[↑ Back to Top](#table-of-contents)

---

### 401B - DisAssemble (DIASS)

![User](https://img.shields.io/badge/User-Yes-blue) ![RT](https://img.shields.io/badge/RT-Yes-blue)

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

↑ Back to Top


402B - GetInputFlags (RFLAG)

ND-500

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

↑ Back to Top


403B - SetOutputFlags (WFLAG)

ND-500

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

SetOutputFlags

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

↑ Back to Top


404B - FixIOArea (IOFIX)

ND-500

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

↑ Back to Top


405B - SwitchUserBreak (USTRK)

ND-500

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

GetUserRegisters

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

↑ Back to Top


406B - AccessRTCommon (RWRTC)

ND-500 RT

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

GetInputFlags, SetOutputFlags

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

↑ Back to Top


410B - FixInMemory (FIXMEM)

ND-500 User RT

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

MemoryUnfix

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

↑ Back to Top


411B - MemoryUnfix (UNFIXM)

ND-500

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

↑ Back to Top


412B - FileAsSegment (FSCNT)

ND-500

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 &nbsp;&nbsp;&nbsp;&nbsp;%ErrorCode in W1 register.

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 193

↑ Back to Top


413B - FileNotAsSegment (FSCDNT)

User RT

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

FileAsSegment

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

↑ Back to Top


414B - BCNAFCAMAC (BCNAF)

ND-500 User RT

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

↑ Back to Top


415B - BCNAF1CAMAC (BCNAF1)

ND-500 User RT

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

↑ Back to Top


416B - SaveND500Segment (WSEGN)

ND-500

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

SaveSegment

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

↑ Back to Top


417B - MaxPagesInMemory (MXPISG)

User RT

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
&nbsp;&nbsp;&nbsp;&nbsp;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
...
&nbsp;&nbsp;&nbsp;&nbsp;CALLG MaxPagesInMemory, 3, SegmentNo, SegType, NoOfPages

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 341

↑ Back to Top


420B - GetUserRegisters (GRBLK)

ND-500 User RT System

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

↑ Back to Top


421B - GetActiveSegment (GASGM)

User RT

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

↑ Back to Top


422B - GetScratchSegment (GSWSP)

User RT

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

ClearCapability

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

↑ Back to Top


423B - CopyCapability (CAPCOP)

User RT

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

ClearCapability

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
&emsp; IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('CopyCapability', SourceSegNo, SourceType, DestSegNo, &
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;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, &
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;DestType, AccCode, RetSegNo

IF K GO ERROR
...
ERROR : W1 =: ErrCode &emsp;&emsp;%ErrorCode in W1 register.

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 121

↑ Back to Top


424B - ClearCapability (CAPCLE)

ND-500

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

CopyCapability

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
&nbsp;&nbsp;&nbsp;&nbsp;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
...
&nbsp;&nbsp;&nbsp;&nbsp;CALLG ClearCapability, 2, LogicalSegmentNo, SegType
&nbsp;&nbsp;&nbsp;&nbsp;IF K GO ERROR
...
ERROR : W1 =: ErrCode &nbsp;&nbsp;&nbsp;&nbsp;%ErrorCode in W1 register.

Source: SINTRAN III Monitor Calls (ND-860228.2 EN), Page 111

↑ Back to Top


425B - SetProcessName (SPRNAM)

ND-500

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

↑ Back to Top


426B - GetProcessNo (GPRNAM)

ND-500

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

↑ Back to Top


427B - GetOwnProcessInfo (GPRNME)

ND-500

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

GetProcessNo, SetProcessName

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

↑ Back to Top


430B - TranslateAddress (ADR100)

ND-500 User RT System

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

↑ Back to Top


431B - AwaitTransfer (MWAITF)

ND-500

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

AwaitFileTransfer

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

↑ Back to Top


435B - ForceTrap (PRT)

ND-500

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

GetTrapReason

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

↑ Back to Top


436B - SetND500Param (5PASET)

ND-500

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

↑ Back to Top


437B - GetND500Param (5PAGET)

ND-500

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

↑ Back to Top


440B - Attach500Segment (AT5SGM)

ND-500 User RT System

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

↑ Back to Top


500B - StartProcess (STARTP)

ND-500 User RT

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

StopProcess and SwitchProcess

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

↑ Back to Top


501B - StopProcess (STOPPR)

ND-500

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

↑ Back to Top


502B - SwitchProcess (SWITCHP)

ND-500

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

↑ Back to Top


503B - InputString (DVINST)

ND-100 ND-500 User RT

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

↑ Back to Top


504B - OutputString (DVOUTS)

ND-500

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

↑ Back to Top


505B - GetTrapReason (GERRCOD)

ND-500

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

↑ Back to Top


507B - SetProcessPriority (SPRIO)

ND-500

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

SetRTPriority

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

↑ Back to Top


514B - ND500TimeOut (5TMOUT)

ND-500

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

↑ Back to Top


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