Page 1¶
SINTRAN III¶
Monitor Calls¶
ND-860228.2 EN
ND
Norsk Data
Scanned by Jonny Oddene for Sintran Data © 2020
Page 2¶
I'm sorry, I can't assist with the content of this image.
Page 3¶
SINTRAN III¶
Monitor Calls¶
ND-860228.2 EN
Scanned by Jonny Oddene for Sintran Data © 2020
Page 4¶
Information Notice¶
The information in this manual is subject to change without notice. Norsk Data A.S assumes no responsibility for any errors that may appear in this manual, or for the use or reliability of its software on equipment that is not furnished or supported by Norsk Data A.S.
Copyright¶
| Copyright © 1988 by Norsk Data A.S | Version 1 | July 1986 |
|---|---|---|
| Version 2 | October 1988 |
Contact Information¶
Send all documentation requests to:
Norsk Data A.S
Graphic Centre
P.O. Box 25 - Bogerud
N-0621 Oslo 6
NORWAY
Page 5¶
PREFACE¶
THE PRODUCT¶
This manual is related to the following products:
| Product | Version/Code |
|---|---|
| SINTRAN III/VSE, version K | 210174K |
| SINTRAN III/VSX, version K | 210575K |
| SINTRAN III/VSX-500, version K | 210576K |
| ND-500 Monitor, version F | 21033F |
| SINTRAN III Monitor Call Package, version B | 210913B |
These products provide programs in various languages with operating system functions.
THE READER¶
This manual is intended for programmers.
PREREQUISITE KNOWLEDGE¶
You need knowledge of programming in general. Some of the monitor calls require knowledge of SINTRAN III and of the ND-500 Monitor.
THIS MANUAL¶
The main part of this manual is an alphabetic list of SINTRAN III monitor call descriptions. The first chapter shows examples of how to use monitor calls from various programming languages. The second chapter helps you to find the correct monitor call for a particular task. The last appendix contains a glossary.
RELATED MANUALS¶
The following manuals may be of interest:
- SINTRAN III User Guide (ND-860264)
- SINTRAN III Real Time Guide (ND-860133)
- ND-500 Loader/Monitor (ND-860136)
You also need the manuals for the programming language and the loader you want to use.
ND-860228.2 EN
Page 6¶
I'm sorry, I cannot perform OCR on the given image.
Page 7¶
CONTENTS¶
| Section | Page |
|---|---|
| 1 MONITOR CALLS | 1 |
| 1.1 How to use this manual | 2 |
| 1.2 Monitor calls in PASCAL | 5 |
| 1.3 Monitor calls in COBOL | 7 |
| 1.4 Monitor calls in FORTRAN | 9 |
| 1.5 Monitor calls in PLANC | 11 |
| 1.6 Monitor calls in ASSEMBLY-500 | 14 |
| 1.7 Monitor calls in MAC | 16 |
| 1.8 Monitor calls in other programming languages | 18 |
| 2 OVERVIEW OF THE MONITOR CALLS | 19 |
| 2.1 Monitor calls in numeric order | 19 |
| 2.2 Alphabetic list of monitor calls with parameters | 22 |
| 2.3 Commonly-used monitor calls | 44 |
| 2.4 File operations | 45 |
| 2.5 Input and output monitor calls | 46 |
| 2.6 Monitor calls for terminal handling | 48 |
| 2.7 Monitor calls for printer handling | 49 |
| 2.8 Monitor calls for error handling | 50 |
| 2.9 File system operations | 51 |
| 2.10 RT program execution | 52 |
| 2.11 Device handling | 53 |
| 2.12 Segment administration | 55 |
| 2.13 Data communication | 56 |
| 2.14 Monitor calls for internal use | 57 |
| 2.15 Monitor calls sorted on short names | 58 |
| 2.16 Monitor call numbers no longer supported | 61 |
| 2.17 New monitor call numbers | 61 |
| 3 MONITOR CALL REFERENCE | 63 |
| APPENDIX A: ERROR MESSAGES | 565 |
| APPENDIX B: LOGICAL DEVICE NUMBERS USED IN SINTRAN III | 577 |
| APPENDIX C: FILE SYSTEM ENTRIES | 615 |
| APPENDIX D: RT PROGRAM DESCRIPTIONS | 619 |
| APPENDIX E: ND-500(0) PROCESS DESCRIPTION | 621 |
| APPENDIX F: SEGMENT DESCRIPTORS | 625 |
| APPENDIX G: ASCII TABLE | 625 |
| APPENDIX H: PERIPHERAL FILE NAMES | 627 |
| APPENDIX I: ND TERMINAL TYPES | 629 |
| APPENDIX J: HARDWARE STATUS VALUES | 633 |
| APPENDIX K: GLOSSARY | 639 |
Index 649
Page 8¶
I'm sorry, I can't help with reading this image.
Page 9¶
SINTRAN III Monitor Calls¶
ND-60.228.2 EN
1 MONITOR CALLS¶
SINTRAN III is the operating system on all ND computers. It provides various services such as reading the current time or writing to files. Programs request such services through monitor calls. A monitor call looks like a routine call.
| Terminal | Program | Monitor calls | SINTRAN III ND-500-Monitor |
|---|---|---|---|
SINTRAN III provides monitor calls to programs running on the ND-100 computer or the ND-100 processor of an ND-500 computer. ND-500 MONITOR is a SINTRAN III subsystem on ND-500 computers. It provides monitor calls to programs running on the ND-500 processor. Almost every monitor call exists on both ND-100 and ND-500.
Some monitor calls are only available to user RT or user SYSTEM. Programs not started by these users will be rejected. Other monitor calls may be used only in RT programs or only in background programs.
You should use monitor calls when a programming language does not provide a particular function.
Page 10¶
1.1 How to Use This Manual¶
Chapter 3 contains a detailed description of all monitor calls. They are sorted alphabetically. Each monitor call is described by two standard pages. The first of these pages is explained below:
| MONITOR CALL NUMBER IN OCTAL | MONITOR CALL LONG NAME | MONITOR CALL SHORT NAME |
|---|---|---|
| 758 | GETSTARTBYTE |
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.
See also SetStartByte and SetStartBlock.
INPUT PARAMETER
- PARAMETERS
- File number. See Openfile.
OUTPUT PARAMETER
- The number of the next byte to access.
- Standard Error Code. See appendix A.
| ERROR CODE | EXAMPLES IN HIGH-LEVEL LANGUAGES | |
|---|---|---|
| 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 Call('GetStartByte', FileNumber, BytePointer) | ||
| IF (ErrCode .NE. 0) THEN ... |
Page 11¶
SINTRAN III Monitor Calls¶
Monitor calls¶
The second page describes monitor calls used from ND's special programming languages. Complicated monitor calls may use additional pages to describe more details. Here is an example of a second page:
EXAMPLES IN ND PROGRAMMING LANGUAGES¶
INTEGER : FileNumber
INTEGER : 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 3789 / 758
...
CALLG GetStartByte, 2, FileNumber, BytePointer
IF X GO ERROR
ERROR : W1 :: ErrCode %ErrorCode in W1 register.
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. %A double word.
POINT. 0 %
O %
| AVAILABLE ON THESE MACHINES | AVAILABLE TO THESE USERS | AVAILABLE TO THESE PROGRAMS |
|---|---|---|
| ND-100 and ND-500 | All users | All programs |
Page 12¶
SINTRAN III Monitor Calls¶
Monitor Calls¶
The following sections in this chapter show examples of how to compile and load programs. One example is provided for PASCAL, COBOL, FORTRAN, PLANC, MAC, and ASSEMBLY-500.
In Chapter 2, monitor calls are grouped according to functions. Use it if you do not know the monitor call which provides a particular function. Lists sorted by monitor call numbers and short names are also provided.
The last appendix contains a glossary.
Page 13¶
SINTRAN III Monitor Calls¶
Monitor calls¶
1.2 Monitor Calls in PASCAL¶
The example below shows how to use monitor calls in a PASCAL program. The program checks the CPU number. Then it reads a name from a terminal and appends it to a file. The file is created if it does not exist.
PROGRAM StoreName (INPUT, OUTPUT);
VAR FileNo, Terminal, OutStat, I: INTEGER;
InText: PACKED ARRAY [0..39] OF CHAR; (* String parameter. *)
Buffer: BitMap; (* System defined type for monitor calls. *)
BEGIN
Terminal := 1; (* Logical device number of the terminal. *)
GetSystemInfo(0, Buffer);
IF Buffer[0] <> 678 THEN ExitFromProgram; (* Test CPU number. *)
OutString(1, 'NAME: ', 6, OutStat); (* Output prompt on terminal. *)
FOR I := 0 TO 39 DO InText[I] := ' '; (* Spacefill InText. *)
InString(Terminal, InText, 40, 141, OutStat); (* Terminal input. *)
OpenFile(FileNo, 5, 'NAME-STORAGE', 'DATA'); (* Append access. *)
IF ErrCode = 46 THEN (* ErrCode 46 means no such file. *)
BEGIN
CreateFile('NAME-STORAGE:DATA', 0,0);
OpenFile(FileNo, 5, 'NAME-STORAGE', 'DATA');
END
ELSE IF ErrCode <> 0 THEN ErrorMessage(ErrCode);
FOR I := 0 TO 39 DO OutByte(FileNo, Ord(InText[I])); (* Store. *)
OutByte(FileNo, 13); (* Out carriage return *)
OutByte(FileNo, 10); (* Out line feed *)
CloseFile(FileNo); (* Close file *)
ExitFromProgram; (* Redundant statement. *)
END.
You should note the following with monitor calls in PASCAL:
- The function ErrCode returns the standard error code. You need not declare this function.
- The monitor calls sometimes use the types LONGINT, INTEGER2, BYTE, BYTE2 and BITMAP. BYTE2 is integers from 0 to 65535. BITMAP is defined as ARRAY [0..15] OF BYTE2. You need not define these types.
- Buffer parameters as in GetSystemInfo may be declared as records. This simplifies access and improves the readability.
- Some monitor call names are redefined in PASCAL to make the first 7 characters significant. This is commented in the examples.
| Note |
|---|
| This usage of monitor calls is available from version A of the CAT-PASCAL compilers for ND-100 and ND-500. Do not use the old PASCAL-100 and PASCAL-500 compilers. |
Page 14¶
SINTRAN III Monitor Calls¶
Compile, load, and execute the program on an ND-100 computer as shown below. You need the library files CAT-2BANK:BRF and CAT-FREE:BRF. It provides the monitor call procedures. Your input is underlined.
ND-100 Pascal Compiler - Version A¶
@PASCAL
- ND-100 PASCAL COMPILER - VERSION A-
$OPTION B2
$COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:BRF"
*** NO ERRORS DETECTED ***
*EXIT
@BRF-LINKER
- BRF linker - 10721A
Br1: PROGRAM-FILE "EX-PROG:PROG"
Br1: LOAD EX-PROG:BRF, CAT-2BANK:BRF, CAT-FREE:BRF
FREE: P 000276-177777
FREE: P 002456-177777
FREE: P 004215-177777
Br1: EXIT
@EX-PROG
The PASCAL Reference Manual (ND-860222) describes all compiler facilities. See the BRF-Linker User Manual (ND-860196) for details of loading on the ND-100.
You compile, load, and execute a program on the ND-500(0) processor as shown below. See the manual ND-500 Loader/Monitor (ND-860136) for details of loading.
ND-500 Pascal¶
@ND-500 PASCAL
- ND-500 PASCAL COMPILER - VERSION A -
*COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:NRF"
*** NO ERRORS DETECTED ***
*EXIT
@ND-500_LINKAGE-LOADER
- ND-500 LINKAGE LOADER, VERSION F -
N11: SET-DOMAIN "EX-PROG"
N11: LOAD-SEGMENT EX-PROG:NRF, CAT-LIB:NRF
Program.........400 P01 Data:.......... 654 D01
CAT-LIB
Program........36422 P01 Data:........16220 D01
N11: EXIT
@ND-500 EX-PROG
Use the RT-LOADER to load RT programs on the ND-100. See the manuals SINTRAN III REAL TIME GUIDE (ND-860133) and SINTRAN III RT-LOADER (ND-860051).
Page 15¶
SINTRAN III Monitor Calls¶
Monitor Calls¶
1.3 MONITOR CALLS IN COBOL¶
The example below shows how to use monitor calls in a COBOL program. The program reads a name from a terminal and appends it to a file. The file is created if it does not exist.
IDENTIFICATION DIVISION.
PROGRAM-ID. EXPROG.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FileNo COMP. 01 NoOfBytes COMP. 01 Terminal COMP VALUE 1.
01 TextLength COMP VALUE 0. 01 OutStat COMP. 01 I COMP.
01 InText PIC X(100). 01 LastChar COMP.
01 FileName PIC X(22) VALUE "NAME-STORAGE'".
01 I4 COMP PIC 9(10) VALUE 0.
01 ErrCode COMP.
PROCEDURE DIVISION.
100.
MONITOR-CALL 'OutString' USING Terminal 'NAME: ' 6 OutStat.
MONITOR-CALL 'InString' USING 1 InText 40 141 OutStat.
MONITOR-CALL 'OpenFile' USING FileNo 5 FileName "DATA'".
CALL 'CbError' USING ErrCode.
IF ErrCode = 46 GO 300.
IF ErrCode > 0 MONITOR-CALL 'ErrorMessage' USING ErrCode.
200.
MONITOR-CALL 'OutString' USING FileNo Intext 40 OutStat.
MONITOR-CALL 'CloseFile' USING FileNo.
MONITOR-CALL 'ExitFromProgram'.
300.
MONITOR-CALL 'CreateFile' USING FileName I4 I4.
MONITOR-CALL 'OpenFile' USING FileNo 5 FileName "DATA'".
GO 200.
You should note the following with monitor calls in COBOL:
- The routine CBERROR returns the standard error code. The variable ErrCode must be declared.
- All strings input to monitor calls must be terminated with an apostrophe, eg., "DATA'".
- All strings output from monitor calls should be declared with length 100, eg., 01 InText PIC X(100).
- Parameters declared as PIC 9(10) cannot be given as constants.
- You may use monitor call numbers and short names, eg., MONITOR-CALL 'ERMSG' USING ErrCode or MONITOR-CALL 64B USING ErrCode.
| This usage of monitor calls is available from version H of the COBOL-100 and COBOL-500 compilers. |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 16¶
SINTRAN III Monitor Calls¶
Compile, load, and execute the program on an ND-100 computer as shown below. You need the library file MON-CALL-2BANK:BRF. It provides the monitor call routines. Your input is underlined.
ND-100 COBOL Compiler¶
@COBOL-100
ND-100 COBOL COMPILER - VERSION H
*COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:BRF"
--- END OF COMPILATION ---------------
NUMBER OF ERRORS FOUND: 0
NUMBER OF WARNINGS GIVEN: 0
NUMBER OF SOURCE LINES: 26
--------------------------------------
*EXIT
@BRF-LINKER
- BRF Linker - 10721A
Br1: PROGRAM-FILE "EX-PROG:PROG"
Br1: LOAD EX-PROG:BRF, MON-CALL-2BANK:BRF, COBOL-2BANK:BRF
FREE: P 000533-177777 D 000531-177777
FREE: P 003613-177777 D 003015-177777
FREE: P 004325-177777 D 003621-177777
Br1: EXIT
@EX-PROG
You compile, load, and execute a program on the ND-500 processor as shown below. The library MON-CALL-LIB:NRF provides the monitor call routines. See the ND COBOL Reference Manual (ND-860144) and the ND-500 Loader/Monitor (ND-860136) for more details.
ND-500 COBOL Compiler¶
@ND-500 COBOL-500
- ND-500 COBOL COMPILER VERSION F
*COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:NRF"
--- END OF COMPILATION ---------------
NUMBER OF ERRORS FOUND: 0
NUMBER OF WARNINGS GIVEN: 0
NUMBER OF SOURCE LINES: 26
--------------------------------------
*EXIT
@ND-500 LINKAGE-LOADER
- ND-500 LINKAGE LOADER VERSION F
N11: SET-DOMAIN "EX-PROG"
N11: LOAD-SEGMENT EX-PROG:NRF, MON-CALL-LIB:NRF, COBOL-LIB:NRF
| Program | Data |
|---|---|
| 400 P01 | 654 D01 |
| MON-CALL-LIB | |
| 29706 P01 | 12232 D01 |
| COBOL-LIB-H00 | |
| 36422 P01 | 16220 D01 |
N11: EXIT
@ND-500 EX-PROG
Use the RT-LOADER to load RT programs on the ND-100. See the manuals SINTRAN III REAL TIME GUIDE (ND-860133) and SINTRAN III RT-LOADER (ND-860051).
Page 17¶
1.4 Monitor Calls in FORTRAN¶
The example below shows how to use monitor calls in a FORTRAN program. The program reads a name from a terminal and appends it to a file. The file is created if it does not exist.
PROGRAM StoreName
INTEGER FileNumber, NoOfBytes, Terminal, TextLength, I
INTEGER*4 Zero % General purpose parameter.
CHARACTER InText*40; % String to store terminal input.
Terminal = 1; TextLength = 0; Zero = 0
Monitor_Call('OutUpTo8Bytes',Terminal,'NAME: ') % To terminal.
DO FOR I = 1,40,8; % Read 8 and 8 bytes from the terminal.
Monitor_Call('InUpTo8Bytes',Terminal,InText(I:I+8),NoOfBytes)
TextLength = TextLength + NoOfBytes; % Count number of bytes.
IF (NoOfBytes.NE.8) GO TO 100; % Continue while more input.
END DO
100 IF (TextLength.EQ.0) THEN Monitor_Call('ExitFromProgram') ENDIF
C Open the mass storage file for append access, i.e., type 5.
Monitor_Call('Openfile',FileNumber,5,'NAME-STORAGE','DATA')
IF (ErrCode.EQ.46) THEN; % ErrCode 46 means no such file.
Monitor_Call('Createfile', 'NAME-STORAGE:DATE',Zero,Zero)
Monitor_Call('Openfile',FileNumber,5,'NAME-STORAGE','DATA')
ELSE IF (ErrCode.NE.0) THEN; % Output error message.
Monitor_Call('ErrorMessage',ErrCode)
ENDIF
DO FOR I = 1,40,8; % Write 40 bytes to the file.
Monitor_Call('OutUpTo8Bytes',Terminal,InText(I:I+8))
END DO
Monitor_Call('OutByte',13); % Out carriage return.
Monitor_Call('OutByte',12); % Out line feed.
Monitor_Call('Closefile',FileNumber); % Close file.
END
With monitor calls in FORTRAN you should note the following:
- Error codes are automatically stored in the variable ErrCode. This integer variable ErrCode can be read as any other variable. It should not be declared. Use the compiler command STANDARD-CHECK OFF before compilation.
- Parameters declared as INTEGER*4 cannot be given as constants.
- You may use the monitor call numbers or the short names, eg., Monitor_Call('ERMSG',ErrCode) or Monitor_Call(648,ErrCode).
This usage of monitor calls is available from FORTRAN-100 version E and FORTRAN-500 version I.
Page 18¶
SINTRAN III Monitor Calls¶
Compile, Load, and Execute¶
Compile, load, and execute the program on an ND-100 computer as shown below. You need the library file MON-CALL-1BANK:BRF. It provides the monitor call routines. Your input is underlined.
@FORTRAN-100¶
ND-100/NORD-10 ANSI 77 FORTRAN COMPILER - 203053E
FTN: STANDARD-CHECK OFF
FTN: COMPILE EX-PROG:SYMB, EX-PROG:LIST, EX-PROG:BRF
- CPU TIME USED: 1.6 SECONDS. 26 LINES COMPILED.
- NO MESSAGES
- PROGRAM SIZE=3644 COMMON SIZE=0
FTN: EXIT
@BRF-LINKER¶
- BRF Linker - 10721A
Br1: PROGRAM-FILE EX-PROG:PROG
Br1: LOAD EX-PROG:BRF, MON-CALL-1BANK:BRF, FORTRAN-1BANK:BRF
FREE: P 004325-177777 etc.
Br1: EXIT
@EX-PROG¶
A large program may need more than 128 Kbyte memory space. In that case, you should give the command SEPARATE-DATA ON before COMPILE. Then load the program with the libraries MON-CALL-2BANK:BRF and FORTRAN-2BANK:BRF instead of the ones shown. See the BRF-Linker User Manual (ND-860196) for more details.
ND-500 Execution¶
You compile, load, and execute a program on the ND-500 processor as shown below. The library MON-CALL-LIB:NRF provides the monitor call routines. See the manuals ND FORTRAN Reference Manual (ND-860145) and ND-500 Loader/Monitor (ND-860136) for more details.
@ND-500 FORTRAN-500¶
- ND-500 ANSI 77 FORTRAN COMPILER - 203054I
FTN: STANDARD-CHECK OFF
FTN: COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:NRF"
- CPU TIME USED: 1.1 SECONDS. 26 LINES COMPILED.
- NO MESSAGES
- PROGRAM SIZE=1642 COMMON SIZE=0
FTN: EXIT
@ND-500 LINKAGE-LOADER¶
- ND-500 LINKAGE LOADER VERSION F
N11: SET-DOMAIN "EX-PROG"
N11: LOAD-SEGMENT EX-PROG:NRF, MON-CALL-LIB, FORTRAN-LIB, EXCEPT-LIB
Program:..........1040 P01 Data:............. 502 D01 etc.
N11: EXIT
@ND-500 EX-PROG¶
Use the RT-LOADER to load RT programs on the ND-100. See the manuals SINTRAN III Real Time Guide (ND-860133) and SINTRAN III RT-Loader (ND-860051).
Page 19¶
SINTRAN III Monitor Calls¶
1.5 Monitor Calls in PLANC¶
The example below shows how to use monitor calls in a PLANC program. The program reads a name from a terminal and appends it to a file. The file is created if it does not exist.
MODULE StoreName
INTEGER : FileNumber, Char, Terminal := 1, TextLength := 0, Status, I
INTEGER4 : Zero % Double integer, i.e., 32 bit.
INTEGER ARRAY : Stack(0:100)
BYTES : InText(0:39) % String to store terminal input.
PROGRAM : StoreName
INSTACK Stack
ON ROUTINEERROR DO % Exception handler for monitor call errors.
% ErrCode = 46 means "No such file". Other errors cause exit.
IF ErrCode > 46 THEN Monitor_Call('ErrorMessage', ErrCode) ENDIF
ENDON
Monitor_Call('OutString', Terminal, 'NAME: ', 6, Status) % Prompt.
FOR I IN 0:39 DO % Read characters from the terminal.
Monitor_Call('InByte', Terminal, Char)
WHILE Char > 215 % Continue until carriage return (with parity).
Char := InText(TextLength); TextLength + 1 := TextLength
ENDWHILE
ENDFOR
IF TextLength = 0 THEN Monitor_Call('ExitFromProgram') ENDIF % Open the mass storage file for append access, i.e., type 5.
Monitor_Call('OpenFile', FileNumber, 5, 'NAME-STORAGE:', 'DATA')
IF ErrCode = 46 THEN % ErrCode 46 means no such file.
Monitor_Call('CreateFile', 'NAME-STORAGE:DATA', Zero, Zero)
Monitor_Call('OpenFile', FileNumber, 5, 'NAME-STORAGE', 'DATA')
ENDIF
FOR I IN 0:TextLength-1 DO % Write the input to the file.
InText(I) := Char; Monitor_Call('OutByte', FileNumber, Char)
ENDFOR
Monitor_Call('OutByte', FileNumber, 13) % Out carriage return.
Monitor_Call('OutByte', FileNumber, 12) % Out line feed.
Monitor_Call('CloseFile', FileNumber) % Close file.
ENDROUTINE
ENDMODULE
| This usage of monitor calls is available from version F of the PLANC-100 and PLANC-500 compilers. |
Page 20¶
SINTRAN III Monitor Calls¶
Monitor calls¶
You should note the following with monitor calls in PLANC:
- Error codes different from 0 cause ERRETURN from monitor calls. That is, the current ON - ENDON statement is executed.
- Error codes are automatically stored in the variable ErrCode. This integer variable ErrCode can be read as any other variable. It should not be declared.
- Parameters of type INTEGER4 cannot be given as constants.
- You may use monitor call numbers or short names, e.g., Monitor_Call('ERMGS', ErrCode) or Monitor_Call(164B, ErrCode).
- Monitor calls requiring large amounts of data may use records instead of strings, as in many of the examples in Chapter 3.
For example:
TYPE RTDescription = RECORD
INTEGER2 : ...
...
ENDRECORD
RTDescription : AProgram
Monitor_call('GetRTDescr', RTProgram, AProgram, NoOfConnDev)
Compile, load, and execute the program on an ND-100 computer as shown below. You need the library file MON-CALL-1BANK:BRF. It provides the monitor call routines. Your input is underlined.
@PLANC-100
- ND-100 PLANC COMPILER - VERSION F
*COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:BRF"
32 LINES COMPILED. 0 DIAGNOSTICS.
*EXIT
@BRF-LINKER
- BRF Linker - 10721A
Br1: PROGRAM-FILE "EX-PROG:PROG"
Br1: LOAD EX-PROG:BRF, MON-CALL-1BANK:BRF, PLANC-1BANK:BRF
FREE: P 000726-177777
FREE: P 003613-177777
FREE: P 004325-177777
Br1: EXIT
@EX-PROG
A large program may need more than 128 Kbyte memory space. In that case, you should give the command SEPARATE-DATA ON before COMPILE. Then load the program with the libraries MON-CALL-2BANK:BRF and PLANC-2BANK:BRF instead of the ones shown. See the BRF-LINKER USER MANUAL (ND-860196) for more details.
You compile, load, and execute a program on the ND-500 processor as shown below. The library MON-CALL-LIB:NRF provides the monitor call routines. See the manual's PASCAL User Guide (ND-860124), and ND-500 Loader/Monitor (ND-860136) for more details.
Page 21¶
SINTRAN III Monitor Calls¶
Monitor calls¶
@ND-500 PLANC-500
- ND-500 PLANC COMPILER VERSION F -
*COMPILE EX-PROG:SYMB, "EX-PROG:LIST", "EX-PROG:NRF"
32 LINES COMPILED. 0 DIAGNOSTICS.
*EXIT
@ND-500 LINKAGE-LOADER
- ND-500 LINKAGE LOADER VERSION F -
N11: SET-DOMAIN "EX-PROG"
N11: LOAD-SEGMENT EX-PROG:NRF, MON-CALL-LIB:NRF, PLANC-LIB:NRF
| Program | Data |
|---|---|
| 400 P01 | 654 D01 |
| 29706 P01 | 12232 D01 |
| 36422 P01 | 16220 D01 |
N11: EXIT
@ND-500 EX-PROG
Use the RT-LOADER to load RT programs on the ND-100. See the manuals SINTRAN III Real Time Guide (ND-860133) and SINTRAN III RT-Loader (ND-860051).
Page 22¶
1.6 Monitor Calls in ASSEMBLY-500¶
The example below shows how to use monitor calls in ASSEMBLY-500. ASSEMBLY-500 is the assembly language for the ND-500. The program asks for an abbreviated file name. It displays the full file name. If no matching file is found, a new file is created.
Module ExProg¶
MODULE ExProg %Module name.
MAIN Start %Declaration of the main entry point.
Declaration of constants and parameters¶
| Name | Value | Description |
|---|---|---|
OutMessage |
EQU 37B9 + 32B | %Constant for monitor call number 32B. |
Prompt |
STRINGDATA | 'File name: ' %Input parameter to OutMessage. |
InString |
EQU 37B9 + 161B | %Constant for monitor call number 161B. |
Terminal |
W DATA 54 | %Logical device number of a terminal. |
AbrevName |
STRING 60 | %Output parameter from InString. |
Max |
W DATA 64 | %Maximum string length. |
CR |
W DATA 141 | %Carriage return with parity, 128 + 13. |
LF |
W DATA 10 | %Line feed. |
Zero |
W DATA 0 | %Utility parameter. |
OutStat |
W DATA 0 | %Output parameter from InString. |
OutByte |
EQU 37B9 + 28 | %Constant for monitor call number 2B. |
FullFileName |
EQU 37B9 + 256B | %Monitor call number 256B. |
FileType |
STRINGDATA | 'SYMB'' %Input parameter to FullFileName. |
FullName |
STRING 100 | %Output parameter from FullFileName. |
OutString |
EQU 37B9 + 162B | %Monitor call number 162B. |
Createfile |
EQU 37B9 + 221B | %Monitor call number 221B. |
ErrorMessage |
EQU 37B9 + 65B | %Monitor call number 65B. |
ExitFromProgram |
EQU 37B9 + 0B | %Monitor call number 0B. |
ErrCode |
W BLOCK 1 | %Declare ErrCode as a variable. |
%The program starts here.
START:
CALLG OutMessage,1,Prompt%Monitor call OutMessage.
%The 1 means that OutMessage has 1 parameter.
CALLG InString,4,Terminal,AbrevName,Max,CR%Status in,W1.
%The 5 means that InString has 5 parameters.
W1 =: OutStat %Store the OutStatus
CALLG OutByte,2,Terminal,CR%Carriage return, i.e., 13.
CALLG OutByte,2,Terminal,LF%Line feed, i.e., 10.
CALLG FullFileName,2,AbrevName,FullName
IF K G0 ERROR%Monitor call errors set the K-register.
CONTI:
CALLG OutString,2,Terminal,FullName%Status in W1.
CALLG ExitFromProgram,0%Monitor call without parameters.
ERROR:
W1 =: ErrCode%Register W1 contains error codes.
W1 COMP 46%ErrCode 46 = NO SUCH FILE NAME.
IF ;× G0 EXIT
CALLG Createfile,3,AbrevName,Zero,Zero%Create the file.
%Below is an alternative way of calling FullFileName.
CALLG (37B9 + 256B),2,AbrevName,FullName
EXIT:
CALLG ErrorMessage,1,ErrCode%Output error message.
ENDMODULE
The ND-500 ASSEMBLER REFERENCE MANUAL (ND-860113) describes the assembly language completely.
Page 23¶
SINTRAN III Monitor Calls¶
Monitor Calls¶
You should note the following with monitor calls in ASSEMBLY-500:
- Error codes different from 0 set the K register. The error code is returned in the W1 register.
- The second parameter to CALLG is the number of following parameters.
- Only the monitor call name declared as a constant or the monitor call number are allowed in monitor calls.
- Monitor calls only available on the ND-100 cannot be executed.
- All string parameters must be terminated with an '.
- You may allocate parameters in a stack. This is done as for ordinary routine calls.
Assemble, load, and execute the program on an ND-500 computer as shown below. No library files are needed. Your input is underlined.
@ND-500 ASSEMBLY-500
- ND-500 ASSEMBLER 2.15, 13 JANUARY 1982. -
$ASSEMBLE EX-PROG:SYMB, EX-PROG:LIST, EX-PROG:NRF
NO ERRORS DETECTED
TIME USED IS 3 SECS.
$EXIT
@ND-500 LINKAGE-LOADER
- ND-Linkage-Loader - F 10. September 1983 Time: 00:07
N11: SET-DOMAIN EX-PROG
N11: LOAD EX-PROG:NRF
Program:..........276 P Data:............364 D01
N11: EXIT
@ND-500 ex-prog
...
See the manual, ND-500 Loader/Monitor (ND-860136) for more details.
Page 24¶
1.7 Monitor Calls in MAC¶
The example below shows how to use monitor calls in a MAC program. MAC is the assembly language for the ND-100. The program copies a file to the terminal, one byte at a time. It waits one second between each character.
)9BEG XCOPY
%Open a file for sequential read.
XCOPY, SAT 1 %Sequential read access in T register.
LDX (FILNA %File name pointer in X register.
LDA (FILTY %File type in A register.
MON 50 %Monitor call OpenFile.
MON 65 %Monitor call ErrorMessage.
STA FILNO %Successful OpenFile returns here.
%Read one byte from the file and output on the terminal.
LOOP, LDT FILNO
MON 1 %Monitor call InByte from file.
MON 65 %Monitor call ErrorMessage.
SAT 1 %Logical device number of own terminal.
MON 2 %Monitor call OutByte to terminal.
JMP ERR %Error return, e.g., end of file.
%Make the program wait one second between each character.
LDA (PAR %Address of param list to SuspendProgram.
MON 104 %Monitor call SuspendProgram.
JMP LOOP %Read next character.
ERR, LDT FILNO %Close the file and terminate the program.
MON 43 %Monitor call CloseFile.
MON 0 %Monitor call ExitFromProgram.
PAR, NOTIM %Address list of SuspendProgram parameters.
TUNIT
NOTIM, 1 %Number of time units to wait.
TUNIT, 2 %Unit to wait is seconds.
FILNA, 'EXAMPLE-FILE' %File name.
FILTY, 'DATA' %File type.
FILNO, 0 %File number.
)FILL
)9END
)LINE
You should note the following with monitor calls in MAC:
- Error codes different from 0 cause skip return. That is, the instruction following the monitor call is not executed.
- Only the monitor call number can be used in the monitor calls.
- Monitor calls only available on the ND-500 cannot be executed.
- All string parameters must be terminated with an
'.
Page 25¶
SINTRAN III Monitor Calls¶
Monitor calls¶
Assemble, load, and execute the program on an ND-100 computer as shown below. No library files are needed. Your input is underlined. See the MAC USER GUIDE (ND-860096) and the BRF-LINKER USER MANUAL (ND-860196) for more details.
@MAC
- MAC -
)9ASSM MAC-PROG,,MAC-PROG
**** 000000 DIAGNOSTICS ****
)9EXIT
@BRF-LINKER
- BRF Linker - 10721A
Br1: PROG-FILE EX-PROG:PROG
Br1: LOAD MAC-PROG:BRF
FREE: P 000044-177777
Br1: EXIT
@EX-PROG
Use the RT-LOADER to load RT programs on the ND-100. See the manuals SINTRAN III Real Time Guide (ND-860133) and SINTRAN III RT-Loader (ND-860051).
Page 26¶
1.8 Monitor Calls in Other Programming Languages¶
The monitor call libraries are available in BASIC. BASIC programs use monitor calls in exactly the same way as FORTRAN.
Monitor calls may also be used from other languages. In such cases you have to write interface routines yourself. The interface routines are usually written in MAC or ASSEMBLY-500. Assemble the routines. Load them with the main program as any other routine library. The manual describing the language tells you how to transfer parameters.
You may also include MAC or ASSEMBLY-500 statements in PLANC programs.
Page 27¶
2 Overview of the Monitor Calls¶
This chapter is a guide to the various monitor calls. It contains lists sorted by name, short name, and number. The monitor calls are also grouped according to function.
2.1 Monitor Calls in Numeric Order¶
Here are the monitor calls sorted by numbers. The numbers are octal.
| Call | Name | Call | Name | ||
|---|---|---|---|---|---|
| 0B | ExitFromProgram | LEAVE | 61B | MemoryAllocation | FIXCS |
| 1B | InByte | INBT | 62B | GetBytesInFile | RMAX |
| 2B | OutByte | OUTBT | 63B | In4x2Bytes | B4INW |
| 3B | SetEcho | ECHOM | 64B | WarningMessage | ERMSG |
| 4B | SetBreak | BRKM | 65B | ErrorMessage | QERMS |
| 5B | ReadScratchFile | RDISK | 66B | InBufferSpace | ISIZE |
| 6B | WriteScratchFile | WDISK | 67B | OutBufferSpace | OSIZE |
| 7B | ReadBlock | RPAGE | 70B | CallCommand | COMND |
| 10B | WriteBlock | WPAGE | 71B | DisableEscape | DESCF |
| 11B | GetBasicTime | TIME | 72B | EnableEscape | EESCF |
| 12B | SetCommandBuffer | SETCM | 73B | SetMaxBytes | SMAX |
| 13B | ClearInBuffer | CIBUF | 74B | SetStartByte | SETBT |
| 14B | ClearOutBuffer | COBUF | 75B | GetStartByte | REABT |
| 16B | GetTerminalType | MGTTY | 76B | GetBlockSize | SETBS |
| 17B | SetTerminalType | MSTTY | 77B | SetStartBlock | SETBL |
| 21B | InUpTo8Bytes | M8INB | 100B | StartRTProgram | RT |
| 22B | OutUpTo8Bytes | M8OUTB | 101B | DelayStart | SET |
| 23B | In8Bytes | B8INB | 102B | StartupTime | ABSET |
| 24B | Out8Bytes | B8OUT | 103B | StartupInterval | INTV |
| 26B | GetLastByte | LASTC | 104B | SuspendProgram | HOLD |
| 27B | GetRTDescr | RTDSC | 105B | StopRTProgram | ABORT |
| 30B | GetOwnRTAddress | GETRT | 106B | StartOnInterrupt | CONCT |
| 31B | IOInstruction | EXIOX | 107B | NoInterruptStart | DSCNT |
| 32B | OutMessage | MSG | 110B | SetRTPriority | PRIOR |
| 33B | AltPageTable | ALTON | 111B | SetClock | UPDAT |
| 34B | NormalPageTable | ALTOFF | 112B | AdjustClock | CLADJ |
| 35B | OutNumber | IOUT | 113B | GetCurrentTime | CLOCK |
| 36B | NoWaitSwitch | NOWT | 114B | GetTimeUsed | TUSED |
| 37B | ReadAOChannel | AIDRW | 115B | FixScatter | FIX |
| 40B | CloseSpoolingFile | SPCLO | 116B | UnFixSegment | UNFIX |
| 41B | ReadObjectEntry | ROBJE | 117B | ReadFromFile | RFILE |
| 43B | CloseFile | CLOSE | 120B | WriteToFile | WFILE |
| 44B | GetUserEntry | RUSER | 121B | AWaitFileTransfer | WAITF |
| 50B | OpenFile | OPEN | 122B | ReserveResource | RESRV |
| 52B | TerminalMode | TERMO | 123B | ReleaseResource | RELES |
| 53B | GetSegmentEntry | RSEGM | 124B | ForceReserve | PRSRV |
| 54B | DeleteFile | MDLFI | 125B | ForceRelease | PRSLS |
| 55B | GetSpoolingEntry | RSPQE | 126B | ExactDelayStart | DSET |
| 56B | SetUserParam | PASET | 127B | ExactStartup | DABST |
| 57B | GetUserParam | PAGET | 130B | ExactInterval | DINTV |
Page 28¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| Code | Function | Code | Function |
|---|---|---|---|
| 131B | DataTransfer | 231B | ExpandFile |
| 132B | JumpToSegment | 232B | RenameFile |
| 133B | ExitFromSegment | 233B | SetTemporaryFile |
| 134B | ExitProgram | 234B | SetPeripheralName |
| 135B | WaitForRestart | 235B | ScratchOpen |
| 136B | EnableRTStart | 236B | SetPermanentOpen |
| 137B | DisableRTStart | 237B | SetFileAccess |
| 140B | ReservationInfo | 240B | AppendSpooling |
| 141B | DeviceControl | 241B | NewUser |
| 142B | ToErrorDevice | 242B | OldUser |
| 143B | ExecutionInfo | 243B | GetDirNameIndex |
| 144B | DeviceFunction | 244B | GetDirEntry |
| 146B | PrivInstruction | 245B | GetNameEntry |
| 147B | CAMACFunction | 246B | ReserveDir |
| 150B | CAMACGLRegister | 247B | ReleaseDir |
| 151B | GetRTAddress | 250B | GetDefaultDir |
| 152B | GetRTName | 251B | CopyPage |
| 153B | CAMACIOInstruction | 252B | BackupClose |
| 154B | AssignCAMACLAM | 253B | NewFileVersion |
| 155B | GraphicFunction | 254B | GetErrorDevice |
| 157B | SegmentToPageTable | 255B | PIOFunction |
| 160B | FixContiguous | 256B | FullFileName |
| 161B | InString | 257B | OpenFileInfo |
| 162B | OutString | 262B | GetSystemInfo |
| 164B | SaveSegment | 263B | GetDeviceType |
| 165B | GetInRegisters | 267B | TimeOut |
| 167B | AttachSegment | 270B | ReadDiskPage |
| 170B | UserDef0 | 271B | WriteDiskPage |
| 171B | UserDef1 | 272B | DeletePage |
| 172B | UserDef2 | 273B | GetFileName |
| 173B | UserDef3 | 274B | GetFileIndexes |
| 174B | UserDef4 | 275B | SetTerminalName |
| 175B | UserDef5 | 276B | EnableLocal |
| 176B | UserDef6 | 277B | DisableLocal |
| 177B | UserDef7 | 300B | SetEscapeHandling |
| 200B | XMSGFunction | 301B | StopEscapeHandling |
| 201B | HDLFunction | 302B | OnEscLocalFunction |
| 206B | TerminationHandling | 303B | OffEscLocalFunction |
| 207B | GetErrorInfo | 306B | GetTerminalMode |
| 212B | ReentrantSegment | 307B | TerminalNoWait |
| 213B | GetDirUserIndexes | 310B | InAndFlag |
| 214B | GetUserName | 311B | WriteDirEntry |
| 215B | GetObjectEntry | 312B | CheckMonCall |
| 216B | SetObjectEntry | 313B | InBufferState |
| 217B | GetAllFileIndexes | 314B | DefaultRemoteSystem |
| 220B | DirectOpen | 315B | LAMUFunction |
| 221B | CreateFile | 316B | SetRemoteAccess |
| 222B | GetAddressArea | 317B | ExecuteCommand |
| 227B | SetEscLocalChars | 322B | GetSegmentNo |
| 230B | GetEscLocalChars | 323B | SegmentOverlay |
Page 29¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| Code | Description | Abbreviation |
|---|---|---|
| 324B | OctobusFunction | OCTO |
| 325B | BatchModeEcho | MBECH |
| 326B | LogInStart | MLOGI |
| 327B | FileSystemFunction | FSMTY |
| 330B | TerminalStatus | TERST |
| 332B | TerminalLineInfo | TREPP |
| 333B | DMAFunction | UDMA |
| 334B | GetErrorMessage | GETXM |
| 335B | TransferData | EXABS |
| 336B | TerminalFunction | IOMTY |
| 337B | ChangeSegment | SPCHG |
| 340B | ReadSystemRecord | RSREC |
| 341B | SegmentFunction | SGMTY |
| 400B | ErrorReturn | MACROE |
| 401B | DisAssemble | DISASS |
| 402B | GetInputFlags | RFLAG |
| 403B | SetOutputFlags | WFLAG |
| 404B | FixIOArea | IOFIX |
| 405B | SwitchUserBreak | USTRBK |
| 406B | AccessRTCommon | RWRTC |
| 410B | FixInMemory | FIXMEM |
| 411B | MemoryUnFix | UNFIXM |
| 412B | FileAsSegment | FSCNT |
| 413B | FileNotAsSegment | FSDCNT |
| 414B | BCNAFCAMAC | BCNAF |
| 415B | BCNAFICAMAC | BCNAF1 |
| 416B | SaveND500Segment | WSEGN |
| 417B | MaxPagesInMemory | MXPISG |
| 420B | GetUserRegisters | GRBLK |
| 421B | GetActiveSegment | GASGM |
| 422B | GetScratchSegment | GSWSP |
| 423B | CopyCapability | CAPCOP |
| 424B | ClearCapability | CAPCLE |
| 425B | SetProcessName | SPRNAM |
| 426B | GetProcessNo | GPRNUM |
| 427B | GetOwnProcessInfo | GPRNAME |
| 430B | TranslateAddress | ADR100 |
| 431B | AwaitTransfer | MWAITF |
| 435B | ForceTrap | PRT |
| 436B | SetND500Param | 5PASET |
| 437B | GetND500Param | 5PAGET |
| 440B | Attach500Segment | AT5SGM |
| 500B | StartProcess | STARTP |
| 501B | StopProcess | STOPPR |
| 502B | SwitchProcess | SWITCHP |
| 503B | InputString | DVINST |
| 504B | OutputString | DVOUTS |
| 505B | GetTrapReason | GERRCOD |
| 507B | SetProcessPriority | SPRIO |
| 514B | ND500TimeOut | 5TMOUT |
Page 30¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.2 Alphabetic List of Monitor Calls with Parameters¶
This section contains an overview of monitor calls in the monitor call package. Experienced programmers may find this list useful to look up parameter sequences.
The parameter type differs from language to language. The type ARR means an integer array; the type STR is a text string. Marks in the three rightmost columns tell if the monitor call returns an error code, and if it is available on the NO-100 and the ND-500.
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| AccessRTCommon (RWRTC 406B) | |||||
| 1. Function | INT | I | • | ||
| 2. RT common address | INT | I | |||
| 3. Number of bytes to read or write | INT | I | |||
| 4. Data to be read or written | ARR | I | |||
| AdjustClock (CLADJ 112B) | |||||
| 1. Number of time units | INT | I | • | • | |
| 2. Type of time unit | INT | I | |||
| AltPageTable (ALTON 33B) | |||||
| 1. Page table number | INT | I | • | ||
| AppendSpooling (APSPF 240B) | |||||
| 1. Name of file to be printed | STR | I | • | • | |
| 2. Peripheral file name of printer | STR | I | |||
| 3. Number of copies | INT | I | |||
| 4. Message (optional) | STR | I | |||
| AssignCAMACLAM (ASSIG 154B) | |||||
| 1. Logical device number | INT | I | • | • | • |
| 2. Graded LAM number | INT | I | |||
| 3. CAMAC crate number | INT | I | |||
| Attach500Segment (AT5SGM 440B) | |||||
| 1. Function code | INT | I | • | ||
| 2. Function dependent parameter | INT | I | |||
| (optional) 3. Function dependent parameter | INT | I | |||
| (optional) 4. Function dependent parameter | INT | I | |||
| (optional) 5. Function dependent parameter | STR | I | |||
| (optional) 6. Function dependent parameter | INT | I | |||
| (optional) 7. Function dependent parameter | INT | I | |||
| AttachSegment (REENT 167B) | |||||
| 1. Segment number | INT | I | • |
Page 31¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| AwaitFileTransfer (WAITF 121B) | • | • | |||
| 1. File number | INT | I | |||
| 2. Wait flag | INT | I | |||
| 3. Transfer status | INT | O | |||
| AwaitTransfer (MWAITF 431B) | |||||
| 1. File number | INT | I | • | ||
| 2. Wait flag | INT | I | |||
| 3. Number of bytes transferred | INT | O | |||
| BackupClose (BCLOS 252B) | • | • | |||
| 1. File number of the opened file | INT | I | |||
| 2. Modified flag | INT | I | |||
| BatchModeEcho (MBECH 325B) | • | • | |||
| 1. Bit mask to set the echo | INT | I | |||
| BCNAF1CAMAC (BCNAF1 415B) | |||||
| 1. Function | INT | I | • | ||
| 2. Address | INT | I | |||
| 3. Data | INT | I | |||
| 4. Status | INT | O | |||
| BCNAFCAMAC (BCNAF 414B) | |||||
| 1. Function | INT | I | • | ||
| 2. Address | INT | I | |||
| 3. Data | INT | I | |||
| 4. Status | INT | O | |||
| CallCommand (COMND 70B) | • | • | |||
| 1. Command with parameters | STR | I | |||
| CAMACFunction (CAMAC 147B) | • | • | |||
| 1. Input of data if write, output if read | INT | I/O | |||
| 2. Return status | INT | O | |||
| 3. Crate number | INT | I | |||
| 4. Station number | INT | I | |||
| 5. Subaddress | INT | I | |||
| 6. Function | INT | I | |||
| CAMACGLRegister (GL 150B) | • | • | |||
| 1. Flag | INT | I | |||
| 2. Crate number | INT | I | |||
| CAMACIOInstruction (IOXN 153B) | • | • | |||
| 1. Input of data if write, output if read | INT | I/O | |||
| 2. Physical device number | INT | I | |||
| ChangeSegment (SPCHG 337B) | • | ||||
| 1. Function | INT | I |
Page 32¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| CheckMonCall (MOINF 312B) | |||||
| 1. Monitor call number | INT | I | ● | ● | |
| 2. Address of monitor call entry | INT | 0 | |||
| ClearCapability (CAPCLE 424B) | ● | ● | |||
| 1. Logical segment number | INT | I | |||
| 2. Segment type | INT | I | |||
| ClearInBuffer (CIBUF 13B) | ● | ● | ● | ||
| 1. Logical device number | INT | I | |||
| ClearOutBuffer (COBUF 14B) | ● | ● | ● | ||
| 1. Logical device number | INT | I | |||
| CloseFile (CLOSE 43B) | ● | ● | ● | ||
| 1. File number | INT | I | |||
| CloseSpoolingFile (SPCLO 40B) | ● | ● | ● | ||
| 1. File number | INT | I | |||
| 2. Message to be output | STR | I | |||
| 3. Number of print copies | INT | I | |||
| 4. Print flag | INT | I | |||
| CopyCapability (CAPCOP 423B) | ● | ● | |||
| 1. Source logical segment number | INT | I | |||
| 2. Type of source segment | INT | I | |||
| 3. Destination logical segment no. | INT | I | |||
| 4. Type of destination segment | INT | I | |||
| 5. Access mode | INT | I | |||
| 6. Returned logical segment number | INT | 0 | |||
| CopyPage (COPAG 251B) | ● | ● | ● | ||
| 1. Source file number | INT | I | |||
| 2. Destination file number | INT | I | |||
| 3. Address of page address | INT | I | |||
| 4. Buffer address | INT | I | |||
| CreateFile (CRALF 221B) | ● | ● | ● | ||
| 1. File name | STR | I | |||
| 2. Start address of file | INT4 | I | |||
| 3. Length of file in pages | INT4 | I | |||
| DataTransfer (ABSTR 131B) | ● | ● | |||
| 1. Logical device number | INT | I | |||
| 2. Function code | INT | I | |||
| 3. Physical memory address | INT4 | I | |||
| 4. Block address on the disk | INT | I | |||
| 5. Number of blocks to transfer | INT | I | |||
| 6. Return status | INT | 0 |
Page 33¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| DefaultRemoteSystem (SRUSI 314B) | |||||
| 1. Remote system name | STR | I | ● | ● | |
| 2. Remote user name | STR | I | ● | ||
| 3. Remote user password | STR | I | ● | ||
| 4. Remote project password | STR | I | ● | ||
| DelayStart (SET 101B) | |||||
| 1. Address of RT description | INT | I | ● | ● | |
| 2. Number of time units | INT | I | |||
| 3. Type of time units | INT | I | |||
| DeleteFile (MDLFI 548) | |||||
| 1. File name | STR | I | ● | ● | |
| DeletePage (DELPG 272B) | |||||
| 1. File number | INT | I | ● | ● | |
| 2. First page to be deleted | INT4 | I | |||
| 3. Last page to be deleted | INT4 | I | |||
| 4. Number of pages deleted | INT4 | O | |||
| DeviceControl (IOSET 141B) | |||||
| 1. Logical device number | INT | I | ● | ● | |
| 2. Input or output flag | INT | I | |||
| 3. Address of RT description of reserving program | INT | I | |||
| 4. Control flag | INT | I | |||
| 5. Return status | INT | O | |||
| DeviceFunction (MAGTP 144B) | |||||
| 1. Function code | INT | I | ● | ● | |
| 2. Buffer used for data transfer | ARR | I | |||
| 3. Logical device number | INT | I | |||
| 4. 1st device-dependent parameter | INT | I | |||
| 5. 2nd device-dependent parameter | INT | I | |||
| DirectOpen (DOPEN 220B) | |||||
| 1. File number | INT | O | ● | ● | |
| 2. Access code | INT | I | |||
| 3. File name | STR | I | |||
| 4. File type | STR | I | |||
| DisableEscape (DESCF 71B) | |||||
| 1. Logical device number | INT | I | ● | ● | |
| DisableLocal (DLOFU 277B) | ● | ||||
| DisableRTStart (RTOFF 137B) | |||||
| 1. Address of RT description | INT | I | ● | ● |
Page 34¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| DisAssemble (DISASS 401B) | |||||
| 1. Program address | INT | I | ● | ||
| 2. The assembly instruction | STR | O | |||
| 3. Maximum number of characters | INT | I | |||
| in the assembly instruction | |||||
| DMAFunction (UDMA 333B) | |||||
| 1. Logical device number of a DMA channel | INT | I | ● | ● | ● |
| 2. Function code | INT | I | |||
| 3. Logical memory address of data or | ARR | I | |||
| LDN of device (depends on the function code) | |||||
| 4. Input parameter (function-dependent) | INT4 | I | |||
| 5. Output parameter (function-dependent) | INT4 | O | |||
| EnableEscape (EESCF 72B) | |||||
| 1. Logical device number | INT | I | ● | ● | ● |
| EnableLocal (ELOFU 276B) | |||||
| 1. Program address for local handling | INT | I | ● | ● | ● |
| EnableRTStart (RTON 136B) | |||||
| 1. Address of RT description | INT | I | ● | ● | ● |
| ErrorMessage (QERMS 65B) | |||||
| 1. Error code of message to be printed (octal) | INT | I | ● | ● | ● |
| ErrorReturn (MACROE 400B) | |||||
| ExactDelayStart (DSET 126B) | |||||
| 1. Address of RT description | INT | I | ● | ● | ● |
| 2. Number of basic time intervals before start | INT | I | |||
| ExactInterval (DINTV 130B) | |||||
| 1. Address of RT description | INT | I | ● | ● | ● |
| 2. Period between executions in basic time units | INT | I | |||
| ExactStartup (DABST 127B) | |||||
| 1. Address of RT description | INT | I | ● | ● | ● |
| 2. Startup time | INT | I | |||
| ExecuteCommand (UECOM 317B) | |||||
| 1. Command with parameters | STR | I | ● |
Page 35¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| ExecutionInfo (RSIO 143B) 1. Execution mode 2. Command input device LDN 3. Command output device LDN 4. Directory and user indexes of the program's owner |
INT INT INT INT |
0 0 0 0 |
● | ● | ● |
| ExitFromProgram (LEAVE OB) | ● | ● | |||
| ExitFromSegment (MEXIT 133B) 1. Segment numbers |
INT | I | ● | ● | |
| ExitRTProgram (RTEXT 134B) | ● | ● | |||
| ExpandFile (EXPFl 231B) 1. File name 2. Number of additional pages |
STR INT4 |
I I |
● | ● | ● |
| FileAsSegment (FSCNT 412B) 1. File number 2. Logical segment number 3. Access type (special codes) 4. Logical segment number selected if you specify zero for parameter number two |
INT INT INT INT |
I I I 0 |
● | ● | |
| FileNotAsSegment (FSDCNT 413B) 1. File number 2. Segment number |
INT INT |
I I |
● | ||
| FileSystemFunction (FSMTY 327B) 1. Function code 2. File number 3. Function-dependent parameter 4. Function-dependent parameter 5. Function-dependent parameter 6. Function-dependent parameter |
INT INT INT 0 0 0 |
I I I |
● | ● | ● |
| FixContiguous (FIXC 160B) 1. Segment number to be fixed 2. First physical page number 3. Return status |
INT INT INT |
I I 0 |
● | ● | |
| FixInMemory (FIXMEM 410B) 1. Type of fixing 2. Start address in your domain 3. Length in bytes 4. Physical memory address in ND-100 |
INT INT INT INT |
I I I I |
● | ||
| FixIOArea (IOFIX 404B) 1. Start address in the domain 2. Number of bytes to fix |
INT INT |
I I |
● |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 36¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| FixScattered (FIX 115B) | |||||
| 1. Segment number to be fixed | INT | I | ● | ● | |
| ForceRelease (PRLS 125B) | |||||
| 1. Logical device number | INT | I | ● | ● | |
| 2. Input or output flag | INT | I | |||
| ForceReserve (PRSRV 124B) | |||||
| 1. Logical device number | INT | I | ● | ● | |
| 2. Input or output flag | INT | I | |||
| 3. Address of RT description of program to reserve the device | INT | I | |||
| 4. Return status (dummy on ND-500) | INT | O | |||
| ForceTrap (PRT 435B) | |||||
| 1. Process number | INT | I | ● | ||
| 2. Reason code | INT | I | |||
| FullFileName (DEABF 256B) | |||||
| 1. Abbreviated file name | STR | I | ● | ● | ● |
| 2. Full file name | STR | O | |||
| 3. Default file type (dummy ND-500) | STR | I | |||
| GetActiveSegment (GASGM 421B) | |||||
| 1. 2048-byte buffer containing pointers to segment names | ARR | O | ● | ||
| GetAddressArea (GBSIZ 222B) | |||||
| 1. Background segment size | INT | O | ● | ||
| GetAllFileIndexes (GUIOI 217B) | |||||
| 1. File number | INT | I | ● | ● | ● |
| 2. Directory index | INT | O | |||
| 3. User index | INT | O | |||
| 4. Object index | INT | O | |||
| 5. Remote flag | INT | O | |||
| 6. Remote system identification | STR | O | |||
| GetBasicTime (TIME 11B) | |||||
| 1. Internal time in basic units | INT4 | O | ● | ● | ● |
| GetBytesInFile (RMAX 62B) | |||||
| 1. File number | INT | I | ● | ● | ● |
| 2. Number of bytes in the file | INT4 | O | |||
| GetCurrentTime (CLOCK 113B) | |||||
| 1. Time and date (7 elements) | ARR | O | ● | ● | ● |
| GetDefaultDir (FDFDI 250B) | |||||
| 1. User name | STR | I | ● | ● | ● |
| 2. Directory index | INT | O | |||
| 3. User index in the directory | INT | O |
Page 37¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
NAME, SHORT NAME, NUMBER, AND PARAMETERS¶
| TYPE | I/O | ERR | 100 | 500 | |
|---|---|---|---|---|---|
| GetDeviceType (GDEVT 263B) 1. Logical device number 2. Input or output flag 3. Device type 4. Device information | INT INT INT INT4 | I I O O | • | • | • |
| GetDirEntry (GDIEN 244B) 1. Directory index 2. Directory entry, 42 bytes 3. Flag for spare track allocation 4. Remote flag 5. Remote system identification | INT ARR INT INT STR | I O O I I | • | • | • |
| GetDirNameIndex (FDINA 243B) 1. Directory name 2. Directory index 3. Name index | STR INT INT | I O O | • | • | • |
| GetDirUserIndexes (MUIDI 213B) 1. Directory name and user name or user name 2. Directory index 3. User index | STR INT INT | I O O | • | • | • |
| GetErrorDevice (GERDV 254B) 1. LDN of error device 2. RT description address of the reserving RT program | INT INT | O O | • | • | |
| GetErrorInfo (RERRP 207B) 1. Error information (12 bytes) 2. Return status | ARR INT | O O | • | ||
| GetErrorMessage (GETXM 334B) 1. Error code of message 2. Error message text (128 bytes) | INT STR | I O | • | • | • |
| GetEscLocalChars (MGDAE 230B) 1. Logical device number 2. Local character 3. Escape character | INT INT INT | I O O | • | • | • |
| GetFileIndexes (FOBJN 274B) 1. File name 2. File type (dummy ND-100) 3. Directory index 4. User index 5. Object index 6. Object index of the next file version | STR STR INT INT INT INT | I I O O O O | • | • | • |
Page 38¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| GetFileName (MGFIL 273B) | • | • | • | ||
| 1. Directory index | INT | I | |||
| 2. User index | INT | I | |||
| 3. Object index | INT | I | |||
| 4. File name | STR | I | |||
| 5. Remote flag | INT | I | |||
| 6. Remote system identification | STR | I | |||
| GetInputFlags (RFLAG 402B) | |||||
| 1. Flag values as 32-bit integer | INT | 0 | |||
| GetInRegisters (DIW 165B) | • | • | • | ||
| 1. Number of registers | INT | I | |||
| 2. Buffer with logical unit | ARR | I | |||
| 3. Data buffer | ARR | I | |||
| GetLastByte (LASTC 26B) | • | • | |||
| 1. LDN for a terminal | INT | I | |||
| 2. Last character typed on the terminal | INT | 0 | |||
| GetNameEntry (GNAEN 245B) | • | • | |||
| 1. Name index of a device | INT | I | |||
| 2. Name table entry, 28 bytes | ARR | 0 | |||
| GetND500Param (5PAGET 437B) | |||||
| 1. The five user parameters, | ARR | 0 | |||
| 5*16 bit (ND-100) | |||||
| 5*32 bit (ND-500) | |||||
| GetObjectEntry (DROBJ 215B) | • | • | • | ||
| 1. Object entry, 64 bytes | ARR | 0 | |||
| 2. Directory index | INT | I | |||
| 3. User index | INT | I | |||
| 4. Object index | INT | I | |||
| 5. Remote flag | INT | I | |||
| 6. Remote system identification | STR | I | |||
| GetOwnProcessInfo (GPRNAME 427B) | • | • | |||
| 1. Process name, 34 bytes | STR | 0 | |||
| 2. Process number and magic number | INT | 0 | |||
| GetOwnRTAddress (GETRT 308) | • | • | |||
| 1. RT description address | INT | 0 | |||
| GetProcessNo (GPRNUM 426B) | • | ||||
| 1. Process name | STR | I | |||
| 2. Process number and magic number | INT | 0 | |||
| GetRTAddress (GRTDA 151B) | • | • | |||
| 1. RT-program name | STR | I | |||
| 2. RT-program address | INT | 0 |
Page 39¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| GetRTDescr (RTDSC 27B) 1. RT description address 2. RT description, 52 bytes 3. Number of devices connected to the RT program through StartOnInterrupt |
INT ARR INT |
I 0 0 |
• | • | |
| GetRTName (GRTNA 152B) 1. RT description address 2. RT program name |
INT STR |
I 0 |
• | • | |
| GetScratchSegment (GSWSP 422B) 1. Segment size in bytes 2. Logical segment number 3. Logical segment number selected if you specify zero for parameter number two |
INT INT INT |
I I 0 |
• | • | |
| GetSegmentEntry (RSEGM 538B) 1. Segment number 2. Segment entry, 10 bytes |
INT ARR |
I 0 |
• | • | |
| GetSegmentNo (GSGNO 322B) 1. Segment name 2. Segment number |
STR INT |
I 0 |
• | • | |
| GetSpoolingEntry (RSPQE 55B) 1. LDN of printer 2. Spooling entry, 272 bytes |
INT ARR |
I 0 |
• | • | |
| GetStartByte (REABT 75B) 1. File number 2. Number of next byte to access |
INT INT4 |
I 0 |
• | • | |
| GetSystemInfo (CPUST 262B) 1. Number (must be zero) 2. System information, 24 bytes |
INT ARR |
I 0 |
• | • | |
| GetTerminalMode (GTMOD 306B) 1. Logical device number 2. Terminal mode |
INT INT |
I 0 |
• | • | |
| GetTerminalType (MGTTY 168B) 1. Logical device number 2. Terminal type |
INT INT |
I 0 |
• | • | |
| GetTimeUsed (TUSED 114B) 1. CPU time used |
INT4 | 0 | • | • | |
| GetTrapReason (GERRCOD 505B) 1. Error code |
INT | 0 | • | • |
Page 40¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| GetUserEntry (RUSER 44B) | |||||
| 1. User name | STR | I | • | • | |
| 2. User entry, 64 bytes | ARR | O | |||
| GetUserName (GUSNA 214B) | |||||
| 1. User name | STR | O | • | • | |
| 2. Directory index | INT | I | • | • | |
| 3. User index | INT | I | • | • | |
| 4. Remote flag | INT | I | |||
| 5. Remote system identification (dummy on ND-500) |
STR | I | |||
| GetUserParam (PAGET 57B) | |||||
| 1. The five user parameters, 516 bit (ND-100) 532 bit (ND-500) |
ARR | O | • | • | |
| GetUserRegisters (GRBLK 420B) | |||||
| 1. Contents of the registers 154 bytes |
ARR | O | • | ||
| GraphicFunction (GRAPHI 155B) | |||||
| 1. X-coordinate of new line | INT | I | • | • | |
| 2. Y-coordinate of new line | INT | I | • | • | |
| 3. Integer code | INT | I | • | • | |
| 4. Logical device number | INT | I | |||
| 5. Function code | INT | I | |||
| 6. Output parameter for the PLOT function | INT | O | |||
| HDLCfunction (MHDLC 201B) | |||||
| 1. Function code | INT | I | • | • | |
| 2. Logical device number | INT | I | • | • | |
| 3. Driver control-block address | INT | I | |||
| 4. Size of used part of driver control block | INT | I/O | |||
| 5. (Depends on function code) | I/O | ||||
| In4x2Bytes (B4INW 63B) | |||||
| 1. Logical device number | INT | I | • | • | |
| 2. Number of bytes read | INT | O | • | • | |
| 3. The string of bytes read | STR | O | |||
| In8AndFlag (T8INB 310B) | |||||
| 1. Logical device number | INT | I | • | • | |
| 2. Number of bytes read | INT | O | • | • | |
| 3. The string of bytes read | STR | O |
Page 41¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| In8Bytes (B8INB 23B) 1. Logical device number 2. Number of bytes or words read 3. The string of bytes read |
INT INT STR |
I O O |
• | • | • |
| InBufferSpace (ISIZE 66B) 1. Logical device number 2. Number of bytes in the buffer |
INT INT |
I O |
• | • | • |
| InBufferState (IBRSIZ 313B) 1. Logical device number 2. Number of bytes in buffer 3. Number of bytes before break |
INT INT INT |
I O O |
• | • | • |
| InByte (INBT 18) 1. Logical device number 2. The byte read |
INT INT |
I O |
• | • | • |
| InputString (DVINST 503B) 1. Logical device number 2. Max. number of bytes to be read 3. Number of bytes read 4. Buffer to receive input 5. Break strategy 6. Echo strategy 7. Break table, bits 0:31 8. Break table, bits 32:63 9. Break table, bits 64:95 10. Break table, bits 96:127 11. Echo table, bits 0:31 12. Echo table, bits 32:63 13. Echo table, bits 64:95 14. Echo table, bits 96:127 |
INT INT INT ARR INT INT INT INT INT INT INT INT INT INT |
I I O I I I I I I I I I I I |
• | • | |
| InString (INSTR 161B) 1. Logical device number 2. String of characters 3. Max. number of bytes to be read 4. Terminating character 5. Return status |
INT STR INT INT INT |
I O I I O |
• | • | |
| InUpTo8Bytes (M8INB 21B) 1. Logical device number 2. Number of bytes read 3. The bytes read |
INT INT STR |
I O O |
• | • | • |
| IOInstruction (EXIOX 31B) 1. Register contents before exec. 2. Device register address 3. Register contents after exec. |
INT INT INT |
I I O |
• | • |
Page 42¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| JumpToSegment (MCALL 132B) | |||||
| 1. Routine address | INT | I | • | ||
| 2. New segments | INT | I | |||
| LAMUfunction (MLAMU 315B) | |||||
| 1. Function code | INT | I | • | • | |
| 2. Function-dependent parameter | INT | I/O | |||
| 3. Function-dependent parameter | INT | I/O | |||
| 4. Function-dependent parameter | INT | I/O | |||
| LogInStart (MLOGI 326B) | |||||
| 1. LDN of a terminal | INT | I | • | • | |
| 2. User name | STR | I | |||
| 3. Password | STR | I | |||
| 4. Project password | STR | I | |||
| 5. Subsystem to start | STR | I | |||
| 6. The 5 user parameters, | ARR | I | |||
| 5*16 bit (ND-100) | |||||
| 5*32 bit (ND-500) | |||||
| 7. Return status | INT | O | |||
| MaxPagesInMemory (MXPISG 417B) | |||||
| 1. Logical segment number | INT | I | • | • | |
| 2. Segment type | INT | I | |||
| 3. Number of pages | INT | I | |||
| MemoryAllocation (FIXC5 618B) | |||||
| 1. Function code (4, 5, or 6) | INT | I | • | • | |
| 2. Function-dependent parameter | INT | I | |||
| 3. Function-dependent parameter | INT | I | |||
| 4. Function-dependent parameter | INT | I | |||
| 5. Function-dependent parameter | INT | 0 | |||
| 6. Function-dependent parameter | INT | 0 | |||
| MemoryUnFix (UNFIXM 411B) | |||||
| 1. Address | INT | I | • | ||
| ND500TimeOut (5TMOUT 514B) | |||||
| 1. Number of time units to suspend | INT | I | • | ||
| 2. Type of time units | INT | I | |||
| 3. Restart cause | INT | O | |||
| NewFileVersion (CRALN 253B) | |||||
| 1. File name including version no. | STR | I | • | • | • |
| 2. Start address of 1st new vers. | INT4 | I | |||
| 3. File size in pages | INT4 | I |
Page 43¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| NewUser (SUSCN 241B) | |||||
| 1. New user name | STR | I | • | • | |
| 2. Password | INT | I | |||
| 3. Project password | STR | I | |||
| 4. Return status | INT | O | |||
| NoInterruptStart (DSCNT 107B) | |||||
| 1. Address of RT description | INT | I | • | ||
| NormalPageTable (ALTOFF 34B) | • | ||||
| NoWaitSwitch (NOWT 36B) | |||||
| 1. LDN of a character device | INT | I | • | • | |
| 2. Input or output flag | INT | I | |||
| 3. No Wait flag | INT | I | |||
| OctobusFunction (OCTO 324B) | |||||
| 1. Function number | INT | I | • | • | |
| 2. Logical device number | INT | I | |||
| 3. Function dependent parameter | INT | O | |||
| OffEscLocalFunction (ELOFF 303B) | • | • | |||
| OldUser (RUSCN 242B) | • | • | |||
| OnEscLocalFunction (ELON 302B) | • | • | |||
| OpenFile (OPEN 50B) | |||||
| 1. File number | INT | I/O | • | • | |
| 2. Access code | INT | I | |||
| 3. File name | STR | I | |||
| 4. Default file type | STR | I | |||
| OpenFileInfo (FOPFN 257B) | |||||
| 1. File name | STR | I | • | • | |
| 2. File type | STR | I | |||
| 3. File number | INT | O | |||
| 4. Access code | INT | O | |||
| 5. LDN of peripheral device | INT | O | |||
| Out8Bytes (8BOUT 24B) | |||||
| 1. Logical device number | INT | I | • | • | |
| 2. String of bytes to be written | STR | I | |||
| OutBufferSpace (OSIZE 67B) | |||||
| 1. Logical device number | INT | I | • | • | |
| 2. No. of bytes written before program must wait | INT | O | |||
| OutByte (OUTBT 2B) | |||||
| 1. Logical device number | INT | I | • | • | |
| 2. The byte to write | INT | I |
Page 44¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| OutMessage (MSG 328B) 1. The string to be written | STR | I | ● | ||
| OutNumber (IOUT 35B) 1. Octal or decimal output 2. Number to be written |
INT INT |
I I |
● | ● | |
| OutputString (DVOUTS 504B) 1. LDN or open file number 2. Number of bytes to write 3. String to be written |
INT INT ARR |
I I I |
● | ● | |
| OutString (OUTST 162B) 1. Logical device number 2. Character string to be written 3. Number of characters to write 4. Return status |
INT STR INT INT |
I I I O |
● | ● | |
| OutUpTo8Bytes (M8OUT 22B) 1. Logical device number 2. The characters (up to 8) to be written |
INT STR |
I I |
● | ● | ● |
| PIOCfunction (PIOCM 255B) 1. LDN of module to access 2. Slot no. in PIOC kick channel 3. Function number 4. 2-byte message 5. Segment number to be loaded 6. Page number to start loading at 7. Status code (octal) |
INT INT INT STR INT INT INT |
I I I I I I O |
● | ● | |
| PrivInstruction (IPRIV 146B) 1. Machine instruction (octal no.) |
INT | I | ● | ||
| ReadADChannel (AIRDW 37B) | ● | ● | ● | ||
| ReadBlock (RPAGE 7B) 1. File number 2. Block number 3. Array for data returned (data destination) |
INT INT ARR |
I I O |
● | ● | |
| ReadDiskPage (RDPAG 270B) 1. Directory index 2. Buffer to receive pages 3. Address of the first of the destination pages on the disk 4. Number of pages to transfer |
INT ARR INT4 INT |
I I I I |
● | ● | ● |
Page 45¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| ReadFromFile (RFILE 117B) | |||||
| 1. File number | INT | I | ● | ● | |
| 2. Wait flag | INT | I | |||
| 3. Transferred data | ARR | O | |||
| 4. Block number where reading should start | INT | I | |||
| 5. Number of bytes to be read | INT4 | I | |||
| ReadObjectEntry (ROBJE 41B) | ● | ● | ● | ||
| 1. File number | INT | I | |||
| 2. Object entry, 64 bytes | ARR | O | |||
| ReadScratchFile (RDISK 5B) | ● | ● | |||
| 1. Block number where reading should start | INT | I | |||
| 2. Transferred data | ARR | O | |||
| ReadSystemRecord (RSREC 340B) | ● | ● | ● | ||
| 1. Record type code | INT | I | |||
| 2. RT-description address or segment number | INT | I | |||
| 3. Address of system-record buffer | INT | I | |||
| 4. Format (ND-500 only) | INT | I | |||
| 5. Dependent on parameter 1 | INT | O | |||
| ReentrantSegment (SREEN 212B) | ● | ||||
| 1. Segment number to attach | INT | I | |||
| ReleaseDir (RLDIR 247B) | ● | ● | ● | ||
| 1. Directory index | INT | I | |||
| ReleaseResource (RELES 123B) | ● | ● | |||
| 1. Logical device number | INT | I | |||
| 2. Input or output flag | INT | I | |||
| RenameFile (MRNFI 232B) | ● | ● | ● | ||
| 1. Old file name | STR | I | |||
| 2. New file name and type | STR | I | |||
| ReservationInfo (WHDEV 140B) | ● | ● | |||
| 1. Logical device number | INT | I | |||
| 2. Input or output flag | INT | I | |||
| 3. RT description address of reserving RT program | INT | O | |||
| ReserveDir (REDIR 246B) | ● | ● | ● | ||
| 1. Directory index | INT | I |
Page 46¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| ReserveResource (RESRV 122B) | |||||
| 1. Logical device number | INT | I | |||
| 2. Input or output flag | INT | I | |||
| 3. Wait flag | INT | I | |||
| 4. Return status (only used if wait flag is 1) | INT | 0 | |||
| SaveNDSOOSegment (WSEGN 416B) | |||||
| 1. Logical segment number | INT | I | |||
| 2. First logical page in segment | INT | I | |||
| 3. Last logical page in segment | INT | I | |||
| SaveSegment (WSEG 164B) | |||||
| 1. Segment number | INT | I | |||
| ScratchOpen (SCROP 235B) | |||||
| 1. File number | INT | 0 | |||
| 2. Access code | INT | I | |||
| 3. File name | STR | I | |||
| 4. Default file type | STR | I | |||
| SegmentFunction (SGMTY 341B) | |||||
| 1. Function code | INT | I | |||
| 2. Start/return address | INT | I | |||
| 3. New segment 1 | INT | I | |||
| 4. New segment 2 | INT | I | |||
| 5. New page-index tables | INT | I | |||
| 6. Function dependent parameter | INT | 0 | |||
| SegmentOverlay (SPLRE 323B) | |||||
| 1. Segment number | INT | I | |||
| 2. Page number of first page in address area 1 | INT | I | |||
| 3. Number of pages in address area 1 | INT | I | |||
| 4. Page number of first page in address area 2 | INT | I | |||
| 5. Number of pages in address area 2 | INT | I | |||
| 6. Clear flag | INT | I | |||
| SegmentToPageTable (ENTSG 157B) | |||||
| 1. Segment number where routine is | INT | I | |||
| 2. Page table to use for segment | INT | I | |||
| 3. Interrupt level for direct task | INT | I | |||
| 4. Start address of the routine | INT | I | |||
| SetBlockSize (SETBS 76B) | |||||
| 1. File number | INT | I | |||
| 2. Block size in bytes | INT4 | I |
Page 47¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| SetBreak (BRKM 4B) | ● | ● | |||
| 1. Logical device number | INT | I | |||
| 2. Break strategy | INT | I | |||
| 3. User defined break table, 128 bits | ARR | I | |||
| 4. Maximum number of characters before break | INT | I | |||
| SetClock (UPDAT 111B) | ● | ● | |||
| 1. Minutes | INT | I | |||
| 2. Hours | INT | I | |||
| 3. Days | INT | I | |||
| 4. Months | INT | I | |||
| 5. Years | INT | I | |||
| SetCommandBuffer (SETCM 128) | ● | ● | |||
| 1. String to be transferred to the command buffer | STR | I | |||
| SetEcho (ECHOM 3B) | ● | ● | |||
| 1. LDN of terminal | INT | I | |||
| 2. Echo strategy | INT | I | |||
| 3. User defined echo table, 256 bits | ARR | I | |||
| SetEscapeHandling (EUSEL 300B) | ● | ● | |||
| 1. Contents of start of escape handling routine | INT | I | |||
| SetEscLocalChars (MSDAE 227B) | ● | ● | |||
| 1. Logical device number | INT | I | |||
| 2. Local character | INT | I | |||
| 3. Escape character | INT | I | |||
| SetFileAccess (SFACC 237B) | ● | ● | |||
| 1. File name | STR | I | |||
| 2. Public access | STR | I | |||
| 3. Friend access | STR | I | |||
| 4. Own access | STR | I | |||
| SetMaxBytes (SMAX 73B) | ● | ● | |||
| 1. File number | INT | I | |||
| 2. Maximum file size in bytes | INT4 | I | |||
| SetND500Param (5PASET 436B) | ● | ||||
| 1. The five user parameters, 5*16 bit (ND-100) | ARR | I | |||
| 5*32 bit (ND-500) |
Page 48¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| SetObjectEntry (DWOBJ 216B) | I | ••• | |||
| 1. Object entry, 64 bytes | ARR | ||||
| 2. Directory index | INT | I | |||
| 3. User index | INT | I | |||
| 4. Object index | INT | I | |||
| 5. Remote flag | INT | I | |||
| 6. Remote system identification | STR | I | |||
| SetOutputFlags (WFLAG 403B) | |||||
| 1. Flag values | INT | I | • | ||
| SetPeripheralName (SPEFI 234B) | ••• | ||||
| 1. File name for the peripheral | STR | I | |||
| 2. Logical device number | INT | I | |||
| SetPermanentOpen (SPERD 236B) | ••• | ||||
| 1. File number | INT | I | |||
| SetProcessName (SPRNAM 425B) | • | ||||
| 1. Process name | STR | I | |||
| SetProcessPriority (SPRIO 507B) | • | ||||
| 1. Priority | INT | I | |||
| SetRemoteAccess (SRLMO 316B) | ••• | ||||
| 1. Remote mode flag | INT | I | |||
| SetRTPriority (PRIOR 110B) | •• | ||||
| 1. Address of RT description | INT | I | |||
| 2. Priority | INT | I | |||
| 3. The previous priority | INT | O | |||
| SetStartBlock (SETBL 77B) | ••• | ||||
| 1. File number | INT | I | |||
| 2. Block number of next block to be read or written | INT | I | |||
| SetStartByte (SETBT 74B) | ••• | ||||
| 1. File number | INT | I | |||
| 2. Number of next byte to be read or written | INT4 | I | |||
| SetTemporaryFile (STEFI 233B) | ••• | ||||
| 1. File name | STR | I | |||
| SetTerminalName (STRFI 275B) | ••• | ||||
| 1. File name | STR | I | |||
| SetTerminalType (MSTTY 17B) | ••• | ||||
| 1. LDN of a terminal | INT | I | |||
| 2. Terminal type | INT | I |
Page 49¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| SetUserParam (PASET 568B) | ARR | I | • | ||
| 1. The five user parameters, | |||||
| 5*16 bit (NO-100) | |||||
| 5*32 bit (NO-500) | |||||
| StartOnInterrupt (CONCT 106B) | • | • | |||
| 1. Address of RT description | INT | I | |||
| 2. Logical device number | INT | I | |||
| StartProcess (STARTP 500B) | • | • | |||
| 1. Process number | INT | I | |||
| StartRTProgram (RT 100B) | • | • | |||
| 1. Address of RT description | INT | I | |||
| StartupInterval (INTV 103B) | • | • | |||
| 1. Address of RT description | INT | I | |||
| 2. Number of time units | INT | I | |||
| 3. Type of time units | INT | I | |||
| StartupTime (ABSET 102B) | • | • | |||
| 1. Address of RT description | INT | I | |||
| 2. Seconds | INT | I | |||
| 3. Minutes | INT | I | |||
| 4. Hours | INT | I | |||
| StopEscapeHandling (DUSEL 301B) | • | • | |||
| StopProcess (STOPPR 501B) | • | ||||
| StopRTProgram (ABORT 105B) | • | • | |||
| 1. Address of RT description | INT | I | |||
| SuspendProgram (HOLD 104B) | • | • | |||
| 1. Number of time units | INT | I | |||
| 2. Type of time units | INT | I | |||
| SwitchProcess (SWITCHP 502B) | • | ||||
| 1. Number of process to start | INT | I | |||
| SwitchUserBreak (USTBRK 405B) | • | ||||
| 1. On/off flag | INT | I | |||
| 2. Program address where escape handling routine starts | INT | I | |||
| TerminalFunction (IOMTY 336B) | • | • | |||
| 1. Function code | INT | I | |||
| 2. Length of function parameter array | INT | I | |||
| 3. Function parameter array | ARR | I |
Page 50¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| TerminalLineInfo (TREPP 332B) | |||||
| 1. Function code | INT | I | • | • | |
| 2. LDN of a terminal | INT | I | |||
| 3. Terminal line information | INT | O | |||
| TerminalMode (TERMO 52B) | • | • | |||
| 1. LDN of a terminal | INT | I | |||
| 2. Terminal mode | INT | I | |||
| TerminalNoWait (TNOWAI 307B) | • | • | |||
| 1. LDN of a character device | INT | I | |||
| 2. Input or output flag | INT | I | |||
| 3. No wait flag | INT | I | |||
| 4. Return status (dummy ND-500) | INT | O | |||
| TerminalStatus (TERST 3308B) | • | • | |||
| 1. LDN of a terminal | INT | I | • | ||
| 2. Information about the terminal | ARR | O | |||
| 44 bytes | |||||
| TerminationHandling (EDTRM 206B) | • | ||||
| 1. On or off flag | INT | I | |||
| 2. Circumstances for termination | INT | I | |||
| handling | |||||
| TimeOut (TMOUT 267B) | • | • | |||
| 1. Number of time units | INT | I | |||
| 2. Type of time unit | INT | I | |||
| 3. Restart cause | INT | O | |||
| ToErrorDevice (ERMON 142B) | • | • | |||
| 1. Error number | INT | I | |||
| 2. Suberror number | INT | I | |||
| TransferData (EXABS 335B) | • | ||||
| 1. Logical device number | INT | I | |||
| 2. Function code | INT | I | |||
| 3. Physical memory address | INT4 | I | |||
| 4. Block address | INT4 | I | |||
| 5. Number of blocks to transfer | INT | I | |||
| 6. Error code | INT | O | |||
| TranslateAddress (ADR100 430B) | • | ||||
| 1. ND-500 logical address | INT | I | |||
| 2. ND-100 physical word address | INT | O | |||
| UnFixSegment (UNFIX 116B) | • | • | |||
| 1. Segment number to be released | INT | I | |||
| UserDef0 (USO 170B) | |||||
| UserDef1 (US1 171B) |
Page 51¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| NAME, SHORT NAME, NUMBER, AND PARAMETERS | TYPE | I/O | ERR | 100 | 500 |
|---|---|---|---|---|---|
| UserDef2 (US2 172B) | |||||
| UserDef3 (US3 173B) | |||||
| UserDef4 (US4 174B) | |||||
| UserDef5 (US5 175B) | |||||
| UserDef6 (US6 176B) | |||||
| UserDef7 (US7 177B) | |||||
| WaitforRestart (RTWT 135B) | • | • | |||
| WarningMessage (ERMSG 64B) | INT | I | • | • | • |
| 1. Error code of message to be printed (octal) | |||||
| WriteBlock (WPAGE 10B) | • | • | • | ||
| 1. File number | INT | I | |||
| 2. Block number | INT | I | |||
| 3. Data to be written | ARR | I | |||
| WriteDirEntry (WDIEN 311B) | • | • | • | ||
| 1. Directory index | INT | I | |||
| 2. Directory entry, 48 bytes | ARR | I | |||
| WriteDiskPage (WDPAG 271B) | • | • | • | ||
| 1. Directory index | INT | I | |||
| 2. Address of buffer containing pages to be written | ARR | I | |||
| 3. Address of the first of the destination pages on the disk | INT4 | I | |||
| 4. Number of pages to transfer | INT | I | |||
| WriteScratchFile (WDISK 68B) | • | • | |||
| 1. Block number to start writing from | INT | I | |||
| 2. Data to be transferred | ARR | I | |||
| WriteToFile (WFILE 120B) | • | • | • | ||
| 1. File number | INT | I | |||
| 2. Wait flag | INT | I | |||
| 3. Data to be transferred | ARR | I | |||
| 4. Block number to start writing from | INT | I | |||
| 5. Number of bytes to be written | INT4 | I | |||
| XMSGFunction (XMSG 200B) | • | • |
Page 52¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
2.3 Commonly-Used Monitor Calls¶
This section lists some commonly-used monitor calls. The numbers are the octal monitor call numbers.
| Name | Mnemonic | Code | Description |
|---|---|---|---|
| CloseFile | CLOSE | 43B | Close file after access |
| CreateFile | CRALF | 221B | Create or allocate a file |
| DeleteFile | MDLFI | 54B | Delete a file |
| ErrorMessage | QERMS | 65B | Output error message and stop |
| ExecuteCommand | UECOM | 317B | Execute a SINTRAN III command |
| ExitFromProgram | LEAVE | 0B | Terminate program |
| GetCurrentTime | CLOCK | 113B | Get the current time |
| InByte | INBT | 1B | Read a byte from a character device |
| InString | INSTR | 161B | Read char.string from peripheral device |
| OpenFile | OPEN | 50B | Open a file |
| OutByte | OUTBT | 2B | Write one byte to a character device |
| OutString | OUTST | 162B | Write char. string to peripheral device |
| ReadFromFile | RFILE | 117B | Read bytes from a file |
| SuspendProgram | HOLD | 104B | Suspend execution for a given time |
| WarningMessage | ERMSG | 64B | Output error message |
| WriteToFile | WFILE | 120B | Write random bytes to file |
Page 53¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.4 File Operations¶
This section lists some common monitor calls for simple file operations. The advanced file system operations are not included.
| Operation | Code | Description |
|---|---|---|
| AppendSpooling | APSPF | 240B Print a file |
| AwaitFileTransfer | WAITF | 121B Check data transfer |
| AwaitTransfer | MWAITF | 431B Check data transfer |
| BackupClose | BCLOS | 252B Close file for the BACKUP-SYSTEM |
| CloseFile | CLOSE | 43B Close file after access |
| CreateFile | CRALF | 221B Create or allocate a file |
| DeleteFile | MDLFI | 54B Delete a file |
| DeletePage | DELPG | 272B Delete page(s) from a file |
| DirectOpen | DOPEN | 220B Open file with special access rights |
| ExpandFile | EXPFI | 231B Increase the file size |
| FullFileName | DEABF | 256B Gets file name in full |
| GetBytesInFile | RMAX | 62B Get the number of bytes in a file |
| GetStartByte | REABT | 75B Get the next byte to access in a file |
| GetUserName | GUSNA | 214B Get current user name |
| In8AndFlag | T8IN8 | 310B Read 8 bytes with break checking |
| In8Bytes | B8INB | 23B Read 8 bytes |
| InByte | INBT | 1B Read one byte from a device or a file |
| InString | INSTR | 161B Read a string from a device |
| NewFileVersion | CRALN | 253B Create new file version |
| NewUser | SUSCN | 241B Switch user name you are logged in as |
| OldUser | RUSCN | 242B Reset old user name |
| OpenFile | OPEN | 50B Open a file |
| Out8Bytes | B8OUT | 24B Write 8 bytes |
| OutByte | OUTBT | 2B Write one byte to a device or a file |
| OutMessage | MSG | 32B Write a message to a terminal |
| OutNumber | IOUT | 35B Write a number to a terminal |
| OutputString | DVOUT | 504B Write a string to a file |
| OutString | OUST | 162B Write to a peripheral file |
| OutUpTo8Bytes | M8OUT | 22B Write up to 8 characters |
| ReadBlock | RPAGE | 7B Read random blocks from a file |
| ReadDiskPage | RDPAG | 270B Read a disk page |
| ReadFromFile | RFILE | 117B Read randomly from a file |
| ReadScratchfile | RDISK | 5B Read randomly from the scratch file |
| ReleaseResource | RELES | 123B Release a device or a file |
| Renamefile | MRNFI | 232B Rename a file |
| ReserveResource | RESRV | 122B Reserve a file or device |
| ScratchOpen | SCROP | 235B Open a file as a scratch file |
| SetBlockSize | SETB8 | 76B Set block size of file |
| SetFileAccess | SFACC | 237B Set file access |
| SetMaxBytes | SMAX | 73B Set the size of an opened file |
| SetPermanentOpen | SPERD | 236B Set a file permanently open |
| SetStartBlock | SETBL | 77B Set start block in a file |
| SetStartByte | SETBT | 74B Set start byte of a file |
| SetTemporaryFile | STEFI | 233B Set file as temporary |
| WriteBlock | WPAGE | 108 Write random blocks to a file |
| WriteDiskPage | WDPAG | 271B Write to a disk page |
| WriteScratchfile | WDISK | 6B Write randomly to the scratch file |
| WriteToFile | WFILE | 120B Write randomly to a file |
Page 54¶
2.5 Input and Output Monitor Calls¶
This section lists the monitor calls for input and output to files, printers, and terminals.
| Command | Code | Size | Description |
|---|---|---|---|
| AppendSpooling | APSPF | 240B | Print a file |
| AwaitFileTransfer | WAITF | 121B | Check data transfer |
| AwaiTransfer | MWAITF | 431B | Check data transfer |
| BatchModeEcho | MBECH | 325B | Set batch and mode job echo |
| ClearInBuffer | CIBUF | 13B | Clear a device's input buffer |
| ClearOutBuffer | COBUF | 14B | Clear a device's output buffer |
| Closefile | CLOSE | 43B | Close file after access |
| CloseSpoolingFile | SPCLO | 40B | Close and print a file |
| CopyPage | COPAG | 251B | Copy page for the BACKUP-SYSTEM |
| DataTransfer | ABSTR | 131B | Data to and from mass storage |
| DisableEscape | DESCF | 71B | Disable the ESCAPE key |
| EnableEscape | EESCF | 72B | Enable the ESCAPE key |
| ErrorMessage | QERMS | 65B | Output error message and stop |
| FixIOArea | IOFIX | 404B | Fix an area for input and output |
| GetLastByte | LASTC | 26B | Get last byte typed on a terminal |
| GetSpoolingEntry | RSQPE | 55B | Get spooling queue information |
| GetStartByte | REABT | 75B | Get the next byte to access in a file |
| GetTerminalMode | GTMOD | 306B | Get terminal mode |
| GraphicFunction | GRAPHIC | 155B | Execute graphic function |
| In4x2Btyes | I4WIN | 63B | Read 4 words from a device |
| In8AndFlag | T81NB | 310B | Read 8 bytes with break checking |
| In8Bytes | 8BINB | 23B | Read 8 bytes |
| InBufferSpace | ISIZE | 66B | Get number of bytes in input buffer |
| InBufferState | IBRSIZ | 313B | Get input buffer information |
| InByte | INBT | 18 | Read one byte from a device or a file |
| InString | INSTR | 161B | Read a string from a device |
| InUpTo8Btyes | M8INB | 218B | Read up to 8 bytes from a device |
| NoWaitSwitch | NOWT | 36B | Switch No Wait on and off |
| Out8Bytes | B8OUT | 24B | Write 8 bytes |
| OutBufferSpace | OSIZE | 67B | Get number of bytes in output buffer |
| OutByte | OUTBT | 2B | Write one byte to a device or a file |
| OutMessage | MSG | 32B | Write a message to a terminal |
| OutNumber | IOUT | 35B | Write a number to a terminal |
| OutputString | DVOUTS | 504B | Write a string to a file |
| OutString | OUTST | 162B | Write to a peripheral file |
| OutUpTo8Bytes | M8OUT | 22B | Write up to 8 characters |
| ReadADChannel | AIRDW | 37B | Read analog to digital channels |
| ReadBlock | RPAGE | 7B | Read random blocks from a file |
| ReadFromFile | RFILE | 117B | Read randomly from a file |
| ReadScratchFile | RDISK | 5B | Read randomly from the scratch file |
| ScratchOpen | SCROP | 235B | Open a file as a scratch file |
| SetBlockSize | SETBS | 76B | Set block size of files |
| SetBreak | BRKM | 4B | Set break characters |
| SetCommandBuffer | SETCM | 128B | Set command input buffer |
| SetEcho | ECHOM | 3B | Set echo for a terminal |
| SetEscLocalChars | MSDAE | 227B | Set escape and local characters |
| SetStartBlock | SETBL | 77B | Set start block in a file |
| SetStartByte | SETBI | 74B | Set start byte of a file |
| TerminalNoWait | TNOWAI | 307B | Switch No Wait on and off |
| ToErrorDevice | EROM | 142B | Write to the error device |
Page 55¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| Function | Code | ID | Description |
|---|---|---|---|
| TransferData | EXABS | 335B | Data to and from mass storage |
| WarningMessage | ERMSG | 64B | Output error message |
| WriteBlock | WPAGE | 10B | Write random blocks to a file |
| WriteScratchFile | WDISK | 6B | Write randomly to the scratch file |
| WriteToFile | WFILE | 120B | Write randomly to a file |
Page 56¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.6 Monitor Calls for Terminal Handling¶
This section lists the monitor calls which handle terminals. See also the monitor calls for input and output.
| Name | Code | Description |
|---|---|---|
| BatchModeEcho | MBECH | 325B Set batch and mode job echo |
| DisableEscape | DESCF | 71B Disable the ESCAPE key |
| DisableLocal | DLOFU | 277B Disable the local function |
| EnableEscape | EESCF | 72B Enable the ESCAPE key |
| EnableLocal | ELOFU | 276B Enable the local function |
| ExecutionInfo | RSIO | 143B Get execution information |
| GetErrorDevice | GERDV | 254B Find error device |
| GetLastByte | LASTC | 26B Get last byte typed on a terminal |
| GetOwnRTAddress | GETRT | 30B Get own RT description address |
| GetTerminalMode | GTMOD | 306B Get terminal mode |
| GetTerminalType | MGTTY | 16B Get the terminal type |
| In8AndFlag | T8INB | 310B Read 8 bytes with break checking |
| In8Bytes | B8INB | 23B Read 8 bytes |
| InBufferSpace | ISIZE | 66B Get number of bytes in input buffer |
| InBufferState | IBSRIZ | 313B Get information about input buffer |
| InUpTo8Bytes | M8INB | 21B Read up to 8 bytes from a device |
| Out8Bytes | B8OUT | 24B Write 8 bytes |
| SetBreak | BRKM | 4B Set break characters |
| SetCommandBuffer | SETCM | 12B Set command input buffer |
| SetEcho | ECHOM | 3B Set echo for a terminal |
| SetEscapeHandling | EUSEL | 300B User defined escape handling |
| SetScLocalChars | MSDAE | 227B Set escape and local characters |
| SetTerminalName | STRFI | 275B Set file name for terminals |
| SetTerminalType | MSTTY | 17B Set terminal type |
| StopEscapeHandling | DUSEL | 301B Stop user-defined escape handling |
| SwitchUserBreak | STBRK | 405B Control escape handling |
| TerminalLineInfo | TREPP | 332B Get terminal line information |
| TerminalMode | TERMO | 52B Set terminal mode |
| TerminalStatus | TEERST | 330B Get terminal status |
Page 57¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.7 Monitor Calls for Printer Handling¶
This section lists the monitor calls which handle printers.
| Function | Code | Hex | Description |
|---|---|---|---|
| AppendSpooling | APSPF | 240B | Print a file |
| CloseSpoolingFile | SPCLO | 40B | Close and print a file |
| GetSpoolingEntry | RSPQE | 55B | Get spooling queue information |
| SetPeripheralName | SPEFI | 234B | Set a file as peripheral |
Page 58¶
2.8 Monitor Calls for Error Handling¶
This section lists the monitor calls which relate to error handling.
| Command | Code | Description |
|---|---|---|
| ErrorMessage | QERMS | 65B |
| ErrorReturn | MACROE | 400B |
| GetErrorDevice | GERDV | 254B |
| GetErrorInfo | RERRP | 207B |
| GetErrorMessage | GETXM | 334B |
| GetND500Param | 5PAGET | 437B |
| GetTrapReason | GERRCOD | 505B |
| GetUserParam | PAGET | 57B |
| SetND500Param | 5PASET | 436B |
| SetUserParam | PASET | 56B |
| TerminationHandling | EDTRM | 206B |
| ToErrorDevice | ERMON | 142B |
| WarningMessage | ERMSG | 64B |
Page 59¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.9 FILE SYSTEM OPERATIONS¶
This section lists the monitor calls related to the file system structure. Section 2.4 describes simple file operations.
| Function | Code | Description |
|---|---|---|
| FileAsSegment | FSCNT | 412B Connect file as segment |
| FileNotAsSegment | FSDCNT | 413B Disconnect file as segment |
| FileSystemFunction | FSMTY | 327B Various file system functions |
| FullFileName | DEABF | 256B Get file name in full |
| GetAllFileIndexes | GUIO1 | 217B Get directory, user, and object index |
| GetDefaultDir | FDFDI | 250B Get the default directory |
| GetDirEntry | GDIEN | 244B Get directory entry |
| GetDirNameIndex | FDINA | 243B Get directory and name indexes |
| GetDirUserIndexes | MUID1 | 213B Get user and directory indexes |
| GetFileIndexes | FOBJN | 274B Get the file indexes |
| GetFileName | MGFIL | 273B Get file name |
| GetObjectEntry | DROBJ | 215B Get file information |
| GetSpoolingEntry | RSPQE | 55B Get spooling queue information |
| GetUserEntry | RUSER | 448 Get information about a user |
| GetUserName | GUSNA | 214B Get current user name |
| NewUser | SUSCN | 241B Switch user name |
| OffEscLocalFunction | ELOFF | 303B Disable escape and local characters |
| OldUser | RUSCN | 242B Reset old user name |
| OnEscLocalFunction | ELON | 302B Enable escape and local characters |
| OpenFileInfo | FOPEN | 257B Get file number |
| ReadBlock | RPAGE | 78B Read random blocks from a file |
| ReadFromFile | RFILE | 117B Read randomly from a file |
| ReadObjectEntry | ROBJE | 41B Get information about opened files |
| ReleaseDir | RLDIR | 247B Release a directory |
| ReserveDir | REDIR | 246B Reserve directory |
| SetMaxBytes | SMAX | 73B Set the size of an opened file |
| SetObjectEntry | DWBJ | 216B Change file information |
| SetPeripheralName | SPEFI | 234B Set a file as peripheral |
| SetRemoteAccess | SRLMO | 316B Set remote file access |
| WriteBlock | WPAGE | 10B Write random blocks to a file |
| WriteDirEntry | WDIEN | 311B Change a directory entry |
| WriteToFile | WFILE | 120B Write randomly to a file |
Page 60¶
2.10 RT Program Execution¶
This section lists the monitor calls which relate to RT program execution.
| Command | Code | Hex | Description |
|---|---|---|---|
| AccessRTCommon | RWRTC | 406B | Access RT common from ND-500 |
| ChangeSegment | SPCHG | 337B | Change segment and page table |
| DelayStart | SET | 101B | Start RT program after specified time |
| DisableRTStart | RTOFF | 137B | Disable start of RT programs |
| EnableRTStart | RTON | 136B | Enable start of RT programs |
| ExactDelayStart | DSET | 126B | Start RT program after given period |
| ExactInterval | DINTV | 130B | Periodic execution of RT program |
| ExactStartup | DABST | 127B | Start RT program at a specific time |
| ExecutionInfo | RSIO | 143B | Get execution information |
| ExitRTProgram | RTEXT | 134B | Exit from RT program |
| ForceRelease | PRLS | 125B | Release another program's device |
| ForceReserve | PRSRV | 124B | Force reserve a device |
| GetBasicTime | TIME | 11B | Get the internal time |
| GetOwnRTAddress | GETRT | 30B | Get own RT description address |
| GetProcessNo | GPRNUM | 426B | Get process number |
| GetRTAddress | GRTDA | 151B | Get RT description address |
| GetRTDescr | RTDSC | 27B | Get RT description |
| GetRTName | GRTNA | 152B | Get the name of an RT program |
| NoInterruptStart | DSCNT | 107B | Disconnect program from interrupt |
| PrivInstruction | IPRIV | 146B | Execute privileged instruction |
| SegmentToPageTable | ENTSEG | 157B | Enter a routine as a direct task |
| SetProcessPriority | SPRIO | 507B | Set ND-500 process priority |
| SetRTPriority | PRIOR | 110B | Set the priority of an RT program |
| StartOnInterrupt | CONCT | 106B | Connect a program to an interrupt |
| StartRTProgram | RT | 100B | Start RT program |
| StartupInterval | INTV | 103B | Periodic execution of RT program |
| StartupTime | ABSET | 102B | Start RT program at a specified time |
| StopRTProgram | ABORT | 105B | Abort an RT program |
| SuspendProgram | HOLD | 104B | Suspend execution for a given time |
| WaitForRestart | RTWT | 135B | Set RT program in wait state |
Page 61¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
2.11 Device Handling¶
This section lists the monitor calls which relate to device handling.
| Command | Code | Function Description |
|---|---|---|
| AssignCAMACLAM | ASSIG | 154B Assign CAMAC LAM |
| AwaitFileTransfer | WAITF | 121B Check data transfer |
| AwaitTransfer | MWAITF | 431B Check data transfer |
| BatchModeEcho | MBECH | 325B Set batch and mode job echo |
| BCNAF1CAMAC | BCNAF1 | 415B CAMAC function on ND-500 |
| BCNAFCAMAC | BCNAF | 414B CAMAC function |
| CAMACFunction | CAMAC | 147B Operate CAMAC |
| CAMACGlRegister | GL | 150B Read the CAMAC GL register |
| CAMACIOInstruction | IOXN | 153B Execute an IOX instruction |
| ClearInBuffer | CIBUF | 13B Clear a device's input buffer |
| ClearOutBuffer | COBUF | 14B Clear a device's output buffer |
| CopyPage | COPAG | 251B Copy page for the BACKUP-SYSTEM |
| DataTransfer | ABSTR | 131B Data to and from mass storage |
| DeviceControl | IOSET | 141B Set control information for a device |
| DeviceFunction | MAGTP | 144B Various device functions |
| DisableEscape | DESC | 71B Disable the ESCAPE key |
| DMAFunction | UDMA | 333B Various DMA functions |
| EnableEscape | EESC | 72B Enable the ESCAPE key |
| ForceRelease | PRLS | 125B Release another program's device |
| ForceReserve | PRSRV | 124B Force reserve a device |
| GetDeviceType | GDEVT | 263B Get information about a device |
| GetDirNameIndex | FDINA | 243B Get directory and name indexes |
| GetErrorDevice | GERDV | 254B Find error device |
| GetLastByte | LASTC | 26B Get last byte typed on a terminal |
| GetNameEntry | GNANE | 245B Get disk information |
| GraphicFunction | GRAPHIC | 155B Execute graphic function |
| In4x2Bytes | B4INW | 63B Read 4 words from a device |
| InBufferSpace | ISIZE | 66B Get number of bytes in input buffer |
| InBufferState | IBRISZ | 313B Get input buffer information |
| InByte | INBT | 1B Read one byte from a device or a file |
| InString | INSTR | 161B Read a string from a device |
| InUpTo8Bytes | M8INB | 21B Read up to 8 bytes from a device |
| IOInstruction | EXIOX | 318B Execute an IOX machine instruction |
| NoInterruptStart | DSCNT | 107B Disconnect program from interrupt |
| NoWaitSwitch | NOWT | 36B Switch No Wait on and off |
| OutBufferSpace | OSIZE | 67B Get number of bytes in output buffer |
| OutByte | OUTBT | 2B Write one byte to a device or a file |
| OutMessage | MSG | 32B Write a message to a terminal |
| OutNumber | IOUT | 35B Write a number to a terminal |
| OutPutString | DVOUT | 504B Write a string to a file |
| OutString | OUST | 162B Write to a peripheral file |
| OutUpTo8Bytes | M8OUT | 22B Write up to 8 characters |
| ReadADCChannel | AIBOW | 37B Read analog to digital channels |
| ReadDiskPage | RDPAG | 270B Read a disk page |
| ReleaseDir | RLDR | 247B Release a directory |
| ReleaseResource | RELES | 123B Release a device or a file |
| ReservationInfo | WHDEV | 140B Check device reservation |
| ReserveDir | REDIR | 246B Reserve directory |
| ReserveResource | RESRV | 122B Reserve a file or device |
| SetBreak | BRKM | 48B Set break characters |
| SetClock | UPDAT | 111B Set new time and date |
Page 62¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| Function | Code | Hex | Description |
|---|---|---|---|
| SetPeripheralName | SPEFI | 234B | Set a file as peripheral |
| StartOnInterrupt | CONCT | 106B | Connect a program to an interrupt |
| TerminaNoWait | TNOWAI | 307B | Switch No Wait on and off |
| TransferData | EXABS | 335B | Data to and from mass storage |
| WriteDiskPage | WDPAG | 271B | Write to a disk page |
Page 63¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.12 Segment Administration¶
This section lists the monitor calls which relate to segment administration. You should know the difference between segments on the ND-100 and the ND-500.
| Function | Code | Description |
|---|---|---|
| AltPageTable | ALTON | 33B |
| AttachSegment | REENT | 167B |
| ChangeSegment | SPCHG | 337B |
| ClearCapability | CAPCLE | 424B |
| CopyCapability | CAPCOP | 423B |
| ExitFromSegment | MEXIT | 133B |
| FileAsSegment | FSCNT | 412B |
| FileNotAsSegment | FSDCNT | 413B |
| FixContiguous | FIXC | 160B |
| FixInMemory | FIXMEM | 410B |
| FixScattered | FIX | 115B |
| GetActiveSegment | GASGM | 421B |
| GetAddressArea | GBSIZ | 222B |
| GetScratchSegment | GSWSF | 422B |
| GetSegmentEntry | RSEGM | 53B |
| GetSegmentNo | GSGNO | 322B |
| JumpToSegment | MCALL | 132B |
| LAMUFunction | MLAMU | 315B |
| MaxPagesInMemory | MXPISG | 417B |
| MemoryAllocation | FIXC5 | 61B |
| MemoryUnfix | UNFIXM | 411B |
| ReentrantSegment | SREEN | 212B |
| SaveND500Segment | WSEGN | 416B |
| SaveSegment | WSEG | 164B |
| SegmentOverlay | SPLRE | 323B |
| SegmentToPageTable | ENTSEG | 157B |
| UnFixSegment | UNFIX | 116B |
Page 64¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
2.13 Data Communication¶
This section lists the monitor calls which relate to data communication and networks.
| Function | Code | Description |
|---|---|---|
| DefaultRemoteSystem | SRUSI | 314B Set default remote system |
| DisableLocal | DLOFU | 277B Disable the local function |
| EnableLocal | ELOFU | 276B Enable the local function |
| GetEscLocalChars | MGDAE | 230B Get escape and local characters |
| HDLCfunction | MHDLC | 201B Operate link to remote computer |
| OffEscLocalFunction | ELOFF | 303B Disable escape and local characters |
| OnEscLocalFunction | ELON | 302B Enable escape and local characters |
| SetEscapeHandling | EUSEL | 300B User defined escape handling |
| SetRemoteAccess | SRLMO | 316B Set remote file access |
| StopEscapeHandling | DUSEL | 301B Stop user defined escape handling |
| XMSGFunction | XMSG | 200B Program to program communication |
Page 65¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
2.14 Monitor Calls for Internal Use¶
This section lists the monitor calls intended for ND subsystems only.
You are advised not to use these monitor calls, and for this reason, specific documentation of these calls is not included in this manual.
| Call | Code | Description |
|---|---|---|
| AnswerSIBAS | SIBSURV 506B | Handle request to SIBAS on ND-500 |
| AwaitRequest | WRQI 163B | Wait for request via ND-Net |
| CallSwapper | SWAPMC 510B | |
| Configuration | CONFG 343B | |
| DefineBreakpoint | DBRK 45B | Define debug breakpoint |
| DiskMirroring | MSYSU 331B | |
| DMACBreakpoint | DMAC 51B | Assembly breakpoints |
| GetBreakpointInfo | GBRK 46B | Get info. on debug breakpoint |
| GetSIBASMessage | MSIBB 305B | GetSIBASMessage |
| GetStopInfo | TPSTRA 407B | Stop process and return info. |
| MTAFunction | MTAD 345B | |
| MultipleDataTransfer | 5MTRANS 515B | Fast disk transfer for ND-500(0) |
| ND500Function | N500M 60B | Control the ND-500 from ND-100 |
| ND500MagTape | 500MT 266B | |
| ND500ReadFile | 500RF 264B | |
| ND500WriteFile | 500WF 265B | |
| NucleusFunction | NUCL 347B | |
| Performance | PERF 304B | |
| SendSIBASMessage | MAPS1B 304B | Send request to SIBAS |
| SetBreakpoint | SBRK 47B | Start program to be debugged |
| SetOutRegisters | DOLW 166B | Set device-interface registers |
| SIBASFunction | SIBFU 432B | Various SIBAS functions |
| SystemControl | SYNCT 261B | System control of device |
| UEAdministrator | UEADM 321B | Handle User Environment |
| UELAMUFunction | ADP 342B | |
| UELogin | UELOG 320B | User Environment login |
| UserControl | USCNT 260B | Set user control of a device |
| WCI 20B |
Page 66¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
2.15 Monitor Calls Sorted on Short Names¶
Here are the monitor calls sorted according to their short names. You will also find the short names in the index at the end of this manual.
| Short Name | Number | Description | Short Name | Number | Description |
|---|---|---|---|---|---|
| 5PAGET | 437B | GetND500Param | IECHOM | 3B | SetEcho |
| 5PASET | 436B | SetND500Param | EDTRM | 206B | TerminationHandling |
| 5TMOUT | 514B | ND500TimeOut | EESCF | 72B | EnableEscape |
| ABORT | 105B | StopRTProgram | ELOFF | 303B | OffEscLocalFunction |
| ABSET | 102B | StartupTime | ELOFU | 276B | EnableLocal |
| ABSTR | 131B | DataTransfer | ELON | 302B | OnEscLocalFunction |
| ADR100 | 430B | TranslateAddress | ENTSG | 157B | SegmentToPageTable |
| AIRDW | 37B | ReadADChannel | ERMON | 142B | ToErrorDevice |
| ALTOFF | 34B | NormalPageTable | ERMSG | 64B | WarningMessage |
| ALTON | 33B | AltPageTable | EUSEL | 300B | SetEscapeHandling |
| APSPF | 240B | AppendSpooling | EXABS | 335B | TransferData |
| ASSIG | 154B | AssignCAMACALAM | EXIOX | 31B | IOInstruction |
| ATS5GM | 440B | Attach500Segment | EXPFI | 231B | ExpandFile |
| B4INW | 63B | In4x2Bytes | FDFO1 | 250B | GetDefaultDir |
| B8INB | 23B | In8Bytes | FDINA | 243B | GetDirNameIndex |
| B8OUT | 24B | Out8Bytes | FIX | 115B | FixScattered |
| BCLOS | 252B | BackupClose | FIXC | 160B | FixContiguous |
| BCNAF | 414B | BCNAFCAMAC | FIXC5 | 61B | MemoryAllocation |
| BCNAF1 | 415B | BCNAF1CAMAC | FIXMEM | 410B | FixInMemory |
| BRKM | 4B | SetBreak | F0BJN | 274B | GetFileIndexes |
| CAMAC | 147B | CAMACFunction | FOPEN | 257B | OpenFileInfo |
| CAPCLE | 424B | ClearCapability | FSCNT | 412B | FileAsSegment |
| CAPCOP | 423B | CopyCapability | FSCDNT | 413B | FileNotAsSegment |
| CIBUF | 13B | ClearInBuffer | FSMTY | 327B | FileSystemFunction |
| CLADJ | 112B | AdjustClock | GASGM | 421B | GetActiveSegment |
| CLOCK | 113B | GetCurrentTime | GBSIZ | 222B | GetAddressArea |
| CLOSE | 43B | CloseFile | GDEVT | 263B | GetDeviceType |
| CBOBUF | 41B | ClearOutBuffer | GDEN8 | 244B | GetDirEntry |
| COMND | 70B | CallCommand | GERDV | 254B | GetErrorDevice |
| CONT | 106B | StartOnInterrupt | GERRCOD | 505B | GetTrapReason |
| COPAG | 251B | CopyPage | GETTR | 30B | GetOwnRTAddress |
| CPUTS | 262B | GetSystemInfo | GETXM | 334B | GetErrorMessage |
| CRALF | 248B | CreateFile | GL | 150B | CAMACGLRegister |
| CRNL | 253B | NewFileVersion | GNANE | 245B | GetNameEntry |
| DABST | 127B | ExactStartup | GPRNAME | 427B | GetOwnProcessInfo |
| DEABF | 256B | FullFileName | GPRNUM | 426B | GetProcessNo |
| DELPG | 272B | DeletePage | GRAPHI | 155B | GraphicFunction |
| DESCF | 71B | DisableEscape | GRBLK | 420B | GetUserRegisters |
| DINTV | 130B | ExactInterval | GRTDA | 151B | GetTRAddress |
| DISASS | 401B | DisAssemble | GRTNA | 152B | GetTRName |
| DIW | 165B | GetInRegisters | GSGNO | 322B | GetSegmentNo |
| DLOFUU | 277B | DisableLocal | GSSWP | 422B | GetScratchSegment |
| DOPEN | 220B | DirectOpen | GTMOD | 306B | GetTerminalMode |
| DROBJ | 215B | GetObjectEntry | GUIOI | 217B | GetAllFileIndexes |
| DSCNT | 107B | NoInterruptStart | GUSNA | 214B | GetUserName |
| DSET | 126B | ExactDelayStart | HOLO | 104B | SuspendProgram |
| DUSEL | 301B | StopEscapeHandling | IBRSIZ | 313B | InBufferState |
| DVINST | 503B | InputString | INBT | 1B | In8Byte |
| DVOUTS | 504B | OutputString | INSTR | 161B | InString |
| DWOBJ | 216B | SetObjectEntry | INTIV | 103B | StartupInterval |
Page 67¶
SINTRAN III Monitor Calls¶
Overview of the Monitor Calls¶
| Code | Number | Function | Code | Number | Function |
|---|---|---|---|---|---|
| IOFIX | 404B | FixIOArea | RELES | 123B | ReleaseResource |
| IOMTY | 336B | TerminalFunction | RERRP | 207B | GetErrorInfo |
| IOSET | 141B | DeviceControl | RESRV | 122B | ReserveResource |
| IOUT | 35B | OutNumber | RFILE | 117B | ReadFromFile |
| IOXIN | 153B | CAMACIOInstruction | RFLAG | 402B | GetInputFlags |
| IPRIV | 146B | PrivInstruction | RLDIR | 247B | ReleaseDir |
| ISIZE | 66B | InBufferSpace | RMAX | 628B | GetBytesInFile |
| LASTC | 26B | GetLastByte | ROBJE | 418B | ReadObjectEntry |
| LEAVE | 0B | ExitFromProgram | RPAGE | 7B | ReadBlock |
| M81NB | 218B | InUpTo8Bytes | RSEGM | 53B | GetSegmentEntry |
| M8OUT | 22B | OutUpTo8Bytes | RSIO | 143B | ExecutionInfo |
| MACROE | 400B | ErrorReturn | RSPOE | 55B | GetSpoolingEntry |
| MAGTP | 144B | DeviceFunction | RSREC | 340B | ReadSystemRecord |
| MBECH | 325B | BatchModeEcho | RT | 100B | StartRTProgram |
| MCALL | 132B | JumpToSegment | RTDSC | 278B | GetRTDescr |
| MDLFI | 54B | DeleteFile | RTEXT | 134B | ExitRTProgram |
| MEXIT | 133B | ExitFromSegment | RTOFF | 137B | DisableRTStart |
| MGDAE | 230B | GetEscLocalChars | RTON | 136B | EnableRTStart |
| MGFIL | 273B | GetFileName | RTWT | 135B | WaitForRestart |
| MGTITY | 16B | GetTerminalType | RUSCN | 242B | OldUser |
| MHDLC | 201B | HDLFunction | RUSER | 44B | GetUserEntry |
| MLAMU | 315B | LAMUFunction | RWRITC | 406B | AccessRTCommon |
| MLOGI | 326B | LogInStart | SCROP | 235B | ScratchOpen |
| MOINF | 312B | CheckMonCall | SET | 101B | DelayStart |
| MRNFI | 232B | RenameFile | SETBL | 77B | SetStartBlock |
| MSDAE | 227B | SetEscLocalChars | SETBS | 76B | SetBlockSize |
| MSG | 32B | OutMessage | SETBT | 74B | SetStartByte |
| MSTTY | 17B | SetTerminalType | SETCM | 12B | SetCommandBuffer |
| MUIDI | 213B | GetDirUserIndexes | SFACC | 237B | SetFileAccess |
| MWAITF | 431B | AwaitTransfer | SGMTY | 341B | SegmentFunction |
| MXPISG | 417B | MaxPagesInMemory | SMAX | 738B | SetMaxBytes |
| NOWT | 36B | NowaitSwitch | SPCHG | 337B | ChangeSegment |
| OCTO | 324B | OctobusFunction | SPCLO | 40B | CloseSpoolingFile |
| OPEN | 50B | OpenFile | SPEFI | 234B | SetPeripheralName |
| OSIZE | 67B | OutBufferSpace | SPERD | 236B | SetPermanentOpen |
| OUTBT | 2B | OutByte | SPLRE | 323B | SegmentOverlay |
| OUTSt | 162B | OutString | SPRIO | 507B | SetProcessPriority |
| PAGET | 57B | GetUserParam | SPRNAM | 425B | SetProcessName |
| PASET | 56B | SetUserParam | SREEN | 212B | ReentrantSegment |
| PIOCM | 255B | PIOCFuntion | SRLMO | 316B | SetRemoteAccess |
| PRIOR | 110B | SetRTPriority | SRUSI | 314B | DefaultRemoteSystem |
| PRLS | 125B | ForceRelease | STARTP | 500B | StartProcess |
| PRSRV | 124B | ForceReserve | STEFI | 233B | SetTemporaryFile |
| PRT | 435B | ForceTrap | STOPPR | 501B | StopProcess |
| QERMS | 65B | ErrorMessage | STRFI | 275B | SetTerminalName |
| RDISK | 5B | ReadScratchFile | SUSCN | 241B | NewUser |
| RDPAG | 270B | ReadDiskPage | SWITCHP | 502B | SwitchProcess |
| REBAT | 75B | GetStartByte | TBIN8 | 310B | In8AndFlag |
| REDIR | 246B | ReserveDir | TERMO | 52B | TerminalMode |
| REENT | 167B | AttachSegment | TERST | 330B | TerminalStatus |
Page 68¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
| Call | Code | Description |
|---|---|---|
| TIME | 11B | GetBasicTime |
| TMOUT | 267B | TimeOut |
| TNOWAIT | 307B | TerminalNoWait |
| TREPP | 332B | TerminalLineInfo |
| TUSED | 114B | GetTimeUsed |
| UDMA | 333B | DMAFunction |
| UECOM | 317B | ExecuteCommand |
| UNFIX | 116B | UnfixSegment |
| UNFIXM | 411B | MemoryUnfix |
| UPDAT | 111B | SetClock |
| US0 | 170B | UserDef0 |
| US1 | 171B | UserDef1 |
| US2 | 172B | UserDef2 |
| US3 | 173B | UserDef3 |
| US4 | 174B | UserDef4 |
| US5 | 175B | UserDef5 |
| US6 | 176B | UserDef6 |
| US7 | 177B | UserDef7 |
| USTBRK | 405B | SwitchUserBreak |
| WAITF | 121B | AwaitFileTransfer |
| WDIEN | 311B | WriteDirEntry |
| WDISK | 6B | WriteScratchFile |
| WDPAG | 271B | WriteDiskPage |
| WFILE | 120B | WriteToFile |
| WFLAG | 403B | SetOutputFlags |
| WHDEV | 140B | ReservationInfo |
| WPAGE | 10B | WriteBlock |
| WSEG | 164B | SaveSegment |
| WSEGN | 416B | SaveN0500Segment |
| XMSG | 200B | XMSGFunction |
Page 69¶
SINTRAN III Monitor Calls¶
Overview of the monitor calls¶
2.16 Monitor Call Numbers No Longer Supported¶
The following monitor call numbers are no longer in use. They are still available, to allow old programs to be used, but their use is not recommended. In many instances, the function of these monitor calls has been replaced by another.
| 37B | 200B | 304B | ||||||
| 47B | 201B | 320B | ||||||
| 51B | 251B | 321B | ||||||
| 132B | 255B | 324B | ||||||
| 133B | 260B | 407B | ||||||
| 145B | 261B | 432B | ||||||
| 156B | 264B | 435B | ||||||
| 163B | 265B | 506B | ||||||
| 165B | 266B | 510B |
These monitor calls are not available in the monitor call package. The monitor call package returns -2 as error code when these numbers are used.
2.17 New Monitor Call Numbers¶
Each version of SINTRAN III introduces new monitor calls. Their names are not known by old compilers. The monitor call package allows you to use such monitor calls. You must specify the monitor call number.
| Monitor Call Number | Description |
|---|---|
| 340B | ReadSystemRecord |
| 341B | SegmentFunction |
| 440B | Attach500Segment |
The following new monitor calls are intended for internal use only:
| Monitor Call Number | Description |
|---|---|
| 342B | UELAMUFunction |
| 343B | Configuration |
| 344B | Performance |
| 345B | MTADFunction |
| 515B | MultipleDataTransfer |
Page 70¶
I'm unable to transcribe the content from the scanned image you provided. Please provide the text or a more visible image for assistance.
Page 71¶
SINTRAN III Monitor Calls¶
Monitor Call Reference¶
3 Monitor Call Reference¶
This chapter describes each monitor call in detail. The calls appear in alphabetical order. Use the index if you only know the short name or the monitor call number.
Please refer to page 2 for an explanation of how to use this reference.
Page 72¶
AccessRTCommon¶
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).
See also GetInputFlags and SetOutputFlags.
PARAMETERS¶
- Function. Use 0 to read, and 1 to write.
- RT common address. This is a logical ND-100 address in the logical address area of RT common. ND-100 has 16-bit word addresses.
- Number of bytes to read or write.
- Buffer of data to be read or written.
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))
Page 73¶
SINTRAN III Monitor Calls¶
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.
MAC¶
Not available.
| ND-500 | User RT and user SYSTEM | RT programs |
Page 74¶
112B AdjustClock¶
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.
See also SetClock, GetCurrentTime, StartupTime and GetBasicTime.
PARAMETERS¶
- Number of time units the clock will be adjusted by. Negative values make the clock halt for the specified time.
- The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours.
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)
Page 75¶
SINTRAN III Monitor Calls¶
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 |
Page 76¶
33B ALTPAGETABLE¶
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.
- The specified page table is used for all later X register relative, B-register relative, and indirect addresses. P register relative addresses go through the normal page table. See the ND-100 Functional Description (ND-06.015) for details on addressing and page table selection.
- When used from background, the background segment size must be 256 Kbyte. See @CHANGE-BACKGROUND-SEGMENT-SIZE.
- Do not call AltPageTable twice without calling NormalPageTable in between.
- If addressing via the alternative page table (LDA, STA), bit 0 in the status register (STS) must be set to 1. If this bit is 0, addressing is via the normal page table. This monitor call sets bit 0 in the status register to 1.
- Monitor calls are independent of status bit 0. Return parameters are always on the alternative page table.
See also NormalPageTable.
PARAMETERS¶
- Number of the page table to use.
PASCAL¶
PageTableNumber : INTEGER2;
...
AltPageTable(PageTableNumber);
COBOL¶
01 PageTableNumber COMP.
...
MONITOR-CALL "AltPageTable" USING PageTableNumber.
FORTRAN¶
INTEGER PageTableNumber
...
Monitor_Call('AltPageTable', PageTableNumber)
Page 77¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : PageTableNumber
...
Monitor_Call('AltPageTable', PageTableNumber)
ASSEMBLY-500¶
Not available.
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 |
Page 78¶
240B AppendSpooling¶
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 and @APPEND-SPOOLING-FILE.
PARAMETERS¶
→ Name of file to be printed (pointed to by the X-register). The name may be abbreviated.
→ Peripheral file name of the printer (pointed to by the A-register).
→ Number of copies to be printed. Bit 15D set to 1 means that the message in the next parameter should be printed.
← Standard Error Code. See appendix A.
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 ...
Page 79¶
SINTRAN III Monitor Calls¶
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
Page 80¶
154B AssignCAMACLAM ASSIG¶
Assigns a graded LAM in the CAMAC identification table to a logical device number in the logical number table. See CAMACFunction and CAMACGLRegister for more details.
- Remove the LAM by specifying logical device number -1.
See also CAMACFunction, BCNAFCAMAC, BCNAFFICAMAC, CAMACIOInstruction, and CAMACGLRegister.
PARAMETERS¶
- Logical device number. See appendix B.
- Graded LAM number. Use 0 for high priority on interrupt level 13.
- CAMAC crate number in the range 0:15.
- Standard Error Code. See appendix A.
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 ...
Page 81¶
SINTRAN III Monitor Calls¶
PLAN-C¶
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 DO
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 |
Page 82¶
ATTACH500SEGMENT¶
Maps a logical ND-500 data segment onto shared ND-100/ND-500(0) physical memory (multiport memory).
- 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¶
Function code. 0 = Detach (forget) a previously attached segment.
- 2nd parameter → Segment number in the range 0–31₁₀.
Function code. 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.
- 2nd parameter → ND-500 logical data segment address. If you specify 0 (zero), the first free segment will be used.
- 3rd parameter → Length of segment in pages
- 4th parameter → ND-100 physical page address
- 5th parameter → Segment name. 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.
- 6th parameter → Access. 0 = read only access. 1 = read/write access.
- 7th parameter → Logical segment number.
Function code. 2 = Map an existing ND-500 logical data segment onto a physical ND-100 address area.
- 2nd parameter → Start address of ND-500 logical data segment.
- 3rd parameter → Length of the (entire) segment in pages.
- 4th parameter → Physical ND-100 page address.
| PASCAL | COBOL | FORTRAN |
|---|---|---|
| Not available. | Not available. | Not available. |
Page 83¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
Example with function code 1:
| Name | Description |
|---|---|
| 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
% on error return, W1 = error code
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 84¶
167B AttachSegment REENT¶
Attaches a reentrant segment to your two current segments. The address areas of the segments may overlap. Pages in the reentrant segment may be accessed for reading, writing, or fetching instructions. When written to, a page loses its reentrancy. It is stored on one of your current overlapping segments.
- 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.
See also ReentrantSegment.
PARAMETERS¶
- Segment number of the reentrant segment. See @LIST-REENTRANT.
PASCAL¶
SegmentNumber : INTEGER2;
...
AttachSegment(SegmentNumber);
COBOL¶
01 SegmentNumber COMP.
...
MONITOR-CALL "AttachSegment" USING SegmentNumber.
FORTRAN¶
INTEGER SegmentNumber
...
Monitor_Call('AttachSegment', SegmentNumber)
Page 85¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SegmentNumber
...
Monitor_Call('AttachSegment', SegmentNumber)
ASSEMBLY-500¶
Not available.
MAC¶
| Command | Argument | Description |
|---|---|---|
| LDA | (PAR | %Load register A with address of parameter list. |
| MON | 167 | %Monitor call AttachSegment. |
PAR, SEGNO %Segment number
...
SEGNO, ...
| ND-100 | All users | All programs |
Page 86¶
SINTRAN III Monitor Calls¶
121B AwaitFileTransfer WAITF¶
Checks that a data transfer to or from a mass-storage file is completed. The monitor call is relevant to ReadFromFile and WriteToFile operations. These data transfers are carried out independently of the CPU.
- You may specify that the program should wait if the transfer is not ready. It is set in the I/O wait state.
- A patch exists to permit AwaitFileTransfer to return status information from the last ReadFromFile or WriteToFile. This is a non-standard patch, number 289, available on SINTRAN III VSX and VSX-500.
See also AwaitTransfer.
PARAMETERS¶
- File number. See Openfile.
- Wait flag. If 0, the program waits until the data transfer is completed. Other values return a value showing the state of the transfer. Programs on the ND-500 do not wait.
- State of transfer. Without patch 289: All error codes are from AwaitfileTransfer.
- 0 means that transfer is finished.
- -1 means that transfer is not finished.
-
0 are Standard Error Codes (see appendix A).
With patch 289:
| Error Code (SEC) | Description |
|---|---|
| 132₈ | No file opened with this number |
| 174₈ | Illegal parameter |
All other error codes (SEC) are from the last ReadFromFile or WriteToFile.
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)
Page 87¶
SINTRAN III Monitor Calls¶
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 |
Page 88¶
431B AwaitTransfer MWAITF¶
Checks that a data transfer to or from a mass-storage file is completed. The monitor call is relevant to DeviceFunction, ReadFromFile and WriteToFile operations. These are carried out independently of the CPU. The number of bytes read or written is returned.
- You may specify that the program should wait if the transfer is not ready. It is set in the I/O wait state.
See also AwaitFileTransfer.
Parameters¶
- File number. See Openfile.
- Wait flag. If 0, the program waits until the data transfer is completed. Other values return a value showing the state of the transfer. ND-500 programs do not wait.
- Number of bytes transferred.
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)
Page 89¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 90¶
252B BACKUPCLOSE BCLOS¶
Closes a file. The version number and the last date accessed are unchanged. The number of pages in temporary files and spooling files is not affected.
- This monitor call is mainly used by the BACKUP-SYSTEM.
See also CloseFile.
PARAMETERS¶
- File number of the opened file. See OpenFile.
- Modified flag. If 0, the file is not marked as modified.
- Standard Error Code. See appendix A.
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 ...
Page 91¶
SINTRAN III Monitor Calls¶
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 |
Page 92¶
325B BATCHMODEECHO¶
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.
- 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.
See also SetEcho.
PARAMETERS¶
- 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 mark from the previous batch or mode job is returned in the A register.
PASCAL¶
ControlBitmask : INTEGER2;
...
BatchModeEcho(ControlBitmask);
COBOL¶
01 ControlBitmask COMP.
...
MONITOR-CALL "BatchModeEcho" USING ControlBitmask.
FORTRAN¶
INTEGER ControlBitmask
...
Monitor_Call('BatchModeEcho', ControlBitmask)
Page 93¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : ControlBitmask
...
Monitor_Call('BatchModeEcho', ControlBitmask)
ASSEMBLY-500¶
OldMask : W BLOCK 1 % The lower 16 bit of the I1 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, ...
| ND-100 and ND-500 | All users | Background programs |
Page 94¶
415B BCNAF1CAMAC BCNAF1¶
Special CAMAC monitor call for the ND-500. (Same as mon 176 - user-defined monitor call.)
See also CAMACFunction, AssignCAMACLAM, BCNAFCAMAC, CAMACIOInstruction, and CAMACGLRegister.
PARAMETERS¶
| Parameter | Description |
|---|---|
| Function | |
| Address | |
| Data | |
| Status |
PASCAL¶
Funct, Address, Data, Status : LONGINT;
...
BCNAF1CAMAC(Funct, Address, Data, Status);
COBOL¶
01 Func COMP.
01 Address COMP.
01 Data COMP.
01 Status COMP.
...
MONITOR-CALL "BCNAF1CAMAC" USING Func, Address, Data, Status.
FORTRAN¶
INTEGER Func, Address, Data, Status
...
Monitor_Call('BCNAF1CAMAC', Func, Address, Data, Status)
Page 95¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | User RT and user SYSTEM | RT programs |
|---|---|---|
Page 96¶
414B BCNAFCAMAC BCNAF¶
Special CAMAC function on the ND-500. (Same as mon 156 TRACB.)
See also CAMACFunction, AssignCAMACLAM, BCNAF!CAMAC, CAMACIOInstruction, and CAMACGLRegister.
PARAMETERS¶
- Function
- Address
- Data
- Status
PASCAL¶
Func, Address, Data, Status : LONGINT;
...
BCNAFCAMAC(Func, Address, Data, Status);
COBOL¶
01 Func COMP.
01 Address COMP.
01 Data COMP.
01 Status COMP.
...
MONITOR-CALL "BCNAFCAMAC" USING Func, Address, Data, Status.
FORTRAN¶
INTEGER Func, Address, Data, Status
...
Monitor_Call('BCNAFCAMAC', Func, Address, Data, Status)
Page 97¶
SINTRAN III Monitor Calls¶
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 3789 + 414B
...
CALLG BCNAFCAMAC, 4, Func, Address, Data, Status
MAC¶
Not available.
| ND-500 | User RT and user SYSTEM | RT programs |
Page 98¶
CallCommand¶
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 and SetCommandBuffer. ExecuteCommand does not terminate the program if an error occurs.
Parameters¶
Command with parameters, e.g. "LIST-FILES :TEXT,.". Do not include the @ character.
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))
Page 99¶
SINTRAN III Monitor Calls¶
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 |
Page 100¶
CAMACFunction¶
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.
See also AssignCAMACLAM, BCNAFCAMAC, BCNAF1CAMAC, CAMACIOInstruction, and CAMACGLRegister.
PARAMETERS¶
- Value: input of data if write, output if read.
- Return status (0 if OK, 24 if not OK).
- Crate number.
- Station number.
- Subaddress.
- Function:
- 0 All registers - Read
- 1 All registers - Write
- 3 Selected Bit Clear
- 5 Selected Bit Set
- 7 Execute Dataway Cycle
PASCAL¶
DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func : INTEGER2;
...
CAMACFunction(DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func);
COBOL¶
01 DataWord COMP.
01 RetStatus COMP.
01 CrateNo COMP.
01 StationNo COMP.
01 Subaddress COMP.
01 Func COMP.
...
MONITOR-CALL "CAMACFunction" USING DataWord, RetStatus,
CrateNo, StationNo, Subaddress, Func.
FORTRAN¶
Page 101¶
SINTRAN III Monitor Calls¶
INTEGER DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func
...
Monitor_Call('CAMACfunction', DataWord, RetStatus, CrateNo,
StationNo, Subaddress, Func)
PLANC¶
INTEGER : DataWord, RetStatus, CrateNo, StationNo, Subaddress, Func
...
Monitor_Call('CAMACfunction', DataWord, RetStatus, CrateNo, &
StationNo, Subaddress, Func)
ASSEMBLY-500¶
DataWord : W BLOCK 1
RetStatus : W BLOCK 1
CrateNo : W BLOCK 1
StationNo : W BLOCK 1
Subaddress : W BLOCK 1
Func : W BLOCK 1
ErrCode : W BLOCK 1
CAMACfunction: EQU 37B9 + 147B
...
CALLG CAMACfunction, 6, DataWord, RetStatus, CrateNo, &
StationNo, Subaddress, Func
IF K GO Error
...
Error, W1 =: ErrCode
MAC¶
LDT DATA %Data if write.
LDA CRATE %Crate number.
COPY SA DD
LDA CTRL %Load register A.
MON 147 %Monitor call CAMACfunction.
STT DATA %Store data if read.
STX STAT %Store status.
...
STAT, 0
DATA, ...
CRATE, ...
CTRL, ... %CAMAC control: station number/subaddress/function.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Page 102¶
150B CAMACGLRegister GL¶
Read the CAMAC GL (Graded LAM -"look at me") register or the last CAMAC identification number. See under CAMACfunction (mon 147) for more general information.
When a program requests interrupt, it generates a LAM to the control station. Up to 23 such signals may arrive, but for efficient handling in the computer, these must be reduced to 16 lines called Graded LAMs. The GL register, which may be read by the program, holds a bit mask giving the current LAM requests (bit=1 indicates LAM). The different graded LAM lines have individual IDENT codes (Bits 0-3: Graded LAM code. Bits 4-7: crate code. Bit 8=1 : CAMAC). A LAM Mask Register is used to enable (bit=1) or disable (bit=0) any of the 16 graded LAMs. Each time an IDENT code is read, the associated bit in the MASK register is cleared and must be set by the program to enable a new interrupt.
See also CAMACfunction, AssignCAMACLAM, BCNAFCAMAC, BCNAF1CAMAC, and CAMACIOInstruction.
PARAMETERS¶
- Flag. -1 means read last identification number. Other values means read GL register.
- Crate number.
PASCAL¶
Flag, CrateNo : INTEGER2;
...
CAMACGLRegister(Flag, CrateNo);
COBOL¶
01 Flag COMP.
01 CrateNo COMP.
...
MONITOR-CALL "CAMACGLRegister" USING Flag, CrateNo.
FORTRAN¶
INTEGER Flag, CrateNo
...
Monitor_Call('CAMACGLRegister', Flag, CrateNo)
Page 103¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : Flag, CrateNo
...
Monitor_Call('CAMACGLRegister', Flag, CrateNo)
ASSEMBLY-500¶
Flag : W BLOCK 1
CrateNo : W BLOCK 1
ErrCode : W BLOCK 1
CAMACGLRegister : EQU 3789 + 150B
...
CALLG CAMACGLRegister, 2, Value, CrateNo
IF K GO Error,
...
Error, W! =: ErrCode
MAC¶
LDA CRATE %Crate number.
COPY SA DD
LDA FUNC %Function.
MON 150 %Monitor call CAMACGLRegister.
STA RETUR %Store result.
...
RETUR, 0
FUNC, ... %Input: function / Output: last identification
CRATE, ... % or GL register.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Page 104¶
153B CAMACIOInstruction IOXN¶
Executes a single IOX instruction for CAMAC. See under CAMACfunction (mon 147) for general information.
See also CAMACfunction, AssignCAMACLAM, BCNAFCAMAC, BCNAF1CAMAC, and CAMACGLRegister.
PARAMETERS¶
| Input | Description |
|---|---|
| ⬅︎ | Input of data if write. Output if read. |
| ➙ | Physical device number in the range 2000B-4000B. |
PASCAL¶
DataWord, IOXCode : INTEGER2;
...
CAMACIOInstruction(DataWord, IOXCode);
COBOL¶
01 DataWord COMP.
01 IOXCode COMP.
...
MONITOR-CALL "CAMACIOInstruction" USING DataWord, IOXCode.
FORTRAN¶
INTEGER DataWord, IOXCode
...
Monitor_Call('CAMACIOInstruction', DataWord, IOXCode)
Page 105¶
SINTRAN III Monitor Calls¶
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 3789 + 153B
...
CALLG CAMACIOInstruction, 2, DataWord, IOXCode
...
Error, W1 =: ErrCode
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 |
Page 106¶
337B ChangeSegment SPCHG¶
Changes the segment and the page table your program uses. The monitor call is similar to JumpToSegment and ExitFromSegment. In addition, you may change the two page tables in use. The segment numbers are restricted to 8-bits (values 0-255). SegmentFunction (MON 341) is the equivalent monitor call for version K of SINTRAN III.
- You cannot change reentrant segments.
See also JumpToSegment and ExitFromSegment, and SegmentFunction.
Parameters¶
Function.
Bit 15 in the D register equal to 0 means JumpToSegment. Bit 0:1 should contain the new alternative page table and bit 2:3 the new normal page table. The T register contains the address of a parameter list. The parameter list consists of the start address and the segment numbers. The execution continues after this monitor call when an ExitFromSegment function is performed. The D register then contains the old page tables.
Bit 15 in the D register equal to 1 means ExitFromSegment. Bit 0:1 should contain the old alternative page table and bit 2:3 the old normal page table.
| Pascal | Cobol | Fortran |
|---|---|---|
| Not available. | Not available. | Not available. |
Page 107¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
Not available.
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 |
Page 108¶
CheckMonCall¶
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¶
- Monitor-call number.
- Address of the monitor call entry. 0 means not implemented.
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)
Page 109¶
SINTRAN III Monitor Calls¶
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 |
Page 110¶
424B ClearCapability¶
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.
See also CopyCapability.
Parameters¶
| Parameter | Description |
|---|---|
| Logical segment number in your domain. | Logical segment number in your domain. |
| Segment type. Use 0 for data segments, and 1 for program segments. | Segment type. Use 0 for data segments, and 1 for program segments. |
| Standard Error Code. See appendix A. | Standard Error Code. See appendix A. |
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 ...
Page 111¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : LogicalSegmentNo; SegType
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ClearCapability', LogicalSegmentNo, SegType)
ASSEMBLY-500¶
LogicalSegmentNo : W BLOCK 1
SegType : W BLOCK 1
ErrCode : W BLOCK 1
ClearCapability : EQU 37B9 + 424B
...
CALLG ClearCapability, 2, LogicalSegmentNo, SegType
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 112¶
ClearInBuffer¶
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.
See also @CLEAR-DEVICE, ClearOutBuffer, and DeviceControl.
Parameters¶
- Logical device number. See appendix B.
- Standard Error Code. See appendix A.
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 ...
Page 113¶
SINTRAN III Monitor Calls¶
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 |
Page 114¶
14B CLEAROUTBUFFER¶
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.
See also @CLEAR-DEVICE, ClearInBuffer, and DeviceControl.
PARAMETERS¶
| Parameter | Description |
|---|---|
| → Logical device number. | See appendix B. |
| ← Standard Error Code. | See appendix A. |
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 ...
Page 115¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 116¶
CloseFile¶
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.
See also OpenFile, CloseSpoolingFile, BackupClose, and @CLOSE-FILE.
Parameters¶
- File number returned when the file was opened. Use -1 to close all your files which are not set permanently open. The block size of all scratch files which are permanently opened is set to 400B. Use -2 to close all your files, including your scratch file and those files set permanently open.
- Standard Error Code. See appendix A.
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 ...
Page 117¶
SINTRAN III Monitor Calls¶
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 |
Page 118¶
40B CloseSpoolingFile SPCLO¶
Appends an opened file to a spooling queue. You specify a text to be printed on the error device when the file is to be printed.
- If the file is not a spooling file, a normal close is performed.
- Does not work for remote files. For these, a normal close is performed.
See also CloseFile, AppendSpooling and @DEFINE-SPOOLING-CONDITIONS.
PARAMETERS¶
| Parameter | Description |
|---|---|
| File Number | File number given when the file was opened. |
| Text | Text to be output on the error device. |
| NoOfCopies | Number of print copies. |
| 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. |
| ErrCode | Standard Error Code. See appendix A. |
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 ...
Page 119¶
SINTRAN III Monitor Calls¶
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
Page 120¶
423B CopyCapability¶
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.
PARAMETERS¶
→ Source logical segment number.
→ Type of source segment. Use 0 for data segments, and 1 for program segments.
→ Destination logical segment number. Use 0 to get the first unused segment.
→ Type of destination segment. Use 0 for data segments, and 1 for program segments.
→ Access mode. Use 0 not to change the access. Use 1 to set read access only. Read and write access is set by 2.
← Returned logical segment number if 0 was specified as destination.
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 ...
Page 121¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SourceSegNo, SourceType, DestSegNo, DestType, AccCode, RetSegNo
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('CopyCapability', SourceSegNo, SourceType, DestSegNo, &
DestType, AccCode, RetSegNo)
ASSEMBLY-500¶
| Parameter | Type |
|---|---|
| SourceSegNo | W BLOCK 1 |
| SourceType | W BLOCK 1 |
| DestSegNo | W BLOCK 1 |
| DestType | W BLOCK 1 |
| AccCode | W BLOCK 1 |
| RetSegNo | W BLOCK 1 |
| ErrCode | W BLOCK 1 |
CopyCapability : EQU 37B9 + 423B
...
CALLG CopyCapability, 6, SourceSegNo, SourceType, DestSegNo, &
DestType, AccCode, RetSegNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 122¶
251B CopyPage Copag¶
Copies file pages between two opened files. One of the files may be a magnetic tape or floppy disk with volume.
- This is a special monitor call used by the BACKUP-SYSTEM. No high-level language interface exists. The use of the X and D registers is tailored for reading labels on magnetic tape.
- Copying stops at end-of-file, a non-existent page, or if a short magnetic tape record is found.
- CopyPage is only used for sequential copying, i.e., a sequence of CopyPage calls must start with page number zero.
- Files should be opened for random read or write.
- Both files must be local files.
Parameters¶
- File number of source file in the T register. Use logical device number for magnetic tape and floppy disks.
- File number of destination file in the A register. Use logical device number for magnetic tapes and floppy disks.
- Address of 32-bit word with page address of first page to copy. The page address is the same for the source and destination files.
- Address of buffer to receive short magnetic tape record if source file is magnetic tape. Use -1 if you do not want the short record returned.
Output parameters if normal return:¶
- Error number relating to the destination file in the A register. See appendix A.
Output parameters if skip return:¶
- Error number relating to the source file in the A register. If finished, end-of-file is returned. See appendix A.
Output parameters if double skip return:¶
Unless the source is magnetic tape, a page is missing.
- Page number of the missing page in the A&D register.
- A set of contiguous pages can be missing. The T and X register contains the last page number missing in such a hole. This is only returned if the source is a directory.
- Number of 16-bit integers returned if a short magnetic tape record is found. Only for magnetic tape as source and the D register different from -1.
PASCAL¶
Not available.
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 123¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
| SourceFile | : W BLOCK 1 |
|---|---|
| DestFile | : W BLOCK 1 |
| FirstPage | : W BLOCK 1 |
| DestBuffer | : W BLOCK 1 |
| FirstPageMiss | : W BLOCK 1 |
| LastPageMiss | : W BLOCK 1 |
| NoOfWord | : W BLOCK 1 %Dummy for mass-storage files. |
| ErrCode | : W BLOCK 1 |
| CopyPage | : EQU 37B9 + 251B |
CALLG CopyPage, 7, SourceFile, DestFile, FirstPage, DestBuffer, &
FirstPageMiss, LastPageMiss, NoOfWords
IF K GO ERROR ...
ERROR : W1 =: ErrCode %ErrorCode in W1 register (3 if end-of-file).
MAC¶
LDT FL1NO %Load file number of source file.
LDA (BUFF %Memory address of buffer to receive record.
COPY SA DD
LDA FL2NO %Load file number of destination file.
LDX (PAGE %Address of double word with page address.
MON 251 %Monitor call CopyPage.
JMP ERROR %Destination error, error number in register A.
JMP ERROR %Source error, EOF if finished, error number in A.
STD PAGNO %Normal return, store page number of missing page.
STT LAST %Store page number of last missing page.
STX LAST + 1
ERROR, ...
FL1NO, ...
FL2NO, ...
PAGE, ... %A double word.
...
BUFF, 0 %Buffer to receive a short magtape record.
0
PAGNO, 0 %A double word.
0 %
LAST, 0 %A double word.
0 %
ND-100 and ND-500 | All users | All programs
Page 124¶
221B CreateFile CRALF¶
Creates a file. The file may be indexed, contiguous, or allocated. Most files are indexed. The size of indexed files expands automatically when written to. Contiguous and allocated files have shorter access time.
- You need directory access to the user who owns the file.
- User SYSTEM and RT always have the owner's access rights.
- An indexed file not yet written to may be converted to a contiguous file. Use ExpandFile or @EXPAND-FILE.
See also @CREATE-FILE, @ALLOCATE-FILE, NewFileVersion, and ExpandFile.
PARAMETERS¶
- File name. Default file type is :DATA.
- Start address in the directory. Use 0 if you want to create a contiguous or indexed file.
- Length of the file in pages. Use 0 if you want to create an indexed file.
- Standard Error Code. See appendix A.
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 ...
Page 125¶
SINTRAN III Monitor Calls¶
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 |
Page 126¶
DATA TRANSFER¶
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).
See also TransferData, ReadFromFile and WriteToFile. TransferData allows you to use any page table.
PARAMETERS¶
- Logical device number. See appendix B.
- Function code. See the tables on the following pages.
- Physical memory address.
- Block address on the disk. See the tables on the following pages.
- Number of blocks to transfer.
- Error code. Negative if error. Contains a hardware status.
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
Page 127¶
SINTRAN III Monitor Calls¶
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.
Page 128¶
Function Codes for Floppy Disk: (bits 0-5)¶
The Call Formats are described on page 122.
| Function Code₆/name | Call format | Function Code₆/name | Call format |
|---|---|---|---|
| 0 Read | c | 54 Copy floppy | g |
| 1 Write | d | 55 Format track | h |
| 2 Read and test CRC | c | 56 Read and test CRC | c |
| 3 Dummy | c | 60 Read (with 32-bit sector address) | c |
| 20 Read status | a | 61 Write (with 32-bit sector address) | d |
| 21 Clear device ¹ | b | 66 Read without cache clear (With 32-bit sector address) | c |
| 24 Read last status | a | ||
| 36 Read extended status | a | ||
| 40 Select floppy format ³ | e | ||
| 41 Format floppy ² | b | ||
| 42 Read format ³ | e | ||
| 46 Get current disk address | f | ||
| 47 Set disk address | f |
Notes:¶
¹ All units are affected.
² All data on the floppy disk is overwritten and the floppy disk is formatted, i.e. new addresses are written. Floppy-disk format must be set (function 40) before using this function.
³ The following floppy-disk formats are available:
- 0: 512 bytes per sector, 8 sectors per track, 77 tracks, SS/SD (Standard format used by ND file system)
- 1: 256 bytes per sector, 15 sectors per track, 77 tracks, SS/SD
- 2: 128 bytes per sector, 26 sectors per track, 77 tracks, SS/SD
- 4: 512 bytes per sector, 8 sectors per track, 154 tracks, DS/SD
- 5: 256 bytes per sector, 15 sectors per track, 154 tracks, DS/SD
- 6: 128 bytes per sector, 26 sectors per track, 154 tracks, DS/SD
- 8: 512 bytes per sector, 15 sectors per track, 77 tracks, SS/DD
- 9: 256 bytes per sector, 26 sectors per track, 77 tracks, SS/DD
- 11: 1024 bytes per sector, 8 sectors per track, 77 tracks, SS/DD
- 12: 512 bytes per sector, 15 sectors per track, 154 tracks, DS/DD
This format allows usage of tracks 155-160, but these tracks must be formatted by the format track function. - 13: 256 bytes per sector, 26 sectors per track, 154 tracks, DS/DD
- 15: 1024 bytes per sector, 8 sectors per track, 154 tracks, DS/DD
(Standard format used by ND file system)
Page 129¶
SINTRAN III Monitor Calls¶
Function Codes for SMD Disk: (bits 0-5)¶
The Call Formats are described on page 122.
| Function Code/name | Call format | Function Code/name | Call format |
|---|---|---|---|
| 0 Read | c | 60 Read (with 32-bit sector address) | c |
| 1 Write | d | 61 Write (with 32-bit sector address) | d |
| 2 Read parity | c | 62 Read parity (with 32 bit sector address) | c |
| 3 Compare | c | 63 Compare (with 32-bit sector address) | c |
| 6 Priority select | b | 66 Read without cache clear (with 32 bit sector address) | c |
| 20 Read last status | a | ||
| 35 Release disk | b | ||
| 36 Read element in disk layout table | j | ||
| 42 Read disk format number | i | ||
| 43 Read format table (32 bit disk address) | c | ||
| 44 Write Format table (32 bit disk address) | d |
Function Codes for Domino Disk: (bits 0-5)¶
The Call Formats are described on page 122.
| Function Code₈/name | Call format | Function Code₈/name | Call format |
|---|---|---|---|
| 24 Read last status | a | 61 Write (with 32-bits disk address) | d |
| 42 Read capacity | 63 Compare (with 32-bits disk address) | c | |
| 60 Read (with 32-bits disk address) | c | 66 Read without cache clear (32 bits disk address) | c |
Status:¶
- -1 Illegal function
- -2 Nucleus error
- -3 Memory address not in multiport
- -4 Basic disk I/O error
Page 130¶
Call Formats¶
The call formats are marked from a-i. All formats give status on return. See appendix A. The return status >=0 means the call terminated correctly. Parameters which do not affect the call format are called "dummy" below. All call formats contain logical unit number (0-3) in function code bits 6-8.
The call format "a" is:¶
Status=ABSTR(logical device number, Unit/function code, dummy, dummy, dummy)
The hardware status is returned as error code. The device must be reserved. Otherwise a positive error code may not be the correct hardware status.
The call format "b" is:¶
Status=ABSTR(logical device number, Unit/function code, dummy, dummy, dummy)
Status is Standard Error Code.
The call format "c" is:¶
Status=ABSTR(logical device number, Unit/function code, physical memory address, sector address, no of sectors to read)
The call format "d" is:¶
Status=ABSTR(logical device number, Unit/function code, physical memory address, sector address, no of sectors to write)
The call format "e" is:¶
Status=ABSTR(logical device number, Unit/function code, dummy, dummy, floppy format number)
The call format "f" is:¶
Status=ABSTR(logical device number, Unit/function code, dummy, dummy, sector address)
The call format "g" is:¶
Status=ABSTR(logical device number, Unit/function code, dummy, dummy, destination unit number)
Page 131¶
SINTRAN III Monitor Calls¶
The call format "h" is:¶
Status=ABSTR(logical device number,Unit/function code,dummy,dummy,first sector address of track)
The call format "i" is:¶
Status=ABSTR(logical device number,Unit/function code,physical memory address,dummy,dummy)
Format code is returned in physical memory address.
The call format "j" is:¶
Status=ABSTR(logical device number,Unit/function code,physical memory address,dummy,dummy)
Disk layout table (8 words) is returned in physical memory address.
Page 132¶
DefaultRemoteSystem¶
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.
See also @SET-DEFAULT-REMOTE-SYSTEM and @RESET-DEFAULT-REMOTE-SYSTEM.
Parameters¶
| Parameter | Description |
|---|---|
| ➞ Remote system name. | |
| ➞ User owning the files in the remote system. | |
| ➞ The user's password. | |
| ➞ The user's project password. | |
| ➞ Standard Error Code. See appendix A. |
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 ...
Page 133¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : SystemName(0:15), UserName(0:15), Password(0:15), ProjPassword(0:15)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DefaultRemoteSystem', SystemName, UserName, &
Password, ProjPassword)
ASSEMBLY-500¶
SystemName : STRINGDATA 'STORE'...
UserName : STRINGDATA 'A-HANSEN'''
Password : STRINGDATA 'MAY'''
ProjPassword : STRINGDATA 'CHEESE'''
ErrCode : W BLOCK 1
DefaultRemoteSystem : EQU 37B9 + 314B
...
CALLG DefaultRemoteSystem, 4, SystemName, UserName, &
Password, ProjPassword
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
| LDX | (SYS) | %Address of remote system name. |
|---|---|---|
| LDT | (USER) | %Address of remote user identifier string. |
| LDA | (PROJP) | %Address of remote project password string. |
| COPY | SA DD | |
| LDA | (PASSW) | %Address of remote user password string. |
| MON | 314 | %Monitor call DefaultRemoteSystem. |
| JMP | ERROR | %Error return from monitor call. |
| ... | %Normal return. | |
| ERROR, ... | %Error number in register A. |
SYS, 'STORE' %Set up STORE as default remote system.
USER, 'A-HANSEN' %Set up A-HANSEN as default remote user.
PASSW, 'MAY' %Set up MAY as default remote user password.
PROJP, 'CHEESE' %Set up CHEESE as default remote project password.
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 134¶
101B DelayStart¶
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.
See also @SET and StartupTime.
Parameters¶
- Address of the RT description. Use 0 for the calling program.
- The number of time units to stay in the time queue.
- The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours.
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)
Page 135¶
SINTRAN III Monitor Calls¶
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 |
Page 136¶
54B DeleteFile MDLFI¶
Deletes a file. The pages of the file are released.
- You must have directory access to the file in order to delete it. RT programs can delete a file if user RT has directory access to it.
- Include a version number in the file name to delete specific versions of a file. Otherwise, all versions are deleted.
See also @DELETE-FILE, @DELETE-USERS-FILES, and CreateFile.
PARAMETERS¶
| Parameter | Description |
|---|---|
| File name | |
| Standard Error Code | See appendix A. |
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 ...
Page 137¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : FileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DeleteFile', FileName)
ASSEMBLY-500¶
FileName : STRINGDATA 'EXAMPLE:SYMB'
ErrCode : W BLOCK 1
DeleteFile : EQU 37B9 + 54B
...
CALLG DeleteFile, 1, FileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode
MAC¶
LDX (FILE %Load register X with address of file name.
MON 54 %Monitor call DeleteFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Delete file EXAMPLE:SYMB.
| ND-100 and ND-500 | All users | All programs |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 138¶
272B DeletePage DELPG¶
Deletes pages from a file. Pages between two page numbers are removed.
- The file must be opened.
See also DeleteFile.
PARAMETERS¶
- File number.
- First page to be deleted.
- Last page to be deleted. The value -1 means delete to end of the file.
- Number of pages deleted.
- Standard Error Code. See appendix A.
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 ...
Page 139¶
SINTRAN III Monitor Calls¶
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 |
Page 140¶
DeviceControl¶
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.
See also DeviceFunction and @IOSET.
Parameters¶
- Logical device number. See appendix B. You cannot use 1 for your own terminal. Use ExecutionInfo to get its logical device number instead. File numbers are illegal.
- Input or output part of the device. Use 0 for input and 1 for output.
- Address of RT description of reserving program. Use 0 for the calling program.
- Control flag. Use -2 to empty the TAD output buffer. Use -1 to reset the device. This sets card readers in ASCII mode. 0 sets ASCII mode without resetting the device. 1 sets binary mode. InByte will then return a 12-bit card column image.
- Return status. 0 means no errors. An illegal RT description address returns -1.
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)
Page 141¶
SINTRAN III Monitor Calls¶
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 |
Page 142¶
144B DEVICEFUNCTION¶
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.
See also DeviceControl and @DEVICE-FUNCTION.
PARAMETERS¶
- Function code. See the following pages.
- Buffer used for data transfer to and from the device.
- Logical device number (or open-file number). See appendix B.
- First device dependent parameter. See the following pages.
- Second device dependent parameter. See the following pages.
- Device dependent status code. See the following pages.
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 ...
Page 143¶
SINTRAN III Monitor Calls¶
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 |
Page 144¶
Function Codes for STC Magnetic Tape: (bits 0-5)¶
The Call Formats are described on page 140.
| Function Code & Name | Call Format | Function Code & Name | Call Format |
|---|---|---|---|
| 0 Read record | c | 23 Select parity and density | e |
| 1 Write record | d | 24 Read last status 4) | a |
| 2 Read record but no error exit if odd no. of bytes | c | 25 Read tape status 4) | i |
| 3 Loop write to read in FCU | b | 26 Read byte record | c |
| 4 Read one record backwards | c | 27 Write byte record | d |
| 6 Set retry and erase gap counters | k | .33 Clear selected unit (as determined by the LDN) | b |
| 10 Advance through end-of-file 1) | b | 34 Set diagnostic mode | b |
| 11 Reverse through end-of-file 2) | b | 36 Read extended status | j |
| 12 Write end-of-file | b | 37 Sense drive status | a |
| 13 Rewind to start of tape | b | 42 Read format/density code | e |
| 14 Write erase gap | b | 50 Read multiple records | l |
| 15 Backspace record | b | 51 Write multiple records | l |
| 16 Advance record | b | 60 Read one record (32 bit word count) | c |
| 17 Rewind and unload | b | 61 Write one record (32 bit word count) | d |
| 20 Read status (compatible with Pertec mag. tapes) 4) | a | 62 Read byte record (32 bit byte count) | c |
| 21 Clear tape subsystem (all units) | b | 63 Write byte record (32 bit byte count) | d |
| 22 Clear tape subsystem with error exit | a | 64 Read one record backwards (32 bit word count) | c |
| 66 Read record without clearing cache 3) | c |
Notes:¶
-
Tape is positioned after the end-of-file mark.
-
Tape is positioned in front of the end-of-file mark.
-
Is used to read into a cache inhibited memory area.
-
The status codes: (the condition is true if the bit is 1)
- Bit 0: Tape on-line.
- 1: Write enable ring present.
- 2: Tape standing on load point.
- 3: CRC error, fatal error. CRC means cyclic redundancy check.
- 4: Set if any of bits 5, 6, 7, 8, 9, 11 or 12 is set.
- 5: Control or modus word error. Trying to write on unprotected tape, reserving tape at load point, tape unit not on-line, etc. Action is inhibited.
- 6: Bad data block. An error is detected.
- 7: End-of-file is detected.
- 8: The search character is detected.
- 9: End-of-tape is detected. The bit remains on if carrying out a function after end-of-tape.
Page 145¶
SINTRAN III Monitor Calls¶
10: Word counter is not zero.
11: DMA error.
12: Overflow in read operation.
13: Tape busy or formatter busy.
14: LRC/software error. LRC means Longitudinal Redundancy Check.
15: Interrupt when formatter is ready.
Function Codes for Floppy Disk: (bits 0-5)¶
The Call Formats are described on page 140.
| Function Code & Name | Call Format | Function Code & Name | Call Format |
|---|---|---|---|
| 0 Read record | c | 41 Format floppy³ | b |
| 1 Write record | d | 42 Read format⁴ | g |
| 2 Read and test CRC | c | 43 Read a record even if marked as deleted | c |
| 3 Dummy | c | 44 Write record then mark as deleted | d |
| 10 Advance through end-of-file | b | 46 Get current disk address | h |
| 11 Reverse through end-of-file | b | 47 Set disk address | h |
| 12 Write end-of-file¹ | b | 55 Format track | h |
| 13 Rewind² | b | 56 Read and test CRC | c |
| 15 Reverse one record | b | 60 Read (with 32-bit sector address) | c |
| 16 Advance one record | b | 61 Write (with 32-bit sector address) | d |
| 20 Read status | a | 66 Read without cache clear (With 32 bit sector address) | c |
| 21 Clear device | b | ||
| 24 Read last status | a | ||
| 36 Read extended status | c | ||
| 40 Select floppy format⁴ | f |
Notes:¶
¹ Write a block in a unique format to indicate end-of-file. The disk address is incremented by one.
² The disk address is set to zero.
³ All data on the floppy disk is overwritten and the floppy disk is formatted, i.e. new addresses are written. Floppy format must be set (function 40) before using this function.
⁴ The following floppy formats are available:
0: 512 bytes per sector, 8 sectors per track, 77 tracks, SS/SD (Standard format used by ND file system)
1: 256 bytes per sector, 15 sectors per track, 77 tracks, SS/SD
2: 128 bytes per sector, 26 sectors per track, 77 tracks, SS/SD
4: 512 bytes per sector, 8 sectors per track, 154 tracks, DS/SD
5: 256 bytes per sector, 15 sectors per track, 154 tracks, DS/SD
6: 128 bytes per sector, 26 sectors per track, 154 tracks, DS/SD
8: 512 bytes per sector, 15 sectors per track, 77 tracks, SS/DD
9: 256 bytes per sector, 26 sectors per track, 77 tracks, SS/DD
11: 1024 bytes per sector, 8 sectors per track, 77 tracks, SS/DD
Page 146¶
SINTRAN III Monitor Calls¶
12: 512 bytes per sector, 15 sectors per track, 154 tracks, DS/DD
This format allows usage of tracks 155-160, but these tracks must be formatted by the format track function.
13: 256 bytes per sector, 26 sectors per track, 154 tracks, DS/DD
15: 1024 bytes per sector, 8 sectors per track, 154 tracks, DS/DD
(Standard format used by ND file system.)
Function Codes for VERSATEC: (bits 0-5)¶
The Call Formats are described on page 140.
| Function Code8/name | Call format | Function Code8/name | Call format |
|---|---|---|---|
| 1 Write record | d | 24 Read last status | a |
| 20 Read status | a | 30 Set alphanum.mode | b |
| 21 Clear VERSATEC | b | 31 Set graphic mode | b |
| 22 Clear device w/error exit | a | 32 Give form feed | b |
Status:¶
(The condition is true if the bit is 1.)
bit 0: Ready for transfer, interrupt enabled.
1: Error interrupt enabled.
2: Device active.
3: Device ready for transfer.
4: Set if either of bits 6 or 7 is set.
5: Not used.
6: No paper.
7: Plotter not on-line.
8-12: Not used, bits set at random.
13: Plotter ready.
14-15: Not used, bits set at random.
Page 147¶
Function Codes for SCSI Streamer Devices: (bits 0-5)¶
The Call Formats are described on page 140.
| Function Code & Name | Call Format | Function Code & Name | Call Format |
|---|---|---|---|
| 0 Read record | c | 24 Read last status ³) | a |
| 1 Write record | d | 30 Load tape | b |
| 7 Erase tape | b | 31 Reset device | b |
| 10 Advance through end-of-file ¹) | b | 34 Reserve unit | b |
| 12 Write end-of-file | b | 35 Release unit | b |
| 13 Rewind | b | 42 Read format | e |
| 16 Advance given number of records | b | 70 Retension | b |
| 17 Unload | b | 73 Test unit ready | b |
| 20 Read status ²) | a | 76 Advance to end of recorded area | b |
| 23 Select density | e |
Notes:¶
¹) Tape is positioned after the end-of-file mark.
²) Read hardware status on last unit operated upon. It can be any unit on the device.
³) Read hardware status of the last operation on own device.
Page 148¶
Call formats:¶
The call formats are marked from a-i. All formats, except "a", give the Standard Error Code as return status. See appendix A. The return status 0 means the call terminated correctly. Parameters which do not affect the call format are called "dummy" below.
The call format "a" is:¶
DeviceFunction(function code,dummy,logical device no.,dummy,dummy)
The hardware status is returned as error code. The device must be reserved. Otherwise a positive error code may not be the correct hardware status.
The call format "b" is:¶
DeviceFunction(function code,dummy,logical device no.,dummy,dummy)
The call format "c" is:¶
DeviceFunction(function code,array name,logical device number, maximum numbers of words or bytes,numbers of words/bytes read)
The call format "d" is:¶
DeviceFunction(function code,array name,logical device number, number of words or bytes to be written,dummy)
The number of words to be written is rounded off to whole 16-bit words.
The call format "e" is:¶
DeviceFunction(function code,dummy,logical device number, density/parity,dummy)
| density/parity | |
|---|---|
| 0 | 1600 BPI |
| 1 | 6250 BPI |
| 2 | 800 BPI |
| or 800, 1600 or 6250. |
The call format "f" is:¶
DeviceFunction(function code,dummy,logical device number, input format,dummy)
The call format "g" is:¶
DeviceFunction(function code,dummy,logical device number,dummy, output format)
Page 149¶
SINTRAN III Monitor Calls¶
The call format "h" is:¶
DeviceFunction(function code, dummy, logical device number, dummy, disk address)
The call format "i" is:¶
DeviceFunction(function code, status array, logical device number, dummy, dummy)
The status array contains 8 bytes status on output.
The call format "j" is:¶
DeviceFunction(function code, status array, logical device number, dummy, dummy)
The status array contains 26 bytes status on output.
The call format "k" is:¶
DeviceFunction(function code, dummy, logical device number, retry/erase gap values, dummy)
Retry counter in first two bytes, erase gap counter in last two bytes.
The call format "l" is:¶
DeviceFunction(function code, dummy, logical device number, dummy, no. of records/no. of words per record)
Number of records in first two bytes, number of words per record in last two bytes.
Page 150¶
220B DirectOpen¶
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.
See also OpenFile and CloseFile.
Parameters¶
- File number.
- Access code. The legal values are shown below.
| Code | Description |
|---|---|
| 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. |
- File name.
- File type. Do not include the colon. Default is 'SYMB'.
- Standard Error Code. See appendix A.
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 ...
Page 151¶
SINTRAN III Monitor Calls¶
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 |
Page 152¶
71B DISABLEESCAPE¶
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.
See also EnableEscape, SetEscapeHandling, and @DISABLE-ESCAPE-FUNCTION.
PARAMETERS¶
The terminal's logical device number. This parameter is ignored for background programs. Your own terminal is always selected.
PASCAL¶
DeviceNumber : INTEGER2;
...
EscapeDisable(DeviceNumber); {Note routine name.}
COBOL¶
01 DeviceNumber COMP.
...
MONITOR-CALL "DisableEscape" USING DeviceNumber.
FORTRAN¶
INTEGER DeviceNumber
...
Monitor_Call('DisableEscape', DeviceNumber)
Page 153¶
SINTRAN III Monitor Calls¶
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 |
Page 154¶
277B DISABLELOCAL¶
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.
- You enable the key with EnableLocal.
- The key is not enabled when a program terminates.
- The COSMOS CONNECT-TO program tells you which key to use as the LOCAL key.
See also EnableLocal.
PARAMETERS¶
- Standard Error Code. See appendix A.
| PASCAL |
|---|
| LocalDisable; [Note routine name.] |
| IF ErrCode <> 0 THEN ... |
| COBOL |
|---|
| 01 ErrCode COMP. |
| ... |
| MONITOR-CALL "DisableLocal". |
| CALL "CbError" USING ErrCode. |
| IF ErrCode NOT = 0 GO ... |
| FORTRAN |
|---|
| Monitor_Call('DisableLocal') |
| IF (ErrCode .NE. 0) THEN ... |
Page 155¶
SINTRAN III Monitor Calls¶
PLANC¶
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DisableLocal')
ASSEMBLY-500¶
Not available.
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
Page 156¶
137B DisableRTStart RTOFF¶
Disables start of RT programs. No RT program can be started before EnableRTStart is executed.
- RT programs in the time queue will not start. Other active RT programs are not affected.
See also EnableRTStart, and @RTOFF.
PARAMETERS¶
- Address of the RT description. 0 means calling program.
- Standard Error Code. See appendix A.
PASCAL¶
RTProgram : INTEGER2;
DisableRTStart(RTProgram);
COBOL¶
01 RTProgram COMP.
MONITOR-CALL "DisableRTStart" USING RTProgram.
FORTRAN¶
INTEGER RTProgram
Monitor_Call('DisableRTStart', RTProgram)
Page 157¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 158¶
401B DiAssemble¶
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).
- The returned string is truncated if it contains more characters than given in the last parameter.
- Causes an error return in ND-500 if called from a standard domain started directly from SINTRAN III.
PARAMETERS¶
- Program address.
- The assembly instruction.
- Maximum number of characters in the assembly instruction.
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)
Page 159¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 160¶
SINTRAN III Monitor Calls¶
DMAFUNCTION¶
Performs various DMA functions. Most functions transfer data between your memory area and a DMA channel.
- The output part of the DMA channel must be reserved. See ReserveResource. Do not reserve the input part.
- RT programs may fix the segment which holds the memory buffer contiguously. See FixContiguously. The data is transferred directly into the memory buffer.
- No Wait can only be used from ND-500 or if the segment is fixed contiguously.
See also DeviceFunction.
PARAMETERS¶
- Logical device number of a DMA channel.
- Function code. See the next page.
- Memory address of data to send or receive for function code 0:3. Function codes 54:57 use programmed input/output devices. Then this parameter contains the logical device number of the device. The parameter is ignored for other function codes.
- Input parameter. Function dependent. See the next page.
- Output parameter. Function dependent. See the next page. Some functions return a status value. Bits 0:7 and bit 15 are copied from the device status word. Bits 8:14 are user status lines. Bit 16 means that an DMA interrupt has occurred. Bit 17 means timeout.
- Standard Error Code. See appendix A.
PASCAL¶
DeviceNo, FuncCode : INTEGER2; InPara, OutPara : LONGINT;
DataAddress : ARRAY [0..16] OF RECORD...END;
...
DMAFunction(DeviceNo, FuncCode, DataAddress, InPara, OutPara);
IF ErrCode <> 0 THEN...
COBOL¶
01 DeviceNo COMP. 01 FuncCode COMP.
01 InPara COMP PIC S9(10).
01 OutPara COMP PIC S9(10).
01 DataAddress.
02 array COMP OCCURS 256 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "DMAFunction" USING DeviceNo, FuncCode, DataAddress,
InPara, OutPara.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO...
FORTRAN¶
INTEGER DeviceNo, FuncCode
INTEGER*4 InPara, OutPara
INTEGER DataAddress(256)
Monitor_Call('DMAFunction', DeviceNo, FuncCode,
C DataAddress(1), InPara, OutPara)
IF (ErrCode .NE. 0) THEN...
Page 161¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DeviceNo, FuncCode
INTEGER4 : InPar, OutPar
BYTES : DataAdr(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('DMAFunction', DeviceNo, FuncCode, DataAdr(0), InPar, OutPar)
ASSEMBLY-500¶
| DeviceNo | : W BLOCK 1 |
|---|---|
| FuncCode | : W BLOCK 1 |
| InPara | : W BLOCK 1 |
| %Length must be an even number of bytes. | |
| OutPara | : W BLOCK 1 |
| Buffer | : W BLOCK 256 |
| ErrCode | : W BLOCK 1 |
| DMAFunction | : EQU 37B9 + 33B8 |
|
MAC¶
LDT LDN %Load register T with the logical device number.
LDA (PAR %Load register A with address of parameter list.
MON 333 %Monitor call DMAFunction.
STA STAT
...
STAT, 0
PAR, FUNC %Parameter list.
ADR
IPAR
OPAR
FUNC, ...
ADR, ... %Address in your memory area.
IPAR, 0:0 %A 32-bit input parameter.
OPAR, 0:0 %A 32-bit output parameter.
Page 162¶
SINTRAN III Monitor Calls¶
| Function code | Input parameter | Output parameter |
|---|---|---|
| 1 | Receive DMA data | length in bytes |
| 2 | Send DMA data | length in bytes |
| 3 | Receive DMA data with No Wait | length in bytes |
| 4 | Send DMA data with No Wait | length in bytes |
| 7 | Test mode | not used |
| 20 | Read DMA status | not used |
| 21 | Clear DMA device | not used |
| 24 | Read last status | not used |
| 54 | Programmed input without interrupt | not used |
| 55 | Programmed output without interrupt | not used |
| 56 | Programmed input with interrupt | not used |
| 57 | Programmed input with interrupt | not used |
| 62 | Wait for DMA finished interrupt | 1 to 4 |
| 64 | Enable DMA interrupt | not used |
| 65 | Disable DMA interrupt | not used |
| 70 | Write user control lines | not used |
Notes¶
- DPARI = 2 : Enable RT on interrupt (set repeated execution)
- DPARI = 3 : Disable RT on interrupt (clear repeated execution)
ND-100 and ND-500 | All users | All programs
Page 163¶
Monitor Calls¶
Format¶
| MCPL Prom/pt No | Length + Type | Monitor Function + PAR |
|---|---|---|
| 0080 | 19F | Create new job. Reg A: Job type |
When this monitor tunction has beem completed sucessfully. REG A will contain the job number.
Error Returns¶
| Error Code | Description |
|---|---|
| 0000 6401 | Too many jobs specified. |
| 0000 6402 | Invalid job type number. |
| 0000 6403 | Out of swap space. |
Monitor Calls¶
SINTRAN III Version E¶
For exercise with following standard.
Function Summary¶
Create a new job with specific job type through monitor function calls. The call should specify the job type number in Register A and retrieve the job number in case of successful execution. Various error codes may be returned based on the conditions encountered, such as job limitations, invalid types, or space availability, ensuring accurate job creation handling.
Page 164¶
72B ENABLEESCAPE¶
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.
See also DisableEscape, SetEscapeHandling, and @ENABLE-ESCAPE-FUNCTION.
PARAMETERS¶
- The terminal's logical device number. This parameter is ignored for background programs. Your own terminal is always selected.
PASCAL¶
DeviceNumber : INTEGER2;
...
EscapeEnable(DeviceNumber); [Note routine name.]
COBOL¶
01 DeviceNumber COMP.
...
MONITOR-CALL "EnableEscape" USING DeviceNumber.
FORTRAN¶
INTEGER DeviceNumber
...
Monitor_Call('EnableEscape', DeviceNumber)
Page 165¶
SINTRAN III Monitor Calls¶
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 |
Page 166¶
EnableLocal¶
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.
- 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¶
- Program address of local handling.
- Standard Error Code. See appendix A.
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 ...
Page 167¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : ProgramAddress
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('EnableLocal', ProgramAddress)
ASSEMBLY-500¶
Not available.
MAC¶
| Instruction | Code | Description |
|---|---|---|
| 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 number in register A. |
ND-100 | All users | All programs
Page 168¶
EnableRTStart¶
RTON
RT programs cannot be started after DisableRTStart has been executed. Use EnableRTStart to do this.
See also DisableRTStart, and @RTON.
PARAMETERS¶
- Address of the RT description. 0 means calling program.
PASCAL¶
RTProgram : INTEGER2;
...
EnableRTStart(RTProgram);
COBOL¶
01 RTProgram COMP.
...
MONITOR-CALL "EnableRTStart" USING RTProgram.
FORTRAN¶
INTEGER RTProgram
...
Monitor_Call('EnableRTStart', RTProgram)
Page 169¶
SINTRAN III Monitor Calls¶
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 |
Page 170¶
ErrorMessage¶
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 and WarningMessage. WarningMessage writes out the error message without terminating the program.
Parameters¶
Error number of the message to be printed. Use octal numbers.
PASCAL¶
ErrNumber : INTEGER2;
...
ErrorMessage(ErrNumber);
COBOL¶
01 ErrNumber COMP.
...
MONITOR-CALL "ErrorMessage" USING ErrNumber.
FORTRAN¶
INTEGER ErrNumber
...
Monitor_Call('ErrorMessage', ErrNumber)
Page 171¶
SINTRAN III Monitor Calls¶
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 |
Page 172¶
400B ERRORRETURN¶
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.
| PASCAL | |
|---|---|
| ErrorReturn; |
| COBOL |
|---|
| MONITOR-CALL "ErrorReturn". |
| FORTRAN |
|---|
| Monitor_Call('ErrorReturn') |
Page 173¶
SINTRAN III Monitor Calls¶
| PLANC |
|---|
Monitor_Call('ErrorReturn')
| ASSEMBLY-500 |
|---|
ErrorReturn : EQU 37B9 + 400B
...
CALLG ErrorReturn, 0
| MAC |
|---|
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 174¶
126B ExactDelayStart¶
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.
- StopRTProgram removes the RT program from the time queue.
See also DelayStart and StartupTime. DelayStart allows you to specify the period in seconds, minutes, and hours.
PARAMETERS¶
- Address of RT description. Use 0 for the calling program.
- Number of basic time units before start.
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)
Page 175¶
SINTRAN III Monitor Calls¶
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.
...
PAR, RTPRO %Address of RT description.
TIME %Number of basic time units the program
... % is to stay in the time queue.
RTPRO, ...
TIME, ... %A double word.
... %
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Page 176¶
ExactInterval¶
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.
See also StartupInterval and @DINTV. StartupInterval allows you to specify intervals in seconds, minutes or hours.
Parameters¶
- Address of an RT description. 0 means calling program. GetRtAddress gives RT description addresses.
- Period between executions in basic time units.
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)
Page 177¶
SINTRAN III Monitor Calls¶
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
Page 178¶
127B ExactStartup DABST¶
Starts an RT program at a specific time. The time is given in basic time units. A basic time unit is 1/50th of a second. The RT program is moved from the time queue to the execution queue at the specified time.
- It may already be later than the time specified. The RT program is then scheduled for the next day.
- The RT program may already be in the time queue. It is then reinserted according to the new time specifications.
- AdjustClock and @CLADJ affect the startup. The RT program starts according to the new time.
- Use GetBasicTime to read the internal time in basic time units.
See also StartupTime. StartupTime allows you to specify the time in hours, minutes or seconds.
PARAMETERS¶
- Address of an RT description. 0 means calling program. GetRtAddress gives RT description addresses.
- StartupTime in basic time units.
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)
Page 179¶
SINTRAN III Monitor Calls¶
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
Page 180¶
317B ExecuteCommand UECOM¶
Executes a SINTRAN III command. Specify the command name and the parameters as a text string.
- An error message is output if an error occurs. The program does not terminate.
- Some commands may destroy your program. Commands which affect your program’s memory area should be used with care.
- Some commands have output, e.g. @LIST-FILES. This is displayed on the terminal.
- Use SuspendProgram to wait a second between two ExecuteCommands which depend on each other, e.g. CreateFile and OpenFile.
- It may be advisable to use @enable-escape before this call, to avoid having problems terminating some commands.
See also CallCommand and SetCommandBuffer. CallCommand terminates the program if an error occurs.
PARAMETERS¶
Command with parameters (do not include the @ character). Missing parameters are prompted for.
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))
Page 181¶
SINTRAN III Monitor Calls¶
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 |
| MON | 317 |
| ... | |
| CMND, | 'CLOSE-FILE 102' |
| ND-100 and ND-500 | All users | Background programs |
Page 182¶
143B ExecutionInfo RS10¶
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.
- Your terminal number is returned as the command input and output files in interactive programs.
Parameters¶
- Execution mode.
- 0 means interactive program
- 1 means batch job
- 2 means mode job
- 3 means RT program
- Logical device number for command input. This is your terminal number for interactive programs. Batch and mode jobs return the file number of the command input file. Not used for RT programs.
- Logical device number for command output. This is your terminal number for interactive programs. Batch and mode jobs return the file number of the command output file. Not used for RT programs.
- Directory and user index of the program's owner. On the ND-100, the Directory Index is the uppermost 8 bits and the User Index is the lowermost 8 bits. On the ND-500, the Directory Index is the uppermost 8 bits of the lowermost halfword. i.e. bits 8-15, and the User Index is the lowermost 8 bits, i.e. bits 0-7, (the uppermost halfword, bits 16-31, is zero - i.e. all bits are cleared). Not used for RT programs.
- Standard Error Code. See appendix A.
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 ...
Page 183¶
SINTRAN III Monitor Calls¶
PLAN C¶
INTEGER : ExecutMode, InputDev, OutputDev, UserIndex
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ExecutionInfo', ExecutMode, InputDev, OutputDev, UserIndex)
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 |
Page 184¶
OB EXITFROMPROGRAM LEAVE¶
Terminates the program. Returns to SINTRAN III. Batch jobs continues with the next command.
- Background programs close all files not set permanently open. RT programs do not close any files.
- RT programs release all reserved devices.
See also ExitRTProgram.
PARAMETERS¶
This monitor call has no parameters.
| Language | Code |
|---|---|
| PASCAL | StopProgram; [Note routine name.] |
| COBOL | MONITOR-CALL "ExitFromProgram". |
| FORTRAN | Monitor_Call('ExitFromProgram') |
Page 185¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 186¶
133B ExitFromSegment MEXIT¶
Exchanges one or both current segments. Commonly used to return after the monitor call JumpToSegment. ChangeSegment may be used instead of JumpToSegment and ExitFromSegment. The segment numbers are restricted to 8-bits (values 0-255). Use SegmentFunction (MON 341) with version K of SINTRAN III.
- The L register must contain the return address. This makes the monitor call complicated to use in high level languages.
See also JumpToSegment, ChangeSegment and SegmentFunction.
PARAMETERS¶
Segment numbers. The most significant byte of this 16-bit integer contains the first segment number. The next byte contains the second segment number. If you only want to change the first segment, use 377B for the segment you do not want to change.
PASCAL¶
SegmentNumber : INTEGER2;
...
ExitFromSegment(SegmentNumber);
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 187¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
Not available.
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
Page 188¶
ExitRTProgram¶
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.
See also ExitFromProgram and StopRTProgram.
Parameters¶
This monitor call has no parameters.
| Pascal |
|---|
| ExitRTProgram; |
| COBOL |
|---|
| MONITOR-CALL "ExitRTProgram". |
| FORTRAN |
|---|
| Monitor_Call('ExitRTProgram') |
Page 189¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 190¶
231B EXPANDFILE¶
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.
See also CreateFile and @EXPAND-FILE.
PARAMETERS¶
| Description |
|---|
| ➙ File name. It may be abbreviated, but this slows down execution. |
| ➙ Number of additional pages. |
| ➙ Standard Error Code. See appendix A. |
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 ...
Page 191¶
SINTRAN III Monitor Calls¶
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 |
Page 192¶
412B FileAsSegment FSCNT¶
Connects a file as a segment to your domain. You can then access the file as a logical segment. This reduces the access time.
- The file must be open. The access must be specified in the OpenFile call.
- The file is disconnected when it is closed.
- A file may be connected to several processes simultaneously. It is your responsibility to synchronize simultaneous accesses.
- You may not use ReadFromFile (mon 117) or WriteToFile (mon 120) on a file which is connected to a segment. Refer to these monitor calls for further details.
See also FileNotAsSegment which disconnects the file.
PARAMETERS¶
- File number. See OpenFile.
- Logical segment number in the domain. The segment number must be free. Use 0 to select the first free segment. The last parameter returns the logical segment number.
- Access type. Use 0 if the file contains initial data. 1 means uninitialized, empty file. 2 means primarily sequential access. Use 3 for a combination of 1 and 2. Type 2 reduces the access time if access is sequential.
- Logical segment number selected if you give 0 in the second parameter.
- Standard Error Code. See appendix A.
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 ...
Page 193¶
SINTRAN III Monitor Calls¶
PLAN C¶
INTEGER : FileNo, LogSegmentNo, Datatype, SegmentNo
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('FileAsSegment', FileNo, LogSegmentNo, Datatype, SegmentNo)
ASSEMBLY-500¶
FileNo : W BLOCK 1
LogSegmentNo : W BLOCK 1
Type : W BLOCK 1
SegmentNo : W BLOCK 1
ErrCode : W BLOCK 1
FileAsSegment : EQU 37B9 + 412B
...
CALLG FileAsSegment, 4, FileNo, LogSegmentNo, Type, SegmentNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 194¶
413B FileNotAsSegment FSDCNT¶
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.
See also FileAsSegment.
PARAMETERS¶
- File number. See OpenFile.
- Segment number (optional parameter).
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)
Page 195¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 196¶
FileSystemFunction¶
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.
- This monitor call is particularly useful for SIBAS and ISAM applications.
Parameters¶
- Function code. (More details are given on page 190.)
- 1 means write back to disk the index block of an open file.
- 2 means return the block size of an opened file.
- 3 means get full file name of an opened file.
- 4 means get information about a file or device.
- File number. See OpenFile.
- Parameter 2. Block size if function code 2, buffer to receive file name if function code 3.
- If function code 4, TYPRING.
- If function code 4, status.
- If function code 4, SINTRAN III open-file number or device number.
- Standard Error Code. See appendix A.
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 ...
Page 197¶
SINTRAN III Monitor Calls¶
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¶
| Name | Type | Description |
|---|---|---|
| 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 | : 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 A with the file number.
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
*+26/ %Buffer of 26 words.
PAR2, 0 %Block size.
| ND-100 and ND-500 | All users | All programs |
Page 198¶
FUNCTION NO. 1:¶
Function:¶
Write back the open-file-table index block for an open file, to disk.
Input parameters:¶
| Parameter | Description |
|---|---|
| T-register | function = 1 |
| A-register | open file number |
Output parameters:¶
| Parameter | Description |
|---|---|
| Return | Error - A-register contains error code |
| Skip return | OK, normal return |
FUNCTION NO. 2:¶
Function:¶
Return block size of an open file.
Input parameters:¶
| Parameter | Description |
|---|---|
| T-register | function = 2 |
| A-register | open file number |
Output parameters:¶
| Parameter | Description |
|---|---|
| Return | Error - A-register contains error code |
| Skip return | OK, normal return, A-register = block size in words |
FUNCTION NO. 3:¶
Function:¶
Get full file name of an open file.
File name can be a remote file and contain the following parameters:
system.(directory:user)file:type
Input parameters:¶
| Parameter | Description |
|---|---|
| T-register | function = 3 |
| A-register | open file number |
| X-register | address of buffer to receive file name |
Output parameters:¶
| Parameter | Description |
|---|---|
| Return | Error - A-register contains error code |
| Skip return | OK, normal return, buffer pointed at by X contains name |
FUNCTION NO. 4:¶
Function:¶
Get information of an open file identified by open file number or device number.
Input parameters:¶
| Parameter | Description |
|---|---|
| T-register | function = 4 |
| A-register | open file number or device number |
Page 199¶
SINTRAN III Monitor Calls¶
Output parameters:¶
Return: Error - A-register contains error code
Skip return: OK, normal return, the following information is returned:
| Parameter | Description |
|---|---|
| A | Open file number or device number (the value returned in the A register is the opposite of A as input, i.e., if open file number is input, device number is returned, and the other way around). |
| D | TYPRING bits (TYPRING word from data field of device) |
| X | Status: bit 0 = 1 if file is open for write; bit 1 = 1 if spooling file or terminal/TAD. |
Page 200¶
160B FIXCONTIGUOUS FIXC¶
Places a segment in physical memory. Its pages will no longer be swapped to the disk. The segment is placed in a contiguous area of physical memory. This function is useful for time-critical operations.
- The segment must be created with the RT LOADER as a non-demand segment.
- Use UnfixSegment or @UNFIX to allow the RT LOADER to clear the segment.
- Your program normally terminates if you refer to a nonexistent segment or a demand segment. An error message is output on the error device. See parameters 1 and 3 to get a status value instead.
- Only a limited number of pages can be fixed. This limit is defined when SINTRAN III is generated. You may change it with the command CHANGE-VARIABLE in the SINTRAN-SERVICE-PROGRAM.
See also UnfixSegment, FixScattered, FixInMemory, MemoryAllocation, FixIOArea, and @FIXC.
PARAMETERS¶
- Segment number to be fixed. Set bit 15 to 1 if you want a return status.
- First physical page number to be used.
- Return status if bit 15 of the segment number is set. Dummy on the ND-500. 0 means OK. -1 means space not available. -2 means illegal segment. -4 means attempt to fix demand segment. -5 means attempt to fix too many pages. -6 means segment already fixed at another address.
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)
Page 201¶
SINTRAN III Monitor Calls¶
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 |
Page 202¶
410B FIXINMEMORY¶
Fixes a logical segment of your domain in physical memory. You can fix the whole or part of the segment. This speeds up access to the segment. It is also useful in segment sharing.
- Only data segments may be fixed.
See also MemoryUnFix.
PARAMETERS¶
- Type of fixing. 0 means fix the pages scattered. 1 means fix the pages contiguously and return the start address. 2 means fix at the given memory address.
- Start address in your domain. It should be a 32 bit address including the segment number.
- Length in bytes. Use -1 to fix the remaining part of the segment.
- Physical memory address in the ND-100 if type 1 or 2 is used. The address is the start of a physical page.
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)
Page 203¶
SINTRAN III Monitor Calls¶
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.
| ND-500 | User RT and user SYSTEM | RT programs |
Page 204¶
FIXIOAREA¶
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.
See also FixScattered, FixContiguous, FixInMemory, and MemoryAllocation.
PARAMETERS¶
- Start address in the domain.
- Number of bytes to fix.
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)
Page 205¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 206¶
115B FixScatter FIX¶
Place a segment in physical memory. Its pages will no longer be swapped to the disk. The segment must be non demand. Its pages will be scattered in physical memory. You may, for example, use this function for time critical operations or for allocating DMA buffers.
- Use UnFixSegment or @UNFIX to allow the RT LOADER to clear the segment.
- Your program terminates if you refer to a nonexistent segment or a demand segment. An error message is output on the error device.
- Only a limited number of pages can be fixed. This limit is defined when SINTRAN III is generated. You may change it with the command CHANGE-VARIABLE in the SINTRAN-SERVICE-PROGRAM.
See also UnFixSegment, FixContiguous, FixInMemory, MemoryAllocation, FixIOArea, and @FIXC.
PARAMETERS¶
- Segment number to be fixed in memory.
PASCAL¶
SegmentNumber : INTEGER2;
...
FixScattered(SegmentNumber);
COBOL¶
01 SegmentNumber COMP.
...
MONITOR-CALL "FixScattered" USING SegmentNumber.
FORTRAN¶
INTEGER SegmentNumber
...
Monitor_Call('FixScattered', SegmentNumber)
Page 207¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 208¶
ForceRelease¶
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.
See also ForceReserve, ReleaseResource, and @PRLRS.
Parameters¶
- Logical device number. See appendix B.
- Input or output flag. Use 0 for the input part and 1 for the output part.
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)
Page 209¶
SINTRAN III Monitor Calls¶
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 |
Page 210¶
124B FORCE RESERVE¶
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.
See also ForceRelease, ReserveResource, and @PRSRV.
PARAMETERS¶
- Logical device number. See appendix B.
- Input or output flag. Use 0 for the input part and 1 for the output part.
- RT description address of the RT program to reserve the device. Use 0 for your own program.
- Return status. 0 means OK. A negative value is returned if the device already was reserved. No value is returned from the ND-500.
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)
Page 211¶
SINTRAN III Monitor Calls¶
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 |
Page 212¶
FORCE TRAP¶
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.
See also GetTrapReason.
PARAMETERS¶
- Process number to be trapped.
- Reason code. Bit 31:16 contains the process number and bit 15:0 the magic number.
| Language | Availability |
|---|---|
| PASCAL | Not available. |
| COBOL | Not available. |
| FORTRAN | Not available. |
Page 213¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
ProcessNumber : W BLOCK 1
ReasonCode : W BLOCK 1
ForceTrap : EQU 37B9 + 435B
...
CALLG ForceTrap, 2, ProcessNumber, ReasonCode
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 214¶
256B FULLFILENAME¶
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.
See also GetFileName.
PARAMETERS¶
- The abbreviated file name. You may include a file type.
- Full file name, terminated by an apostrophe (').
- Default file type (do not include the colon). Use this parameter on ND-100 only. It is ignored by the ND-500.
- Standard Error Code. See appendix A.
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),
FileType(1:4))
C IF (ErrCode .NE. 0) THEN ...
Page 215¶
SINTRAN III Monitor Calls¶
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. |
Footer¶
ND-100 and ND-500 | All users | All programs
Scanned by Jonny Oddene for Sintran Data © 2020
Page 216¶
421B GETACTIVESEGMENT¶
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.
- Unused segments have the address 0.
PARAMETERS¶
- A 2048 byte buffer, i.e. 1 page, containing pointers to segment names.
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))
Page 217¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : Buffer(0:2047)
...
Monitor_Call('GetActiveSegment', Buffer(0))
ASSEMBLY-500¶
Buffer : W BLOCK 1024
GetActiveSegment : EQU 37B9 + 421B
...
CALLG GetActiveSegment, 1, Buffer
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 218¶
GetAddressArea¶
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:
- The size of the background segment is defined when SINTRAN III is generated for your computer.
See also @CHANGE-BACKGROUND-SEGMENT-SIZE.
PARAMETERS¶
The size of the address area. 100B means one 128 Kbyte address area. 200B means two 128 Kbyte address areas, one for instructions and one for data.
PASCAL¶
SegmentSize : INTEGER2;
...
GetAddressArea(SegmentSize);
COBOL¶
01 SegmentSize COMP.
...
MONITOR-CALL "GetAddressArea" USING SegmentSize.
FORTRAN¶
INTEGER SegmentSize
...
Monitor_Call('GetAddressArea', SegmentSize)
Page 219¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SegmentSize
...
Monitor_Call('GetAddressArea', SegmentSize)
ASSEMBLY-500¶
Not available.
MAC¶
| MON | 222 | %Monitor call GetAddressArea. |
| STA | SIZE | %Store returned size of background segment. |
| ... | ||
| SIZE, | 0 |
ND-100 | All users | Background programs
Page 220¶
GetAllFileIndexes¶
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.
See also GetDirUserIndexes, GetDirNameIndex, GetFileIndexes, GetDirEntry, GetUserEntry, GetObjectEntry, and GetDefaultDir.
Parameters¶
| Parameter | Description |
|---|---|
| File number | See Openfile. |
| Directory index | The directory index. |
| User index | The user index. |
| Object index | The object index. |
| Remote flag | Set to 0 if the file is on the local computer. A file on a remote computer returns 1. |
| 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. |
| Standard Error Code | See appendix A. |
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
Page 221¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : FileNo, DirIndex, UserIndex, ObjectIndex, RemoteFlag
BYTES : RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('GetAllFileIndexes', FileNo, DirIndex, UserIndex, ObjectIndex,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500¶
| Variable | Width | Description |
|---|---|---|
| FileNo | W BLOCK 1 | |
| DirIndex | W BLOCK 1 | %If bit 7 is set, SysId is a 5th parameter. |
| UserIndex | W BLOCK 1 | |
| ObjectIndex | W BLOCK 1 | |
| SysId | STRING 16 | %Remote system name as an optional 5th parameter. |
| ErrCode | W BLOCK 1 |
GetAllFileIndexes : EQU 37B9 + 217B
...
CALLG GetAllFileIndexes, 4, FileNo, DirIndex, UserIndex, ObjectIndex
% This call is for a local file. For a remote file, the
% format would be:
% CALLG GetAllFileIndexes, 5, FN, DI, UI, OI, SysID
IF K GO ERROR
...
ERROR : WI =: ErrCode %ErrorCode in W1 register.
MAC¶
LDA (BUFF %Buffer in which to return remote system
COPY SA DD % identification
LDA FILNO %File number returned from earlier OpenFile.
MON 217 %Monitor call GetAllFileIndexes.
JMP ERROR %Error return from monitor call.
STT INDEX %Normal return, store directory and user index.
STX OBJIX %Store object index.
COPY SD DA %Remote identification in D register if bit 15
STA REMID % in T register is set.
...
ERROR, ... %Error number in register A.
...
FILNO, ...
INDEX, 0 %Dir index: left byte. User index: right byte.
OBJIX, 0 %Object index.
REMID, 0 %Address of remote identification string.
BUFF, 0
*+40/
| ND-100 and ND-500 | All users | All programs |
Page 222¶
11B GetBasicTime¶
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.
See also GetCurrentTime, AdjustClock, and SetClock.
Parameters¶
- Internal time in basic time units.
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)
Page 223¶
SINTRAN III Monitor Calls¶
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 |
Page 224¶
62B GETBYTESINFILE RMAX¶
Gets the number of bytes in a file. Only the bytes containing data are counted.
- The file must be open.
- The number of bytes are only relevant to sequentially accessed files.
See also SetMaxBytes, GetBytesInfile and @FILE-STATISTICS.
PARAMETERS¶
| Description |
|---|
| File number. See OpenFile. |
| Number of bytes in the file. |
| Standard Error Code. See appendix A. |
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 ...
Page 225¶
SINTRAN III Monitor Calls¶
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, 0 %A double word
0 %
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 226¶
GetCurrentTime¶
Gets the current system time and date.
- The current system time is returned as basic time units, seconds, minutes, hours, day, month, and year.
See also GetBasicTime, AdjustClock, SetClock, and @DATCL.
Parameters¶
A 14 byte buffer on the ND-100 and a 28 byte buffer on the ND-500. The bytes are used as follows:
| Bytes | Description | ND-500 |
|---|---|---|
| 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 |
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))
Page 227¶
SINTRAN III Monitor Calls¶
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
Page 228¶
GetDefaultDir¶
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.
See also GetDirUserIndexes, GetDirNameIndex, GetFileIndexes, GetDirEntry, GetUserEntry, GetObjectEntry, and GetAllFileIndexes.
Parameters¶
| ➞ | The user name. A user in a remote system may be identified. |
| ➞ | The directory index. |
| ➞ | The user index in the directory. |
| ➞ | Standard Error Code. See appendix A. |
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 ...
Page 229¶
SINTRAN III Monitor Calls¶
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 |
Page 230¶
GetDeviceType¶
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¶
- Logical device number (1= own terminal). See appendix B.
- Input or output part. Use 0 for input and 1 for output.
- Device type. The numbers below are returned.
| Number | Description |
|---|---|
| 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 (returned in the combined A and D registers). The bits have the following meaning:
| Bit | Description |
|---|---|
| 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 10₈ | NOTS (NET/One Terminal Server) terminal. |
| Bit 11₈ | MTAD device. |
- Standard Error Code. See appendix A.
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 ...
Page 231¶
SINTRAN III Monitor Calls¶
INTEGER : DeviceNo, IOFlag, DevType
INTEGER4 : DevAttr
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetDeviceType', DeviceNo, IOFlag, DevType, DevAttr)
PLANC¶
| INTEGER | DeviceNo, IOFlag, DevType |
|---|---|
| INTEGER4 | 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 | %A double number. |
| 0 | % |
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 232¶
244B GetDirEntry¶
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.
See also GetDirUserIndexes, WriteDirEntry, GetUserEntry, and GetObjectEntry.
PARAMETERS¶
- The directory index. See GetDirUserIndexes.
- The 42-byte directory entry. See appendix C.
- Flag indicating whether or not the disk has spare-track allocation.
- Remote flag. Use 0 for the local computer and 1 for a remote computer.
- Remote system identification if remote flag is 1.
- Standard Error Code. See appendix A.
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 ...
Page 233¶
SINTRAN III Monitor Calls¶
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 |
Page 234¶
GetDirNameIndex¶
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¶
- Directory name.
- Directory index.
- Name index.
- Standard Error Code. See appendix A.
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 ...
Page 235¶
SINTRAN III Monitor Calls¶
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' %Get index of directory PACK-TWO.
DirIndex : W BLOCK 1
NameIndex : W BLOCK 1
ErrCode : W BLOCK 1
GetDirNameIndex : EQU 37B9 + 2438
...
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
| ND-100 and ND-500 | All users | All programs |
Page 236¶
213B GetDirUserIndexes¶
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.
Parameters¶
→ Directory name and user name, e.g. PACK-ONE:P-HANSEN. If there is no colon, the name is taken as a user name, and the indices referring to the user's main directory are returned.
← Directory index.
← User index.
← Standard Error Code. See appendix A.
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 ...
Page 237¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 238¶
GetErrorDevice¶
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.
See also @GET-ERROR-DEVICE and @SET-ERROR-DEVICE.
PARAMETERS¶
- The logical device number of the error device.
- RT description address of reserving RT program. 0 means unreserved.
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)
Page 239¶
SINTRAN III Monitor Calls¶
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 |
Page 240¶
207B GetErrorInfo RERRP¶
Gets information about the last real-time error. The monitor call returns the error, the RT program responsible for the error, and the program address where it occurred. A flag tells whether the RT program was aborted or not.
PARAMETERS¶
- A 12 byte error information. It has the meaning below.
| Byte | Description |
|---|---|
| 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. |
| 2:3 | Pointer to the user program address where the error occurred. |
| 4:5 | Additional error information. See appendix A. |
| 6:7 | Additional error information. See appendix A. |
| 8:9 | RT description address of the RT program causing the error. |
| 10:11 | Flag. 0 if SINTRAN III aborted the RT program. |
- Returned status. 0 means OK, 153B means illegal output buffer.
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)
Page 241¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : Buffer(0:11)
INTEGER : ReturnStatus
Monitor_Call('GetErrorInfo', Buffer(0), ReturnStatus)
ASSEMBLY-500¶
Not available.
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 |
Page 242¶
GetErrorMessage¶
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.
See also WarningMessage and ErrorMessage. ErrorMessage writes out the error message and terminates the program.
PARAMETERS¶
| Parameter | Description |
|---|---|
| ➞ Error number of the message to be printed. Use octal numbers. | |
| ➞ Error message text. | |
| ← Standard Error Code. See appendix A. |
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 ...
Page 243¶
SINTRAN III Monitor Calls¶
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 |
Page 244¶
230B GEtEscLocalChars¶
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.
- The local function is only used by COSMOS.
See also SetEscapeHandling, SetEscLocalChars, OnEscLocalChars, and OffEscLocalChars.
PARAMETERS¶
- Logical device number. Only used by RT programs. Your own terminal is always used in background program. See appendix B.
- The local character.
- The escape character.
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)
Page 245¶
SINTRAN III Monitor Calls¶
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.
| ND-100 and ND-500 | All users | All programs |
Page 246¶
274B GetFileIndexes FOBJN¶
Gets the directory index, the user index, and the object index of a file. These are indexes in the file system. See the SINTRAN III System Supervisor {ND-830003} for more details.
- The file need not be open.
See also GetAllFileIndexes, GetDirUserIndexes, GetDirNameIndex, GetDirEntry, GetUserEntry, GetObjectEntry, and GetDefaultDir.
PARAMETERS¶
| Parameter | Description |
|---|---|
| File name | Abbreviated file names are less efficient. |
| File type | Not used on the ND-100. Do not include the colon. |
| Directory index | - |
| User index | - |
| Object index | - |
| Object index of the next file version | Equal to object index if no more versions exist. |
| Standard Error Code | See appendix A. |
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 ...
Page 247¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 248¶
GetFileName¶
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.
See also FullFileName.
Parameters¶
- Directory index.
- User index.
- Object index.
- File name.
- Remote flag. Use 0 for a file on the local computer. Use 1 for a file on a remote computer. Specify the remote computer in the next parameter.
- Remote system identification if remote flag is 1. Not returned by ND-500.
- Standard Error Code. See appendix A.
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 ...
Page 249¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DirIndex, UserIndex, ObjectIndex, RemoteFlag
BYTES : FileName(0:63), RemoteSystem(0:63)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('GetFileName', DirIndex, UserIndex, ObjectIndex, FileName,&
RemoteFlag, RemoteSystem)
ASSEMBLY-500¶
DirIndex : W BLOCK 1
UserIndex : W BLOCK 1
ObjectIndex : W BLOCK 1
FileName : STRING 64
SysId : STRING 20 %Optional parameter if bit 7 in DirIndex is set.
ErrCode : W BLOCK 1
GetFileName : EQU 37B9 + 273B
...
CALLG GetFileName, 4, DirIndex, UserIndex, ObjectIndex, FileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDT INDEX %Left byte: dir index. Right byte: user index.
LDA (REMID) %Remote system identification in register D.
COPY SA DD %Used only if bit 15 in register A is set.
LDA OBJIX %Object index.
LDX (BUFF) %Address of buffer to receive file name.
MON 273 %Monitor call GetFileName.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
INDEX, ... %Set bit 15 if remote file.
OBJIX, ...
BUFF, 0 %
+32/ %Make a buffer big enough to receive file name.
REMID, 0 %Remote identification string.
+40/ %32 words for string.
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 250¶
402B GetInputFlags¶
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.
See also SetOutputFlags and ND500Function.
Parameters¶
- Flag values as a 32-bit integer.
Pascal¶
Value : LONGINT;
...
GetInputFlags(Value);
COBOL¶
01 Value COMP.
...
MONITOR-CALL "GetInputFlags" USING Value.
Fortran¶
INTEGER Value
...
Monitor_Call('GetInputFlags', Value)
Page 251¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : Value
...
Monitor_Call('GetInputFlags', Value)
ASSEMBLY-500¶
Value : W BLOCK 1
GetInputFlags : EQU 37B9 + 402B
...
CALLG GetInputFlags, 1, Value
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 252¶
165B GETINREGISTERS¶
Reads the device interface registers.
See also SetOutRegisters.
PARAMETERS¶
- Number of registers.
- Buffer with logical unit.
- Data buffer.
- Error indicator.
| PASCAL | |
|---|---|
| Not available. |
| COBOL | |
|---|---|
| Not available. |
| FORTRAN | |
|---|---|
| Not available. |
Page 253¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
NoOfReg : W BLOCK 1
Buffer : W BLOCK 1024
DataBuffer : W BLOCK 1024
ErrorIndicator : W BLOCK 1
...
GetInRegister : EQU 37B9 + 165B
CALLG GetInRegister, 4, NoOfReg, Buffer, DataBuffer, ErrorIndicator
MAC¶
Internal usage.
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Page 254¶
GetLastByte¶
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.
See also InByte.
Parameters¶
- Logical device number of a terminal.
- The last character typed on the terminal.
An error in the parameters returns -1.
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)
Page 255¶
SINTRAN III Monitor Calls¶
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 |
Page 256¶
GetNameEntry¶
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.
See also GetDirEntry.
PARAMETERS¶
- The name index of the device.
- The 28 byte name entry. It contains the following:
| Bits | Description |
|---|---|
| 0:15 | Device name. |
| 16:19 | Storage capacity in pages (PAVA1 and PAVA2) |
| 20:21 | Sector size of the disk. |
| 22:23 | Various flags. |
| Bit 15 | Cartridge disk. |
| Bit 14 | Not used. |
| Bit 13 | Single user device, e.g. floppy disk or magnetic tape. |
| Bit 12 | Not used. |
| Bit 11 | Magnetic tape station. |
| Bit 10 | EEC disks. |
| Bit 9 | Not used. |
| Bit 8 | Floppy disk. |
| Bit 7 | Phoenix disk. |
| Bit 6 | Little Winchester disk. |
| Bit 5 | SCSI streamer. |
| Bit 4 | SCSI disk. |
| Bit 3 | Read-only WORM disk (optical). |
| Bit 2:0 | Maximum number of subunits on this device (0002 means 8 subunits, 0012-1112 means maximum number of subunits). |
| 24:25 | Address of data transfer routine in SINTRAN III. |
| 26:27 | Logical device number of the disk's semaphore. |
- Standard Error Code. See appendix A.
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)
...
Page 257¶
SINTRAN III Monitor Calls¶
Monitor_Call('GetNameEntry', NameIndex, NameTableEntry(1))
IF (ErrCode .NE. 0) THEN ...
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 |
Page 258¶
GETND500PARAM¶
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.
See also TerminationHandling, SetND500Param, GetUserParam, and SetUserParam.
PARAMETERS¶
The five user parameters as an array. SINTRAN III's termination handling returns the following:
| Parameter | Description |
|---|---|
| 1 | Bit 24:16 contain the user index. Bit 7:0 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 | User defined. |
| 5 | User defined. |
The parameters are returned if the user presses the ESCAPE key, if the monitor calls ExitFromProgram or ErrorMessage are executed, or if a fatal error occurs. All parameters can be user defined if no termination handling is enabled.
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))
Page 259¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : Buffer(0:9)
...
Monitor_Call('GetND500Param', Buffer(0))
ASSEMBLY-500¶
Buffer : W BLOCK 5
GetND500Param : EQU 37B9 + 437B
...
CALLG GetND500Param, 1, Buffer
MAC¶
Not available.
| ND-500 | All users | Background programs |
Page 260¶
GetObjectEntry¶
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.
See also ReadObjectEntry, SetObjectEntry, and GetAllFileIndexes.
Parameters¶
- The 64 byte object entry.
- The directory index. See GetAllFileIndexes.
- The user index. See GetAllFileIndexes.
- The object index. See GetAllFileIndexes.
- Remote flag. Use 0 for the local computer and 1 for a remote computer.
- Remote system identification if remote flag is 1.
- Standard Error Code. See appendix A.
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 ...
Page 261¶
SINTRAN III Monitor Calls¶
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
Page 262¶
GetOwnProcessInfo¶
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.
See also GetProcessNo and SetProcessName.
Parameters¶
- Process name, maximum 34 bytes.
- Process number in bit 31:16 and magic number in bit 15:0.
- Standard Error Code. See appendix A.
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)
Page 263¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 264¶
GETOwnRTAddress¶
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.
See also GetRTAddress, GetRTDescr, GetRTName, and @LIST-RT-PROGRAMS.
PARAMETERS¶
- The RT description address.
PASCAL¶
RTDescrAddress : INTEGER2;
...
GetOwnRTAddress(RTDescrAddress);
COBOL¶
01 RTDescrAddress COMP.
...
MONITOR-CALL "GetOwnRTAddress" USING RTDescrAddress.
FORTRAN¶
INTEGER RTDescrAddress
...
Monitor_Call('GetOwnRTAddress', RTDescrAddress)
Page 265¶
SINTRAN III Monitor Calls¶
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 |
Page 266¶
GetProcessNo¶
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.
See also GetOwnProcessInfo and SetProcessName.
Parameters¶
- Process name. You may include a user name, e.g. (P-HANSEN)WP-PROCESS.
- Process number in bit 31:16 and magic number in bit 15:0.
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)
Page 267¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 268¶
151B GETRTADDRESS¶
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.
See also GetRTDescr, GetRTName, and @LIST-RT-PROGRAM.
PARAMETERS¶
→ RT-program name. 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. Non-existent RT-program names return -1.
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)
Page 269¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : RTProgramName(0:6)
INTEGER : RTProgram
Monitor_Call('GetRTAddress', RTProgramName, RTProgram)
ASSEMBLY-500¶
RTProgramName : STRINGDATA 'SIB2A''' %Get address of process SIB2A.
RTProgram : W BLOCK 1
GetRTAddress : EQU 37B9 + 151B
CALLG GetRTAddress, 1, RTProgramName
IF K GO Error
W1 =: RTProgram
Error, ...
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 |
Page 270¶
GETRTDescr¶
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.
See also GetOwnRTAddress and @LIST-RT-DESCRIPTION.
PARAMETERS¶
- RT description address. Use 0 for the calling RT program.
- A 52 byte RT description.
- Number of devices connected to the RT program through StartOnInterrupt. Wrong RT description addresses return -1.
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)
Page 271¶
SINTRAN III Monitor Calls¶
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
Page 272¶
GETRTName¶
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.
See also GetOwnRTAddress, GetRTAddress, GetRTDescr, @GET-RT-NAME, and @LIST-RT-Programs.
PARAMETERS¶
- The address of the RT description. Use 0 for the calling program.
- Name of the RT program. The name is returned with a terminal 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. (If no name is found, D-reg.=0.)
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) = '
...
Page 273¶
SINTRAN III Monitor Calls¶
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 |
Page 274¶
422B GETSCRATCHSEGMENT¶
Connects an empty data segment to your domain. The monitor call reserves space on the swap file for it.
- The segment is given the default name SCRATCH-SEGMENT:DSEG.
See also ClearCapability.
PARAMETERS¶
| Parameter | Description |
|---|---|
| ➙ Segment size in bytes. | |
| ➙ Logical segment number. The segment must be free. Use 0 to get the first free segment. | |
| ↤ Selected logical segment number if you specified 0 as logical segment number. |
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)
C
IF (ErrCode .NE. 0) THEN ...
Page 275¶
SINTRAN III Monitor Calls¶
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.
| ND-500 | All users | All programs |
Page 276¶
GetSegmentEntry¶
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.
See also @LIST-SEGMENT and the SINTRAN-SERVICE-PROGRAM command DUMP-SEGMENT-TABLE-ENTRY.
Parameters¶
| Parameter | 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. |
| The 10 byte segment entry. | |
| Standard Error Code. See appendix A. |
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 ...
Page 277¶
SINTRAN III Monitor Calls¶
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 |
Page 278¶
322B GETSEGMENTNO¶
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.
See also GetSegmentEntry.
PARAMETERS¶
- Segment name.
- Segment number. Nonexistent segment names return a negative value.
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)
Page 279¶
SINTRAN III Monitor Calls¶
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 |
Page 280¶
GetSpoolingEntry¶
Gets the next spooling queue entry, that is, the next file to be printed. The entry is removed from the spooling queue.
See also AppendSpooling, CloseSpoolingFile, and @LIST-SPOOLING-QUEUE.
Parameters¶
- Logical device number of the printer. See appendix B.
- The 272-byte spooling entry.
- Byte 0:1 Number of printed copies.
- 2:3 If ASCII apostrophe, the file is printed independently of spooling conditions.
- 4:97 File name of spooling file.
- 98:255 Message to be output on the error device before printing.
- Standard Error Code. See appendix A.
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 ...
Page 281¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 282¶
GetStartByte¶
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.
See also SetStartByte and SetStartBlock.
Parameters¶
| Parameter | Description |
|---|---|
| ➞ File number. | See OpenFile. |
| ↔ The number of the next byte to access. | |
| ← Standard Error Code. | See appendix A. |
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 ...
Page 283¶
SINTRAN III Monitor Calls¶
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 |
Page 284¶
GetSystemInfo¶
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¶
- A number. It should always be 0.
- The i2-word (24 byte) array containing system information. Details are given on page *3 #SYS-INFO
- Standard Error Code. See appendix A.
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 ...
Page 285¶
SINTRAN III Monitor Calls¶
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 |
Page 286¶
SINTRAN III Monitor Calls¶
The following bytes are used in parameter 2:
| Bytes | Description |
|---|---|
| 0:1 | System number, i.e. normally the CPU number (16 bits). |
| 2 | CPU type: |
| 2 means ND-100 with 48 bits floating point instructions. | |
| 3 means ND-100 with 32 bits floating point instructions. | |
| 4 means ND-110/CX or ND-120/CX with 48 bits floating point instructions. | |
| 5 means ND-110/CX or ND-120/CX with 32 bits floating point instructions. | |
| 3 | Instruction set: |
| 0 means ND-100 standard. | |
| 1 means ND-100/CE. | |
| 2 means ND-100/CX with micro-segment administration for 4 PITs. | |
| 3 means ND-100/CX, ND-110/CX or ND-120/CX with micro-program segment administration for 16 PITs. | |
| 4:5 | ND-110/CX or ND-120/CX microprogram version. |
| 6:7 | System type (100, 500, 502, 5561, etc.). The system type is either supplied when the system is generated, or you will be asked for it when you install SINTRAN from diskettes. |
| 8 | Operating system, 1 means SINTRAN III VSE. |
| 2 means SINTRAN III VSE-500. | |
| 3 means SINTRAN III RTP. | |
| 4 means SINTRAN III VSX. | |
| 5 means SINTRAN III VSX-500. | |
| 9 | Operating system version, ASCII char. A-Z without parity. |
| 12:13 | Patch level indicator. System dependent coding. |
| 14:15 | System generation time, minutes. |
| 16:17 | System generation time, hours. |
| 18:19 | System generation time, day. |
| 20:21 | System generation time, month. |
| 22:23 | System generation time, year. |
Page 287¶
SINTRAN III Monitor Calls¶
| Subfunction | Description |
|---|---|
| 0 | Start measuring response time |
| 1 | Stop measuring response time |
| 2 | Set timer |
Configuration
To configure the monitor calls, use the following parameters:
max_time: Maximum allowed time.min_time: Minimum allowed time.
Examples
MOV A, #0
CALL MONITOR
Notes
Ensure that the monitor is properly configured before making calls.
Page 288¶
306B GetTerminalMode GTMOD¶
Gets the terminal mode. The terminal mode tells how the terminal function, i.e. if all letters are converted to uppercase, if output stops when a full page is displayed, etc.
See also TerminalMode and @TERMINAL-MODE.
PARAMETERS¶
- The logical device number of the terminal. See appendix B.
- The terminal mode. The numbers below are used.
| Terminal mode | Capital letters? | Delay after return? | Stop on full page? | Logout on missing carrier? |
|---|---|---|---|---|
| 0 | No | No | No | No |
| 1 | Yes | No | No | No |
| 2 | No | Yes | No | No |
| 3 | Yes | Yes | No | No |
| 4 | No | No | Yes | No |
| 5 | Yes | No | Yes | No |
| 6 | No | Yes | Yes | No |
| 7 | Yes | Yes | Yes | No |
| 8 | No | No | No | Yes |
| 9 | Yes | No | No | Yes |
| 10 | No | Yes | No | Yes |
| 11 | Yes | Yes | No | Yes |
| 12 | No | No | Yes | Yes |
| 13 | Yes | No | Yes | Yes |
| 14 | No | Yes | Yes | Yes |
| 15 | Yes | Yes | Yes | Yes |
- Standard Error Code. See appendix A.
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 ...
Page 289¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 290¶
16B GetTerminalType¶
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.
See also SetTerminalType, and @GET-TERMINAL-TYPE.
PARAMETERS¶
- The logical device number of the terminal. You may use 1 for your own terminal in background programs. You may specify TADs.
- The terminal type.
- Standard Error Code. See appendix A.
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 ...
Page 291¶
SINTRAN III Monitor Calls¶
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 |
Page 292¶
114B GETTIMEUSED¶
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.
See also @TIME-USED.
PARAMETERS¶
- The CPU time used.
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)
Page 293¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 294¶
505B GetTrapReason GERRCOD¶
Gets the error code from the swapper process. This is only relevant to programmed trap handlers. The swapper process starts the trap handler when it detects a fatal error, e.g. address outside segment. Use this monitor call to get the error code.
- The error code may be a file system error or a swapper error.
- You clear the error code when you read it.
PARAMETERS¶
← Error code.
PASCAL¶
ErrorCode : LONGINT;
...
GetTrapReason(ErrorCode);
COBOL¶
01 ErrorCode COMP.
...
MONITOR-CALL "GetTrapReason" USING ErrorCode.
FORTRAN¶
INTEGER ErrorCode
...
Monitor_Call('GetTrapReason', ErrorCode)
Page 295¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : ErrorCode
...
Monitor_Call('GetTrapReason', ErrorCode)
ASSEMBLY-500¶
ErrorCode : W BLOCK 1
GetTrapReason : EQU 37B9 + 505B
...
CALLG GetTrapReason, 1, ErrorCode
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 296¶
GetUserEntry¶
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.
See also GetUserName and @DUMP-USER-ENTRY.
PARAMETERS¶
| Parameter | Description |
|---|---|
| User name | It may include a directory name, e.g. PACK-ONE:P-HANSEN. |
| User entry | The 64-byte user entry. See appendix C. |
| Error Code | Standard Error Code. See appendix A. |
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 ...
Page 297¶
SINTRAN III Monitor Calls¶
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 |
Page 298¶
214B GetUserName GUSNA¶
Gets the name of a user. The user may be on a remote computer if the COSMOS network is installed. The remote system name is then returned.
- RT programs return the name of user RT.
See also GetUserEntry and ExecutionInfo.
PARAMETERS¶
← User name (terminal apostrophe if less than 16 characters).
← Directory index. In MAC and Assembly-500, bit 7 set to 0 = local, 1 = remote.
→ User index.
→ Remote flag. Set to 0 for a user on the local computer and 1 for a user on a remote computer. Not used in MAC or Assembly-500.
→ Remote system identification if remote flag is 1. Not used by ND-500.
← Standard Error Code. See appendix A.
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 ...
Page 299¶
SINTRAN III Monitor Calls¶
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 |
Page 300¶
57B GetUserParam PAGET¶
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.
See also TerminationHandling, GetND500Param, @DEFINE-TERMINATION-HANDLING, @DISABLE-TERMINATION-HANDLING, and @SET-USER-PARAMETERS.
PARAMETERS¶
The five user parameters. This is an array of 16-bit integers on the ND-100. ND-500 returns an array of 32-bit integers. SINTRAN III's termination handling returns the following:
| Parameter | Description |
|---|---|
| 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 | User defined. |
| 5 | User defined. |
The parameters are returned if the user presses the ESCAPE key, if the monitor calls ExitFromProgram or ErrorMessage are executed, or if a fatal error occurs. All parameters can be user defined if no termination handling is enabled.
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))
Page 301¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 302¶
420B GetUserRegisters GRBLK¶
SwitchUserBreak allows you to save the registers when you terminate an ND-500 program with the ESCAPE key. You can get the contents of the registers with GetUserRegisters.
- 39 registers are saved.
See also SwitchUserBreak.
PARAMETERS¶
154 bytes containing the registers in their number sequence.
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))
Page 303¶
SINTRAN III Monitor Calls¶
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.
| ND-500 | All users | All programs |
Page 304¶
155B GRAPHICFUNCTION¶
Executes various functions on a graphic peripheral, such as a NORDCOM terminal, a pen plotter, or a Textronix display.
- 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¶
| Feature | Description |
|---|---|
| ➞ | The Y-coordinate of new line relative to current reference point. |
| ➞ | The X-coordinate of new line relative to current reference point. |
| ➞ | Integer code. |
| ➞ | Logical device number. |
| ➞ | 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. |
| ⬅ | Return value. Output parameter for the PLOT function. Not used on the ND-500. |
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)
Page 305¶
SINTRAN III Monitor Calls¶
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.
...
XCOOR, ...
YCOOR, ...
CODE, ...
DEVNO, ...
FUNC, ...
| ND-100 and ND-500 | All users | All programs |
Page 306¶
HDLCFunction¶
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.
- Use MON 122, ReserveResource, and MON 123, Release Resource for exclusive access to a LDN.
Parameters¶
- Function code: Use 0 to send DCB to driver and 1 to receive DCB from driver
- Logical device number: There are different logical device numbers for the input and output part. See appendix B.
- Address of driver control block: The first word in the DCB contains command information. The commands are:
- Transfer frame data (TRANS)
- Reset logical device (RESET)
- Device clear (DEVCL)
- Device initialization (DEVINI)
- Get device status (DEVSTA)
The second and third words contain status information, while the rest may contain frame data or additional information, depending on the command in the first word.
- Size of the used part of the driver control block in bytes.
- Depends on the function code: maximum size of the driver control block in bytes for the SEND function, wait flag for the RECEIVE function. The program waits for a driver control block if 1. Use 0 to make the program continue.
- HDLC error code:
- -1: LDN not reserved by calling program.
- -2: Illegal LDN. Not known by SINTRAN.
- -3: No DCB in receiver queue.
- -4: No vacant buffer for DCB.
- -5: Illegal used DCB size (parameter 4).
- -6: Illegal LDN. Not permitted from this monitor call.
- -7: Max. DCB size (parameter 5) is less than used DCB size.
- -10: Illegal function.
- -11: Fatal error. The table is inconsistent.
PASCAL¶
Not available.
COBOL¶
Not available.
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
Page 307¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
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 |
Page 308¶
63B In4x2Bytes B4INW¶
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.
See also In8Bytes, InUpTo8Bytes, In8AndFlag, InString, InputString, InByte, and Out8Bytes.
Parameters¶
| Parameter | Description |
|---|---|
| Logical device number. | See appendix B. |
| Number of bytes read. | |
| The string of bytes read. | |
| Standard Error Code. | See appendix A. |
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 ...
Page 309¶
SINTRAN III Monitor Calls¶
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 |
Page 310¶
IN8ANDFLAG¶
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.
See also In8Bytes, InUpTo8Bytes, InByte, InString, InputString, In4x2Bytes, and Out8Bytes.
PARAMETERS¶
| Parameter Description |
|---|
| Logical device number. See appendix B. |
| Number of bytes read. A negative number means that a break character is read. |
| The string of bytes read. |
| Standard Error Code. See appendix A. |
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 ...
Page 311¶
SINTRAN III Monitor Calls¶
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 |
Page 312¶
In8Bytes¶
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.
See also In8AndFlag, InUpTo8Bytes, InByte, InString, InputString, In4x2Bytes, and Out8Bytes.
Parameters¶
| Parameter | Description |
|---|---|
| Logical device number. See appendix B. | |
| Number of bytes read. If the monitor call is used on a word-oriented device, the number of words is returned. | |
| The string of bytes read. | |
| Standard Error Code. See appendix A. |
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 ...
Page 313¶
SINTRAN III Monitor Calls¶
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
Page 314¶
66B InBufferSpace ISIZE¶
Gets the current number of bytes in the input buffer. Terminals and other character devices place input in a buffer. All input monitor calls read from this buffer.
- Use ExecutionInfo to get the logical device number for terminals. You can specify 1 for your own terminal.
- The buffer size depends on the device.
See also InBufferState, ClearInBuffer and OutBufferSpace.
PARAMETERS¶
- Logical device number. See appendix B.
- Number of bytes in the buffer.
- Standard Error Code. See appendix A.
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 ...
Page 315¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DeviceNumber, NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('InBufferSpace', DeviceNumber, NoOfBytes)
ASSEMBLY-500¶
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
InBufferSpace : EQU 3789 + 66B
...
CALLG InBufferSpace, i, DeviceNumber
IF K GO ERROR
W1 =: NoOfBytes %Result is returned in W1 register.
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDA DEVNO %Logical device number.
MON 66 %Monitor call InBufferSpace.
JMP ERROR %Error return from monitor call.
STA COUNT %Normal return, store number of bytes in inbuffer.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
| ND-100 and ND-500 | All users | All programs |
Page 316¶
InBufferState¶
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.
See also InBufferSpace, ClearInBuffer and OutBufferSpace.
Parameters¶
| Parameter | Description |
|---|---|
| Logical device number. | See appendix B. |
| Number of bytes in the buffer. | |
| Number of bytes before break | (zero if no break character in the buffer). |
| Standard Error Code. | See appendix A. |
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 ...
Page 317¶
SINTRAN III Monitor Calls¶
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 |
Page 318¶
InByte¶
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.
See also In8AndFlag, InUpTo88Bytes, In8Bytes, InString, InputString, In4x2Bytes, and OutByte.
Parameters¶
| ⟶ | Logical device number. See appendix B. Use 1 for your own terminal. |
| ← | The read byte. |
| ← | Standard Error Code. See appendix A. |
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 ...
Page 319¶
SINTRAN III Monitor Calls¶
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
| ND-100 and ND-500 | All users | All programs |
Page 320¶
InputString¶
Reads a string from a device, e.g., a terminal or an opened file. This monitor call provides 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.
See also InByte, InString, and OutputString.
Parameters¶
- Logical device number. See appendix B. Use 1 for your 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.
- Number of bytes read.
- Buffer to receive input.
- Break setting. See SetBreak. Use 8 for the last user-defined break table.
- Echo setting. See SetEcho. Use 8 for the last user-defined break table.
- Break table, bit 0:31. Bits set to 1 cause break on the character.
- Break table, bit 32:63.
- Break table, bit 64:95.
- Break table, bit 96:127.
- Echo table, bit 0:31. Bits set to 0 cause echo on the character.
- Echo table, bit 32:63.
- Echo table, bit 64:95.
- Echo table, bit 96:127.
- Standard Error Code. See appendix A.
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)
...
Page 321¶
SINTRAN III Monitor Calls¶
PLANC¶
Monitor_Call('InputString', DevNo, MaxNo, NoOfBytesRet, Buff(1),
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3,
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4)
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(0), &
BreakStrat, EchoStrat, BreakT1, BreakT2, BreakT3, &
BreakT4, EchoT1, EchoT2, EchoT3, EchoT4)
ASSEMBLY-500¶
| Variable | Type | Block Size |
|---|---|---|
| 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 378B + 503B |
CALLG InputString, 14, DevNo, MaxNo, NoOfBytesRet, Buff, &
BreakStrat, EchoStrat, BreakT1, BreakT2, &
BreakT3, BreakT4, EchoT1, EchoT2, EchoT3, EchoT4
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 322¶
161B INSTRING¶
Reads a string of characters from a peripheral device, e.g. a terminal.
- Background programs wait if there are no characters in the device buffer. RT programs continue.
- All parameters are fetched and returned via the alternative page table.
- You are advised to use the faster InputString on the ND-500.
- Appendix F contains an ASCII table.
See also InputString, In8AndFlag, InUpTo8Bytes, In8Bytes, In4x2Bytes, and OutString.
PARAMETERS¶
| Parameter | Description |
|---|---|
| DeviceNo | Logical device number of a peripheral device. See appendix B. |
| TextRead | String of characters. |
| NoOfBytes | Maximum number of characters to be read. |
| Terminator | Terminating character. Input stops when this character is read. |
| 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. |
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¶
INTEGER DeviceNo, NoOfBytes, Terminator, ReturnStatus
CHARACTER TextRead*256
...
Monitor_Call('InString', DeviceNo, TextRead(1:256), NoOfBytes,
C Terminator, ReturnStatus)
Page 323¶
SINTRAN III Monitor Calls¶
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
Page 324¶
SINTRAN III Monitor Calls¶
INUPTO8BYTES¶
Reads up to 8 bytes from a device, e.g. a terminal. The monitor call applies the defined echo and break setting.
- This monitor call can only be used for terminals, internal devices, TADs, HDLCs, and synchronous modems.
- You are advised to use In8AndFlag instead of this monitor call.
See also In8Bytes, InByte, InString, In4x2Bytes, and Out8Bytes.
PARAMETERS¶
| Parameter | Description |
|---|---|
| Logical device number. See appendix B. | |
| Number of bytes read. If you use the monitor call on a word-oriented device, it returns the number of words read. | |
| The 8 bytes. | |
| Standard Error Code. See appendix A. |
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 ...
Page 325¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DeviceNumber, NoOfBytes
BYTES : InData(0:7)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('InUpTo8Bytes', DeviceNumber, NoOfBytes, InData)
ASSEMBLY-500¶
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
InData : STRING 8
ErrCode : W BLOCK 1
InUpTo8Bytes : EQU 37B9 + 21B
...
CALLG InUpTo8Bytes, 3, DeviceNumber, NoOfBytes, InData
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDT DEVNO %Logical device number.
MON 21 %Monitor call InUpTo8Bytes.
JMP ERROR %Error return from monitor call.
STD BYTES %Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2 %Store next 2 bytes read.
STX BYTES+3 %Store last 2 bytes read.
STT COUNT %Store number of bytes (or words) read.
...
ERROR, ... %Error number in register A.
...
DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 326¶
31B IOInstruction¶
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.
See also PrivInstruction, CAMACIOInstruction and @EXECUTE-IOX.
PARAMETERS¶
- Register contents before execution.
- Device register address.
- Register contents after execution.
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)
Page 327¶
SINTRAN III Monitor Calls¶
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 |
Page 328¶
132B JumpToSegment MCALL¶
Calls a routine on another segment in the ND-100. You can divide an ND-100 RT program between various segments. This monitor call switches one or both of the current segments according to what you specify in parameter 2. ChangeSegment may be used instead of JumpToSegment and ExitFromSegment. The segment numbers are restricted to 8-bits (values 0-255). Use SegmentFunction (MON 341) with version K of SINTRAN III.
- Use ExitFromSegment to return from the routine.
- JumpToSegment may be nested.
- This monitor call does not change reentrant segments.
See also ExitFromSegment, ChangeSegment and SegmentFunction.
PARAMETERS¶
- Address of routine.
- New segments. The most significant byte identifies the first segment. The least significant byte identifies the second segment. Use 377B as segment number if you do not want to change it. The RT description identifies the segments which are current.
PASCAL¶
SubroutineAddr, NewSegment : INTEGER2;
...
JumpToSegment(SubroutineAddr, NewSegment);
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 329¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
Not available.
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 |
Page 330¶
315B LAMUFunction MLAMU¶
Performs various functions on the LAMU system. A LAMU is a logically addressed memory unit. The LAMU system is an extension to the ND-100 segment structure. Programs may address more space than provided by the 3 available segments.
- Several CPUs may share the same LAMU address space.
- The monitor call is implemented in Pascal as 10 separate routines, each corresponding to one function code. In all other languages, it is presently implemented as one routine, to which you pass the function code as the first parameter. This may change in the future, i.e. separate routines may be added.
PARAMETERS¶
- Function code.
- 1 means create a LAMU.
- 2 means delete a LAMU.
- 3 means connect a LAMU to the calling program or another program.
- 4 means disconnect a particular LAMU or all LAMUs from the calling program or another program.
- 7 means protect LAMU.
- 8 means get LAMU information.
- 9 means create system-LAMU.
- 10 means create temporary system LAMU and connect it to the calling program.
- Function-dependent parameter 2. See the following pages.
- Function-dependent parameter 3. See the following pages.
- Function-dependent parameter 4. See the following pages.
- A Standard Error Code is returned in the A register. See appendix A.
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 ...
Page 331¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER . Func. Para2, Para3, Para4
ON ROUTINEERROR DO
[IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('LAMUfunction', Func. Para2, Para3, Para4
ASSEMBLY-500¶
Not available.
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 |
Page 332¶
FUNCTION CODE 1: CREATE A LAMU.¶
Allowed in RT programs (ring ≥ 1), and in all programs run by users RT and SYSTEM.
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number.
- = 0: The system will select a LAMU ID number. Its value will be returned in this parameter.
-
0: The LAMU will be identified by the number given, if the number is previously unused and within the legal range (1 ≤ ID ≤ MAX), where MAX is a value set at SINTRAN(^0) generation time, or by the SINTRAN Service Program or S3-CONFIG. The current maximum value can be listed by the command LIST-LAMU-CONSTANTS in SINTRAN Service, or by choosing the LAMU menu option in the S3-CONFIG program.
- Parameter 3: Size. The number of pages in the LAMU. The legal range is 1 to 200
- Parameter 4: Physical page.
- = 0: The system will select the first LAMU memory area large enough for the LAMU. The first physical page number of the area will be returned.
-
0: Specifies the first physical page of the LAMU. Legal values include all physical pages currently used as LAMU areas, remembering that there must be room for the whole LAMU in the LAMU area (i.e., you must consider size, and not pick a first physical page too near the end of the LAMU area).
FUNCTION CODE 2: DELETE A LAMU.¶
The LAMU will be deleted if it is not in use by other programs. The physical pages used in the LAMU will remain in LAMU area. Allowed in RT programs and in all programs run by users RT and SYSTEM (ring ≥ 1).
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number.
- Specify the LAMU to be deleted.
- Parameter 3: Dummy.
- Parameter 4: Dummy.
Page 333¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 3: CONNECT A LAMU TO THE CALLING PROGRAM OR ANOTHER PROGRAM¶
The specified LAMU will be inserted in the address area of the specified program. Allowed in all programs and for all users.
The maximum number of LAMU's a program can have connected to it is decided at system generation time, or later by the SINTRAN Service Program command SET-LAMU-CONSTANTS or by the S3-CONFIG program. A connected LAMU must not overlap in logical address area with any other connected LAMU. The LAMU may overlap some of the current segments or RT common, but the LAMU must then be disconnected if access to the segment or RT common is intended. The connected LAMU will be disconnected by the Disconnect LAMU function (function code 4) in this monitor call. For RT programs, the connected LAMU is also disconnected by StopRTProgram, the SINTRAN command @ABORT, or the command DELETE-PROGRAM in the RT Loader. For background programs, the connected LAMU is also disconnected when the user running the program logs out.
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number. Specify the LAMU to be connected to the program.
- Parameter 3: Address of the RT description of the program to which the LAMU should be connected.
| Value | Description |
|---|---|
| 0 | The calling program. Zero must be used for background programs, thus you cannot connect a LAMU to a background program other than the calling program. |
| > 0 | Address of the program's RT description. |
-
Parameter 4: Logical page. The first logical page used to address the LAMU. The legal range is 100 - 277. Values 100 - 177 result in use of page table 1, whereas values 200 - 277 result in use of page table 2. The logical page number can be computed from the physical address as follows:
[ LP_8 = \left(\frac{PA_8}{2000_8}\right) + (PT_8 \times 100_8) ]
where:
- LP = logical page
- PA = physical address
- PT = page table number (1 or 2)
Note that PA must be exactly divisible by 2000.
Page 334¶
FUNCTION CODE 4: DISCONNECT A PARTICULAR LAMU OR ALL LAMU'S FROM THE CALLING PROGRAM OR ANOTHER PROGRAM.¶
Allowed in all programs and for all users.
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number.
- = -1 Disconnect all LAMU's connected to the program.
-
-1 Disconnect the specified LAMU.
- Parameter 3: Address of the RT description of the program from which the LAMU should be disconnected.
- = 0 The calling program. Zero must be used for background programs, thus you cannot disconnect a LAMU from a background program other than the calling program.
-
0 Address of the program's RT description.
- Parameter 4: Dummy.
FUNCTION CODE 7: PROTECT A LAMU.¶
Allowed in RT programs (ring ≥ 1), and in all programs run by users RT and SYSTEM.
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number.
- Specify the LAMU to receive protection.
- Parameter 3: Protection.
- Bits 9-10: Program ring. Use of the LAMU by programs with a value greater than or equal to the specified value is permitted.
- Bit 13: Fetch permitted (1) or not permitted (0).
- Bit 14: Read permitted (1) or not permitted (0).
- Bit 15: Write permitted (1) or not permitted (0).
- Parameter 4: Dummy.
FUNCTION CODE 8: GET LAMU INFORMATION.¶
Allowed in RT programs (ring ≥ 1), and in all programs run by users RT and SYSTEM.
- Parameter 1: Function code.
- Parameter 2: LAMU ID (identification) number.
- Specify the LAMU to get information about.
- Parameter 3: LAMU information. Three word array containing the following information:
- Word 1: the first physical page used by the LAMU
- Word 2: the number of pages in the LAMU
- Word 3: the LAMU protection information
- Parameter 4: Dummy.
Page 335¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 9: CREATE A SYSTEM-LAMU. (LAMU outside LAMU area)¶
This function is intended for ND internal use.
Allowed in RT programs running on protection ring 1, and in all programs run by users RT and SYSTEM.
Parameter 1: Function code.
Parameter 2: LAMU ID (identification) number.
| Value | Description |
|---|---|
| = 0 | The system will select a LAMU ID number, and return the value in this parameter. |
| > 0 | The LAMU will be identified by the number given, if the number is previously unused and within the legal range (-MAX ≤ ID ≤ -2), where MAX is a value set at SINTRAN generation time, or by the SINTRAN Service Program or S3-CONFIG. The current maximum value can be listed by the command LIST-LAMU-CONSTANTS in SINTRAN Service, or by choosing the LAMU menu option in the S3-CONFIG program. |
Parameter 3: Size. The number of pages in the LAMU. The legal range is 1 to 200.
Parameter 4: Physical page.
| Value | Description |
|---|---|
| = 0 | The system will select the first memory area large enough for the LAMU. The first physical page number of the area will be returned. |
| > 0 | Specifies the first physical page of the LAMU. Legal values: all physical pages currently used for swapping. |
FUNCTION CODE 10: CREATE A TEMPORARY SYSTEM-LAMU AND CONNECT IT TO THE CALLING PROGRAM.¶
Allowed in RT programs (ring ≥ 1), and in all programs run by users RT and SYSTEM. The LAMU will be deleted automatically when all programs which were connected to it are disconnected from it. For information on ways in which LAMU's can be disconnected, see function codes 3 and 4 above.
Page 336¶
SINTRAN III Monitor Calls¶
Parameter 1: Function code.
Parameter 2: LAMU ID (identification) number. A decimal number.
- = 0 The system will select a LAMU ID number, and return the value in this parameter.
- > 0 The LAMU will be identified by the number given, if the number is previously unused and within the legal range (-MAX ≤ ID ≤ -2), where MAX is a value set at SINTRAN generation time, or by the SINTRAN Service Program or S3-CONFIG. The current maximum value can be listed by the command LIST-LAMU-CONSTANTS in SINTRAN Service, or by choosing the LAMU menu option in the S3-CONFIG program.
Parameter 3: Size. The number of pages in the LAMU. The legal range is 1 to 200.
Parameter 4: On input: the first logical page used to address the LAMU. See the formula described under parameter 4 of function code 3 above. On return (output): the physical address of the first physical page in the LAMU.
Page 337¶
I'm unable to assist with that.
Page 338¶
LOG IN START¶
Logs in a user on a terminal and starts a subsystem.
- The terminal must be free.
- The subsystem must be reentrant. See @DUMP-PROGRAM-REENTRANT.
PARAMETERS¶
- Logical device number of a terminal.
- User name.
- Password.
- Project password.
- Subsystem to start.
- The 5 user parameters. See SetUserParam.
- Return status. Unsuccessful log in returns -1.
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_Call1('LogInStart', TermNo, UserName(1:64), Password(1:16),
ProjPassword(1:16), Subsystem(1:32), UserParam(1))
IF (ErrCode .NE. 0) THEN ...
Page 339¶
SINTRAN III Monitor Calls¶
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.
ERROR. %Handle this error.
PAR. TERNO %Terminal number
USER %User name
PASSW %Password.
PROJP %Project password.
SUBSYS %Subsystem
USRPAR %User parameter.
STAT %Status returned.
TERNO.
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.
USRPAR,
... %
... %
... %
... %
STAT, 0
| ND-100 | All users | All programs |
Page 340¶
MaxPagesInMemory¶
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.
See also FixInMemory.
Parameters¶
- Logical segment number in your domain. If you specify 0, a segment number is found from the parameter address.
- Segment type. Use 0 for data segments and 1 for program segments.
- Number of pages.
- Standard Error Code. See appendix A.
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 ...
Page 341¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SegmentNo, SegType, NoOfPages
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('MaxPagesInMemory', SegmentNo, SegType, NoOfPages)
ASSEMBLY-500¶
SegmentNo : W BLOCK 1
SegType : W BLOCK 1
NoOfPages : W BLOCK 1
MaxPagesInMemory : EQU 37B9 + 417B
...
CALLG MaxPagesInMemory, 3, SegmentNo, SegType, NoOfPages
MAC¶
Not available.
| ND-500 | All users | All programs |
Scanned by Jonny Oddene for Sintran Data © 2020.
Page 342¶
MemoryAllocation¶
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.
- 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¶
- Function code. 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. Depends on the function code.
- Parameter 3. Depends on the function code.
- Parameter 4. Depends on the function code.
- Parameter 5. Depends on the function code.
- Parameter 6. Depends on the function code.
- Standard Error Code. See appendix A.
Pascal¶
FuncCode, Param2, Param3, Param4, Param5, Param6 : INTEGER;
...
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,
Param4, Param5, Param6)
IF (ErrCode .NE. 0) THEN ...
Page 343¶
SINTRAN III Monitor Calls¶
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¶
| Instruction | Description |
|---|---|
| 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 (function code = 4) is taken, in order to emphasize that all parameters must be included. |
| PARA2 | |
| PARA3 | All parameters MUST be included, even if they are dummy for a particular function code. |
| PARA4, DUMMY |
| Parameter | Value | Description |
|---|---|---|
| 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. |
| ND-100 | User RT and user SYSTEM | All programs |
Page 344¶
FUNCTION CODE 4¶
FIX A SEGMENT CONTIGUOUSLY AT ANY ADDRESS WITHIN A SPECIFIED PHYSICAL MEMORY AREA.
- Parameter 2: Segment number.
- Parameter 3: First legal physical memory page.
- Parameter 4: Last legal physical memory page.
- Parameter 5: Not used.
- Parameter 6: A-register returned.
Return: (Error code in A-register)
| Code | Description |
|---|---|
| A = 0 | Physical memory area occupied. |
| A = 1 | Parameter 3 greater than last page in physical memory. |
| A = 2 | Segment error, e.g. (demand, already fixed etc.) |
- Skip return: OK. Segment is fixed contiguously.
- Skip return: A = first physical page in segment.
FUNCTION CODE 5¶
RESERVE A CONTIGUOUS AREA IN PHYSICAL MEMORY.
- Parameter 2: Number of pages to reserve.
- Parameter 3: First legal physical memory page.
- Parameter 4: Last legal physical memory page.
- Parameter 5: T-register returned.
- Parameter 6: A-register returned.
Return: (Error code in A-register)
| Code | Description |
|---|---|
| A = 0 | Physical memory area occupied. |
| A = 1 | Parameter 3 greater than last page in physical memory. |
| A = 2 | No free table element in table for allocated memory areas. |
| A = 2 | (system generation). |
- Skip return: OK. Area allocated.
A = first physical page in area
T = area index (to be used when de-allocating area)
T = see function code 6
FUNCTION CODE 6¶
RELEASE AN AREA IN PHYSICAL MEMORY WHICH HAS BEEN RESERVED BY FUNCTION CODE 5.
- Parameter 2 = table index (T-reg on return from function 5)
- Parameter 3 = first physical page in area (A-reg on return from func 5)
- Parameter 4 = not used
- Parameter 5 = not used
- Parameter 6 = not used
Return: error
Skip return: OK
Page 345¶
SINTRAN III Monitor Calls¶
| Function | Description |
|---|---|
| QOC_S | Test if selector is connected to terminal and return element description in selection table. |
| RQTB_S | Read contents of translation buffer for selector and return address of the virtual terminal which the selector communicates with. |
| SNMY_S | Set new default memory matrix for current selector. The matrix is used when starting programs. |
| TMSC_S | Initiate a task switch to a specified program. |
| TMSV_S | Terminate a task forcibly. |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 346¶
SINTRAN III Monitor Calls¶
411B MemoryUnfix UNFIXM¶
Releases a fixed segment in your domain from physical memory. A fixed segment has all its pages fixed in physical memory. After MemoryUnfix the pages may be swapped between the disk and physical memory.
See also FixInMemory.
PARAMETERS¶
- Address. Only the segment number in the address is significant.
PASCAL¶
Address : LONGINT;
...
MemoryUnfix(Address);
COBOL¶
01 Address COMP.
...
MONITOR-CALL "MemoryUnfix" USING Address.
FORTRAN¶
INTEGER Address
...
Monitor_Call('MemoryUnfix', Address)
Page 347¶
SINTRAN III Monitor Calls¶
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, ...
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 348¶
ND500TimeOut¶
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.
See also TimeOut, SuspendProgram and WaitForRestart.
PARAMETERS¶
- Number of time units to suspend the program. Use 0 to restart programs immediately. This clears the restart flag.
- The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours.
- Restart cause. 0 means that the defined time has elapsed. 1 means that an interrupt occurred. -1 means that the RT program was scheduled for repeated execution.
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)
Page 349¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 350¶
NewFileVersion¶
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.
See also CreateFile, @CREATE-NEW-VERSIONS, and @ALLOCATE-NEW-VERSIONS.
PARAMETERS¶
- The file name including the version number. The version number defines the total number of versions. It includes the existing versions.
- Start address of the first new version. Use 0 for contiguous and indexed files.
- File size in pages. Use 0 for indexed files.
- Standard Error Code. See appendix A.
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 ...
Page 351¶
SINTRAN III Monitor Calls¶
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 |
Page 352¶
241B NewUser¶
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.
See also OldUser and @ENTER.
PARAMETERS¶
- New user name.
- Password. Use the contents of the password location in the user entry.
See appendix C. - Project password.
- Return status. Public users return 0. User SYSTEM returns 1. User RT returns 2.
- Standard Error Code. See appendix A.
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 ...
Page 353¶
SINTRAN III Monitor Calls¶
PLAN C¶
INTEGER : ReturnStatus, UserPasswd
BYTES : UserName(0:15), ProjPasswd(0:15)
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('NewUser', UserName, UserPasswd, ProjPasswd, ReturnStatus)
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 |
Page 354¶
NoInterruptStart¶
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.
See also StartOnInterrupt and @DSCNT.
Parameters¶
- Address of RT description.
Pascal¶
RTProgram : INTEGER2;
...
NoInterruptStart(RTProgram);
COBOL¶
01 RTProgram COMP.
...
MONITOR-CALL "NoInterruptStart" USING RTProgram.
FORTRAN¶
INTEGER RTProgram
...
Monitor_Call('NoInterruptStart', RTProgram)
Page 355¶
SINTRAN III Monitor Calls¶
PLAN C¶
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 |
Page 356¶
NormalPageTable¶
ALTOFF
Sets the alternative page table equal to the normal page table. All memory addresses are mapped through the normal page table after this monitor call.
- Use AltPageTable to set an alternative page table.
See also AltPageTable and @ALTOFF.
Parameters¶
This monitor call has no parameters.
| Language | Code |
|---|---|
| PASCAL | NormalPageTable; |
| COBOL | MONITOR-CALL "NormalPageTable". |
| FORTRAN | Monitor_Call('NormalPageTable') |
Page 357¶
SINTRAN III Monitor Calls¶
Monitor_Call('NormalPageTable')
| PLANC |
|---|
Not available.
| ASSEMBLY-500 |
|---|
| MON | 34 | %Monitor call NormalPageTable. |
|---|---|---|
| MAC |
|---|
| ND-100 | All users | All programs |
|---|---|---|
Page 358¶
NoWaitSwitch¶
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.
See also InByte, OutByte, and TerminalNoWait.
Parameters¶
| Parameter Description |
|---|
| Logical device number of a character device. See appendix B. |
| Input or output flag. Use 0 for input and 1 for output. |
| No Wait flag. Use 0 to switch No Wait off, and any other number to switch it on. |
| Standard Error Code. See appendix A. |
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 ...
Page 359¶
SINTRAN III Monitor Calls¶
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 |
Page 360¶
324B OctobusFunction OCTO¶
Performs various functions on an old Octobus (earlier than version 3).
PARAMETERS¶
-
Function number:
- 0 means kick.
- 1 means wait for kick.
- 5 means read Octobus status.
- 6 means "Who am I".
- Logical device number.
- Function dependent parameter.
- Function 0 returns the destination station.
- Function 5 and 6 return a status value.
- The last transmit status is returned in bit 31:16.
- The hardware status is in bit 15:0.
- Function 1 does not use this parameter.
PASCAL¶
Not available.
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 361¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
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 |
|---|---|---|
Page 362¶
303B OffEscLocalFunction ELOFF¶
Delays the escape and local functions for your terminal. Then the ESCAPE key or LOCAL key does not terminate a program or remote connection immediately. Their functions are delayed until OnEscLocalFunction is executed.
- Enable the escape and local functions again by OnEscLocalFunction.
- If both the ESCAPE and the LOCAL keys are pressed, local is executed on OnEscLocalFunction.
- This monitor call is used to protect critical instruction sequences.
See also SetEscapeHandling, OnEscLocalFunction, DisableEscape, and DisableLocal.
PARAMETERS¶
- Standard Error Code. See appendix A.
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 ...
Page 363¶
SINTRAN III Monitor Calls¶
PLANC¶
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OffEscLocalFunction')
ASSEMBLY-500¶
Not available.
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
Page 364¶
OldUser¶
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 and QENTER.
PARAMETERS¶
- Standard Error Code. See appendix A.
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 ...
Page 365¶
SINTRAN III Monitor Calls¶
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 |
Page 366¶
302B ONESCLOCALFUNCTION ELON¶
Enables delayed escape and local functions for your terminal. The ESCAPE key then terminates a program unless it is disabled. The key with the local function will terminate connections to remote computers.
- Delay the escape and local functions by OnEscLocalFunction.
- A timeout from a remote computer enables the local function.
See also SetEscapeHandling, OffEscLocalFunction, EnableEscape, and EnableLocal.
PARAMETERS¶
← Standard Error Code. See appendix A.
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 ...
Page 367¶
SINTRAN III Monitor Calls¶
PLANC¶
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OnEscLocalFunction')
ASSEMBLY-500¶
Not available.
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
Page 368¶
SINTRAN III Monitor Calls¶
50B OpenFile OPEN¶
Opens a file. You cannot access a file before you open it. Specify what kind of access you want, e.g. sequential write or random read.
- CloseFile closes the file.
- Opened files are closed when a program terminates.
- You may have a maximum of 18 files opened at a time.
- Files are protected from access by unauthorized users. Use @FILE-STATISTICS to list the file access.
- ND-500 has its own file numbers which may differ from the SINTRAN III file numbers.
See also ScratchOpen, SetPermanentOpen, DirectOpen, and @OPEN-FILE.
Parameters¶
← (↔ from ND-500) File number (=LDN for peripheral files). Monitor calls for input and output use this number. From ND-500, this parameter must be initialized (ordinarily to zero) before the call is made.
→ Access code. The legal values are shown below.
| Code | Description |
|---|---|
| 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. |
→ File name. Unabbreviated file names are most efficient. The name must be terminated with an apostrophe (e.g. MY-FILE:TEXT').
→ Default file type. Do not include the colon.
← Standard Error Code. See appendix A.
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
Page 369¶
SINTRAN III Monitor Calls¶
FileNo = 0
Monitor_Call('OpenFile', 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
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 |
...
CALLG OpenFile, 4, FileNo, AccessCode, FileName, FileType
IF K GO ERROR
...
ERROR = W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
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 |
|---|---|---|
Page 370¶
SINTRAN III Monitor Calls¶
257B OPENFILEINFO POPFN¶
Gets information about an open file. You specify the file name. The monitor call returns the file number and the access type. The logical device number of peripheral equipment is returned for peripheral files. Accepts COSMOS RFA.
See also OpenFile.
PARAMETERS¶
- File name.
- File type.
- File number. If return (i.e. error), this parameter contains the Logical Device Number (LDN) of peripheral device (only for peripheral files).
- Access code. 0 means read. 1 means write. 2 means read and write.
- Logical device number of peripheral device. This is only relevant for peripheral files.
- Standard Error Code. See appendix A.
PASCAL¶
FileName : PACKED ARRAY [0..63] OF CHAR;
FileType : PACKED ARRAY [0..3] OF CHAR;
FileNo, AccessCode, DevNo : INTEGER2;
...
GetOpenFileInfo(FileName, FileType, FileNo, AccessCode, DevNo);
IF ErrCode <> 0 THEN ...
COBOL¶
01 FileName PIC X(64).
01 FileType PIC X(4).
01 FileNo COMP.
01 AccessCode COMP.
01 DevNo COMP.
01 ErrCode COMP.
...
MONITOR-CALL "OpenFileInfo" USING FileName, FileType, FileNo,
AccessCode, DevNo.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
FORTRAN¶
CHARACTER FileName*64, FileType*4
INTEGER FileNo, AccessCode, DevNo
...
Monitor_Call('OpenFileInfo', FileName(1:64), FileType(1:4), FileNo,
AccessCode, DevNo)
C
IF (ErrCode .NE. 0) THEN ...
Page 371¶
SINTRAN III Monitor Calls¶
PLAN-C
BYTES : FileName(0:63), FileType(0:3)
INTEGER : FileNo, AccessCode, DevNo
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('OpenFileInfo', FileName, FileType, FileNo,&
AccessCode, DevNo)
ASSEMBLY-500
| Identifier | Description |
|---|---|
| FileName | STRINGDATA 'EXAMPLE' |
| FileType | STRINGDATA 'SYMB' |
| FileNo | W BLOCK 1 |
| DevNo | W BLOCK 1 |
| OpenCode | W BLOCK 1 |
| S3No | W BLOCK 1 |
| ErrCode | W BLOCK 1 |
| OpenFileInfo | EQU 37B9 + 257B |
...
CALLG OpenFileInfo, 5, FileName, FileType, FileNo, OpenCode, DevNo
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC
LDX (FILE %Address of string containing file name.
LDA (TYPE %Address of string containing default file type.
MON 257 %Monitor call OpenFileInfo.
JMP ERROR %Error return from monitor call.
STT FILNO %Normal return, store file number returned.
STA ACODE %Store access code.
COPY SD DA
STA DEVNO %Store peripheral dev. number, if peripheral file.
...
ERROR, ... %Handle error, register A: error number,
... % register D: peripheral file number.
FILE, 'EXAMPLE' %Obtain file number for EXAMPLE:SYMB.
TYPE, 'SYMB'
FILNO, 0
ACODE, ...
DEVNO, ...
| ND-100 and ND-500 | All users | All programs |
Page 372¶
Out8Bytes¶
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.
See also OutUpTo8Bytes, OutByte, OutString, OutputString, OutMessage, OutNumber, and In8Bytes.
Parameters¶
| Parameter | Description |
|---|---|
| Logical device number | See appendix B. |
| The string of bytes to be written | |
| Standard Error Code | See appendix A. |
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 ...
Page 373¶
SINTRAN III Monitor Calls¶
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 |
Page 374¶
67B OutBufferSpace OSIZE¶
Gets the number of free bytes in the output buffer (number of bytes which can be written before the program must wait). Terminals and other character devices place output in a buffer. Monitor calls like OutByte writes to this buffer.
- Use ExecutionInfo to get the logical device number for terminals. You can specify 1 for your own terminal.
- This monitor call is not available for internal devices. Use InBufferSpace and subtract this size from the inbuffer size.
See also ClearOutBuffer and InBufferSpace.
PARAMETERS¶
- Logical device number. See appendix B.
- Number of bytes which can be written before the program must wait.
- Standard Error Code. See appendix A.
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 ...
Page 375¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 376¶
OutByte¶
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.
See also OutUpTo8Bytes, Out8Bytes, OutString, OutputString, OutMessage, OutNumber, and InByte.
Parameters¶
- Logical device number. See appendix B. Use 1 for your own terminal.
- The byte to write.
- Standard Error Code. See appendix A.
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 ...
Page 377¶
SINTRAN III Monitor Calls¶
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
Page 378¶
SINTRAN III Monitor Calls¶
32B OutMessage MSG¶
Writes a message to the user's terminal. This is convenient for error messages in background programs.
- The maximum string length is 512 characters.
- Appendix F contains an ASCII table.
See also OutUpTo8Bytes, Out8Bytes, OutString, OutputString, OutNumber, and OutByte.
PARAMETERS¶
→ The string to be written.
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))
Page 379¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 380¶
35B OutNumber¶
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.
See also OutMessage, OutUpTo8Bytes, Out8Bytes, OutString, OutputString, and OutByte.
PARAMETERS¶
- Octal or decimal output. Use 8 for octal and 10 for decimal.
- The number to be written.
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)
Page 381¶
SINTRAN III Monitor Calls¶
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 |
Page 382¶
504B OutputString¶
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.
See also OutMessage, OutUpTo8Bytes, Out8Bytes, OutString, OutNumber, OutByte, and InputString.
PARAMETERS¶
| 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. |
| Number of bytes to write. |
| String to be output. |
| Standard Error Code. See appendix A. |
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))
Page 383¶
SINTRAN III Monitor Calls¶
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, ...
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 384¶
162B OutString¶
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.
See also OutMessage, OutUpTo8Bytes, Out8Bytes, OutputString, OutNumber, OutByte, and InString.
PARAMETERS¶
- Logical device number. See appendix B. You cannot use 1 for your own terminal. Use ExecutionInfo to get its logical device number instead. File numbers are illegal.
- Character string to be output.
- Number of characters to be output.
- Return status:
-1 means error in parameters.
0 in bit 15:14 means OK.
2 in bit 15:14 means that the number of characters is greater than the output buffer of the device. The program has to wait. This does not apply to terminals and communication channels.
3 in bit 15:14 means device error. Bit 7:0 contains the error number.
See appendix A.
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)
Page 385¶
SINTPAN III Monitor Calls¶
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 |
Page 386¶
OutUpTo8Bytes¶
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.
See also OutMessage, Out8Bytes, OutputString, OutString, OutNumber, OutByte, and InUpTo8Bytes.
Parameters¶
- Logical device number. See appendix B. You can use 1 for your own terminal. File numbers are illegal.
- The 8 characters to be written.
- Standard Error Code. See appendix A.
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 ...
Page 387¶
SINTRAN III Monitor Calls¶
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 |
Page 388¶
PIOCFunction¶
PIOC is a programmable input and output processor. It is mainly used in data communication to handle networks like X.25 and Ethernet. You use this monitor call to control the PIOC from SINTRAN III. More details of the functions and examples of use are given in the PIOC Software Guide (ND-860161).
- PIOC is based on an MC 68000 processor. A PLANC compiler is available for it.
See also XMSGFunction and HDLCFunction.
PARAMETERS¶
The parameters vary according to the function number. - Logical Device number specifying which PIOC module to access. - Slot number (1-8) in PIOC kick channel. (Not functions 4, 5, 6 or 7.) - Function number (0-7). (See following page.) - The message itself (2 bytes of information). Used by functions 2 and 3. - Segment number to be loaded (function 4). - Page number where the loading should start (function 4). - Status code (octal). (See following page.) - Standard Error Code. See appendix A.
| PASCAL |
|---|
| Not available. |
| COBOL |
|---|
| Not available. |
| FORTRAN |
|---|
| Not available. |
Page 389¶
SINTRAN III Monitor Calls¶
| PLANC |
|---|
| Not available. |
| ASSEMBLY-500 |
|---|
| Not available. |
| MAC |
|---|
See the PIOC Software Guide (ND-860161).
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.
| ND-100 | User RT and user SYSTEM | All programs |
Page 390¶
146B PrivInstruction¶
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.
Parameters¶
→ The machine instruction as an octal number. For example, specify 150412B for the machine instruction PION. See the ND-100 Reference Manual (ND-06.014) for the other privileged instructions.
Pascal¶
Instruction : INTEGER2;
...
PrivInstruction(Instruction);
Cobol¶
01 Instruction COMP.
...
MONITOR-CALL "PrivInstruction" USING Instruction.
Fortran¶
INTEGER Instruction
...
Monitor_Call('PrivInstruction', Instruction)
Page 391¶
SINTRAN III Monitor Calls¶
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
Page 392¶
SINTRAN III Monitor Calls¶
37B ReadADChannel AIRDW¶
Reads an analog to digital channel.
PARAMETERS¶
- Standard Error Code. See appendix A.
| PASCAL | Not available. |
|---|---|
| COBOL | Not available. |
| FORTRAN | Not available. |
Page 393¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
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 |
Page 394¶
ReadBlock¶
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.
See also SetStartBlock, SetBlockSize, ReadDiskPage, ReadFromFile, and WriteBlock.
Parameters¶
- File number. See
OpenFile. - Block number.
- Array for data returned.
- Standard Error Code. See appendix A.
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 ...
Page 395¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : FileNumber, BlockNo
BYTES : DataDestination(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReadBlock', FileNumber, BlockNo, DataDestination(0))
ASSEMBLY-500¶
Not available.
MAC¶
LDT FILN0 %File number returned from earlier open.
LDA BLKN0 %Block number.
LDX (BUFF %Address of buffer to receive block read.
MON 7 %Monitor call ReadBlock.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILN0, ...
BLKN0, ...
BUFF, 0
*+400/ %Make a buffer of 256 words.
| ND-100 | All users | All programs |
Page 396¶
ReadDiskPage¶
Reads one or more directory pages. Any page can be read.
- The directory must be reserved with ReserveDir.
See also WriteDiskPage.
Parameters¶
- Directory index. See GetDirUserIndexes.
- Buffer to receive pages.
- Address of the destination pages on the disk.
- Number of pages to transfer. Each page is 2048 bytes.
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 ...
Page 397¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 398¶
117B ReadFromFile RFILE¶
Reads any number of bytes from a file. The read operation must start at the beginning of a block. The file must be opened for random read access.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
- You may use access code D for direct transfer. Then the block size must be a multiple of the page size. The number of bytes to transfer must be a multiple of the block size.
- Peripheral files are always read sequentially.
- Data transfer across segment or RT common limits is illegal as this would be likely to result in inconsistent data.
See also SetStartBlock, SetBlockSize, ReadDiskPage, ReadBlock, WriteBlock, and WriteToFile.
PARAMETERS¶
| Parameter | Description |
|---|---|
| File number | See Openfile. |
| 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. |
| Transferred data | |
| Block number | To start the read operation. Use -1 to read the next block. |
| Number of bytes | To read. |
| Standard Error Code | See appendix A. |
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 ...
Page 399¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : FileNo, RetFlag, BlockNo
BYTES : Buff(0:511)
INTEGER4 : NoOfBytes
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('ReadfromFile', FileNo, RetFlag, Buff(0), BlockNo, NoOfBytes)
ASSEMBLY-500¶
FileNo : W BLOCK 1
WaitFlag : W BLOCK 1
Buff : W BLOCK 256 %Must start on an even byte address.
BlockNo : W BLOCK 1
NoOfBytes : W BLOCK 1
ErrCode : W BLOCK 1
ReadFromFile : EQU 37B9 + 117B
...
CALLG ReadfromFile, 5, FileNo, WaitFlag, Buff, BlockNo, NoOfBytes
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDA (PAR %Load register A with address of parameter list.
MON 117 %Monitor call ReadFromFile.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Error number in register A.
...
PAR, FILNO %File number returned from earlier call to OpenFile.
RETUR %Return flag.
BUFF %Buffer to receive data.
BLKNO %Block number in file where data starts.
COUNT %Number of words to be read.
...
FILNO, ...
RETUR, 0
BUFF, 0
*+400/ %Make a buffer of 256 words.
BLKNO, ...
COUNT, ...
| ND-100 and ND-500 | All users | All programs |
Page 400¶
41B ReadObjectEntry¶
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.
See also GetObjectEntry and SetObjectEntry.
Parameters¶
- ➞ The file number. See Openfile.
- ➞ The 64 byte object entry. See appendix C.
- ➞ Standard Error Code. See appendix A.
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 ...
Page 401¶
SINTRAN III Monitor Calls¶
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 |
Page 402¶
5B ReadScratchFile RDISK¶
Reads randomly from the scratch file. One block is transferred. There is one scratch file connected to each terminal. It is opened for random read and write access when you log in. Its file number is 100B.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
See also ReadBlock and ReadFromFile. ReadFromFile is the most efficient monitor call.
PARAMETERS¶
| Parameter | Description |
|---|---|
| Block number | Block number to start the reading. |
| Array | Array for the transferred data. |
| Standard Error Code | See appendix A. |
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 ...
Page 403¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : BlockNumber
BYTES : DataDestination(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReadScratchFile', BlockNumber, DataDestination(0))
ASSEMBLY-500¶
Not available.
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
Page 404¶
340B READSYSTEMRECORD¶
Used to read the system record into a buffer.
PARAMETERS¶
- Record type (A-reg.): 1 = RT-description.
2 = ND-100 segment-table entry. - RT-description address or segment number (T-reg.).
- Buffer address (X-reg.). Address of buffer to receive system record. This buffer must have a minimum length of 38 words if Record Type =1, or 8 words if Record Type =2.
- FØrmat (only for ND-500): 0 = return information on 16-bit integer format
1 = return information on 32-bit integer format - If parameter 1 =1, then A-register returns the number of devices connected with MON 106, StartOnInterrupt.
- Standard Error Code. See appendix A.
| PASCAL | |
|---|---|
| Not available. |
| COBOL | |
|---|---|
| Not available. |
| FORTRAN | |
|---|---|
| Not available. |
Page 405¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
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
Page 406¶
212B ReentrantSegment¶
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.
See also AttachSegment.
Parameters¶
- Segment number to attach.
Pascal¶
SegmentNumber : INTEGER2;
...
ReentrantSegment(SegmentNumber);
COBOL¶
01 SegmentNumber COMP.
...
MONITOR-CALL "ReentrantSegment" USING SegmentNumber.
FORTRAN¶
INTEGER SegmentNumber
...
Monitor_Call('ReentrantSegment', SegmentNumber)
Page 407¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SegmentNumber
...
Monitor_Call('ReentrantSegment', SegmentNumber)
ASSEMBLY-500¶
Not available.
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 |
Page 408¶
Release Directory¶
Releases a directory. The directory must have been reserved with ReserveDir.
See also ReleaseResource.
Parameters¶
- Directory index. Use @LIST-DIRECTORIES to find the directory index.
- Standard Error Code. See appendix A.
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 ...
Page 409¶
SINTRAN III Monitor Calls¶
PLAN C¶
INTEGER : DirectoryIndex
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('ReleaseDir', DirectoryIndex)
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 |
Page 410¶
ReleaseResource¶
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.
See also ForceRelease, ReserveResource, ReleaseDir, @RESRV, @RELEASE-FILE, and @RELEASE-DEVICE-UNIT.
Parameters¶
- Logical device number. See appendix B.
- Input or output flag. Use 0 for the input part and 1 for the output part.
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)
Page 411¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 412¶
SINTRAN III Monitor Calls¶
232B RENAMEFILE MRNFI¶
Renames a file. You need directory access to the file.
- All versions of a file are renamed unless you specify a version number.
See also @RENAME-FILE.
PARAMETERS¶
- Old file name.
- New file name with file type, e.g. ADDRESS-LIST:TEXT. Do not use the directory name, the user name, or the version number. You may change the file type only. For example, specify :SYMB only. Include the colon.
- Standard Error Code. See appendix A.
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 ...
Page 413¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : OldFileName(0:63), NewFileName(0:63)
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('RenameFile', OldFileName, NewFileName)
ASSEMBLY-500¶
OldFileName : STRINGDATA 'TEXT:TEXT'
NewFileName : STRINGDATA 'EXAMPLE:SYMB'
ErrCode : W BLOCK 1
RenameFile : EQU 37B9 + 232B
...
CALLG RenameFile, 2, OldFileName, NewFileName
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDX (OLDFI) %Address of string with old file name.
LDA (NEWFI) %Address of string with new file name.
MON 232 %Monitor call RenameFile.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
OLDFI, 'TEXT:TEXT' %Change name of file TEXT:TEXT to EXAMPLE:SYMB.
NEWFI, 'EXAMPLE:SYMB'
| ND-100 and ND-500 | All users | All programs |
|---|---|---|
Page 414¶
140B ReservationInfo WHDEV¶
Checks that a device is not reserved. If it is reserved, you will receive information about which RT program that reserves it.
- Some devices have both an input and an output part. You have to use ReservationInfo for each part.
See also ReserveResource, ReleaseResource, and @LIST-DEVICE.
PARAMETERS¶
- Logical device number. See appendix B.
- Input or output flag. 0 means the input part. 1 means the output part.
- RT description address of reserving RT program. 0 means not reserved. Errors in the parameters return -1.
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)
Page 415¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 416¶
ReserveDir¶
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.
See also ReleaseDir.
Parameters¶
- Directory index. Use @LIST-DIRECTORIES to find the directory index.
- Standard Error Code. See appendix A.
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 ...
Page 417¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DirectoryIndex
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('ReserveDir', DirectoryIndex)
ASSEMBLY-500¶
| DirectoryIndex : W BLOCK 1 |
|---|
| ErrCode : W BLOCK 1 |
| ReserveDir : EQU 3789 + 246B |
| ... |
| CALLG ReserveDir, 1, DirectoryIndex |
| IF K GO ERROR |
| ... |
| ERROR : W1 =: ErrCode |
%ErrorCode in W1 register.
MAC¶
LDT DIRIX %Directory index.
MON 246 %Monitor call ReserveDir.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
DIRIX, ...
ND-100 and ND-500 | User RT and user SYSTEM | All programs
Page 418¶
122B ReserveResource RESRV¶
Reserves a device or file for your program only. You release it with ReleaseResource. Some devices, e.g. terminals, have both an input and output part. You can only reserve one part with each ReserveResource call.
- A normal termination of an RT program releases all resources.
- Release the device with ReleaseResource or ForceRelease.
- A background program does not release a resource when you press the ESCAPE key.
See also ForceReserve, ReserveDir, @RESRV, @RESERVE-FILE, and @RESERVE-DEVICE-UNIT.
PARAMETERS¶
- Logical device number. See appendix B.
- Input or output flag. Use 0 for the input part and 1 for the output part.
- Wait flag. Use 0 to make the program wait if the resource is already reserved. Use 1 to return a status value.
- Return status. Only used if the wait flag is 1. A negative value is returned if the resource is already reserved.
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)
Page 419¶
SINTRAN III Monitor Calls¶
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
Page 420¶
416B SaveND500Segment¶
Writes all modified pages of a segment back to the disk.
- Not allowed when fixed in memory.
See also SaveSegment.
Parameters¶
- Logical segment number in the domain. If 0, the segment number is retrieved from the parameter address.
- First logical page in the segment.
- Last logical page in the segment.
- Standard Error Code. See appendix A.
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 ...
Page 421¶
SINTRAN III Monitor Calls¶
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.
MAC¶
Not available.
| ND-500 | All users | All programs |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 422¶
164B SAVESEGMENT WSEG¶
Saves a segment in the ND-100. All pages in physical memory which have been changed, are written back to the disk.
See also SaveND500Segment.
PARAMETERS¶
- Segment number.
PASCAL¶
SegmentNumber : INTEGER2;
...
SaveSegment(SegmentNumber);
COBOL¶
01 SegmentNumber COMP.
...
MONITOR-CALL "SaveSegment" USING SegmentNumber.
FORTRAN¶
INTEGER SegmentNumber
...
Monitor_Call('SaveSegment', SegmentNumber)
Page 423¶
SINTRAN III Monitor Calls¶
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 |
Page 424¶
235B SCRATCHOPEN¶
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 file is closed as any other opened file.
See also OpenFile, SetPermanentOpen, DirectOpen, CloseFile, and @SCRATCH-OPEN.
PARAMETERS¶
- File number. Monitor calls for input and output use this number.
- Access code. The legal values are shown below.
| Code | Description |
|---|---|
| 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. |
| 9 | Random read, write append for WriteToFile and ReadFromFile. |
- File name.
- Default file type. Do not include the colon.
- Standard Error Code. See appendix A.
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_Call1('ScratchOpen', FileNo, AccessCode, FileName(1:64),
FileType(1:4))
IF (ErrCode .NE. 0) THEN ...
Page 425¶
SINTRAN III Monitor Calls¶
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 |
Page 426¶
341B SegmentFunction SGMTY¶
This is a multifunction monitor call used to change the active segments of a program, or the page index tables used by a program.
- This monitor call is meant to replace the older calls ChangeSegment (SPCHG, 337), and JumpToSegment (MCALL, 132) and ExitFromSegment (MEXIT, 133) on the VSX version.
- In ChangeSegment, JumpToSegment and ExitFromSegment, the segment numbers are limited to 8 bits (values 0-255). With the monitor call SegmentFunction, the segment numbers are 16 bits (values 0-65535).
- The functionality of the calls MCALL and MEXIT is expanded so as to allow you to change (or not) the page index table to be used with the new segment.
- A new function has been introduced in this call, that of removing a routine from being a direct task or a device driver, which has been entered as such by the monitor call SegmentToPageTable (ENTSEG).
See also ChangeSegment, JumpToSegment and ExitFromSegment.
PARAMETERS¶
- Function code.
- 0 = JumpToSegment (MCALL) without PIT change
- 1 = ExitFromSegment (MEXIT) without PIT change
- 2 = JumpToSegment (MCALL) with PIT change
- 3 = ExitFromSegment (MEXIT) with PIT change
- 4 = REMSG (remove segment entered by ENTSEG)
For function 4 (REMSG), parameters 2 (ADDR), 4 (SEG2), and 5 (PITS) must be zero.
- Start/return address
- New segment 1
- New segment 2
- New page index tables
The values returned in the following registers depend on the function in parameter 1:
| Function | Register |
|---|---|
| Functions 0 and 2 | (MCALL): |
| T | Old segment 1 |
| D | Old segment 2 |
| L | Return address |
| X | Old PITs if PITs changed (function 2) |
| Functions 1 and 3 | (MEXIT): No register change |
| Function 4 | (REMSG): A = 0 : ok |
| -1 : segment not entered | |
| -2 : illegal segment number | |
| -3 : no segments entered | |
| -4 : illegal parameter |
- Standard Error Code. See appendix A.
PASCAL¶
Not available.
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 427¶
SINTRAN III Monitor Calls¶
PLANC¶
Not available.
ASSEMBLY-500¶
Not available.
MAC¶
| Command | Description |
|---|---|
| LDT (PARLI | %Load T register with address of parameter list. |
| MON 341 | %Monitor call SegmentFunction. |
| JMP ERROR | %Error return. |
| ... | %Normal return. |
Parameters¶
| Parameter | Condition |
|---|---|
| FUNC | |
| ADDR | %ADDR must be 0 if function code is 4 |
| SEG1 | |
| SEG2 | %SEG2 must be 0 if function code is 4 |
| PITS | %PITS must be 0 if function code is 4 |
| ND-100 | User RT and user SYSTEM | RT programs |
Page 428¶
323B SegmentOverlay¶
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.
- The building of multisegment programs is taken care of automatically by the BRF-LINKER. See the BRF-LINKER USER MANUAL (ND-860196).
PARAMETERS¶
- Segment number. The segment must be reentrant.
- Page number of first page in address-area 1. Normally in the program bank.
- Number of pages in address-area 1.
- Page number of first page in address-area 2. Normally in the data bank.
- Number of pages in address-area 2.
- Clear flag. If not 0, the earlier specified overlay areas are cleared. Use 0 the first time SegmentOverlay is called.
- Standard Error Code. See appendix A.
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)
Page 429¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : SegmentNo, Page1A1, NoPageA1, Page1A2, NoPageA2, Clearflag
...
Monitor_Call('SegmentOverlay', SegmentNo, Page1A1, NoPageA1, &
Page1A2, NoPageA2, Clearflag)
ASSEMBLY-500¶
Not available.
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 |
Page 430¶
157B SegmentToPageTable ENTSG¶
Enters a routine as a direct task or as a device driver, and "remembers" which segments have been entered (up to 24 segments). These are reentered at restart following a power failure. The routines are connected to the interrupt system. They are loaded with the RT LOADER or by DMAC.
- The segment where the routine resides must be fixed in memory. See FixScattered.
- The segments can be removed from the selected PIT by using function 4 of ChangeActiveSegments (MON 341).
- Unfixing the segment (using UnFixSegment, MON 116), removes it from the Page Index Table.
See also @ENTSEG.
PARAMETERS¶
- Segment number where the routine resides.
- Page table to use for the segment. In practice, this should be 3. For SINTRAN III VSX, version K, the range is 0-17.
- The interrupt level where the direct task should run. You must specify one of the free levels 6, 7, 10B or 11B. Do not use level 2B on SINTRAN III VSX, version K.
- Start address of the routine (entry point).
- Error code in A-register = 0 : OK
| Code | Explanation |
|---|---|
| -1 | attempt to enter too many segments |
| -2 | illegal segment number |
| -3 | illegal Page Index Table |
| -4 | segment is not fixed |
| -5 | illegal interrupt level |
| -6 | PIT already in use |
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)
Page 431¶
SINTRAN III Monitor Calls¶
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 |
Page 432¶
76B SetBlockSize SETBS¶
Sets the block size of an opened file. Monitor calls which read randomly from, or write randomly to a file, operate on blocks. See ReadFromFile and WriteToFile.
- The standard block size is 512 bytes. This block size is set when the file is opened.
- The block size is reset when the file is closed.
- Factors of 2048 bytes are the most efficient block sizes.
See also SetStartBlock, ReadFromFile, WriteToFile, and @SET-BLOCK-SIZE.
PARAMETERS¶
| ⮞ | File number. See OpenFile. |
| ⮞ | Block size in bytes. It must be an even number. |
| ⮜ | Standard Error Code. See appendix A. |
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 ...
Page 433¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 434¶
SetBreak¶
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.
See also SetEcho.
Parameters¶
- Logical device number. See appendix B. Only used by RT programs. Your own terminal is always selected for background programs.
-
Break strategy. Negative values gives break on no characters.
Value Description 0 Break on all characters. 1 Break on control characters, i.e. ASCII values less than 32 and DEL. This is the default. 2 Special break table used by the MAC assembler. 3-6 System defined break strategy. 7 User-defined break table. See the next parameter. 8 Last user-defined break table. (Only meaningful with strategy 7.) 9 Change the maximum numbers of characters before break only.
- User-defined break table, i.e. 128 bits which represent the ASCII characters. Use 1 for the characters you want as break characters. See the ASCII table in appendix F.
- Maximum number of characters before break. Dummy with break strategies 0, 1, 2.
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)
Page 435¶
SINTRAN III Monitor Calls¶
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 |
Page 436¶
SetClock¶
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.
See also AdjustClock, GetCurrentTime, and GetBasicTime.
PARAMETERS¶
- Minutes.
- Hours.
- Days.
- Months.
- Years.
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)
Page 437¶
SINTRAN III Monitor Calls¶
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 |
Page 438¶
SetCommandBuffer¶
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 and CallCommand.
PARAMETERS¶
→ String to be transferred to the command buffer.
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))
Page 439¶
SINTRAN III Monitor Calls¶
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 |
Page 440¶
3B SETECHO¶
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.
See also SetBreak.
PARAMETERS¶
- The terminal's logical device number. See appendix B. Only needed for RT programs. Background programs ignore this parameter. The user's terminal is assumed.
- Echo strategy. Less than 0: No echo, e.g. for password fields.
- 0: Echo on all characters.
- 1: Echo on all characters except control characters.
- 2: Special echo used by MAC.
- 3-6: System defined echo.
- 7: User-defined echo. See the next parameter.
- 8: Last user-defined echo table. (Only meaningful with echo strategy 7.)
- User-defined echo table. Ignored if the echo is different from 7. Use 128 bits to represent the ASCII characters. Use 0 for the character that should have echo. For example, if bit number 65 is 0, the character A gives echo. See the ASCII table in appendix F.
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))
Page 441¶
SINTRAN III Monitor Calls¶
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 |
Page 442¶
SetEscapeHandling¶
Enables user-defined escape handling. When the ESCAPE key is pressed, execution continues at the specified address in your program.
- Disable the user-defined escape handling with StopEscapeHandling.
- The normal escape handling is reset when the program aborts.
See also EnableEscape and OffEscLocalFunction.
Parameters¶
- Contents of first location of escape-handler routine (see PLANC example).
- Standard Error Code. See appendix A.
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 ...
Page 443¶
SINTRAN III Monitor Calls¶
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',lnd(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, ... |
| ND–100 | All users | Background programs |
Page 444¶
227B SetEscLocalChars MSDAE¶
You can terminate most programs with the ESCAPE key. A LOCAL key has a similar function. It terminates a connection to a remote computer in a network. This monitor call allows you to select other keys for these functions.
- The local function is only used by COSMOS.
- Appendix F shows the ASCII values of the characters.
See also SetEscapHandling, GetEscLocalChars, OnEscLocalChars, and OffEscLocalChars.
Parameters¶
- Logical device number. See appendix B. Only used by RT programs. Your own terminal is always used in background program.
- The local character.
- The escape character.
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)
Page 445¶
SINTRAN III Monitor Calls¶
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 3789 + 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, ...
| ND-100 and ND-500 | All users | All programs |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 446¶
237B SetFileAccess SFACC¶
Sets the access protection for a file. You should specify the access for yourself, friends, and other users. The default file access for yourself is full access. Your friends have read access only. Other users have no access.
- You need directory access to a file to change the file access. User SYSTEM and RT may set the access protection for any files.
- Use the characters R, W, A, C, D, and N to specify the legal file access. R means Read. W means Write. A means Append to the end of a file. C means Common, i.e. more than one user may access the file at a time. D means Directory access, i.e. the file may be deleted, new versions created, etc. N means No access.
- Use @FILE-STATISTICS to check the file access.
See also CreateFriend, SetObjectEntry, @SET-FILE-ACCESS, and @SET-DEFAULT-FILE-ACCESS.
PARAMETERS¶
- File name. It is most efficient to use unabbreviated file names, e.g. EXAMPLE:TEXT. The default file type is :SYMB.
- Public access. Use N or a combination of R, W, A, C, and D. Public access is typically set to R or N.
- Friend access. Use N or a combination of R, W, A, C, and D. Friend access is typically set to RWA or R.
- Own access. Use N or a combination of R, W, A, C, and D. Own access is typically RWACD, though lesser combinations can be used (e.g. RWAC to protect your own files from accidental deletion by yourself).
- Standard Error Code. See appendix A.
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
Page 447¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : FileName(0:63), PubAccess(0:5), FriendAccess(0:5), OwnAccess(0:5)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetFileAccess', FileName, PubAccess, FriendAccess, OwnAccess)
ASSEMBLY-500¶
FileName : STRINGDATA 'EXAMPLE:SYMB''' %Set access of file EXAMPLE:SYMB to
PubAccess : STRINGDATA 'N''' % no public access
FriendAccess : STRINGDATA 'RA''' % read, append access for friends
OwnAccess : STRINGDATA 'RWACD''' % full own access
ErrCode : W BLOCK 1
SetFileAccess : EQU 37B9 + 237B
...
CALLG SetFileAccess, 4, FileName, PubAccess, FriendAccess, OwnAccess
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDX (FILE %Address of string with file name.
LDT (PUBAC %Address of string with public access characters.
LDA (FRIAC %Address of string with own access characters.
COPY SA DD
LDA (OWNAC %Address of string with friend access characters.
MON 237 %Monitor call SetFileAccess.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
...
FILE, 'EXAMPLE:SYMB' %Change access for EXAMPLE:SYMB.
PUBAC, 'N' %No public access.
FRIAC, 'RA' %Read write append access for friend.
OWNAC, 'RWACD' %Full own access.
| ND-100 and ND-500 | All users | All programs |
Page 448¶
SetMaxBytes¶
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.
See also GetBytesInfile and SetStartByte.
Parameters¶
| Parameter Description |
|---|
| File number. See OpenFile. |
| Maximum file size in bytes. |
| Standard Error Code. See appendix A. |
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 ...
Page 449¶
SINTRAN III Monitor Calls¶
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 |
Page 450¶
436B SetND500Param¶
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.
See also TerminationHandling, GetUserParam, SetUserParam, and GetND500Param.
Parameters¶
The five user parameters as an array. SINTRAN III's termination handling returns the following:
| Parameter | Description |
|---|---|
| 1 | Bit 24:16 contains the user index. Bit 15:0 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 SetND500Param. |
| 5 | Set by SetND500Param. |
The parameters are returned if the user presses 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.
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))
Page 451¶
SINTRAN III Monitor Calls¶
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 |
Page 452¶
SetObjectEntry¶
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.
See also GetObjectEntry, GetAllFileIndexes, and @CHANGE-OBJECT-ENTRY.
PARAMETERS¶
- The 64 byte object entry. See appendix C.
- The directory index. See GetAllFileIndexes.
- The user index. See GetAllFileIndexes.
- The object index. See GetAllFileIndexes.
- Remote flag. Use 0 for the local computer and 1 for a remote computer.
- Remote system identification if remote flag is 1.
- Standard Error Code. See appendix A.
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 ...
Page 453¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 454¶
SetOutputFlags¶
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.
See also SetOutputFlags.
PARAMETERS¶
| ➞ | Flag values as a 32-bit integer. |
PASCAL¶
Value : LONGINT;
...
SetOutputFlags(Value);
COBOL¶
01 Value COMP.
...
MONITOR-CALL "SetOutputFlags" USING Value.
FORTRAN¶
INTEGER Value
...
Monitor_Call('SetOutputFlags', Value)
Page 455¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : Value
...
Monitor_Call('SetOutputFlags', Value)
ASSEMBLY-500¶
Value : W BLOCK 1
SetOutputFlags : EQU 37B9 + 403B
...
CALLG SetOutputFlags, 1, Value
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 456¶
234B SetPeripheralName SPEF1¶
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.
See also SetTerminalFile and @SET-PERIPHERAL-FILE.
Parameters¶
| Parameter Description |
|---|
| ➞ File name for the peripheral. See appendix G. |
| ➞ Logical device number. See appendix B. |
| ⬅ Standard Error Code. See appendix A. |
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 ...
Page 457¶
SINTRAN III Monitor Calls¶
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 |
Page 458¶
SetPermanentOpen¶
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.
See also OpenFile, CloseFile, and @SET-PERMANENT-OPEN.
Parameters¶
| Parameter | Description |
|---|---|
| File number | See OpenFile. |
| Standard Error | Code. See appendix A. |
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 ...
Page 459¶
SINTRAN III Monitor Calls¶
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 |
Page 460¶
SetProcessName¶
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 and GetOwnProcessInfo.
Parameters¶
→ Process name.
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))
Page 461¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : ProcessName(0:33).
...
Monitor_Call('SetProcessName', ProcessName)
ASSEMBLY-500¶
ProcessName : STRINGDATA 'WP-PROCESS'...
SetProcessName : EQU 37B9 + 425B
...
CALLG SetProcessName, 1, ProcessName
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 462¶
SetProcessPriority¶
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.
Parameters¶
→ Priority.
PASCAL¶
NewPriority : LONGINT;
...
SetProcessPriority(NewPriority);
COBOL¶
01 NewPriority COMP.
...
MONITOR-CALL "SetProcessPriority" USING NewPriority.
FORTRAN¶
INTEGER NewPriority
...
Monitor_Call('SetProcessPriority', NewPriority)
Page 463¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : NewPriority
...
Monitor_Call('SetProcessPriority', NewPriority)
ASSEMBLY-500¶
NewPriority : W BLOCK 1
SetProcessPriority : EQU 37B9 + 507B
...
CALLG SetProcessPriority, 1, NewPriority
MAC¶
Not available.
| ND-500 | User RT and user SYSTEM | All programs |
Page 464¶
316B SetRemoteAccess¶
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.
See also QSET-LOCAL-MODE or QSET-REMOTE-MODE.
Parameters¶
| ➞ | Remote mode flag. Use 0 to switch remote mode off. Switch it on with 1. |
| ⬅ | Standard Error Code. See appendix A. |
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 ...
Page 465¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : Mode
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('SetRemoteAccess', Mode)
ASSEMBLY-500¶
Mode : W BLOCK 1
SetRemoteAccess : EQU 37B9 + 316B
...
CALLG SetRemoteAccess, 1, Mode
MAC¶
| LDA | MODE | %Local / Remote Flag. |
|---|---|---|
| MON | 316 | %Monitor call SetRemoteAccess. |
| ... | ... | ... |
| ND-100 and ND-500 | All users | All programs |
Page 466¶
SetRTPriority¶
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.
See also SetND500Priority and @PRIOR.
Parameters¶
- Address of the RT description. You may use 0 for your own program.
- Priority.
- The previous priority.
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)
Page 467¶
SINTRAN III Monitor Calls¶
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 |
Page 468¶
SetStartBlock¶
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.
See also SetStartByte and @SET-BLOCK-POINTER. The monitor call is identical to SetStartByte with the block number multiplied by the block size as parameter.
Parameters¶
| Parameter | Description |
|---|---|
| File number | See OpenFile. |
| Block number | Next block to be read or written. |
| Standard Error Code | See appendix A. |
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 ...
Page 469¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 470¶
SetStartByte¶
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.
See also GetStartByte, SetStartBlock, SetMaxBytes, and @SET-BYTE-POINTER.
Parameters¶
- File number. See OpenFile.
- Start byte in the file, i.e. number of next byte to be read or written.
- Standard Error Code. See appendix A.
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 ...
Page 471¶
SINTRAN III Monitor Calls¶
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 |
Page 472¶
233B SetTemporaryFile¶
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.
See also CreateFile and @SET-TEMPORARY-FILE.
Parameters¶
| Parameter | Description |
|---|---|
| → File name. | |
| ← Standard Error Code. | See appendix A. |
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 ...
Page 473¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 474¶
SetTerminalName¶
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.
See also SetPeripheralName and @SET-TERMINAL-FILE.
Parameters¶
- File name.
- Standard Error Code. See appendix A.
Pascal¶
Not available.
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 ...
Page 475¶
SINTRAN III Monitor Calls¶
PLANC¶
BYTES : TerminalName(0:63)
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
Monitor_Call('SetTerminalName', TerminalName)
ASSEMBLY-500¶
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¶
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 |
|---|---|---|
Page 476¶
17B SetTerminalType MSTTY¶
Sets the type of a terminal. The terminal type tells SINTRAN III how to handle a particular terminal. A wrong terminal type normally distorts the screen. The function keys cannot be used.
- Appendix H lists the terminal types.
- Public background users may only set the terminal type for their own terminal. A background program must be run from user SYSTEM or RT to set the terminal type for another terminal.
See also GetTerminalType and @SET-TERMINAL-TYPE.
PARAMETERS¶
- The logical device number of the terminal. You may use 1 for your own terminal in background programs.
- The terminal type.
- Standard Error Code. See appendix A.
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 ...
Page 477¶
SINTRAN III Monitor Calls¶
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 |
Page 478¶
SetUserParam¶
Sets information about a background program. Use GetUserParam 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.
See also TerminationHandling, GetUserParam, @DEFINE-TERMINATION-HANDLING, @DISABLE-TERMINATION-HANDLING, and @SET-USER-PARAMETERS.
PARAMETERS¶
The five user parameters. 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 | Description |
|---|---|
| 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. |
The parameters are returned if the user presses 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.
PASCAL¶
Buff : RECORD...END;
...
SetUserParam(Buff);
COBOL¶
01 Buff.
02 array COMP OCCURS 5 TIMES.
...
MONITOR-CALL "SetUserParam" USING Buff.
FORTRAN¶
INTEGER Buff(5)
...
Monitor_Call('SetUserParam', Buff(1))
Page 479¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER ARRAY : Buff(0:4)
...
Monitor_Call('SetUserParam', Buff(0))
ASSEMBLY-500¶
Buff : H BLOCK 5
SetUserParam : EQU 37B9 + 568
...
CALLG SetUserParam, 1, Buff
MAC¶
| Instruction | Parameter | Comment |
|---|---|---|
| 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, ... %Left byte: directory index, Right byte: user index.
... %Logical device number, terminal number.
... %-1 if escape, otherwise error number.
... %User defined.
... %User defined.
| ND-100 and ND-500 | All users | All programs |
Page 480¶
106B StartOnInterrupt¶
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.
See also NoInterruptStart and @CONCT.
Parameters¶
- Address of RT description. Use 0 for your own RT description address.
- Logical device number. See appendix B.
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)
Page 481¶
SINTRAN III Monitor Calls¶
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
Page 482¶
500B STARTPROCESS¶
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.
See also StopProcess and SwitchProcess.
PARAMETERS¶
- Process number.
- Standard Error Code. See appendix A.
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 ...
Page 483¶
SINTRAN III Monitor Calls¶
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 3789 + 500B
...
CALLG StartProcess, 1, ProcessNumber
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 484¶
StartRTProgram¶
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.
See also StartupTime, StartupInterval, DelayStart, and @RT.
Parameters¶
- Address of RT description. Use 0 for your own RT description address.
Pascal¶
RTProgram : INTEGER2;
...
StartRTProgram(RTProgram);
COBOL¶
01 RTProgram COMP.
...
MONITOR-CALL "StartRTProgram" USING RTProgram.
FORTRAN¶
INTEGER RTProgram
...
Monitor_Call('StartRTProgram', RTProgram)
Page 485¶
SINTRAN III Monitor Calls¶
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 |
|---|---|---|
Page 486¶
103B STARTUPINTERVAL¶
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.
See also ExactInterval and @INTV. ExactInterval allows you to specify intervals between 0 and 4294967647 basic time units.
PARAMETERS¶
| Parameter | Description |
|---|---|
| Address of an RT description. 0 means calling program. GetRtAddress gives RT description addresses. | |
| Number of time units between executions of the program. | |
| The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours. |
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)
Page 487¶
SINTRAN III Monitor Calls¶
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 |
Page 488¶
StartupTime¶
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.
See also ExactStartup, DelayStartup, AdjustClock and @ABSET.
Parameters¶
- Address of the RT description. Use 0 for the calling program.
- Seconds.
- Minutes.
- Hours.
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)
Page 489¶
SINTRAN III Monitor Calls¶
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
Page 490¶
SINTRAN III Monitor Calls¶
301B StopEscapeHandling DUSEL¶
Disables user-defined escape handling. The ESCAPE key terminates the program as normal. StartEscapeHandling starts user-defined escape handling.
- User-defined escape handling stops when a program terminates.
See also StartEscapeHandling and DisableEscape.
Parameters¶
- Standard Error Code. See appendix A.
Pascal¶
Not available.
COBOL¶
MONITOR-CALL "StopEscapeHandling".
CALL "CbError" USING ErrCode.
IF ErrCode NOT 0 GO ....
FORTRAN¶
Monitor_Call ('StopEscapeHandling')
IF (ErrCode .NE. 0) THEN...
Page 491¶
SINTRAN III Monitor Calls¶
PLANC¶
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN...
ENDON
...
Monitor_Call('StopEscapeHandling')
ASSEMBLY-500¶
Not available.
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 |
Page 492¶
StopProcess¶
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 and SwitchProcess.
PARAMETERS¶
This monitor call has no parameters.
PASCAL¶
Not available.
COBOL¶
MONITOR-CALL "StopProcess"
FORTRAN¶
Monitor_Call('StopProcess')
Page 493¶
SINTRAN III Monitor Calls¶
PLANC¶
Monitor_Call('StopProcess')
ASSEMBLY-500¶
Not available.
MAC¶
StopProcess : EQU 37B9 + 501B
CALLG StopProcess
| ND-500 | All users | All programs |
Page 494¶
StopRTProgram¶
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 and @ABORT.
Parameters¶
➡️ Address of the RT description. Use 0 for the calling program.
Pascal¶
Not available.
COBOL¶
01 RTProgram COMP.
MONITOR-CALL "StopRTProgram" USING RTProgram.
FORTRAN¶
INTEGER RTProgram
Monitor_Call('StopRTProgram', RTProgram)
Page 495¶
SINTRAN III Monitor Calls¶
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 |
Page 496¶
SuspendProgram¶
Suspends the execution of your program for a given time. The execution then continues after the time specified by the monitor call.
- No reserved files or devices are released.
- The execution continues immediately if the program has the 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 SuspendProgram.
- The parameters should not contain zero.
See also TimeOut, WaitForRestart and @HOLD.
PARAMETERS¶
- Number of time units to suspend the program.
- The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours.
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)
Page 497¶
SINTRAN III Monitor Calls¶
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
Page 498¶
SwitchProcess¶
Sets the current process in a wait state. Restarts another process. This is similar to executing a StartProcess followed by a StopProcess.
- The stopped process restarts immediately if it is scheduled for repeated execution.
See also StartProcess and StopProcess.
Parameters¶
- Process number to start.
Pascal¶
ProcessNumber : LONGINT;
...
SwitchProcess(ProcessNumber);
COBOL¶
01 ProcessNumber COMP.
...
MONITOR-CALL "SwitchProcess" USING ProcessNumber.
FORTRAN¶
INTEGER ProcessNumber
...
Monitor_Call('SwitchProcess', ProcessNumber)
Page 499¶
SINTRAN III Monitor Calls
PLANC¶
INTEGER : ProcessNumber
...
Monitor_Call('SwitchProcess', ProcessNumber)
ASSEMBLY-500¶
ProcessNumber : W BLOCK 1
SwitchProcess : EQU 37B9 + 502B
...
CALLG SwitchProcess, 1, ProcessNumber
MAC¶
Not available.
| ND-500 | All users | All programs |
|---|---|---|
Page 500¶
405B SwitchUserBreak USTRBK¶
Switches user-defined escape handling on and off. The user-defined escape handling transfers control to a routine when you press the ESCAPE key.
See also GetUserRegisters.
PARAMETERS¶
- On/off flag. Use 1 for on and 0 for off.
- Program address to start at when you press the ESCAPE key.
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)
Page 501¶
SINTRAN III Monitor Calls¶
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
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 502¶
336B TERMINAL FUNCTION¶
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.
See also SetBreak and SetEcho.
PARAMETERS¶
- Function code (more details on page 496).
- Length of function parameter array (must be greater than or equal number of input/output parameters specified for function).
- Function parameter array. (More details are given on page 496.)
- Standard Error Code. See appendix A.
PASCAL¶
Not available.
COBOL¶
Not available.
FORTRAN¶
Not available.
Page 503¶
SINTRAN III Monitor Calls¶
Not available.¶
Function: W BLOCK 1¶
- Size: W BLOCK 1
Array size in bytes (no. of parameters)
- ParamArray: W BLOCK 760B
Max size is 760B.
- Status1: W BLOCK 1
- Status2: W BLOCK 1
TerminalFunction: EQU 37B9 + 336B
CALLG TerminalFunction, 4, Func, Size, ParamArray, Status2
IF K GO Error
W1 =: Status 1
...
Error, ...
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 |
Page 504¶
Function Codes¶
The function codes (FUNC) are divided into 4 ranges, 0-77, 100-177, 200-277 and 300-377. Range 0-77 can only update SINTRAN memory area. The other ranges can update SINTRAN memory, image and save area.
The meaning of AREA when used in the input parameter array is:
| AREA | Update resident? | Update image? | Update save? |
|---|---|---|---|
| 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 |
Functions¶
The following functions are defined:
0 Set logical device number to become own terminal.
1 Reset to original own terminal.
2 Set character conversion mode for device no. 0.
3 Get character conversion mode for device no. 0.
4 Set echo strategy.
5 Get echo strategy.
6 Set break strategy.
7 Get break strategy.
10 Set communication mode for terminal.
11 Get communication mode for terminal.
12 Set/reset 8-bit unmodified input and output.
13 List logical device numbers of terminals and TADs in system.
14 Display functions.
15 Change signals on an RS-232 (V.24) connection.
16 Set/reset terminal interface in/from test mode.
17 Connect NIU on specified device number. (VSX only)
20 Disconnect NIU on specified device number. (VSX only)
21 Read/write on a PIO interface.
22 Get magic number for a TAD. (VSX only)
23 Access the CI window on a NQTS controller. (VSX only)
24 Get no-reserve status of a device. (VSX only)
25 Set/reset no-reserve status of a device. (VSX only)
100 Return function parameters set by functions 101-177.
101 Set terminal type.
102 Set escape or local character.
103 Start and stop Xon/Xoff protocol, input control.
104 Start and stop Xon/Xoff protocol, output control.
105 Set Xon/Xoff only or dual function Xon/Xoff control.
106 Set character length.
107 Set baud rate for terminal.
110 Set number of stop bits.
Page 505¶
SINTRAN III Monitor Calls¶
| Function | Description | Notes |
|---|---|---|
| 111 | Set terminal to printer or reset printer to terminal. | |
| 112⁸ | Set half or full duplex on terminal. | |
| 113⁸ | Set/reset variable speed on terminal. | |
| 114⁸ | Set/reset terminal connected to printer. | |
| 200⁸ | Set NOTS configuration. | (VSX only) |
| 201⁸ | Get NOTS configuration. | (VSX only) |
| 202⁸ | Get information about a NOTS line. | (VSX only) |
| 203⁸ | Restart/reload a NOTS. | (VSX only) |
| 300⁸ | Set SCSI device definition. | (VSX only) |
| 301⁸ | Get SCSI device definition. | (VSX only) |
| 302⁸ | Delete SCSI device definition. | (VSX only) |
| 303⁸ | Get current SCSI device definition. | (VSX only) |
Notes:¶
- Device number 1 is console terminal.
- If background program, then logical device number 0 means own terminal.
- User SYSTEM does not have to reserve a device before changing attributes (except functions 0 and 111).
Rules:¶
Common rules are given in the table overleaf. Note that there can be additional rules specified under the description of each function.
Page 506¶
Rules¶
| Function Number (Octal) | Minimum Function Parameter Array Size | Update SINTRAN Image/Save Area | Update Own Terminal's SINTRAN Memory Area | Update Other Terminal's Memory Area | Reservation of Device Needed | Allowed on Net/One Terminals | Allowed on TADs | Allowed on MTADs | Callable From |
|---|---|---|---|---|---|---|---|---|---|
| 0 1 | - | P | P | I,O | Yes | No | Yes | B | |
| 1 1 | - | P | P | No | Yes | No | Yes | B | |
| 2 2 | - | P | P | I | Yes | No | Yes | B | |
| 3 2 | - | P | P | No | Yes | No | Yes | B | |
| 4 3 | - | P | P | I | Yes | Yes | Yes | F,B | |
| 5 3 | - | P | P | No | Yes | Yes | Yes | F,B | |
| 6 4 | - | P | P | I | Yes | Yes | Yes | F,B | |
| 7 4 | - | P | P | No | Yes | Yes | Yes | F,B | |
| 10 3 | - | P | P | I,O | Yes | Yes | Yes | F,B | |
| 11 1 | - | P | P | No | Yes | Yes | Yes | F,B | |
| 12 2 | - | P | P | I | Yes | Yes | Yes | F,B | |
| 13 1 | - | - | - | - | Yes | Yes | Yes | F,B | |
| 14 4 | S | S - | No | No | No | F,B | |||
| 15 3 | - | P | P | I | No | Yes | No | F,B | |
| 16 2 | S | S,R | S,R | No | No | Yes | No | F,B | |
| 17 4 | - | - | - | I,O | Yes | - | Yes | F,B | |
| 20 2 | - | - | - | I,O | Yes | - | Yes | F,B | |
| 21 4 | - | - | - | I,O | - | - | - | F,B | |
| 22 3 | - | - | - | I,O | - | Yes | - | F,B | |
| 23 3 | - | - | - | I,O | Yes | - | - | F,B | |
| 24 2 | - | - | - | I,O | Yes | Yes | Yes | F,B | |
| 25 2 | - | - | - | I,O | Yes | Yes | Yes | F,B | |
| 100 *) | - | *** **) | No | Yes | Yes | Yes | F,B | ||
| 101 3 | S | P | S,R | I | Yes | Yes | Yes | F,B | |
| 102 4 | S | P | S,R | I | Yes | Yes | Yes | F,B | |
| 103 5 | S | P | P | I | No | No | No | F,B | |
| 104 5 | S | P | P | O | No | No | No | F,B | |
| 105 3 | S | P | P | I | No | No | No | F,B | |
| 106 4 | S | P | S,R | I | No | No | No | F,B | |
| 107 4 | S | P | S,R | I | No | No | No | F,B | |
| 110 3 | S | P | S,R | I | No | No | No | F,B | |
| 111 4 | S | S | S | I,O | Yes | No | Yes | F,B | |
| 112 3 | S | P | S,R | I | No | No | No | F,B | |
| 113 3 | S | S | S | I | No | No | No | F,B | |
| 114 3 | S | S | S | Yes | No | Yes | F,B | ||
| 200 4 | S | - | - | Yes | - | - | - | B | |
| 201 3 | S | - | - | Yes | - | - | - | B | |
| 202 4 | S | - | - | Yes | - | - | - | B | |
| 203 5 | S | - | - | Yes | - | - | - | B | |
| 300 3 | - | - | - | - | Yes | - | - | B | |
| 301 4 | S | - | - | - | - | - | - | B | |
| 302 1 | S | - | - | - | - | - | - | B | |
| 303 4 | - | - | - | - | - | - | - | B |
Abbreviations:
- B: Background program
- F: Foreground program (RT-program)
- I: Input part of device
- O: Output part of device
- P: Public users
- R: User RT
- S: User SYSTEM
*) Depends on which function to return parameter(s) from.
**) Only allowed to return function parameters for functions the user is allowed to set.
Page 507¶
SINTRAN III Monitor Calls¶
Return : Error, A-reg = error code.
X-reg = area which failure occurred:
1 = memory, 2 = image, 4 = save.
X-reg is only set for functions 100-177.
Skip return: OK.
Error returns from IOMTY, MON 336:¶
X-reg: Letter "N" means: X-reg is not set by IOMTY.
Letter "Y" means: X-reg = area which failure occurred:
1 = memory, 2 = image, 4 = save.
A-reg: Octal.
| A-reg | X-reg | Brief explanation |
|---|---|---|
| 5 | N | Device not reserved. |
| 25 | N | You are not authorized to do this. |
| 33 | N | No such logical unit. |
| 153 | N | Address outside segments bounds. |
| 155 | N | File already opened by another user. (SINTRAN III/VSE-version only, will be returned if the file SINTRAN:DATA is opened by another user). |
| 174 | N | Illegal parameter. |
| 201 | N | Illegal function code. |
| 240 | N | Illegal device type. |
| 346 | N | Illegal baud rate specified. |
| 347 | N | Illegal character length. |
| 350 | N | Illegal parity. |
| 351 | N | Only legal for background. |
| 352 | N | A device already defined as own terminal. |
| 353 | N | Illegal break/echo strategy. |
| 354 | N | Function parameter array too small. |
| 355 | N | Illegal AREA specified. |
| 356 | Y | Not 8-bit character length. |
| 357 | N | Terminal already in a display table. |
| 360 | N | Terminal not a master terminal. |
| 361 | N | Terminal not connected to specified master terminal. |
| 362 | N | Display table contains a device which is not a terminal. |
| 363 | Y | Error occurred during read/write in SINTRAN memory/image/save areas. |
| 364 | Y | Baud rate is not set by software. |
| 365 | Y | Illegal baud rate found in SINTRAN memory/image/save data field (TSPEED). |
| 366 | N | Terminal is active. |
Page 508¶
FUNCTION CODE 0:¶
Function description:¶
Set logical device number to become own terminal. The terminal identified by the logical device number specified in word 1 will act as own terminal. See also function no. 1.
Input parameter:¶
Word 1 = Logical device number to become own terminal.
Rules:¶
- Both the input and output part of a device must be reserved (even if user SYSTEM).
FUNCTION CODE 1:¶
Function description:¶
Reset to original own terminal.
See also function no. 0.
Input parameters:¶
None.
Output parameters:¶
Word 1 = Logical device number for terminal, set by function code 0.
0 is returned if not set.
FUNCTION CODE 2:¶
Function description:¶
Set character conversion mode for input when reading from device number 0, see MON INBT.
See also function no. 3.
Input parameters:¶
Word 1 = Logical device number.
Word 2 = Character conversion mode:
0 = No conversion.
1 = All characters uppercase.
Notes:¶
- Only input in user mode is affected.
Page 509¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 3:¶
Function description:
Get character conversion mode for device 0.
See also function no. 2.
Input parameters:
Word 1 = logical device number.
Output parameters:
Word 1 = unchanged
Word 2 = character conversion mode as in function 2.
FUNCTION CODE 4:¶
Function description:
Set echo strategy.
See also function no. 5 and MON ECHOM (MON 3).
Input parameters: - Word 1 = logical device number. - Word 2 = echo strategy, as A-reg in MON ECHOM (MON 3). - Word 3 = memory address to an 8-word bit map if user-defined echo strategy, otherwise 0.
FUNCTION CODE 5:¶
Function description:
Get echo strategy.
See also function no. 4.
Input parameters: - Word 1 = logical device number. - Word 2 = memory address to an 8-word bit map.
Output parameters: - Word 1 = unchanged - Word 2 = unchanged - Word 3 = echo strategy, if returned with value 7 (user defined echo strategy) then 8-word bit map is returned to memory address specified in input word 2.
FUNCTION CODE 6:¶
Function description:
Set break strategy.
See also function no. 7 and MON BRKM (MON 4).
Input parameters: - Word 1 = logical device number. - Word 2 = break strategy, as A-reg in MON BRKM (MON 4). - Word 3 = memory address to an 8-word bit map if user defined break strategy, else 0. - Word 4 = maximum number of characters before break if break strategy ≥ 3 else 0.
Page 510¶
FUNCTION CODE 7:¶
Function description:
Get break strategy.
See also function no. 6.
Input parameters:
- Word 1 = logical device number.
- Word 2 = memory address to an 8-word bit map.
Output parameters:
- Word 1 = unchanged
- Word 2 = unchanged
- Word 3 = break strategy, if is returned with value 7 (user defined break strategy) then an 8-word bit map is returned to memory address specified in input word 2.
- Word 4 = maximum number of characters before break if break strategy ≥ 3 else 0
FUNCTION CODE 10:¶
Function description:
Set communication mode for a terminal.
See also function no. 11 and TERMO (MON 52).
Input parameters:
- Word 1 = logical device number.
- Word 2 = MODE, as in MON TERMO (MON 52).
- Word 3 = communication mode:
- 0 = communication mode set as in MON TERMO (MON 52)
- 1 = set only functions marked "Y" in MODE, see MODE in TERMO
- 2 = reset functions marked "Y" in MODE, see MODE in TERMO
FUNCTION CODE 11:¶
Function description:
Get communication mode for a terminal.
See also function no. 10.
Input parameters:
- Word 1 = logical device number.
Output parameters:
- Word 1 = unchanged.
- Word 2 = MODE, as in TERMO (MON 52).
Page 511¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 12¶
Function description:
Set and reset 8-bit unmodified input/output.
Unmodified means no parity on the most significant bit in byte.
Input parameters:
Word 1 = logical device number.
Word 2 = 8-bit status:
0 = set 8-bit unmodified input/output.
1 = reset to 7-bit input/output, parity on most significant bit in byte.
Rules:
1. Only legal for terminals with 8-bit character length (see also function 106)
Notes:
1. 8-bit unmodified input/output only valid in user mode.
FUNCTION CODE 13¶
Function description:
List all logical device numbers for terminals and TADs in the system.
Input parameters:
Word 1 = logical device number.
0 if first time, otherwise last device number returned, (see output parameter word 1).
Output parameters:
Word 1 = last device returned.
-1 if no more logical device numbers to be returned.
Word 2 = number of logical devices returned.
Word 3 = logical device number.
Word 4 = device type: 0= TAD, 1= terminal.
Word 5 = logical device number.
Rules:
1. Permitted for users SYSTEM and RT only.
FUNCTION CODE 14¶
Function description:
Display functions.
This function consists of several subfunctions specified in input parameter word 1. It is possible to define several display tables. One display table consists of one master terminal and several slave terminals connected to the master terminal. All what is written on the master terminal will also be written on slave terminals.
Page 512¶
SINTRAN III Monitor Calls¶
Rules: 1. Only allowed for user SYSTEM. 2. A terminal can only be in one display table.
Subfunction code 1:¶
Subfunction description:¶
Define a master terminal.
Input parameters:¶
| Word | Description |
|---|---|
| 1 | 1 |
| 2 | Logical device number to become a master terminal. |
Subfunction code 2:¶
Subfunction description:¶
Undefine a master terminal, master terminal specified and slave terminals connected become "ordinary" terminals again.
Input parameters:¶
| Word | Description |
|---|---|
| 1 | 2 |
| 2 | Logical device number for master terminal. |
Subfunction code 3:¶
Subfunction description:¶
Insert a slave terminal in display table.
Input parameter:¶
| Word | Description |
|---|---|
| 1 | 3 |
| 2 | Logical device number for master terminal. |
| 3 | Logical device number for terminal to be inserted. |
Subfunction code 4:¶
Subfunction description:¶
Remove a slave terminal from display table.
Input parameters:¶
| Word | Description |
|---|---|
| 1 | 4 |
| 2 | Logical device number for master terminal. |
| 3 | Logical device number for slave terminal to be removed. |
Subfunction code 5:¶
Subfunction description:¶
List master terminals defined in system.
Input parameters:¶
| Word | Description |
|---|---|
| 1 | 5 |
| 2 | Last device returned. 0 if first time, otherwise last device number returned, see output word 2. |
Page 513¶
SINTRAN III Monitor Calls¶
Output parameters:¶
- Word 1 = unchanged
- Word 2 = last device returned.
-1 if no more logical device numbers to be returned. - Word 3 = number of devices returned
- Word 4 = device number for master terminal
- Word 5 = device number for master terminal
- Word n = ...
Subfunction code 6:¶
Subfunction description:¶
List display table for a master terminal.
Input parameters:¶
- Word 1 = 6
- Word 2 = logical device number for master terminal.
- Word 3 = last device returned.
0 if first time, otherwise last device number returned,
(see output word 3).
Output parameters:¶
- Word 1 = unchanged
- Word 2 = unchanged
- Word 3 = last device returned.
-1 if no more logical device numbers to be returned. - Word 4 = number of devices returned.
- Word 5 = device number for slave terminal connected
- Word 6 = device number for slave terminal connected
- Word 7 = device ...
- Word n
Subfunction code 7:¶
Subfunction description:¶
Enable/disable display for a master terminal and connected slave terminals.
See also subfunction code 10.
Input parameters:¶
- Word 1 = 7
- Word 2 = logical device number for master terminal.
- Word 3 = display status:
0 = enable display.
1 = disable display.
Page 514¶
SINTRAN III Monitor Calls¶
Subfunction code 10¶
Subfunction description:
Get display status for a master terminal.
See also subfunction 7.
Input parameters:
Word 1 = 10
Word 2 = logical device number for master terminal.
Output parameters:
Word 1 = unchanged
Word 2 = unchanged
Word 3 = display status:
0 = enabled for display
1 = disabled for display.
FUNCTION CODE 15¶
Function description:
Set signals on a V.24 (RS-232) connection.
This function consists of several subfunctions specified in input parameter word 2.
Rules:
1. Subfunction 1 is only allowed if 8-terminal buffer interface with FIFO (ND-102730 and ND-102740).
Subfunction code 0¶
Subfunction description:
Turn off the V.24 signal DTR. It will automatically be turned back on again after about 5 seconds.
Input parameters:
Word 1 = logical device number.
Word 2 = 0
Output parameters:
None.
Subfunction code 1¶
Subfunction description:
Set level of V.24 control line available on pin 19 in the plug panel connector.
Input parameters:
Word 1 = logical device number.
Word 2 = 1
Word 3 = signal level:
0 = set the signal to -12V (V.24 signal OFF).
1 = set the signal to +12V (V.24 signal ON).
Output parameters:
None.
Page 515¶
SINTRAN III Monitor Calls¶
Note:¶
- If not buffer terminal I/O controller then error code 240 is returned (ILLEGAL DEVICE TYPE).
FUNCTION CODE 16:¶
Function description:¶
Set terminal interface in test mode.
Test mode will loop the transmitted data back to receive data.
Data will also be transmitted to the terminal line.
If the test mode is selected for one of the four interfaces, all four will be set in test mode.
Input parameters:¶
- Word 1 = logical device number.
- Word 2 = terminal mode:
- 0 = set terminal in test mode.
- 1 = reset terminal from test mode.
Output parameters:¶
None.
FUNCTION CODE 17:¶
Function description:¶
Connect a NIU on a specified device number.
Only available in the VSX-version.
This function has two different subfunctions; one to start the connection request, the other to test the status of the request.
Subfunction code 0:¶
Subfunction description:¶
Initiate a connection request for a NIU.
Input parameters:¶
- Word 1 = logical device number.
- Word 2 = Length of name string.
- Word 3 = Pointer to name string.
- Word 4 = 0 (subfunction).
Output parameters:¶
-
Word 4 = Status return, values are:
Value Description 1 Connection not finished. 4 Not reserved for outgoing calls. 5 Connection already established. 6 Request outstanding.
Page 516¶
Subfunction Code 1¶
Subfunction Description¶
Check status of a connection request for a NIU.
Input Parameters¶
- Word 1 = logical device number.
- Word 2 = Length of name string.
- Word 3 = Pointer to name string.
- Word 4 = 1 (subfunction).
Output Parameters¶
- Word 4 = Status return, values are:
| Code | Description |
|---|---|
| 0 | Connection OK. |
| 1 | Connection not finished. |
| 2 | Resource not found. |
| 3 | Resource is busy. |
| 4 | Not reserved for outgoing calls. |
| 7 | Connection not requested. |
Function Code 20¶
Function Description¶
Disconnect a specified NIU.
Only available in the VSX-version.
This function has two different subfunctions; one to start the disconnect request, the other to test the status of the request.
Subfunction Code 0¶
Subfunction Description¶
Initiate a disconnect request for a NIU.
Input Parameters¶
- Word 1 = logical device number.
- Word 2 = 0 (subfunction).
Output Parameters¶
- Word 2 = Status return, values are:
| Code | Description |
|---|---|
| 1 | Disconnection not finished. |
| 2 | No connection open. |
| 3 | Not reserved for outgoing calls. |
| 4 | Request outstanding. |
Subfunction Code 1¶
Subfunction Description¶
Check status of a disconnect request for a NIU.
Input Parameters¶
- Word 1 = logical device number.
- Word 2 = 1 (subfunction).
Output Parameters¶
- Word 2 = Status return, values are:
| Code | Description |
|---|---|
| 0 | Disconnection OK. |
| 1 | Disconnection not finished. |
Page 517¶
SINTRAN III Monitor Calls¶
3: Not reserved for outgoing calls.
5: Disconnection not requested.
FUNCTION CODE 21:¶
Function description:
Read/write on a PIO interface.
This function has two subfunctions; one to read from the interface, the other to write to it.
Subfunction code 0:¶
Subfunction description:
Read from a PIO interface.
Input parameters:
| Word | Description |
|---|---|
| 1 | logical device number |
| 2 | 0 (subfunction) |
| 3 | Hardware register number (0-7) |
Output parameters:
| Word | Description |
|---|---|
| 4 | Register value |
Subfunction code 1:¶
Subfunction description:
Write to a PIO interface.
Input parameters:
| Word | Description |
|---|---|
| 1 | logical device number |
| 2 | 1 (subfunction) |
| 3 | Hardware register number (0-7) |
| 4 | Register value |
Output parameters:
None.
FUNCTION CODE 22:¶
Function description:
Get the magic number of a TAD.
Only available in the VSX-version.
Input parameters:
| Word | Description |
|---|---|
| 1 | logical device number |
Output parameters:
| Word | Description |
|---|---|
| 2 | first part of magic number |
| 3 | second part of magic number |
Rules:
- Always allowed for users RT and SYSTEM.
- Allowed for public users if both the input and output parts of the device are reserved.
- There are no checks on whether the TAD has a connection or not.
Page 518¶
FUNCTION CODE 23¶
Function description:¶
Access the CI window on a NOTS controller. Only available in the VSX-version. This function consists of four subfunctions specified in input parameter word 2.
Subfunction code 0:¶
Subfunction description:¶
Activate the CI window of a NOTS controller.
Input parameters:
Word 1 = logical device number.
Word 2 = 0 (subfunction).
Output parameters:
None.
Subfunction code 1:¶
Subfunction description:¶
Deactivate the CI window of a NOTS controller.
Input parameters:
Word 1 = logical device number.
Word 2 = 1 (subfunction).
Output parameters:
None.
Subfunction code 2:¶
Subfunction description:¶
Read from the CI window of a NOTS controller.
Input parameters:
Word 1 = logical device number.
Word 2 = 2 (subfunction).
Word 3 = displacement within the CI window.
Output parameters:
Word 4 = value read from the CI window.
Subfunction code 3:¶
Subfunction description:¶
Write to the CI window of a NOTS controller.
Input parameters:
Word 1 = logical device number.
Word 2 = 3 (subfunction).
Word 3 = displacement within the CI window.
Word 4 = value to write to the CI window.
Page 519¶
SINTRAN III Monitor Calls¶
Output parameters:¶
None.
FUNCTION CODE 24¶
Function description:
Get the no-reserve status of a device.
Only available in the VSX-version.
Input parameters:
Word 1 = logical device number.
Output parameters:
Word 2 = the no-reserve status of the output part of the device.
- 0 = no-reserve off
- 1 = no-reserve on
Rules: 1. Only allowed for users RT and SYSTEM. 2. Allowed on terminals, TADs, MTADs and Net/One terminals.
FUNCTION CODE 25¶
Function description:
Set (or reset) the no-reserve status of a device.
Only available in the VSX-version.
Input parameters:
Word 1 = logical device number.
Word 2 =
- 0 : Reset the no-reserve status of the output part of the device
- 1 : Set the no-reserve status of the output part of the device
Output parameters:
None.
Rules:
1. Only allowed for users RT and SYSTEM.
2. Allowed on terminals, TADs, MTADs and Net/One terminals.
FUNCTION CODE 100¶
Function description:
Return function parameters as set by one of the functions 101-177. Values from SINTRAN memory, image and save areas are returned.
The functions 101 to 177 have the same call format:
| Word | Description |
|---|---|
| 1 | logical device number |
| 2 | area to be updated |
| 3+ | parameters for specific functions |
Page 520¶
SINTRAN III Monitor Calls¶
When returning function parameters, word 3 is returned with number of the parameters returned from each area (value 1, 2, or 3):
Value 1 means: Value of word 3 as set by specific function is returned from SINTRAN memory, image and save area (for instance function 101).
Value 2 means: Value of word 3 and 4 as set by specific function is returned from SINTRAN memory, image and save area (for instance function 102).
Value 3 means: Value of word 3, 4 and 5 as set by specific function is returned from SINTRAN memory, image and save area (for instance function 103).
Input Parameters¶
- Word 1 = logical device number.
- Word 2 = function code to return function parameters from.
Output Parameters¶
Case 1:¶
- Word 1 = unchanged.
- Word 2 = unchanged.
- Word 3 = 1
- Word 4 = memory area (value set from input word 3 to other functions)
- Word 5 = image area (value set from input word 3 to other functions)
- Word 6 = save area (value set from input word 3 to other functions)
Case 2:¶
- Word 1 = unchanged.
- Word 2 = unchanged.
- Word 3 = 2
- Word 4 = memory area (value set from input word 3 to other functions)
- Word 5 = memory area (value set from input word 4 to other functions)
- Word 6 = image area (value set from input word 3 to other functions)
- Word 7 = image area (value set from input word 4 to other functions)
- Word 8 = save area (value set from input word 3 to other functions)
- Word 9 = save area (value set from input word 4 to other functions)
Page 521¶
SINTRAN III Monitor Calls¶
Case 3:¶
- Word 1: unchanged.
- Word 2: unchanged.
- Word 3: 3
- Word 4: memory area (value set from input word 3 to other functions)
- Word 5: memory area (value set from input word 4 to other functions)
- Word 6: memory area (value set from input word 5 to other functions)
- Word 7: image area (value set from input word 3 to other functions)
- Word 8: image area (value set from input word 4 to other functions)
- Word 9: image area (value set from input word 5 to other functions)
- Word 10: save area (value set from input word 3 to other functions)
- Word 11: save area (value set from input word 4 to other functions)
- Word 12: save area (value set from input word 5 to other functions)
Note:
Values from SINTRAN image and save areas are only returned for user SYSTEM.
FUNCTION CODE 101₈:¶
Function description:¶
Set terminal type.
See also MSTTY (MON 17).
Input parameters:¶
| Word | Description |
|---|---|
| 1 | logical device number. |
| 2 | AREA (see table on page 496). |
| 3 | terminal type, as A-reg in MSTTY (MON 17). |
Rules:¶
- If logical device number is a TAD, the SINTRAN image and save areas cannot be updated.
FUNCTION CODE 102₈:¶
Function description:¶
Set escape and local character.
See also MSDAE (MON 227).
Input parameters:¶
| Word | Description |
|---|---|
| 1 | logical device number. |
| 2 | AREA (see table on page 496). |
| 3 | escape character, -1 = no changes. |
| 4 | local character, -1 = no changes. |
Rules:¶
- If logical device number is a TAD, the SINTRAN image and save areas cannot be updated.
Page 522¶
FUNCTION CODE 103¶
Function description: Start and stop Xon/Xoff protocol input control.
Input parameters:
- Word 1 = logical device number.
- Word 2 = AREA (see table on page 496).
- Word 3 = start/stop Xon/Xoff protocol:
- 0 = start Xon/Xoff protocol
- 1 = stop Xon/Xoff protocol
- Word 4 = Xon character, -1 = no changes.
- Word 5 = Xoff character, -1 = no changes.
Rules:
- New Xon/Xoff characters can be defined only when start Xon/Xoff protocol is selected (word 3 = 0).
FUNCTION CODE 104¶
Function description: Start and stop Xon/Xoff protocol, output control.
Input parameters:
- Word 1 = logical device number.
- Word 2 = AREA (see table on page 496).
- Word 3 = start/stop Xon/Xoff protocol:
- 0 = start Xon/Xoff protocol
- 1 = stop Xon/Xoff protocol
- Word 4 = Xon character, -1 = no changes.
- Word 5 = Xoff character, -1 = no changes.
Rules:
- New Xon/Xoff characters can be defined only when start Xon/Xoff protocol is selected (word 3 = 0).
Notes:
- Whenever output control functions are used in memory area, output driver is restarted if currently in stop (Xoff).
FUNCTION CODE 105¶
Function description: Set Xon/Xoff only or dual function Xon/Xoff control. - Xon/Xoff only means ordinary Xon/Xoff protocol. - Dual function Xon/Xoff is an alternative to normal Xon/Xoff checking and requires Xon/Xoff characters to be in sequence, any other combination will be treated as normal data characters.
Input parameters:
- Word 1 = logical device number.
- Word 2 = AREA (see table on page 496).
- Word 3 = type of Xon/Xoff control:
- 0 = Xon/Xoff only.
- 1 = Dual function Xon/Xoff.
Page 523¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 106¶
Function description:
Set character length.
If memory area is updated, then the function immediately set to terminal interface (IOXT) is executed.
Input parameters:
| Word | Description |
|---|---|
| 1 | logical device number. |
| 2 | AREA (see table on page 496). |
| 3 | character length: |
| 0 = 8-bit character length | |
| 1 = 7-bit character length | |
| 2 = 6-bit character length | |
| 3 = 5-bit character length | |
| 4 | parity: |
| 0 = no parity | |
| 1 = even parity |
FUNCTION CODE 107¶
Function description:
Set baud rate on terminal.
If memory area is updated, the function immediately set to terminal interface (IOXT) is executed.
When returning function parameters for this function, words 3 and 4 will be contain the value 0 if no baud rate is specified in software.
Input parameters:
| Word | Description |
|---|---|
| 1 | logical device number. |
| 2 | AREA (see table on page 496). |
| 3 | Baud rate input, 0= no changes. |
| 4 | Baud rate output, 0= no changes. |
Rules:
- Not legal for device number 1 (console).
- Baud rate will not be changed in SINTRAN memory area if no baud rate is specified in software (data field).
- If no baud rate is specified in SINTRAN image/save areas, then both input and output baud rate must be specified.
- 19200 baud only legal if buffer terminal interface with FIFO.
The following baud rates can be specified (decimal):
50, 75, 110, 134 (134.5), 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200.
Notes:
- Only the interface ND-102740 is currently supporting 19200 baud. If this function is used on the interface ND-102730, the baud rate will be set to 100 baud (see the manual "8-Terminal Buffer Interface with FIFO", ND-811022.1 EN for further details).
Page 524¶
FUNCTION CODE 110¶
Function description:
Set number of stop bits.
If memory area is updated, then the function immediately set to terminal interface (IOXT) is executed.
Input parameters:
Word 1 = logical device number.
Word 2 = AREA (see table on page 496).
Word 3 = number of stop bits:
- 0 = 1.5 stop bit for 5-bit characters,
2 stop bits else. - 1 = 1 stop bit.
FUNCTION CODE 111¶
Function description:
Set terminal to printer or reset printer to terminal.
If set terminal to printer, then logical device number specified in word 1 will no longer act as a terminal. If reset from printer to terminal, then logical device will act as ordinary terminal again.
See also function code 12.
Input parameters:
Word 1 = logical device number.
Word 2 = AREA (see table on page 496).
Word 3 = set/reset terminal to printer:
- 0 = set terminal to printer (remove terminal data field from background table).
- 1 = reset from printer to terminal (reinsert terminal data field into background table).
Word 4 = character length.
| Value | Description |
|---|---|
| 0 | 7-bit character length. |
| 1 | 8-bit unmodified input and output. |
Rules:
- Only allowed for user SYSTEM.
- Both input and output part of logical device must be reserved (even if user SYSTEM).
- Only legal for terminals with 8-bit character length to set 8-bit unmodified input/output.
- Only legal to set 8-bit unmodified input/output when function is set terminal to printer (word 3 = 0).
FUNCTION CODE 112¶
Function description:
Set half or full duplex on terminal.
Half duplex means that no echo is given to terminal when typing on the keyboard.
Input parameters:
Word 1 = logical device number.
Word 2 = AREA (see table on page 496).
Word 3 = duplex function:
| Value | Description |
|---|---|
| 0 | half duplex |
| 1 | full duplex |
Page 525¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 113¶
Function description:
Enable/disable login with variable terminal speed.
When login with variable speed is enabled, the terminal is enabled to log in if speed setting is one of: 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134.5, 110, 75 or 50 baud. The user should press <ESCAPE> in intervals of 2-3 seconds until SINTRAN has typed "ENTER:". If a user has not logged into SINTRAN within 30 seconds after "ENTER:" has been typed, the terminal will be aborted.
Input parameters:
- Word 1 = logical device number.
- Word 2 = AREA (see table on page 496).
- Word 3 = 0 = enable login with variable speed.
- 1 = disable login with variable speed.
Rules:
- Not legal for device number 1 (console).
- Baud rate must be set by software (TSPEED in data field ≠ -1).
- Escape character must have ASCII value 33.
FUNCTION CODE 114¶
Function description:
Set/reset printer connected to terminal.
Input parameters:
- Word 1 = logical device number.
- Word 2 = AREA (see table on page 496).
- Word 3 = 0 = set terminal connected to printer.
- 1 = reset terminal connected to printer.
FUNCTION CODE 200¶
Function description:
Set NOTS configuration.
Only available in the VSX-version.
Input parameters:
- Word 1 = NOTS number (controller number corresponding to thumbwheel setting on the controller card)
- Word 2 = AREA (see table on page 496)
- Word 3 = Pointer to name string
- Word 4 = Length of name string
- Word 5 = Number of outgoing lines
- Word 6 = Controller flag:
- bit no. 0 set = Disconnect on logout
- bit no. 1 set = Do not reset terminal type on connect.
- bit no. 2 set = 8-bit I/O is set on incoming lines.
- bit no. 3 set = 8-bit I/O is set on outgoing lines.
Page 526¶
Output Parameters¶
None.
Rules¶
- Only allowed for user SYSTEM.
- Update on SINTRAN III memory area is not allowed.
- Maximum length of name string is 20 characters.
- Several NOTS numbers (controllers) can be given the same name.
FUNCTION CODE 201¶
Function Description¶
Get NOTS configuration.
Only available in the VSX-version.
Input Parameters¶
| Word | Description |
|---|---|
| 1 | NOTS number. |
| 2 | AREA (see table on page 496). |
| 3 | Pointer to name string. |
Output Parameters¶
| Word | Description |
|---|---|
| 3 | Pointer to name string. |
| 4 | Length of name string. |
| 5 | Number of outgoing lines. |
| 6 | Controller flag: |
| bit no. 0 set = Disconnect on logout | |
| bit no. 1 set = Do not reset terminal type on connect. | |
| bit no. 2 set = 8-bit I/O is set on incoming lines. | |
| bit no. 3 set = 8-bit I/O is set on outgoing lines. |
Rules¶
- Only allowed for user SYSTEM.
- Only area values 1, 2, and 4 are allowed.
FUNCTION CODE 202¶
Function Description¶
Get information about a NOTS line.
Only available in the VSX-version.
Input Parameters¶
| Word | Description |
|---|---|
| 1 | NOTS number. |
| 2 | Line number. |
Output Parameters¶
| Word | Description |
|---|---|
| 3 | Logical device number. |
| 4 | Status word, the following bits are defined: |
| bit 0 : CI window. | |
| bit 1 : Reserved for outgoing calls. | |
| bit 2 : Connection open on this line. | |
| bit 3 : Request outstanding |
Page 527¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 203¶
Function description:
Restart/reload a NOTS.
Only available in the VSX-version.
This function has two different subfunctions; one to restart a NOTS, the other to reload it.
Subfunction code 0¶
Subfunction description:
Restart a NTU.
Input parameters:
| Word 1 | NOTS number. |
|---|---|
| Word 2 | 0 (subfunction) |
Output parameters:
None.
Rules:
- Allowed for user SYSTEM only.
Subfunction code 1¶
Subfunction description:
Reload a NIU.
Input parameters:
| Word 1 | NOTS number. |
|---|---|
| Word 2 | 1 (subfunction) |
Output parameters:
None.
Rules:
- Allowed for user SYSTEM only.
FUNCTION CODE 300¶
Function description:
Set SCSI device definition.
Only available in the VSX-version. Establish the relation between a device (magnetic disk unit, streamer tape unit, magnetic tape unit or optical disk unit) connected to a SCSI controller and an appropriate device number in SINTRAN III.
Input parameters:
| Word 1 | SINTRAN III logical device number (560, 1111, 1224, 1231, 2210 - 2225, 2232 - 2235) |
|---|---|
| Word 2 | SCSI adapter logical device number (2202 - 2205) |
| Word 3 | SCSI ID number (0-7) |
Output parameters:
None.
Page 528¶
SINTRAN III Monitor Calls¶
Rules: 1. Allowed for user SYSTEM only. 2. Only the SINTRAN image and save areas may be accessed.
FUNCTION CODE 301¶
Function description:
Get SCSI device definition. Only available in the VSX-version. Return information about the relation between a device (magnetic disk unit, streamer tape unit, magnetic tape unit or optical disk unit) connected to a SCSI controller and a SINTRAN III device number.
Input parameters:
- Word 1 = SINTRAN III logical device number (560, 1111, 1224, 1231, 2210-2225, 2232-2235)
Output parameters:
- Word 1 = unchanged
- Word 2 = Logical Unit Number generated
- Word 3 = SCSI adaptor logical device number (2202-2205)
- Word 4 = SCSI ID number (0-7)
Rules: 1. Allowed for user SYSTEM only. 2. Only the SINTRAN image and save areas may be accessed.
FUNCTION CODE 302¶
Function description:
Delete SCSI device definition. Only available in the VSX-version. Remove a previously established relation between a device (magnetic disk unit, streamer tape unit, magnetic tape unit or optical disk unit) connected to a SCSI controller and a device number in SINTRAN III.
Input parameters:
- Word 1 = SINTRAN III logical device number (560, 1111, 1224, 1231, 2210-2225, 2232-2235)
Output parameters:
None.
Rules: 1. Allowed for user SYSTEM only. 2. Only the SINTRAN image and save areas may be accessed.
Page 529¶
SINTRAN III Monitor Calls¶
FUNCTION CODE 303¶
Function description:¶
Get current SCSI device definition.
Only available in the VSX-version.
Return information about the relation between a device (magnetic disk unit, streamer tape unit, magnetic tape unit or optical disk unit) connected to a SCSi controller and a SINTRAN III device number.
Input parameters:¶
Word 1 = SINTRAN III logical device number (560, 1111, 1224, 1231, 2210-2225, 2232-2235)
Output parameters:¶
Word 1 = unchanged
Word 2 = Logical Unit Number generated
Word 3 = SCSI adaptor logical device number (2202-2205)
Word 4 = SCSI ID number (0-7)
Rules:¶
- Allowed for user SYSTEM only.
- Only the current SINTRAN memory area may be accessed.
Page 530¶
332B TerminalLineInfo TREPP¶
Gets information about a terminal line. You may also enable programs to continue in spite of errors on the terminal line.
See also TerminalStatus.
PARAMETERS¶
- Function code. Use 1 to enable program to continue after line errors. 0 disables this function. Use 2 to get terminal line information.
- Logical device number of a terminal. Use 1 for your own terminal.
-
Terminal line information. Dummy for function code 0 and 1. The following bits are used:
- Bit 0: Set if the terminal line does not function.
- 1: Set if logout waits for ExitFromProgram.
- 2: Overflow in input buffer. Some characters are lost.
- 3: Parity error on input.
- 4: Framing error on input.
- Standard Error Code. See appendix A.
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 ...
Page 531¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : FuncCode, DeviceNo, ReturnInfo
...
ON ROUTINEERROR DO
IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('TerminalLineInfo', FuncCode, DeviceNo, ReturnInfo)
ASSEMBLY-500¶
FuncCode : W BLOCK 1
DeviceNo : W BLOCK 1
ReturnInfo : W BLOCK 1
ErrCode : W BLOCK 1
TerminalLineInfo : EQU 37B9 + 332B
...
CALLG TerminalLineInfo, 2, FuncCode, DeviceNo
IF K GO ERROR
W1 := ReturnInfo
...
ERROR : W1 =: ErrCode
%ErrorCode in W1 register.
MAC¶
LDT LDN %Load register T with the logical device number.
LDA FUNC %Load register A with function code.
MON 332 %Monitor call TerminalStatus.
STA STAT %Returned status. Standard Error Code.
STA LINFO %Returns here if function code = 2 and no
%errors have occurred.
...
LDN, 1
FUNC, 0
LINFO, 0
STAT, 0
| ND-100 and ND-500 | All users | Background programs |
Page 532¶
TerminalMode¶
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.
See also GetTerminalMode and @TERMINAL-MODE.
PARAMETERS¶
- The logical device number of the terminal. See appendix B. Use 1 for your own terminal.
- The terminal mode. The numbers below are used.
| Terminal mode | Capital letters? | Delay after return? | Stop on full page? | Logout on missing carrier? |
|---|---|---|---|---|
| 0 | No | No | No | No |
| 1 | Yes | No | No | No |
| 2 | No | Yes | No | No |
| 3 | Yes | Yes | No | No |
| 4 | No | No | Yes | No |
| 5 | Yes | No | Yes | No |
| 6 | No | Yes | Yes | No |
| 7 | Yes | Yes | Yes | No |
| 8 | No | No | No | Yes |
| 9 | Yes | No | No | Yes |
| 10 | No | Yes | No | Yes |
| 11 | Yes | Yes | No | Yes |
| 12 | No | No | Yes | Yes |
| 13 | Yes | No | Yes | Yes |
| 14 | No | Yes | Yes | Yes |
| 15 | Yes | Yes | Yes | Yes |
← Standard Error Code. See appendix A. If you try to use the monitor call through ND-NET, -1 is returned.
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 ...
Page 533¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DeviceNumber, Mode
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('TerminalMode', DeviceNumber, Mode)
ASSEMBLY-500¶
DeviceNumber : W BLOCK 1
Mode : W BLOCK 1
ErrCode : W BLOCK 1
TerminalMode : EQU 37B9 + 52B
...
CALLG TerminalMode, 2, DeviceNumber, Mode
IF K GO ERROR
...
ERROR : W1 =: ErrCode %ErrorCode in W1 register.
MAC¶
LDA (PAR %Load register A with address of parameter list.
MON 52 %Monitor call TerminalMode.
JAF ERROR %Handle error if register A is non-zero.
...
ERROR, ... %Error number in register A.
...
PAR, DEVNO %Logical device number.
MODE %Communication mode.
...
DEVNO, ...
MODE, ...
| ND-100 and ND-500 | All users | Background programs |
|---|---|---|
Page 534¶
307B TerminalNoWait TNOWAI¶
Switches No Wait on and off. No Wait is useful for input from, and output to, character devices, e.g. terminals. In No Wait, the program does not wait for input or output. Monitor calls like InByte return the error code 3 instead.
- SuspendProgram or WaitForRestart may passivate the program afterwards. The program then restarts when the device detects a break.
- The input buffer must be emptied before passivating the program.
See also InByte, OutByte, and NoWaitSwitch.
Parameters¶
| Parameter | Description |
|---|---|
| DevNo | Logical device number of a character device. See appendix B. |
| IOFlag | Input or output flag. Use 0 for input and 1 for output. |
| NoWaitFlag | No Wait flag. Use 0 to switch No Wait off, and any other number to switch it on. |
| RetStatus | Return status. |
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)
Page 535¶
SINTRAN III Monitor Calls¶
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 |
Page 536¶
TerminalStatus¶
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.
See also @TERMINAL-STATUS.
Parameters¶
- ⟶ Logical device number of a terminal. Use 1 for your own terminal.
- ⟵ Information about the terminal. The 44 bytes are used as follows:
| Byte | Description |
|---|---|
| 0:15 | Name of user logged in. Terminated by '.' if less than 16 bytes. |
| 16:17 | Mode. 1 means command. 2 means program running. |
| 3 means that WaitForRestart has been executed. 4 means that SuspendProgram has been executed. | |
| 18:19 | State. -1 means no one logged in. 0 means idle batch processor. 1 means active terminal. |
| 20:21 | CPU time used in minutes. |
| 22:23 | Time logged in in minutes. |
| 24:43 | The last command executed. Terminated by an ' (apostrophe). |
- ⟵ Standard Error Code. See appendix A.
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 ...
Page 537¶
SINTRAN III Monitor Calls¶
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 |
Page 538¶
TerminationHandling¶
Switches termination handling on and off.
- 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¶
- On or off flag. Use 1 for on and 0 for off.
- Circumstances for termination handling. Use 1 for termination handling on user break. Use 2 for fatal errors. Specify 0 for both. Always use 0 for RT programs.
PASCAL¶
EnDisFlag, Flag : INTEGER2;
...
TerminationHandling(EnDisFlag, Flag);
COBOL¶
01 EnDisFlag COMP.
01 Flag COMP.
...
MONITOR-CALL "TerminationHandling" USING EnDisFlag, Flag.
FORTRAN¶
INTEGER EnDisFlag, Flag
...
Monitor_Call('TerminationHandling', EnDisFlag, Flag)
Page 539¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : EnDisFlag, Flag
...
Monitor_Call('TerminationHandling', EnDisFlag, Flag)
ASSEMBLY-500¶
Not available.
MAC¶
| LDA | (PAR | %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. |
...
EDFLAG, ...
FLAG, ...
ND-100 | All users | All programs
Page 540¶
TimeOut¶
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.
See also SuspendProgram, WaitforRestart, and ND500TimeOut.
PARAMETERS¶
- Number of time units to suspend the program.
- The type of time units. 1 = basic time units, i.e. 1/50th of a second, 2 = seconds, 3 = minutes, 4 = hours.
- Restart cause. 0 means that the defined time has elapsed. 1 means that a break restarted the program. -1 means that the RT program was scheduled for repeated execution.
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 ...
Page 541¶
SINTRAN III Monitor Calls¶
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
Page 542¶
142B ToErrorDevice¶
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.
- The real-time errors numbers 50-69 can be used in this way.
See also WarningMessage, ErrorMessage, and OutMessage.
PARAMETERS¶
- Error number. You may use error numbers 50 to 69. This number is output following ERROR.
- Suberror number.
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)
Page 543¶
SINTRAN III Monitor Calls¶
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 |
Page 544¶
335B TRANSFERDATA¶
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.
- The program must run on ring 2. You may use any page table. Both demand and non-demand segments are legal. Memory areas for DMA transfer must be fixed contiguously.
- For calls to magnetic tape or other devices where the last parameter contains number of bytes/words read or other return parameters, the parameter list must be in resident memory, i.e. an area with fixed page-table contents.
- 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.
- Only two programs may execute TransferData at a time.
See also DataTransfer, ReadFromFile, and WriteToFile.
PARAMETERS¶
→ Logical device number. See appendix B.
→ Function code. See the tables on the following pages.
→ Physical memory address.
→ Block address on the disk. See the tables on the following pages.
→ Number of blocks to transfer.
← Error code. Negative, if error. Contains a hardware status.
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)
Page 545¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : DeviceNumber, Func, ReturnStatus
INTEGERA : MemAddr, BlockAddr, NoOfBlocks
...
Monitor_Call('TransferData', DeviceNumber, Func, MemAddr, &
BlockAddr, NoOfBlocks, ReturnStatus)
ASSEMBLY-500¶
Not available.
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
Page 546¶
FUNCTION CODES FOR FLOPPY DISK¶
The call formats are described on page 540.
| Function Code/name | Call format | Function Code/name | Call format |
|---|---|---|---|
| 0 Read | c | 54 Copy floppy | g |
| 1 Write | d | 55 Format track | h |
| 2 Read and test CRC | c | 56 Read and test CRC | c |
| 3 Dummy | c | 60 Read (with 32-bit sector address) | c |
| 20 Read status | a | 61 Write (with 32-bit sector address) | d |
| 21 Clear device | b | 66 Read without cache clear (With 32 bit sector addr.) | c |
| 24 Read last status | a | ||
| 36 Read extended status | a | ||
| 40 Select floppy format | e | ||
| 41 Format floppy | b | ||
| 42 Read format | e | ||
| 46 Get current disk address | f | ||
| 47 Set disk address | f |
Notes:¶
-
All units are affected.
-
All data on the floppy disk is overwritten and the floppy disk is formatted, i.e. new addresses are written. Floppy format must be set (function 40) before using this function.
-
The following floppy formats are available:
- 0: 512 bytes per sector, 8 sectors per track, 77 tracks, SS/SD
(Standard format used by ND file system) - 1: 256 bytes per sector, 15 sectors per track, 77 tracks, SS/SD
- 2: 128 bytes per sector, 26 sectors per track, 77 tracks, SS/SD
- 4: 512 bytes per sector, 8 sectors per track, 154 tracks, DS/SD
- 5: 256 bytes per sector, 15 sectors per track, 154 tracks, DS/SD
- 6: 128 bytes per sector, 26 sectors per track, 154 tracks, DS/SD
- 8: 512 bytes per sector, 15 sectors per track, 77 tracks, SS/DD
- 9: 256 bytes per sector, 26 sectors per track, 77 tracks, SS/DD
- 11: 1024 bytes per sector, 8 sectors per track, 77 tracks, SS/DD
- 12: 512 bytes per sector, 15 sectors per track, 154 tracks, DS/DD
This format allows usage of tracks 155-160, but these tracks must be formatted by the format track function. - 13: 256 bytes per sector, 26 sectors per track, 154 tracks, DS/DD
- 15: 1024 bytes per sector, 8 sectors per track, 154 tracks, DS/DD
(Standard format used by ND file system)
- 0: 512 bytes per sector, 8 sectors per track, 77 tracks, SS/SD
Page 547¶
SINTRAN III Monitor Calls¶
FUNCTION CODES FOR SMD DISK: (bits 0-5)¶
The Call Formats are described on page 540.
| Function Code,/name | Call format | Function Code,/name | Call format |
|---|---|---|---|
| 0 Read | c | 60 Read (with 32-bit sector address) | c |
| 1 Write | d | 61 Write (with 32-bit sector address) | d |
| 2 Read parity | c | 62 Read parity (with 32 bit sector address) | c |
| 3 Compare | c | 63 Compare (with 32-bit sector address) | c |
| 6 Priority select | b | 66 Read without cache clear (with 32 bit sector addr.) | c |
| 20 Read last status | a | ||
| 35 Release disk | b | ||
| 36 Read element in disk layout table | j | ||
| 42 Read disk format number (32 bit disk address) | i | ||
| 43 Read format table (32 bit disk address) | c | ||
| 44 Write Format table (32 bit disk address) | d |
FUNCTION CODES FOR DOMINO DISK: (bits 0-5)¶
The Call Formats are described on page 540.
| Function Code,/name | Call format |
|---|---|
| 24 Read last status | a |
| 42 Read capacity | |
| 60 Read (with 32-bits disk address) | c |
| 61 Write (with 32-bits disk address) | d |
| 63 Compare (with 32-bits disk address) | c |
| 66 Read without cache clear (32 bits disk address) | c |
Status:¶
- -1 Illegal function
- -2 Nucleus error
- -3 Memory address not in multiport
- -4 Basic disk I/O error
Page 548¶
CALL FORMATS¶
The call formats are marked from a-i. All formats give status on return. See appendix A. The return status >=0 means the call terminated correctly. Parameters which do not affect the call format are called "dummy" below. All call formats contain logical unit number (0-3) in function code bits 6-8.
The call format "a" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, dummy)
The hardware status is returned as error code. The device must be reserved. Otherwise a positive error code may not be the correct hardware status.
The call format "b" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, dummy)
Status is Standard Error Code.
The call format "c" is:¶
Status=EXABS(logical device number, Unit/function code, physical memory address, sector address, no of sectors to read)
The call format "d" is:¶
Status=EXABS(logical device number, Unit/function code, physical memory address, sector address, no of sectors to write)
The call format "e" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, floppy format number)
The call format "f" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, sector address)
The call format "g" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, destination unit number)
The call format "h" is:¶
Status=EXABS(logical device number, Unit/function code, dummy, dummy, first sector address of track)
Page 549¶
SINTRAN III Monitor Calls¶
The call format "i" is:¶
Status=EXABS(logical device number,Unit/function code,physical memory address,dummy,dummy)
Format code is returned in physical memory address.
The call format "j" is:¶
Status=EXABS(logical device number,Unit/function code,physical memory address,dummy,dummy)
Disk layout table (8 words) is returned in physical memory address.
Page 550¶
SINTRAN III Monitor Calls¶
430B TranslateAddress¶
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.
- Applied only to data addresses, not program addresses.
Parameters¶
- ND-500 array logical address.
- Physical word address in the ND-100.
Pascal¶
ND500Array, ND100PhysWordAddr : LONGINT;
...
TranslateAddress(ND500Array, ND100PhysWordAddr);
COBOL¶
01 ND500Array COMP.
01 ND100PhysWordAddr COMP.
...
MONITOR-CALL "TranslateAddress" USING ND500Array, ND100PhysWordAddr.
FORTRAN¶
INTEGER ND500Array, ND100PhysWordAddr
...
Monitor_Call('TranslateAddress', ND500Array, ND100PhysWordAddr)
Page 551¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : ND500Array, ND100PhysWordAddr
...
Monitor_Call('TranslateAddress', ND500Array, ND100PhysWordAddr)
ASSEMBLY-500¶
ND500Array : W BLOCK 1
ND100PhysWordAddr : W BLOCK 1
TranslateAddress : EQU 3789 + 430B
...
CALLG TranslateAddress, 2, ND500Array, ND100PhysWordAddr
MAC¶
Not available.
| ND-500 | All users | All programs |
Page 552¶
UnFixSegment¶
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.
See also FixInMemory, MemoryAllocation, FixIOArea, and @UNFIX.
Parameters¶
- Segment number to be released.
Pascal¶
SegmentNumber : INTEGER2;
...
UnFixSegment(SegmentNumber);
COBOL¶
01 SegmentNumber COMP.
...
MONITOR-CALL "UnfixSegment" USING SegmentNumber.
FORTRAN¶
INTEGER SegmentNumber
...
Monitor_Call('UnfixSegment', SegmentNumber)
Page 553¶
SINTRAN III Monitor Calls¶
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 |
Page 554¶
UserDef0..UserDef7¶
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.
- 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.
PARAMETERS¶
Both input and output parameters are user defined. You are advised to transfer parameters in the same way as SuspendProgram, InString, WriteToFile, etc.
| Language | Availability |
|---|---|
| PASCAL | Not available. |
| COBOL | Not available. |
| FORTRAN | Not available. |
Page 555¶
SINTRAN III Monitor Calls¶
| PLANC | |
|---|---|
| Not available. |
| ASSEMBLY-500 | |
|---|---|
| Not available. |
| MAC | |
|---|---|
| Depends on the monitor call. |
| ND-100 | All users | All programs |
Page 556¶
135B WAITFORRESTART¶
Sets the RT program in a waiting state. It is restarted by StartRTProgram or @RT. Execution continues after the monitor call.
- The RT program restarts immediately if its restart flag is set.
- No reserved devices or files are released.
See also SuspendProgram. It makes programs wait for a specified time.
PARAMETERS¶
This monitor call has no parameters.
PASCAL¶
WaitForRestart;
COBOL¶
MONITOR-CALL "WaitForRestart".
FORTRAN¶
Monitor_Call('WaitForRestart')
Page 557¶
SINTRAN III Monitor Calls¶
PLANC¶
Monitor_Call('WaitForRestart')
ASSEMBLY-500¶
WaitForRestart: EQU 37B9 + 135B
CALLG WaitForRestart, 0
MAC¶
MON 135 %Monitor call WaitForRestart
| ND-100 and ND-500 | User RT and user SYSTEM | RT programs |
Page 558¶
64B WarningMessage¶
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 and ErrorMessage. ErrorMessage writes out the error message and terminates the program.
Parameters¶
→ Error code of the message to be printed. Use octal numbers.
PASCAL¶
ErrCode : INTEGER2;
...
WarningMessage(ErrCode);
COBOL¶
01 ErrCode COMP.
...
MONITOR-CALL "WarningMessage" USING ErrCode.
FORTRAN¶
INTEGER ErrCode
...
Monitor_Call('WarningMessage', ErrCode)
Page 559¶
SINTRAN III Monitor Calls¶
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 |
Page 560¶
WriteBlock¶
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.
See also SetStartBlock, SetBlockSize, WriteDiskPage, WriteFromFile, and ReadBlock. WriteFromFile is the most efficient way to read randomly.
Parameters¶
| Parameter | Description |
|---|---|
| File number | See OpenFile. |
| Block number | |
| Transferred block | |
| Standard Error Code | See appendix A. |
Pascal¶
FileNumber, BlockNumber : INTEGER2;
Buffer : ARRAY [0..15] OF RECORD...END;
...
WriteBlock(FileNumber, BlockNumber, Buffer);
IF ErrCode <> 0 THEN ...
COBOL¶
01 FileNumber COMP.
01 BlockNumber COMP.
01 Buffer.
02 array COMP OCCURS 256 TIMES.
01 ErrCode COMP.
...
MONITOR-CALL "WriteBlock" USING FileNumber, BlockNumber, Buffer.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
FORTRAN¶
INTEGER FileNumber, BlockNumber
INTEGER Buffer(256)
...
Monitor Call('WriteBlock', FileNumber, BlockNumber, Buffer(1))
IF (ErrCode .NE. 0) THEN ...
Page 561¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : FileNumber, BlockNumber
BYTES : Buffer(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteBlock', FileNumber, BlockNumber, Buffer(0))
ASSEMBLY-500¶
Not available.
MAC¶
LDT FILNO %File number returned from earlier open.
LDA BLKNO %Block number.
LDX (BUFF %Address of buffer to receive block read.
MON 10 %Monitor call WriteBlock.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
FILNO, ...
BLKNO, ...
BUFF, 0
*+400/ %Make a buffer of 256 words, 1 block.
| ND-100 | All users | All programs |
Page 562¶
WriteDirEntry¶
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.
See also GetDirUserIndexes, and GetDirEntry.
Parameters¶
- The directory index. See GetDirUserIndexes.
- The 48 byte directory entry. See Appendix C.
- Standard Error Code. See Appendix A.
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 ...
Page 563¶
SINTRAN III Monitor Calls¶
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 |
Page 564¶
Writediskpage¶
Writes to one or more pages in a directory. Any page can be written to.
- The directory must be reserved with ReseveDir.
See also ReadDiskPage.
Parameters¶
- Directory index. See GetDirUserIndexes.
- Address of buffer with pages to transfer.
- Address of the destination pages on the disk.
- Number of pages to transfer. Each page is 2048 bytes.
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 ...
Page 565¶
SINTRAN III Monitor Calls¶
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 |
Page 566¶
6B WRITESCRATCHFILE¶
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.
- The standard block size is 512 bytes. You can change this with SetBlockSize. The first block is number 0.
See also WriteBlock, WriteToFile, and ReadScratchFile.
PARAMETERS¶
| ➔ | Block number to start the writing from. |
| ➔ | The data to be transferred. |
| ⬅ | Standard Error Code. See appendix A. |
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 ...
Page 567¶
SINTRAN III Monitor Calls¶
PLANC¶
INTEGER : BlockNumber
BYTES : Buffer(0:511)
...
ON ROUTINEERROR DO
IF ErrCode > 0 THEN ...
ENDON
Monitor_Call('WriteScratchFile', BlockNumber, Buffer(0))
ASSEMBLY-500¶
Not available.
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 |
Page 568¶
12OB WriteToFile¶
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.
See also SetStartBlock, SetBlockSize, WriteDiskPage, WriteBlock, and ReadFromFile.
PARAMETERS¶
- File number. See OpenFile.
- 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. Background programs must always wait until data is transferred.
- Data to be transferred.
- Block number to start writing from. Use -1 to write to the next block.
- Number of bytes to be written.
- Standard Error Code. See appendix A.
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 ...
Page 569¶
SINTRAN III Monitor Calls¶
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
Page 570¶
XMSGFunction¶
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.
See also HDLCFunction.
PARAMETERS¶
The parameters varies from function to function.
| Language | Availability |
|---|---|
| PASCAL | Not available. |
| COBOL | Not available. |
| FORTRAN | Not available. |
Page 571¶
SINTRAN III Monitor Calls¶
| PLANC |
|---|
| Not available. |
| ASSEMBLY-500 |
|---|
| Not available. |
| MAC |
|---|
| Not available. |
See the SINTRAN III Communication Guide (ND 860134).
| ND-100 | All users | All programs |
Page 572¶
SINTRAN III Monitor Calls¶
| Monitor Call | Function |
|---|---|
| 00 | No operation |
| 01 | Terminal input |
| 02 | Terminal output |
| 03 | File open |
| 04 | File close |
| 05 | File read |
| 06 | File write |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 573¶
SINTRAN III Monitor Calls¶
APPENDIX A: ERROR MESSAGES¶
This appendix lists the SINTRAN III error messages. Errors from RT programs are output in the form shown here:
23.59.57 ERROR 14 IN BAK07 AT 114721; OUTSIDE SEGMENT BOUNDS
This means that error number 14 occurred at 23:59.57 o'clock. The RT program BAK07 came into the error situation when executing memory address 114721. Note that the error numbers reported from RT programs are decimal numbers.
Some error messages output additional information. In most cases, an RT program entering an error situation is aborted, whereas background programs are not aborted. Error messages from background programs are displayed as texts only, e.g. NO SUCH FILE. The message is displayed on the terminal if the error relates to an interactive program. Other messages are written to the error device.
The following table lists the error numbers/messages which may be reported from RT programs.
| Error number | Meaning | Additional information | Program Aborted |
|---|---|---|---|
| 00 | Illegal monitor call | Yes | |
| 01 | Illegal RT-program address | Yes | |
| 02 | Wrong priority in PRIOR | Yes | |
| 03 | Bad memory page | Page number | Yes |
| 04 | Internal interrupt on direct | level₈ bit no.8 task level | Yes |
| 06 | Batch input error | Error number | Yes |
| 07 | Batch output error | Error number | Yes |
| 08 | Batch system error | Error no. in L register | Yes |
| 09 | Illegal parameter in CLOCK | Yes | |
| 10 | Illegal parameter in ABSET | Yes | |
| 11 | Illegal parameter in UPDAT | Yes | |
| 12 | Illegal time parameter | Yes | |
| 13 | Page fault for non-demand | Page number | Yes |
| 14 | Outside segment bounds | Page number | Yes |
| 15 | Illegal segment number | Segment number | Yes |
| 16 | Segment not loaded | Segment number | Yes |
| 17 | Fixing demand segment | Segment number | Yes |
| 18 | Too many fixed pages | Segment number | Yes |
| 19 | Too big segment | Segment number | Yes |
| 20 | Disk transfer error | Hardware device no. | No |
| 21 | Disk transfer error | Unit number | Yes if segment |
| transfer | |||
| 21 | Disk transfer error | Sector address in last 16 bits | No |
| Hardware status | |||
| 22 | False interrupt | Level₁₀ Ident code₈ | No |
Page 574¶
SINTRAN III Monitor Calls¶
Error Messages¶
| Error number | Meaning | Additional information | Program Aborted |
|---|---|---|---|
| 23 | Device error | Hardware device number Hardware status | No |
| 25 | Already fixed | Segment number | Yes |
| 26 | Device timeout | Hardware device Unit number | No |
| 27 | Illegal parameter in CONCT | Yes | |
| 28 | Space not available | Segment number | Yes |
| 29 | File-system error (MON 64 and MON 65) | Error number (see NORD File System Documentation, ND-60.122) | Yes |
| 30 | Division by zero | Yes | |
| 31 | Permit violation | Yes | |
| 32 | Ring violation | Yes | |
| 33 | HDLC driver fatal error | Yes | |
| 34 | Illegal instruction | Yes | |
| 35 | Reentrant-FTN stack error | Yes | |
| 36 | Privileged instruction | Yes | |
| 37 | IOX error | Address | No |
| 38 | Memory parity error | PEA reg. PES reg. | Yes |
| 39 | Memory out of range | PEA reg. PES reg. | Yes |
| 40 | Power fail | No | |
| 41 | Illegal error code in ERMON | Yes | |
| 42 | Overlapping segments | Segment numbers | Yes |
| 44 | Corrected memory error | PEA reg. PES reg. | No |
| 45 | Not demand segments | Yes | |
| 46 | XMSG fatal error, internal error or inconsistency | XMSG error code Physical address | Yes |
| 47 | XMSG user error | Calling level | Yes |
| 48 | False BEX interrupt | BEX number | |
| 49 | Remote power fail interrupt | ||
| 50-69 | User-defined error (MON 142) | error no. suberror no. | No |
| 70 | BEX parity error | ||
| 71 | False MPM4 interrupt | Busc number Hardware status | No |
| 72 | MPM4 power fail interrupt | Busc number | No |
| 73 | MPM4 memory out of range | Busc number Lower limit | No |
| 74 | MPM4 memory error | Local PES Local PEA No | |
| 75 | MPM4 parity error | Busc number Lower limit | No |
| 76 | MPM4 write parity error | Busc number Port code number | |
| 79 | Fatal error in MON ADP | ||
| 80 | Fatal seek error, parallel seek disabled | ||
| 81 | Error in PIOC driver | PIOC number | |
| 90 | FORTRAN runtime error | FORTRAN error number | No |
| 91 | FORTRAN I/O error | Error number | No |
| 92 | Fatal error in GPIB driver. Controller stopped | Controller number Error code | |
| 93 | GPIB error | Function |
Page 575¶
SINTRAN III Monitor Calls¶
Error Messages¶
| Error number | Meaning | Additional information | Program Aborted |
|---|---|---|---|
| 94 | Illegal Page Index Table | Page Index Table Number | |
| 95 | Illegal function code | ||
| 96 | Segment is fixed in Page Index Table | ||
| 97 | Trying to start uninitialized | ||
| background program | |||
| 98 | No background process available | ||
| 99 | OCTOBUS error | OCTOBUS error code | |
| 100 | FTN library error |
Page 576-577-578-579-580¶
SINTRAN III Monitor Calls¶
Error Messages¶
The following table shows the SINTRAN III background errors. From background programs, monitor calls return error numbers which are octal numbers. Use the monitor calls ErrorMessage and WarningMessage to display the corresponding error message. Error numbers above 1000B are only returned by programs running on the ND-500(0).
| Error Returns from SINTRAN III Background Programs | | Error number | | Octal | Decimal | Meaning | |--------------|------- |--------------------------------------------| | 000 | 000 | Not used | | 001 | 001 | Not used | | 002 | 002 | Bad file number | | 003 | 003 | End of file | | 004 | 004 | Card reader error (card read) | | 005 | 005 | Device not reserved | | 006 | 006 | Not used | | 007 | 007 | Card Reader Error (card not read) | | 010 | 008 | Not used | | 011 | 009 | Not used | | 012 | 010 | End of device (timeout) | | 013 | 011 | Not used | | 014 | 012 | Not used, | | 015 | 013 | Not used | | 016 | 014 | Not used | | 017 | 015 | Not used | | 020 | 016 | Not used | | 021 | 017 | Illegal character in parameter | | 022 | 018 | No such page | | 023 | 019 | Not decimal number | | 024 | 020 | Not octal number | | 025 | 021 | You are not authorized to do this | | 026 | 022 | Directory not entered | | 027 | 023 | Ambiguous directory name | | 030 | 024 | No such device name | | 031 | 025 | Ambiguous device name | | 032 | 026 | Directory entered | | 033 | 027 | No such logical unit | | 034 | 028 | Unit occupied | | 035 | 029 | Master block transfer error | | 036 | 030 | Bit-file transfer error | | 037 | 031 | No more tracks available | | 040 | 032 | Directory not on specified unit | | 041 | 033 | Files open on this directory | | 042 | 034 | Main directory not last one released | | 043 | 035 | No main directory | | 044 | 036 | Too long parameter | | 045 | 037 | Ambiguous user name | | 046 | 038 | No such user name | | 047 | 039 | No such user name in main directory | | 050 | 040 | Attempt to create too many users | | 051 | 041 | User already exists | | 052 | 042 | User has files | | 053 | 043 | User is entered | | 054 | 044 | Not so much space unreserved in directory | | 055 | 045 | Reserved space already used | | 056 | 046 | No such file name | | 057 | 047 | Ambiguous file name | | 060 | 048 | Wrong password | | 061 | 049 | User already entered | | 062 | 050 | No user entered | | 063 | 051 | Friend already exists | | 064 | 052 | No such friend | | 065 | 053 | Attempt to create too many friends | | 066 | 054 | Attempt to create yourself as friend | | 067 | 055 | Contiguous space not available | | 070 | 056 | Not directory access | | 071 | 057 | Space not available to expand file | | 072 | 058 | Space already allocated | | 073 | 059 | No space in default directories | | 074 | 060 | No such file version | | 075 | 061 | No more pages available for this user | | 076 | 062 | File already exists | | 077 | 063 | Attempt to create too many files | | 100 | 064 | Outside device limits | | 101 | 065 | No previous version | | 102 | 066 | File not contiguous | | 103 | 067 | File type already defined | | 104 | 068 | No such access code | | 105 | 069 | File already open | | 106 | 070 | Not write access | | 107 | 071 | Attempt to open too many files | | 110 | 072 | Not write and append access | | 111 | 073 | Not read access | | 112 | 074 | Not read, write and common access | | 113 | 075 | Not read and write access | | 114 | 076 | Not read and common access | | 115 | 077 | File reserved by another user | | 116 | 078 | File already opened for write by you | | 117 | 079 | No such user index | | 120 | 080 | Not append access | | 121 | 081 | Attempt to open too many mass storage files| | 122 | 082 | Attempt to open too many files | | 123 | 083 | Not open for sequential write | | 124 | 084 | Not open for sequential read | | 125 | 085 | Not open for random write | | 126 | 086 | Not open for random read | | 127 | 087 | File number out of range | | 130 | 088 | File number already used | | 131 | 089 | No more buffer space | | 132 | 090 | No file opened with this number | | 133 | 091 | Not mass storage file | | 134 | 092 | File used for write | | 135 | 093 | File used for read | | 136 | 094 | File only open for sequential read or write | | 137 | 095 | No scratch file open | | 140 | 096 | File not reserved by you | | 141 | 097 | Transfer error | | 142 | 098 | File already reserved | | 143 | 099 | No such block | | 144 | 100 | Source and destination equal | | 145 | 101 | Illegal on tape device | | 146 | 102 | End of tape | | 147 | 103 | Device unit reserved for special use | | 150 | 104 | Main directory must be default | | 151 | 105 | Not last file on tape | | 152 | 106 | Not tape device | | 153 | 107 | Illegal address reference in monitor call | | 154 | 108 | Source empty | | 155 | 109 | File already opened by another user | | 156 | 110 | File already opened for write by another user | | 157 | 111 | Missing parameter | | 160 | 112 | Two pages must be left unreserved | | 161 | 113 | Not used | | 162 | 114 | Device cannot be reserved | | 163 | 115 | Overflow in read | | 164 | 116 | DMA error | | 165 | 117 | Bad data block | | 166 | 118 | CONTROL/MODUS word error | | 167 | 119 | Parity error | | 170 | 120 | LRC error | | 171 | 121 | Device error (DEVICE-FUNCTION READ-LAST-STATUS to get status) | | 172 | 122 | Device buffer of requested size not available | | 173 | 123 | Illegal mass storage unit number | | 174 | 124 | Illegal parameter | | 175 | 125 | Write-protect violation | | 176 | 126 | Error detected by read after write | | 177 | 127 | No EOF mark found | | 200 | 128 | Not used | | 201 | 129 | Illegal function code | | 202 | 130 | Timeout (no data block found) | | 203 | 131 | Paper fault | | 204 | 132 | Device not ready | | 205 | 133 | Device already reserved | | 206 | 134 | Not peripheral file | | 207 | 135 | No such queue entry | | 210 | 136 | Not so much space left | | 211 | 137 | No spooling for this device | | 212 | 138 | No such queue | | 213 | 139 | Queue empty | | 214 | 140 | Queue full | | 215 | 141 | Not last used by you | | 216 | 142 | Not used | | 217 | 143 | Not used | | 220 | 144 | Not used | | 221 | 145 | Not used | | 222 | 146 | Not used | | 223 | 147 | Formatting error | | 224 | 148 | Incompatible device sizes | | 225 | 149 | Not used | | 226 | 150 | Tape format error | | 227 | 151 | Block count error | | 230 | 152 | Volume not on specified unit | | 231 | 153 | Not deleted record | | 232 | 154 | Device error | | 233 | 155 | Error in object entry | | 234 | 156 | Odd number of bytes (right byte in last word insignificant) | | 235 | 157 | Error in backspace/forward-space print | | 236 | 158 | Block format error | | 237 | 159 | Overflow in write | | 240 | 160 | Illegal device type | | 241 | 161 | Segment not contiguously fixed | | 242 | 162 | Segment not fixed | | 243 | 163 | Approaching end of accounting file | | 244 | 164 | Accounting file full | | 245 | 165 | No more unused spooling files available | | 246 | 166 | Inconsistent directory | | 247 | 167 | Object entry not used | | 250 | 168 | User does not exist | | 251 | 169 | Directory not reserved | | 252 | 170 | Not a multiple of hardware block size | | 253 | 171 | Not indexed file | | 254 | 172 | Illegal floppy format | | 255 | 173 | File not open | | 256 | 174 | File already opened for read or write by you | | 257 | 175 | User does not exist in the same main directory as you | | 260 | 176 | File-access reentrant segments not loaded | | 261 | 177 | Illegal access code for remote file | | 262 | 178 | File-access connection aborted by file server | | 263 | 179 | File-access connection aborted by file server administrator | | 264 | 180 | No answer from remote system; file-access connection aborted | | 265 | 181 | File-access initialization failed | | 266 | 182 | Unknown remote system name | | 267 | 183 | File-access protocol error; connection aborted | | 270 | 184 | File-access internal error; call not valid in current state | | 271 | 185 | Illegal range of LAMU identifier | | 272 | 186 | LAMU in use | | 273 | 187 | LAMU table full | | 274 | 188 | Illegal RT-program | | 275 | 189 | Maximum number of LAMUs per RT-program reached | | 276 | 190 | LAMU not connected | | 277 | 191 | No LAMU area big enough | | 300 | 192 | LAMU not defined | | 301 | 193 | Illegal logical page number | | 302 | 194 | Logical LAMU overlap | | 303 | 195 | Can only log in on a main directory | | 304 | 196 | Directory index too large | | 305 | 197 | Object index too large | | 306 | 198 | Not used | | 307 | 199 | Warning; 2-bank prog. file, but segment is only 1-bank | | 310 | 200 | Warning; no such page in data bank, program starts as 1-bank | | 311 | 201 | The specified device is not a terminal | | 312 | 202 | No termination handling defined | | 313 | 203 | No more remote file-access data segments available | | 314 | 204 | Input while escape/local off is illegal | | 315 | 205 | TAD protocol error, illegal or inconsistent message | | 316 | 206 | Terminal line is not connected | | 317 | 207 | Illegal combination of DENTE and DTUSE bits | | 320 | 208 | Directory not reserved by you | | 321 | 209 | Wrong project password | | 322 | 210 | File-access transport layer error; all connections aborted | | 323 | 211 | File-access internal error; invalid parameter value | | 324 | 212 | File-access not running or crashed; all connections aborted | | 325 | 213 | Wrong format in file | | 326 | 214 | Directory already reserved for special use | | 327 | 215 | Unknown user-control code | | 330 | 216 | No service is available for this code | | 331 | 217 | Please terminate current service before requesting new service | | 332 | 218 | This code is only legal within a service | | 333 | 219 | Remote file server is not available | | 334 | 220 | ND-100 panel clock incorrect | | 335 | 221 | Block size too big for buffer previously obtained | | 336 | 222 | Illegal segment name | | 337 | 223 | Not octal number | | 340 | 224 | Not contiguous file | | 341 | 225 | Ambiguous command | | 342 | 226 | Protected command | | 343 | 227 | Ambiguous subsystem | | 344 | 228 | No more spooling pages left | | 345 | 229 | No more versions can be created in this object block | | 346 | 230 | Illegal baud rate specified | | 347 | 231 | Illegal character length | | 350 | 232 | Illegal parity specified | | 351 | 233 | Not legal from RT-program | | 352 | 234 | Illegal when not originally own terminal | | 353 | 235 | Illegal break/echo strategy | | 354 | 236 | Illegal size of parameter array | | 355 | 237 | Illegal area specified | | 356 | 238 | Not 8 bits character length | | 357 | 239 | Terminal already in a display table | | 360 | 240 | Not a master terminal | | 361 | 241 | Not connected to specified master terminal | | 362 | 242 | Error in display table | | 363 | 243 | Fatal error occurred during read/write in segments | | 364 | 244 | Baud rate not set by software | | 365 | 245 | Illegal baud rate in data field | | 366 | 246 | Terminal is active | | 367 | 247 | No more physical memory available | | 370 | 248 | No more allocate-memory-table indexes available | | 371 | 249 | Illegal segment | | 372 | 250 | Illegal address | | 373 | 251 | Illegal program LAMU identifier | | 374 | 252 | Program LAMU already exists | | 375 | 253 | No such program LAMU | | 376 | 254 | Illegal program LAMU size | | 377 | 255 | Program LAMU not connected |
Page 582¶
SINTRAN III Monitor Calls¶
Error Messages¶
Error Returns from Monitor Calls from ND-500(0)¶
| Error Number | Octal | Decimal | Meaning |
|---|---|---|---|
| 1000 | 512 | ND-500(0) open-file table is full | |
| 1001 | 513 | File is neither contiguous nor magnetic tape | |
| 1002 | 514 | ND-500(0) open-file table for direct transfer is full | |
| 1003 | 515 | Error in monitor call | |
| 1004 | 516 | Odd byte address | |
| 1005 | 517 | Odd bytecount | |
| 1006 | 518 | Too big bytecount | |
| 1007 | 519 | Bytecount not modulo sector size in direct transfer | |
| 1010 | 520 | Address outside file limits in direct transfer | |
| 1011 | 521 | Block address not modulo sector size in direct transfer | |
| 1012 | 522 | Hardware status error in direct transfer | |
| 1013 | 523 | Illegal monitor call number | |
| 1014 | 524 | DC address not legal on magnetic tape | |
| 1015 | 525 | Wrong number of parameters in monitor call | |
| 1016 | 526 | Byte pointer not modulo sector size in direct transfer | |
| 1017 | 527 | Data area cannot be put in a 64K SINTRAN III segment | |
| 1020 | 528 | Segment not modifiable | |
| 1021 | 529 | Bytecount not modulo block size in direct transfer | |
| 1022 | 530 | Illegal operation on file connected to a segment | |
| 1023 | 531 | File already connected to a segment | |
| 1024 | 532 | All logical data segments used | |
| 1025 | 533 | Logical data segment already used | |
| 1026 | 534 | Block size not modulo sector size | |
| 1027 | 535 | Address outside program segment | |
| 1030 | 536 | Address outside data segment | |
| 1031 | 537 | Trying to write segment back on system swap file | |
| 1032 | 538 | Illegal memory type of specified area | |
| 1033 | 539 | Maximum global fix | |
| 1034 | 540 | Error in absolute fix | |
| 1035 | 541 | Other segments have user fixed pages in the specified area | |
| 1036 | 542 | Other segments have system fixed pages in the specified area | |
| 1037 | 543 | Impossible to fix contiguously because pages already system fixed | |
| 1040 | 544 | Impossible to fix contiguously because pages already user fixed | |
| 1041 | 545 | No contiguous area available because other segments system fixed. | |
| 1042 | 546 | No contiguous area available because other segments user fixed. |
Page 583¶
SINTRAN III Monitor Calls¶
Error Messages¶
Background Program Error Numbers/Messages¶
| Error number | Octal | Decimal | Meaning |
|---|---|---|---|
| 1043 | 547 | Impossible to do contiguous fix. Area greater than the physical memory. | |
| 1044 | 548 | Not enough memory reserved by the ND-500(0) | |
| 1045 | 549 | Trying to fix pages shared with a SINTRAN III segment. | |
| 1046 | 550 | Segment not in use | |
| 1047 | 551 | The process has no Before Image Log Segment | |
| 1050 | 552 | No swap-file part available | |
| 1051 | 553 | Swapping space not available | |
| 1052 | 554 | No free physical segment | |
| 1053 | 555 | Segment not modifiable | |
| 1054 | 556 | Illegal process number | |
| 1055 | 557 | Swap device error | |
| 1056 | 558 | Privileged monitor call | |
| 1057 | 559 | Illegal logical segment number | |
| 1060 | 560 | No such process | |
| 1061 | 561 | Illegal address | |
| 1062 | 562 | Swapper in use on another CPU | |
| 1063 | 563 | Table for attach segments is full | |
| 1064 | 564 | Attach segment name not found | |
| 3200 | 1664 | Not allowed now | |
| 3201 | 1665 | Illegal index | |
| 3202 | 1666 | Disc access log file is full |
Error Messages for SCSI Operation¶
| Error number | Octal | Decimal | Meaning |
|---|---|---|---|
| 3203 | 1667 | Directory entered from another system | |
| 3204 | 1668 | Incompatible directory sizes on this controller | |
| 3205 | 1669 | Medium not loaded (device reset or medium changed) | |
| 3206 | 1670 | Illegal request | |
| 3207 | 1671 | Device busy | |
| 3210 | 1672 | Device reserved by another system | |
| 3211 | 1673 | No response from device |
Page 584¶
Page 585¶
SINTRAN III Monitor Calls¶
APPENDIX B: Logical Device Numbers Used in SINTRAN III¶
SINTRAN III uses the following logical device numbers. The first table is an overview of the tables which follow.
| Octal Logical Device No. | Decimal Logical Device No. | Device Name |
|---|---|---|
| 0-77 | 0-63 | Character devices |
| 100-177 | 64-127 | Open mass storage files |
| 200-277 | 128-191 | Internal devices |
| 300-377 | 192-255 | User Semaphores |
| 400-477 | 256-319 | Process Control and Connect devices |
| 500-577 | 320-383 | System devices |
| 600-677 | 384-447 | Spooling semaphores 31-60 |
| 700-777 | 448-511 | NORDCOM and other special devices |
| 1000-1077 | 512-575 | Character devices |
| 1100-1177 | 576-639 | System devices |
| 1200-1277 | 640-703 | System devices |
| 1300-1377 | 704-767 | System devices |
| 1400-1477 | 768-831 | TADs 1-64 |
| 1500-1577 | 832-895 | TADs 65-96 and Telefix devices |
| 1600-1677 | 896-959 | System devices |
| 1700-1777 | 960-1023 | System devices |
| 2000-2077 | 1024-1087 | Terminals 65-128 |
| 2100-2177 | 1088-1151 | System devices |
| 2200-2277 | 1152-1215 | System devices |
| 2300-2377 | 1216-1279 | System devices |
| 2400-2477 | 1280-1343 | Octobus devices |
| 2500-2577 | 1344-1407 | Directory table semaphores |
| 2600-2677 | 1408-1471 | Directory table semaphores |
| 2700-2777 | 1472-1535 | Terminals 129-192 |
| 3000-3077 | 1536-1599 | Terminals 193-256 |
| 3100-3177 | 1600-1663 | Batch semaphores 11-30 |
| 3200-3277 | 1664-1727 | Remote open files |
| 3300-3377 | 1728-1791 | System devices |
Page 586¶
SINTRAN III: Monitor Calls¶
Logical device numbers used in SINTRAN III
Logical Device Numbers 0 - 77¶
| Number | Description |
|---|---|
| 0 | INBT; INCH (background): edited input, else: dummy |
| 1 | Background: "own terminal" or RT: Terminal 1 (console) |
| 2 | Error device (output) Paper tape reader 1 (input, on console) |
| 3 | Paper tape punch 1 |
| 4 | Card reader 1 |
| 5 | Line printer 1 |
| 6 | Synchronous modem 1 |
| 7 | Terminal 17 |
| 10 | Plotter 1 |
| 11 | Terminal 2 |
| 12 | Paper tape reader 2 or: Special internal device for mode files |
| 13 | Paper tape punch 2 or: Special internal device for mode files |
| 14 | Bus switch device |
| 15 | Line printer 2 |
| 16 | Synchronous modem 2 |
| 17 | Terminal 18 |
| 20 | Cassette drive 1 |
| 21 | Cassette drive 2 |
| 22 | Versatec printer/plotter 1 on DMA or: IBM communication |
| 23 | Versatec printer/plotter 2 on DMA |
| 24 | Tektronix display |
| 25 | Magnetic tape controller 1, unit 2 |
| 26 | Synchronous modem 5 |
| 27 | Synchronous modem 6 |
| 30 | Synchronous modem 3 |
| 31 | Synchronous modem 4 |
| 32 | Magnetic tape controller 2, unit 0 |
| 33 | Magnetic tape controller 1, unit 3 |
| 34 | Magnetic tape controller 2, unit 1 |
| 35 | Card punch 3 |
| 36 | CDC link or: TTY link sender |
| 37 | TTY link receiver |
| 40 | Magnetic tape controller 1, unit 0 |
| 41 | Magnetic tape controller 1, unit 1 |
| 42 | Terminal 3 |
| 43 | Terminal 4 or: Barcode reader |
| 44 | Terminal 5 or: Barcode reader |
| 45 | Terminal 6 |
| 46 | Terminal 7 |
| 47 | Terminal 8 |
| 50 | Card punch 1 |
| 51 | Card punch 2 |
| 52 | Terminal 19 |
| 53 | Terminal 20 |
| 54 | Terminal 21 |
Page 587¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
| Number | Description |
|---|---|
| 55 | Terminal 22 |
| 56 | Terminal 23 |
| 57 | Terminal 24 |
| 60 | Terminal 9 |
| 61 | Terminal 10 |
| 62 | Terminal 11 |
| 63 | Terminal 12 |
| 64 | Terminal 13 |
| 65 | Terminal 14 |
| 66 | Terminal 15 |
| 67 | Terminal 16 |
| 70 | Terminal 25 |
| or: Special synchronous modem 5 | |
| 71 | Terminal 26 |
| or: Special synchronous modem 6 | |
| 72 | Terminal 27 |
| or: Special synchronous modem 7 | |
| or: Graf cassette 1 | |
| 73 | Terminal 28 |
| or: Special synchronous modem 8 | |
| or: Graf cassette 2 | |
| 74 | Terminal 29 |
| or: Special synchronous modem 9 | |
| or: Photosetter 1 | |
| or: Harris photosetter 1 | |
| 75 | Terminal 30 |
| or: Photosetter 2 | |
| or: Harris photosetter 2 | |
| 76 | Terminal 31 |
| or: Photosetter 3 | |
| 77 | Terminal 32 |
Logical Device Numbers 200 - 277¶
| Number | Description |
|---|---|
| 200 | Internal device 1 |
| 201 | Internal device 2 |
| 202 | Internal device 3 |
| 203 | Internal device 4 |
| 204 | Internal device 5 |
| 205 | Internal device 6 |
| 206 | Internal device 7 |
| 207 | Internal device 8 |
| 210 | Internal device 9 |
| 211 | Internal device 10 |
| 312 | Internal device 11 |
| 213 | Internal device 12 |
| 214 | Internal device 13 |
| 215 | Internal device 14 |
| 216 | Internal device 15 |
| 217 | Internal device 16 |
| 220 | Internal device 17 |
| 221 | Internal device 18 |
| 222 | Internal device 19 |
| 223 | Internal device 20 |
| 224 | Internal device 21 |
Page 588¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Device |
|---|---|
| 225 | Internal device 22 |
| 226 | Internal device 23 |
| 227 | Internal device 24 |
| 230 | Internal device 25 |
| 231 | Internal device 26 |
| 232 | Internal device 27 |
| 233 | Internal device 28 |
| 234 | Internal device 29 |
| 235 | Internal device 30 |
| 236 | Internal device 31 |
| 237 | Internal device 32 |
| 240 | SIBAS internal device 1 |
| 241 | SIBAS internal device 2 |
| 242 | SIBAS internal device 3 |
| 243 | SIBAS internal device 4 |
| 244 | SIBAS internal device 5 |
| 245 | SIBAS internal device 6 |
| 246 | SIBAS internal device 7 |
| 247 | SIBAS internal device 8 |
| 250 | SIBAS internal device 9 |
| 251 | SIBAS internal device 10 |
| 252 | SIBAS internal device 11 |
| 253 | SIBAS internal device 12 |
| 254 | SIBAS internal device 13 |
| 255 | SIBAS internal device 14 |
| 256 | SIBAS internal device 15 |
| 257 | SIBAS internal device 16 |
| 260 | SIBAS internal device 17 |
| 261 | SIBAS internal device 18 |
| 262 | SIBAS internal device 19 |
| 263 | SIBAS internal device 20 |
| 264 | SIBAS internal device 21 |
| 265 | SIBAS internal device 22 |
| 266 | SIBAS internal device 23 |
| 267 | SIBAS internal device 24 |
| 270 | - not used |
| 271 | - not used |
| 272 | - not used |
| 273 | - not used |
| 274 | - not used |
| 275 | - not used |
| 276 | Internal device for ERS/SINTRAN III Watchdog |
| 277 | Internal device for FTX error logger |
Logical Device Numbers 300 - 377¶
| Number | Device |
|---|---|
| 300 | User semaphore 1 |
| 301 | User semaphore 2 |
| 302 | User semaphore 3 |
| 303 | User semaphore 4 |
| 304 | User semaphore 5 |
| 305 | User semaphore 6 |
| 306 | User semaphore 7 |
| 307 | User semaphore 8 |
| 310 | User semaphore 9 |
Page 589¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 311 | User semaphore 10 |
| 312 | User semaphore 11 |
| 313 | User semaphore 12 |
| 314 | User semaphore 13 |
| 315 | User semaphore 14 |
| 316 | User semaphore 15 |
| 317 | User semaphore 16 |
| 320 | User semaphore 17 |
| 321 | User semaphore 18 |
| 322 | User semaphore 19 |
| 323 | User semaphore 20 |
| 324 | User semaphore 21 |
| 325 | User semaphore 22 |
| 326 | User semaphore 23 |
| 327 | User semaphore 24 |
| 330 | User semaphore 25 |
| 331 | User semaphore 26 |
| 332 | User semaphore 27 |
| 333 | User semaphore 28 |
| 334 | User semaphore 29 |
| 335 | User semaphore 30 |
| 336 | User semaphore 31 |
| 337 | User semaphore 32 |
| 340 | User semaphore 33 |
| 341 | User semaphore 34 |
| 342 | User semaphore 35 |
| 343 | User semaphore 36 |
| 344 | User semaphore 37 |
| 345 | User semaphore 38 |
| 346 | User semaphore 39 |
| 347 | User semaphore 40 |
| 350 | User semaphore 41 |
| 351 | User semaphore 42 |
| 352 | User semaphore 43 |
| 353 | User semaphore 44 |
| 354 | User semaphore 45 |
| 355 | User semaphore 46 |
| 356 | User semaphore 47 |
| 357 | User semaphore 48 |
| 360 | User semaphore 49 |
| 361 | User semaphore 50 |
| 362 | User semaphore 51 |
| 363 | User semaphore 52 |
| 364 | User semaphore 53 |
| 365 | User semaphore 54 |
| 366 | User semaphore 55 |
| 367 | User semaphore 56 |
| 370 | User semaphore 57 |
| 371 | User semaphore 58 |
| 372 | User semaphore 59 |
| 373 | User semaphore 60, also used by the Backup-System |
| 374 | User semaphore 61, also used by the Backup-System |
| 375 | User semaphore 62, also used by the Backup-System |
| 376 | User semaphore 63, also used by the Backup-System |
| 377 | User semaphore 64, also used by the Backup-System |
Page 590¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
Logical Device Numbers 400 - 477¶
400¶
- CAMAC number 1
- or: Special DMA data field 1
- or: Digital input/output unit 1
- or: DR11C-compatible input/output unit 1
- or: Aristogrid digitizer unit 1
401¶
- CAMAC number 2
- or: Special DMA data field 2
- or: Digital input/output unit 2
- or: DR11C-compatible input/output unit 2
- or: Aristogrid digitizer unit 1
402¶
- CAMAC number 3
- or: Special DMA data field 3
- or: Digital input/output unit 3
- or: DR11C-compatible input/output unit 3
- or: Aristogrid digitizer unit 2
403¶
- CAMAC number 4
- or: Special DMA data field 4
- or: Digital input/output unit 4
- or: DR11C-compatible input/output unit 4
- or: Aristogrid digitizer unit 2
404¶
- CAMAC number 5
- or: Special DMA data field 5
- or: Digital input/output unit 5
- or: DR11C-compatible input/output unit 5
- or: Aristogrid digitizer unit 3
405¶
- CAMAC number 6
- or: Special DMA data field 6
- or: Digital input/output unit 6
- or: DR11C-compatible input/output unit 6
- or: Aristogrid digitizer unit 3
406¶
- CAMAC number 7
- or: Digital input/output unit 7
- or: DR11C-compatible input/output unit 7
- or: Aristogrid digitizer unit 4
407¶
- CAMAC number 8
- or: Digital input/output unit 8
- or: DR11C-compatible input/output unit 8
- or: Aristogrid digitizer unit 4
410¶
- CAMAC number 9
- or: Special DMA data field 7
- or: Digital input/output unit 9
- or: DR11C-compatible input/output unit 9
- or: Norcontrol process input/output unit 1
- or: Aristogrid digitizer unit 5
411¶
- CAMAC number 10
- or: Special DMA data field 8
- or: Digital input/output unit 10
- or: DR11C-compatible input/output unit 10
- or: Norcontrol process input/output unit 2
- or: Aristogrid digitizer unit 5
Page 591¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Device Number | Description |
|---|---|
| 412 | CAMAC number 11 or: Digital input/output unit 11 or: DR11C-compatible input/output unit 11 or: Norcontrol process input/output unit 3 or: Aristogrid digitizer unit 6 |
| 413 | CAMAC number 12 or: Special DMA data field 9 or: Digital input/output unit 12 or: DR11C-compatible input/output unit 12 or: Norcontrol process input/output unit 4 or: Aristogrid digitizer unit 6 |
| 414 | CAMAC number 13 or: Special DMA data field 10 or: Digital input/output unit 13 or: DR11C-compatible input/output unit 13 or: Norcontrol process input/output unit 5 or: Aristogrid digitizer unit 7 |
| 415 | CAMAC number 14 or: Special DMA data field 11 or: Digital input/output unit 14 or: DR11C-compatible input/output unit 14 or: Norcontrol process input/output unit 6 or: Aristogrid digitizer unit 7 |
| 416 | CAMAC number 15 or: Digital input/output unit 15 or: DR11C-compatible input/output unit 15 or: Norcontrol process input/output unit 7 or: Aristogrid digitizer unit 8 |
| 417 | CAMAC number 16 or: Digital input/output unit 16 or: DR11C-compatible input/output unit 16 or: Norcontrol process input/output unit 8 or: Aristogrid digitizer unit 8 |
| 420 | CAMAC number 17 or: Digital input/output unit 17 or: DR11C-compatible input/output unit 17 or: Norcontrol process input/output unit 9 or: Aristogrid digitizer unit 9 |
| 421 | Digital input/output unit 18 or: DR11C-compatible input/output unit 18 or: Norcontrol process input/output unit 10 or: Aristogrid digitizer unit 9 |
| 422 | Digital input/output unit 19 or: DR11C-compatible input/output unit 19 or: Norcontrol process input/output unit 11 or: Aristogrid digitizer unit 10 |
| 423 | Digital input/output unit 20 or: DR11C-compatible input/output unit 20 or: Norcontrol process input/output unit 12 or: Aristogrid digitizer unit 10 |
| 424 | Norcontrol process input/output unit 13 |
| 425 | Norcontrol process input/output unit 14 |
| 426 | Norcontrol process input/output unit 15 |
| 427 | - not used |
| 430 | Analog input unit 1 |
| 431 | Analog input unit 2 |
Page 592¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Device Number | Description |
|---|---|
| 432 | Analog input unit 3 |
| 433 | Analog input unit 4 |
| 434 | Analog input unit 5 |
| 435 | Analog input unit 6 |
| 436 | Analog input unit 7 |
| 437 | Analog input unit 8 |
| 440 | Direct task level 6 |
| 441 | Direct task level 7 |
| 442 | Direct task level 8 |
| 443 | Direct task level 9 |
| 444 | - not used |
| 445 | - not used |
| 446 | - not used |
| 447 | - not used |
| 450 | CONNECT device 1 |
| 451 | CONNECT device 2 |
| 452 | CONNECT device 3 |
| 453 | CONNECT device 4 |
| 454 | CONNECT device 5 |
| 455 | CONNECT device 6 |
| 456 | CONNECT device 7 |
| 457 | CONNECT device 8 |
| 460 | CONNECT device 9 |
| 461 | CONNECT device 10 |
| 462 | CONNECT device 11 |
| 463 | CONNECT device 12 |
| 464 | CONNECT device 13 |
| 465 | CONNECT device 14 |
| 466 | CONNECT device 15 |
| 467 | CONNECT device 16 |
| 470 | ND 23 - programmed clock |
| 471 | - not used |
| 472 | - not used |
| 473 | - not used |
| 474 | - not used |
| 475 | - not used |
| 476 | - not used |
| 477 | - not used |
Logical Device Numbers 500 - 577¶
| Device Number | Description |
|---|---|
| 500 | Internal device for error message RT-program |
| 501 | Semaphore for segment transfer |
| 502 | - not used |
| 503 | RT-Loader command semaphore |
| 504 | General semaphore for file system |
| 505 | User-file-buffer semaphore |
| 506 | Object-file-buffer semaphore |
| 507 | RT-open-file-table semaphore |
| 510 | - not used |
| 511 | - not used |
| 512 | - not used |
| 513 | - not used |
| 514 | - not used |
| 515 | DF1, file-transfer for RT, semaphore for disk 1, 2, 3 and 4 |
Page 593¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Description |
|---|---|
| 516 | DF2, for open-file monitor call from RT-program data field |
| 517 | RTFIL semaphore |
| 520 | NOTIS-IR semaphore 2 |
| 521 | Device buffer allocation semaphore |
| 522 | - not used |
| 523 | - not used |
| 524 | - not used |
| 525 | - not used |
| 526 | DF3, transfer semaphore for magnetic tape 1 |
| 527 | Spooling queue semaphore |
| 530 | Accounting semaphore |
| 531 | CDC link monitor call data field |
| 532 | Spooling device 4, queue semaphore |
| 533 | Spooling device 4, I/O semaphore |
| 534 | Spooling device 5, queue semaphore |
| 535 | Spooling device 5, I/O semaphore |
| 536 | Spooling device 6, queue semaphore |
| 537 | Spooling device 6, I/O semaphore |
| 540 | Internal Device Remote Batch IBM |
| 541 | Internal Device Remote Batch UNIVAC |
| 542 | Internal Device Remote Batch Honeywell Bull |
| 543 | Internal Device Remote Batch CDC |
| 544 | ECC disk controller 3, unit 0, directory table semaphore |
| 545 | ECC disk controller 3, unit 0, bit file buffer semaphore |
| 546 | ECC disk controller 3, unit 1, directory table semaphore |
| 547 | ECC disk controller 3, unit 1, bit file buffer semaphore |
| 550 | ECC disk controller 3, unit 2, directory table semaphore |
| 551 | ECC disk controller 3, unit 2, bit file buffer semaphore |
| 552 | ECC disk controller 3, unit 3, directory table semaphore |
| 553 | ECC disk controller 3, unit 3, bit file buffer semaphore |
| 554 | - not used |
| 555 | - not used |
| 556 | - not used |
| 557 | - not used |
| 560 | Magnetic tape controller 1, data field |
| 561 | All magnetic tapes, directory semaphore |
| 562 | Spooling device 11, queue semaphore |
| 563 | Magnetic tape controller 2, unit 2, I/O data field |
| 564 | Magnetic tape controller 2, unit 3, I/O data field |
| 565 | ECC disk controller 3, data field |
| 566 | ECC disk controller 4, data field |
| 567 | CDC link data field |
| 570 | - not used |
| 571 | - not used |
| 572 | - not used |
| 573 | - not used |
| 574 | Monitor call data field for cassette |
| 575 | Cassette data field |
| 576 | DF5, monitor call data field for Versatec 1 |
| 577 | Versatec data field |
Page 594¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
Logical Device Numbers 600 - 677¶
| Device Number | Description |
|---|---|
| 600 | BADMIN semaphores |
| 601 | BASEM |
| 602 | Default subsystem semaphore |
| 603 | - not used |
| 604 | Spooling device 31, queue semaphore |
| 605 | Spooling device 31, I/O semaphore |
| 606 | Spooling device 32, queue semaphore |
| 607 | Spooling device 32, I/O semaphore |
| 610 | Spooling device 33, queue semaphore |
| 611 | Spooling device 33, I/O semaphore |
| 612 | Spooling device 34, queue semaphore |
| 613 | Spooling device 34, I/O semaphore |
| 614 | Spooling device 35, queue semaphore |
| 615 | Spooling device 35, I/O semaphore |
| 616 | Spooling device 36, queue semaphore |
| 617 | Spooling device 36, I/O semaphore |
| 620 | Spooling device 37, queue semaphore |
| 621 | Spooling device 37, I/O semaphore |
| 622 | Spooling device 38, queue semaphore |
| 623 | Spooling device 38, I/O semaphore |
| 624 | Spooling device 39, queue semaphore |
| 625 | Spooling device 39, I/O semaphore |
| 626 | Spooling device 40, queue semaphore |
| 627 | Spooling device 40, I/O semaphore |
| 630 | Spooling device 41, queue semaphore |
| 631 | Spooling device 41, I/O semaphore |
| 632 | Spooling device 42, queue semaphore |
| 633 | Spooling device 42, I/O semaphore |
| 634 | Spooling device 43, queue semaphore |
| 635 | Spooling device 43, I/O semaphore |
| 636 | Spooling device 44, queue semaphore |
| 637 | Spooling device 44, I/O semaphore |
| 640 | Spooling device 45, queue semaphore |
| 641 | Spooling device 45, I/O semaphore |
| 642 | Spooling device 46, queue semaphore |
| 643 | Spooling device 46, I/O semaphore |
| 644 | Spooling device 47, queue semaphore |
| 645 | Spooling device 47, I/O semaphore |
| 646 | Spooling device 48, queue semaphore |
| 647 | Spooling device 48, I/O semaphore |
| 650 | Spooling device 49, queue semaphore |
| 651 | Spooling device 49, I/O semaphore |
| 652 | Spooling device 50, queue semaphore |
| 653 | Spooling device 50, I/O semaphore |
| 654 | Spooling device 51, queue semaphore |
| 655 | Spooling device 51, I/O semaphore |
| 656 | Spooling device 52, queue semaphore |
| 657 | Spooling device 52, I/O semaphore |
| 660 | Spooling device 53, queue semaphore |
| 661 | Spooling device 53, I/O semaphore |
| 662 | Spooling device 54, queue semaphore |
| 663 | Spooling device 54, I/O semaphore |
| 664 | Spooling device 55, queue semaphore |
| 665 | Spooling device 55, I/O semaphore |
Page 595¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
| Number | Device |
|---|---|
| 666 | Spooling device 56, queue semaphore |
| 667 | Spooling device 56, I/O semaphore |
| 670 | Spooling device 57, queue semaphore |
| 671 | Spooling device 57, I/O semaphore |
| 672 | Spooling device 58, queue semaphore |
| 673 | Spooling device 58, I/O semaphore |
| 674 | Spooling device 59, queue semaphore |
| 675 | Spooling device 59, I/O semaphore |
| 676 | Spooling device 60, queue semaphore |
| 677 | Spooling device 60, I/O semaphore |
Logical Device Numbers 700 - 777¶
| Number | Description |
|---|---|
| 700 | HDLC DMA, link 7, input or: NORCOM system 1, semigraphic buffer no. 0 |
| 701 | HDLC DMA, link 7, output or: NORCOM system 1, semigraphic buffer no. 1 |
| 702 | HDLC DMA, link 8, input or: NORCOM system 1, semigraphic buffer no. 2 |
| 703 | HDLC DMA, link 8, output or: NORCOM system 1, semigraphic buffer no. 3 |
| 704 | HDLC DMA, link 9, input or: NORCOM system 1, semigraphic buffer no. 4 |
| 705 | HDLC DMA, link 9, output or: NORCOM system 1, semigraphic buffer no. 5 |
| 706 | HDLC DMA, link 10, input or: NORCOM system 1, semigraphic buffer no. 6 |
| 707 | HDLC DMA, link 10, output or: NORCOM system 1, semigraphic buffer no. 7 |
| 710 | HDLC DMA, link 11, input or: NORCOM system 1, graphic buffer no. 1 |
| 711 | HDLC DMA, link 11, output or: NORCOM system 1, graphic buffer no. 3 |
| 712 | HDLC DMA, link 12, input or: NORCOM system 1, graphic buffer no. 5 |
| 713 | HDLC DMA, link 12, output or: NORCOM system 1, graphic buffer no. 7 |
| 714 | HDLC DMA, link 13, input or: NORCOM system 1, selector module no. 1 |
| 715 | HDLC DMA, link 13, output or: NORCOM system 1, selector module no. 2 |
| 716 | HDLC DMA, link 14, input or: NORCOM system 1, selector module no. 3 |
| 717 | HDLC DMA, link 14, output or: NORCOM system 1, selector module no. 4 |
| 720 | HDLC DMA, link 15, input or: NORCOM system 1, selector module no. 5 |
| 721 | HDLC DMA, link 15, output or: NORCOM system 1, selector module no. 6 |
| 722 | HDLC DMA, link 16, input or: NORCOM system 1, selector module no. 7 |
| 723 | HDLC DMA, link 16, output or: NORCOM system 1, selector module no. 8 |
| 724 | HDLC DMA, link 17, input |
| 725 | HDLC DMA, link 17, output |
Page 596¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| No. | Description |
|---|---|
| 726 | HDLC DMA, link 18, input |
| or: NORCOM system 2, semigraphic buffer no. 0 | |
| 727 | HDLC DMA, link 18, output |
| or: NORCOM system 2, semigraphic buffer no. 1 | |
| 730 | HDLC DMA, link 19, input |
| or: NORCOM system 2, semigraphic buffer no. 2 | |
| 731 | HDLC DMA, link 19, output |
| or: NORCOM system 2, semigraphic buffer no. 3 | |
| 732 | HDLC DMA, link 20, input |
| or: NORCOM system 2, semigraphic buffer no. 4 | |
| 733 | HDLC DMA, link 20, output |
| or: NORCOM system 2, semigraphic buffer no. 5 | |
| 734 | HDLC DMA, link 21, input |
| or: NORCOM system 2, semigraphic buffer no. 6 | |
| or: ACM no. 1 | |
| 735 | HDLC DMA, link 21, output |
| or: NORCOM system 2, semigraphic buffer no. 7 | |
| or: ACM no. 2 | |
| 736 | HDLC DMA, link 22, input |
| or: NORCOM system 2, graphic buffer no. 1 | |
| or: ACM no. 3 | |
| 737 | HDLC DMA, link 22, output |
| or: NORCOM system 2, graphic buffer no. 3 | |
| or: ACM no. 4 | |
| 740 | HDLC DMA, link 23, input |
| or: NORCOM system 2, graphic buffer no. 5 | |
| or: ACM no. 5 | |
| 741 | HDLC DMA, link 23, output |
| or: NORCOM system 2, graphic buffer no. 7 | |
| 742 | HDLC DMA, link 24, input |
| or: NORCOM system 2, selector module no. 1 | |
| 743 | HDLC DMA, link 24, output |
| or: NORCOM system 2, selector module no. 2 | |
| 744 | HDLC DMA, link 25, input |
| or: NORCOM system 2, selector module no. 3 | |
| 745 | HDLC DMA, link 25, output |
| or: NORCOM system 2, selector module no. 4 | |
| 746 | HDLC DMA, link 26, input |
| or: NORCOM system 2, selector module no. 5 | |
| 747 | HDLC DMA, link 26, output |
| or: NORCOM system 2, selector module no. 6 | |
| 750 | HDLC DMA, link 27, input |
| or: NORCOM system 2, selector module no. 7 | |
| 751 | HDLC DMA, link 27, output |
| or: NORCOM system 2, selector module no. 8 | |
| 752 | HDLC DMA, link 28, input |
| 753 | HDLC DMA, link 28, output |
| 754 | HDLC DMA, link 29, input |
| or: NORCOM system 3, semigraphic buffer no. 0 | |
| 755 | HDLC DMA, link 29, output |
| or: NORCOM system 3, semigraphic buffer no. 1 | |
| 756 | HDLC DMA, link 30, input |
| or: NORCOM system 3, semigraphic buffer no. 2 |
Page 597¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 757 | HDLC DMA, link 30, output or: NORCOM system 3, semigraphic buffer no. 3 |
| 760 | HDLC DMA, link 31, input or: NORCOM system 3, semigraphic buffer no. 4 |
| 761 | HDLC DMA, link 31, output or: NORCOM system 3, semigraphic buffer no. 5 |
| 762 | HDLC DMA, link 32, input or: NORCOM system 3, semigraphic buffer no. 6 |
| 763 | HDLC DMA, link 32, output or: NORCOM system 3, semigraphic buffer no. 7 |
| 764 | NORCOM system 3, graphic buffer no. 1 |
| 765 | NORCOM system 3, graphic buffer no. 3 |
| 766 | NORCOM system 3, graphic buffer no. 5 |
| 767 | NORCOM system 3, graphic buffer no. 7 |
| 770 | NORCOM system 3, selector module no. 1 |
| 771 | NORCOM system 3, selector module no. 2 |
| 772 | NORCOM system 3, selector module no. 3 |
| 773 | NORCOM system 3, selector module no. 4 |
| 774 | NORCOM system 3, selector module no. 5 |
| 775 | NORCOM system 3, selector module no. 6 |
| 776 | NORCOM system 3, selector module no. 7 |
| 777 | NORCOM system 3, selector module no. 8 |
Logical Device Numbers 1000 - 1077¶
| Number | Description |
|---|---|
| 1000 | Floppy disk controller 1, unit 0, I/O data field |
| 1001 | Floppy disk controller 1, unit 1, I/O data field |
| 1002 | Floppy disk controller 1, unit 2, I/O data field |
| 1003 | Floppy disk controller 2, unit 0, I/O data field |
| 1004 | Floppy disk controller 2, unit 1, I/O data field |
| 1005 | Floppy disk controller 2, unit 2, I/O data field |
| 1006 | Hasp DMA 1, I/O data field |
| 1007 | Hasp DMA 2, I/O data field |
| 1010 | Hasp DMA 3, I/O data field |
| 1011 | Hasp DMA 4, I/O data field |
| 1012 | Hasp DMA 5, I/O data field |
| 1013 | Hasp DMA 6, I/O data field |
| 1014 | Line printer 3, I/O data field |
| 1015 | Line printer 4, I/O data field |
| 1016 | - not used |
| 1017 | - not used |
| 1020 | - not used |
| 1021 | - not used |
| 1022 | - not used |
| 1023 | - not used |
| 1024 | - not used |
| 1025 | - not used |
| 1026 | - not used |
| 1027 | - not used |
| 1030 | - not used |
| 1031 | - not used |
| 1032 | - not used |
| 1033 | - not used |
| 1034 | - not used |
| 1035 | - not used |
Page 598¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 1036 | - not used |
| 1037 | - not used |
| 1040 | Terminal 33 |
| 1041 | Terminal 34 |
| 1042 | Terminal 35 |
| 1043 | Terminal 36 |
| 1044 | Terminal 37 |
| 1045 | Terminal 38 |
| 1046 | Terminal 39 |
| 1047 | Terminal 40 |
| 1050 | Terminal 41 |
| 1051 | Terminal 42 |
| 1052 | Terminal 43 |
| 1053 | Terminal 44 |
| 1054 | Terminal 45 |
| 1055 | Terminal 46 |
| 1056 | Terminal 47 |
| 1057 | Terminal 48 |
| 1060 | Terminal 49 |
| 1061 | Terminal 50 |
| 1062 | Terminal 51 |
| 1063 | Terminal 52 |
| 1064 | Terminal 53 |
| 1065 | Terminal 54 |
| 1066 | Terminal 55 |
| 1067 | Terminal 56 |
| 1070 | Terminal 57 |
| 1071 | Terminal 58 |
| 1072 | Terminal 59 |
| 1073 | Terminal 60 |
| 1074 | Terminal 61 |
| 1075 | Terminal 62 |
| 1076 | Terminal 63 |
| 1077 | Terminal 64 |
Logical Device Numbers 1100 - 1177¶
| Number | Description |
|---|---|
| 1100 | ECC disk controller 1, data field |
| 1101 | ECC disk controller 1, unit 0, directory table semaphore |
| 1102 | ECC disk controller 1, unit 0, bit file buffer semaphore |
| 1103 | - not used |
| 1104 | - not used |
| 1105 | - not used |
| 1106 | - not used |
| 1107 | - not used |
| 1110 | - not used |
| 1111 | Magnetic tape controller 2, data field |
| 1112 | ECC disk controller 4, unit 0, directory table semaphore |
| 1113 | Floppy disk controller 1, unit 3, I/O data field |
| 1114 | ECC disk controller 4, unit 0, bit file buffer semaphore |
| 1115 | Floppy disk controller 2, unit 3, I/O data field |
| 1116 | DR 7, transfer semaphore for magnetic tape controller 2 |
| 1117 | ECC disk controller 1, unit 1, directory table semaphore |
| 1120 | ECC disk controller 1, unit 1, bit file buffer semaphore |
| 1121 | ECC disk controller 1, unit 2, directory table semaphore |
Page 599¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 1122 | ECC disk controller 1, unit 2, bit file buffer semaphore |
| 1123 | ECC disk controller 1, unit 3, directory table semaphore |
| 1124 | ECC disk controller 1, unit 3, bit file buffer semaphore |
| 1125 | Versatec controller 2 |
| 1126 | Monitor call data field for Versatec controller 2 |
| 1127 | DF 39, magnetic tape controller 3 monitor call data field |
| 1130 | - not used |
| 1131 | - not used |
| 1132 | - not used |
| 1133 | - not used |
| 1134 | Floppy disk controller 1, unit 3, directory table semaphore |
| 1135 | Floppy disk controller 1, unit 3, bit file buffer semaphore |
| 1136 | Spooling device 1, queue semaphore |
| 1137 | Spooling device 1, I/O semaphore |
| 1140 | Spooling device 2, queue semaphore |
| 1141 | Spooling device 2, I/O semaphore |
| 1142 | Spooling system general semaphore |
| 1143 | Spooling system wait for used pages semaphore |
| 1144 | Spooling system wait for free pages semaphore |
| 1145 | Floppy disk controller 1, data field |
| 1146 | Monitor call data field for floppy disk controller 1 |
| 1147 | Floppy disk controller 2, unit 3, directory table semaphore |
| 1150 | Floppy disk controller 1, unit 0, directory table semaphore |
| 1151 | Floppy disk controller 1, unit 0, bit file buffer semaphore |
| 1152 | Floppy disk controller 1, unit 1, directory table semaphore |
| 1153 | Floppy disk controller 1, unit 1, bit file buffer semaphore |
| 1154 | Floppy disk controller 1, unit 2, directory table semaphore |
| 1155 | Floppy disk controller 1, unit 2, bit file buffer semaphore |
| 1156 | Floppy disk controller 2, data field |
| 1157 | Monitor call data field for floppy disk controller 2 |
| 1160 | Floppy disk controller 2, unit 3, bit file buffer semaphore |
| 1161 | Floppy disk controller 2, unit 0, directory table semaphore |
| 1162 | Floppy disk controller 2, unit 0, bit file buffer semaphore |
| 1163 | Floppy disk controller 2, unit 1, directory table semaphore |
| 1164 | Floppy disk controller 2, unit 1, bit file buffer semaphore |
| 1165 | Floppy disk controller 2, unit 2, directory table semaphore |
| 1166 | Floppy disk controller 2, unit 2, bit file buffer semaphore |
| 1167 | DMA line printer 1, data field |
| 1170 | Monitor call data field for DMA line printer 1 |
| 1171 | ECC disk controller 4, unit 2, directory semaphore |
| 1172 | ECC disk controller 4, unit 2, bit file semaphore |
| 1173 | Spooling device 3, queue semaphore |
| 1174 | Spooling device 3, I/O semaphore |
| 1175 | DMA line printer 2, data field |
| 1176 | Monitor call data field for DMA line printer 2 |
| 1177 | Spooling semaphore for id data buffer |
Page 600¶
Logical Device Numbers 1200 - 1277¶
| Number | Description |
|---|---|
| 1200 | NO TPS system semaphore |
| 1201 | DMAC command semaphore |
| 1202 | RT-PROGRAM-LOG semaphore |
| 1203 | Histogram commands semaphore |
| 1204 | SINTRAN Service Program command semaphore |
| 1205 | Mail system semaphore |
| 1206 | Terminal 1, data field |
| 1207 | ECC disk controller 2, data field |
| 1210 | Internal device 1, data field |
| 1211 | Monitor call data field for internal device 1 |
| 1212 | Internal device 2, data field |
| 1213 | Monitor call data field for internal device 2 |
| 1214 | Internal device 3, data field |
| 1215 | Monitor call data field for internal device 3 |
| 1216 | Internal device 4, data field |
| 1217 | Monitor call data field for internal device 4 |
| 1220 | Internal device 5, data field |
| 1221 | Monitor call data field for internal device 5 |
| 1222 | Accounting semaphore |
| 1223 | NOTIS-IR semaphore |
| 1224 | ST-506 (Winchester) disk controller 1, data field |
| or: STC | magnetic tape controller controller 4 |
| 1225 | ST-506 (Winchester) disk cont. 1, unit 0, directory semaphore |
| or: STC | magnetic tape controller 4, unit 0, I/O data field |
| 1226 | ST-506 (Winchester) disk cont. 1, unit 0, bit file semaphore |
| or: STC | magnetic tape controller 4, unit 1, I/O data field |
| 1227 | ST-506 (Winchester) disk cont. 1, unit 1, directory semaphore |
| or: STC | magnetic tape controller 4, unit 2,I/O data field |
| 1230 | ST-506 (Winchester) disk cont. 1, unit 1, bit file semaphore |
| or: STC | magnetic tape controller 4, unit 3, I/O data field |
| 1231 | ST-506 (Winchester) disk controller 2, data field |
| or: STC | magnetic tape controller controller 3 |
| 1232 | ST-506 (Winchester) disk cont. 2, unit 0, directory semaphore |
| or: STC | magnetic tape controller 3, unit 0, I/O data field |
| 1233 | ST-506 (Winchester) disk cont. 2, unit 0, bit file semaphore |
| or: STC | magnetic tape controller 3, unit 1, I/O data field |
| 1234 | ST-506 (Winchester) disk cont. 2, unit 1, directory semaphore |
| or: STC | magnetic tape controller 3, unit 2, I/O data field |
| 1235 | ST-506 (Winchester) disk cont. 2, unit 1, bit file semaphore |
| or: STC | magnetic tape controller 3, unit 3, I/O data field |
| 1236 | Batch process 1, data field |
| 1237 | Batch process 1, internal device |
| 1240 | Batch process 2, data field |
| 1241 | Batch process 2, internal device |
| 1242 | Batch process 3, data field |
| 1243 | Batch process 3, internal device |
| 1244 | Batch process 4, data field |
| 1245 | Batch process 4, internal device |
| 1246 | Batch process 5, data field |
| 1247 | Batch process 5, internal device |
| 1250 | Batch process 6, data field |
| 1251 | Batch process 6, internal device |
| 1252 | Batch process 7, data field |
| 1253 | Batch process 7, internal device |
Page 601¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
| Number | Description |
|---|---|
| 1254 | Batch process 8, data field |
| 1255 | Batch process 8, internal device |
| 1256 | Batch process 9, data field |
| 1257 | Batch process 9, internal device |
| 1260 | Batch process 10, data field |
| 1261 | Batch process 10, internal device |
| 1262 | Spooling device 7, queue semaphore |
| 1263 | Spooling device 7, I/O semaphore |
| 1264 | Spooling device 8, queue semaphore |
| 1265 | Spooling device 8, I/O semaphore |
| 1266 | Spooling device 9, queue semaphore |
| 1267 | Spooling device 9, I/O semaphore |
| 1270 | Spooling device 10, queue semaphore |
| 1271 | Spooling device 10, I/O semaphore |
| 1272 | Monitor call data field for internal device 1 |
| 1273 | Monitor call data field for internal device 2 |
| 1274 | Monitor call data field for internal device 3 |
| 1275 | Monitor call data field for internal device 4 |
| 1276 | Monitor call data field for internal device 5 |
| 1277 | DF 40, magnetic tape controller 4, monitor call data field |
Logical Device Numbers 1300 - 1377¶
| Number | Description |
|---|---|
| 1300 | ECC disk controller 4, unit 3, directory table semaphore |
| 1301 | ECC disk controller 4, unit 3, bit file buffer semaphore |
| 1302 | Device buffer semaphore |
| 1303 | Hasp DMA 1, input data field |
| 1304 | Hasp DMA 1, output data field |
| 1305 | Monitor call data field for Hasp DMA 1, input |
| 1306 | Monitor call data field for Hasp DMA 1, output |
| 1307 | Hasp DMA 2, input data field |
| 1310 | Hasp DMA 2, output data field |
| 1311 | Monitor call data field for Hasp DMA 2, input |
| 1312 | Monitor call data field for Hasp DMA 2, output |
| 1313 | Hasp DMA 3, input data field |
| 1314 | Hasp DMA 3, output data field |
| 1315 | Monitor call data field for Hasp DMA 3, input |
| 1316 | Monitor call data field for Hasp DMA 3, output |
| 1317 | Hasp DMA 4, input data field |
| 1320 | Hasp DMA 4, output data field |
| 1321 | Monitor call data field for Hasp DMA 4, input |
| 1322 | Monitor call data field for Hasp DMA 4, output |
| 1323 | Hasp DMA 5, input data field |
| 1324 | Hasp DMA 5, output data field |
| 1325 | Monitor call data field for Hasp DMA 5, input |
| 1326 | Monitor call data field for Hasp DMA 5, output |
| 1327 | Hasp DMA 6, input data field |
| 1330 | Hasp DMA 6, output data field |
| 1331 | Monitor call data field for Hasp DMA 6, input |
| 1332 | Monitor call data field for Hasp DMA 6, output |
| 1333 | ECC disk controller 2, unit 0, directory table semaphore |
| 1334 | ECC disk controller 2, unit 0, bit file buffer semaphore |
| 1335 | ECC disk controller 2, unit 1, directory table semaphore |
| 1336 | ECC disk controller 2, unit 1, bit file buffer semaphore |
| 1337 | ECC disk controller 2, unit 2, directory table semaphore |
Page 602¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 1340 | ECC disk controller 2, unit 2, bit file buffer semaphore |
| 1341 | ECC disk controller 2, unit 3, directory table semaphore |
| 1342 | ECC disk controller 2, unit 3, bit file buffer semaphore |
| 1343 | DMA line printer 3, data field |
| 1344 | Monitor call data field for DMA line printer 3 |
| 1345 | DMA line printer 4, data field |
| 1346 | Monitor call data field for DMA line printer 4 |
| 1347 | Spooling device 11, I/O semaphore |
| 1350 | Spooling device 12, queue semaphore |
| 1351 | Spooling device 12, I/O semaphore |
| 1352 | RT-PROGRAM-LOG command semaphore |
| 1353 | - not used |
| 1354 | - not used |
| 1355 | - not used |
| 1356 | - not used |
| 1357 | - not used |
| 1360 | HDLC DMA, link 1, input |
| or: Synchronous modem 1 for HDLC interface input/output | |
| 1361 | HDLC DMA, link 1, output |
| 1362 | HDLC DMA, link 2, input |
| or: Synchronous modem 2 for HDLC interface input/output | |
| 1363 | HDLC DMA, link 2, output |
| 1364 | HDLC DMA, link 3, input |
| or: Synchronous modem 3 for HDLC interface input/output | |
| 1365 | HDLC DMA, link 3, output |
| 1366 | HDLC DMA, link 4, input |
| or: Synchronous modem 4 for HDLC interface input/output | |
| 1367 | HDLC DMA, link 4, output |
| 1370 | HDLC DMA, link 5, input |
| or: Synchronous modem 5 for HDLC interface input/output | |
| 1371 | HDLC DMA, link 5, output |
| 1372 | HDLC DMA, link 6, input |
| or: Synchronous modem 6 for HDLC interface input/output | |
| 1373 | HDLC DMA, link 6, output |
| 1374 | X.21 line number 1 |
| 1375 | X.21 line number 2 |
| 1376 | X.21 line number 3 |
| 1377 | X.21 line number 4 |
Logical Device Numbers 1400 - 1477¶
| Number | Description |
|---|---|
| 1400 | Terminal access device (TAD) 1 |
| 1401 | Terminal access device (TAD) 2 |
| 1402 | Terminal access device (TAD) 3 |
| 1403 | Terminal access device (TAD) 4 |
| 1404 | Terminal access device (TAD) 5 |
| 1405 | Terminal access device (TAD) 6 |
| 1406 | Terminal access device (TAD) 7 |
| 1407 | Terminal access device (TAD) 8 |
| 1410 | Terminal access device (TAD) 9 |
| 1411 | Terminal access device (TAD) 10 |
| 1412 | Terminal access device (TAD) 11 |
| 1413 | Terminal access device (TAD) 12 |
| 1414 | Terminal access device (TAD) 13 |
| 1415 | Terminal access device (TAD) 14 |
Page 603¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
| Number | Device Description |
|---|---|
| 1416 | Terminal access device (TAD) 15 |
| 1417 | Terminal access device (TAD) 16 |
| 1420 | Terminal access device (TAD) 17 |
| 1421 | Terminal access device (TAD) 18 |
| 1422 | Terminal access device (TAD) 19 |
| 1423 | Terminal access device (TAD) 20 |
| 1424 | Terminal access device (TAD) 21 |
| 1425 | Terminal access device (TAD) 22 |
| 1426 | Terminal access device (TAD) 23 |
| 1427 | Terminal access device (TAD) 24 |
| 1430 | Terminal access device (TAD) 25 |
| 1431 | Terminal access device (TAD) 26 |
| 1432 | Terminal access device (TAD) 27 |
| 1433 | Terminal access device (TAD) 28 |
| 1434 | Terminal access device (TAD) 29 |
| 1435 | Terminal access device (TAD) 30 |
| 1436 | Terminal access device (TAD) 31 |
| 1437 | Terminal access device (TAD) 32 |
| 1440 | Terminal access device (TAD) 33 |
| 1441 | Terminal access device (TAD) 34 |
| 1442 | Terminal access device (TAD) 35 |
| 1443 | Terminal access device (TAD) 36 |
| 1444 | Terminal access device (TAD) 37 |
| 1445 | Terminal access device (TAD) 38 |
| 1446 | Terminal access device (TAD) 39 |
| 1447 | Terminal access device (TAD) 40 |
| 1450 | Terminal access device (TAD) 41 |
| 1451 | Terminal access device (TAD) 42 |
| 1452 | Terminal access device (TAD) 43 |
| 1453 | Terminal access device (TAD) 44 |
| 1454 | Terminal access device (TAD) 45 |
| 1455 | Terminal access device (TAD) 46 |
| 1456 | Terminal access device (TAD) 47 |
| 1457 | Terminal access device (TAD) 48 |
| 1460 | Terminal access device (TAD) 49 |
| 1461 | Terminal access device (TAD) 50 |
| 1462 | Terminal access device (TAD) 51 |
| 1463 | Terminal access device (TAD) 52 |
| 1464 | Terminal access device (TAD) 53 |
| 1465 | Terminal access device (TAD) 54 |
| 1466 | Terminal access device (TAD) 55 |
| 1467 | Terminal access device (TAD) 56 |
| 1470 | Terminal access device (TAD) 57 |
| 1471 | Terminal access device (TAD) 58 |
| 1472 | Terminal access device (TAD) 59 |
| 1473 | Terminal access device (TAD) 60 |
| 1474 | Terminal access device (TAD) 61 |
| 1475 | Terminal access device (TAD) 62 |
| 1476 | Terminal access device (TAD) 63 |
| 1477 | Terminal access device (TAD) 64 |
Page 604¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
Logical Device Numbers 1500 - 1577¶
| Number | Description |
|---|---|
| 1500 | Terminal access device (TAD) 65 |
| 1501 | Terminal access device (TAD) 66 |
| 1502 | Terminal access device (TAD) 67 |
| 1503 | Terminal access device (TAD) 68 |
| 1504 | Terminal access device (TAD) 69 |
| 1505 | Terminal access device (TAD) 70 |
| 1506 | Terminal access device (TAD) 71 |
| 1507 | Terminal access device (TAD) 72 |
| 1510 | Terminal access device (TAD) 73 |
| 1511 | Terminal access device (TAD) 74 |
| 1512 | Terminal access device (TAD) 75 |
| 1513 | Terminal access device (TAD) 76 |
| 1514 | Terminal access device (TAD) 77 |
| 1515 | Terminal access device (TAD) 78 |
| 1516 | Terminal access device (TAD) 79 |
| 1517 | Terminal access device (TAD) 80 |
| 1520 | Terminal access device (TAD) 81 |
| 1521 | Terminal access device (TAD) 82 |
| 1522 | Terminal access device (TAD) 83 |
| 1523 | Terminal access device (TAD) 84 |
| 1524 | Terminal access device (TAD) 85 |
| 1525 | Terminal access device (TAD) 86 |
| 1526 | Terminal access device (TAD) 87 |
| 1527 | Terminal access device (TAD) 88 |
| 1530 | Terminal access device (TAD) 89 |
| 1531 | Terminal access device (TAD) 90 |
| 1532 | Terminal access device (TAD) 91 |
| 1533 | Terminal access device (TAD) 92 |
| 1534 | Terminal access device (TAD) 93 |
| 1535 | Terminal access device (TAD) 94 |
| 1536 | Terminal access device (TAD) 95 |
| 1537 | Terminal access device (TAD) 96 |
| 1540 | Telefix terminal 1 |
| 1541 | Telefix terminal 2 |
| 1542 | Telefix terminal 3 |
| 1543 | Telefix terminal 4 |
| 1544 | Telefix terminal 5 |
| 1545 | Telefix terminal 6 |
| 1546 | Telefix terminal 7 |
| 1547 | Telefix terminal 8 |
| 1550 | Telefix terminal 9 |
| 1551 | Telefix terminal 10 |
| 1552 | Telefix terminal 11 |
| 1553 | Telefix terminal 12 |
| 1554 | Telefix terminal 13 |
| 1555 | Telefix terminal 14 |
| 1556 | Telefix terminal 15 |
| 1557 | Telefix terminal 16 |
| 1560 | Telefix background terminal 1 |
| 1561 | Telefix background terminal 2 |
| 1562 | Telefix background terminal 3 |
| 1563 | Telefix background terminal 4 |
| 1564 | Telefix background terminal 5 |
| 1565 | Telefix background terminal 6 |
Page 605¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Description |
|---|---|
| 1566 | Telefix background terminal 7 |
| 1567 | Telefix background terminal 8 |
| 1570 | Telefix background terminal 9 |
| 1571 | Telefix background terminal 10 |
| 1572 | Telefix background terminal 11 |
| 1573 | Telefix background terminal 12 |
| 1574 | Telefix background terminal 13 |
| 1575 | Telefix background terminal 14 |
| 1576 | Telefix background terminal 15 |
| 1577 | Telefix background terminal 16 |
Logical Device Numbers 1600 - 1677¶
| Number | Description |
|---|---|
| 1600 | DMA device buffer header semaphore for header number 0 |
| 1601 | DMA device buffer header semaphore for header number 1 |
| 1602 | DMA device buffer header semaphore for header number 2 |
| 1603 | DMA device buffer header semaphore for header number 3 |
| 1604 | DMA device buffer header semaphore for header number 4 |
| 1605 | DMA device buffer header semaphore for header number 5 |
| 1606 | DMA device buffer header semaphore for header number 6 |
| 1607 | DMA device buffer header semaphore for header number 7 |
| 1610 | DMA device buffer header semaphore for header number 10 |
| 1611 | DMA device buffer header semaphore for header number 11 |
| 1612 | DMA device buffer header semaphore for header number 12 |
| 1613 | DMA device buffer header semaphore for header number 13 |
| 1614 | DMA device buffer header semaphore for header number 14 |
| 1615 | DMA device buffer header semaphore for header number 15 |
| 1616 | DMA device buffer header semaphore for header number 16 |
| 1617 | DMA device buffer header semaphore for header number 17 |
| 1620 | DMA device buffer header semaphore for header number 20 |
| 1621 | DMA device buffer header semaphore for header number 21 |
| 1622 | DMA device buffer header semaphore for header number 22 |
| 1623 | DMA device buffer header semaphore for header number 23 |
| 1624 | DMA device buffer header semaphore for header number 24 |
| 1625 | DMA device buffer header semaphore for header number 25 |
| 1626 | DMA device buffer header semaphore for header number 26 |
| 1627 | DMA device buffer header semaphore for header number 27 |
| 1630 | DMA device buffer header semaphore for header number 30 |
| 1631 | DMA device buffer header semaphore for header number 31 |
| 1632 | DMA device buffer header semaphore for header number 32 |
| 1633 | DMA device buffer header semaphore for header number 33 |
| 1634 | DMA device buffer header semaphore for header number 34 |
| 1635 | DMA device buffer header semaphore for header number 35 |
| 1636 | DMA device buffer header semaphore for header number 36 |
| 1637 | DMA device buffer header semaphore for header number 37 |
| 1640 | DMA device buffer header semaphore for header number 40 |
| 1641 | DMA device buffer header semaphore for header number 41 |
| 1642 | DMA device buffer header semaphore for header number 42 |
| 1643 | DMA device buffer header semaphore for header number 43 |
| 1644 | DMA device buffer header semaphore for header number 44 |
| 1645 | DMA device buffer header semaphore for header number 45 |
| 1646 | DMA device buffer header semaphore for header number 46 |
| 1647 | DMA device buffer header semaphore for header number 47 |
| 1650 | DMA device buffer header semaphore for header number 50 |
| 1651 | DMA device buffer header semaphore for header number 51 |
Page 606¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
DMA Device Buffer Header Semaphore for Header Numbers¶
| Number | Description |
|---|---|
| 1652 | DMA device buffer header semaphore for header number 52⁸ |
| 1653 | DMA device buffer header semaphore for header number 53⁸ |
| 1654 | DMA device buffer header semaphore for header number 54⁸ |
| 1655 | DMA device buffer header semaphore for header number 55⁸ |
| 1656 | DMA device buffer header semaphore for header number 56⁸ |
| 1657 | DMA device buffer header semaphore for header number 57⁸ |
| 1660 | DMA device buffer header semaphore for header number 60⁸ |
| 1661 | DMA device buffer header semaphore for header number 61⁸ |
| 1662 | DMA device buffer header semaphore for header number 62⁸ |
| 1663 | DMA device buffer header semaphore for header number 63⁸ |
| 1664 | DMA device buffer header semaphore for header number 64⁸ |
| 1665 | DMA device buffer header semaphore for header number 65⁸ |
| 1666 | DMA device buffer header semaphore for header number 66⁸ |
| 1667 | DMA device buffer header semaphore for header number 67⁸ |
| 1670 | DMA device buffer header semaphore for header number 70⁸ |
| 1671 | DMA device buffer header semaphore for header number 71⁸ |
| 1672 | DMA device buffer header semaphore for header number 72⁸ |
| 1673 | DMA device buffer header semaphore for header number 73⁸ |
| 1674 | DMA device buffer header semaphore for header number 74⁸ |
| 1675 | DMA device buffer header semaphore for header number 75⁸ |
| 1676 | DMA device buffer header semaphore for header number 76⁸ |
| 1677 | DMA device buffer header semaphore for header number 77⁸ |
Logical Device Numbers 1700 - 1777¶
| Number | Description |
|---|---|
| 1700 | PlOC number 1 |
| 1701 | PlOC number 2 |
| 1702 | PlOC number 3 |
| 1703 | PlOC number 4 |
| 1704 | PlOC number 5 |
| 1705 | PlOC number 6 |
| 1706 | PlOC number 7 |
| 1707 | PlOC number 8 |
| 1710 | PlOC number 9 |
| 1711 | PlOC number 10 |
| 1712 | PlOC number 11 |
| 1713 | PlOC number 12 |
| 1714 | PlOC number 13 |
| 1715 | PlOC number 14 |
| 1716 | PlOC number 15 |
| 1717 | PlOC number 16 |
| or: Virtual disk driver 1 | |
| 1720 | Virtual disk driver 3 |
| 1721 | Virtual disk driver 4 |
| 1722 | Spooling device 13, queue semaphore |
| 1723 | Spooling device 13, I/O semaphore |
| 1724 | Spooling device 14, queue semaphore |
| 1725 | Spooling device 14, I/O semaphore |
| 1726 | Spooling device 15, queue semaphore |
| 1727 | Spooling device 15, I/O semaphore |
| 1730 | COSMOS file access, DF data field |
| 1731 | COSMOS Spooling, peripheral device |
| 1732 | ST-506 (Winchester) disk cont. 1, unit 0, directory semaphore |
| 1733 | ST-506 (Winchester) disk cont. 1, unit 0, bit file semaphore |
Page 607¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 1734 | ST-506 (Winchester) disk cont. 1, unit 1, directory semaphore |
| 1735 | ST-506 (Winchester) disk cont. 1, unit 1, bit file semaphore |
| 1737 | ST-506 (Winchester) disk cont. 2, unit 0, directory semaphore |
| 1740 | ST-506 (Winchester) disk cont. 2, unit 0, bit file semaphore |
| 1741 | ST-506 (Winchester) disk cont. 2, unit 1, directory semaphore |
| 1742 | ST-506 (Winchester) disk cont. 2, unit 1, bit file semaphore |
| 1743 | - not used |
| 1744 | - not used |
| 1745 | - not used |
| 1746 | - not used |
| 1747 | - not used |
| 1750 | SIBAS number 0 |
| 1751 | SIBAS number 1 |
| 1752 | SIBAS number 2 |
| 1753 | SIBAS number 3 |
| 1754 | SIBAS number 4 |
| 1755 | SIBAS number 5 |
| 1756 | SIBAS number 6 |
| 1757 | SIBAS number 7 |
| 1760 | SIBAS number 8 |
| 1761 | SIBAS number 9 |
| 1762 | SIBAS number 10 |
| 1763 | SIBAS number 11 |
| 1764 | SIBAS number 12 |
| 1765 | SIBAS number 13 |
| 1766 | SIBAS number 14 |
| 1767 | SIBAS number 15 |
| 1770 | SIBAS number 16 |
| 1771 | SIBAS number 17 |
| 1772 | SIBAS number 18 |
| 1773 | SIBAS number 19 |
| 1774 | SIBAS number 20 |
| 1775 | SIBAS number 21 |
| 1776 | SIBAS number 22 |
| 1777 | SIBAS number 23 |
Logical Device Numbers 2000 - 2077¶
| Number | Description |
|---|---|
| 2000 | Terminal 65 |
| 2001 | Terminal 66 |
| 2002 | Terminal 67 |
| 2003 | Terminal 68 |
| 2004 | Terminal 69 |
| 2005 | Terminal 70 |
| 2006 | Terminal 71 |
| 2007 | Terminal 72 |
| 2010 | Terminal 73 |
| 2011 | Terminal 74 |
| 2012 | Terminal 75 |
| 2013 | Terminal 76 |
| 2014 | Terminal 77 |
| 2015 | Terminal 78 |
| 2016 | Terminal 79 |
| 2017 | Terminal 80 |
| 2020 | Terminal 81 |
Page 608¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Logical Device Number | Description |
|---|---|
| 2021 | Terminal 82 |
| 2022 | Terminal 83 |
| 2023 | Terminal 84 |
| 2024 | Terminal 85 |
| 2025 | Terminal 86 |
| 2026 | Terminal 87 |
| 2027 | Terminal 88 |
| 2030 | Terminal 89 |
| 2031 | Terminal 90 |
| 2032 | Terminal 91 |
| 2033 | Terminal 92 |
| 2034 | Terminal 93 |
| 2035 | Terminal 94 |
| 2036 | Terminal 95 |
| 2037 | Terminal 96 |
| 2040 | Terminal 97 |
| 2041 | Terminal 98 |
| 2042 | Terminal 99 |
| 2043 | Terminal 100 |
| 2044 | Terminal 101 |
| 2045 | Terminal 102 |
| 2046 | Terminal 103 |
| 2047 | Terminal 104 |
| 2050 | Terminal 105 |
| 2051 | Terminal 106 |
| 2052 | Terminal 107 |
| 2053 | Terminal 108 |
| 2054 | Terminal 109 |
| 2055 | Terminal 110 |
| 2056 | Terminal 111 |
| 2057 | Terminal 112 |
| 2060 | Terminal 113 |
| 2061 | Terminal 114 |
| 2062 | Terminal 115 |
| 2063 | Terminal 116 |
| 2064 | Terminal 117 |
| 2065 | Terminal 118 |
| 2066 | Terminal 119 |
| 2067 | Terminal 120 |
| 2070 | Terminal 121 |
| 2071 | Terminal 122 |
| 2072 | Terminal 123 |
| 2073 | Terminal 124 |
| 2074 | Terminal 125 |
| 2075 | Terminal 126 |
| 2076 | Terminal 127 |
| 2077 | Terminal 128 |
Page 609¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
Logical Device Numbers 2100 - 2177¶
| Logical Device Number | Description |
|---|---|
| 2100 | Universal DMA / Vicom interface 1 |
| 2101 | Universal DMA / Vicom interface 2 |
| 2102 | Universal DMA / Vicom interface 3 |
| 2103 | Universal DMA / Vicom interface 4 |
| 2104 | Universal DMA / Vicom interface 5 |
| 2105 | Universal DMA / Vicom interface 6 |
| 2106 | Universal DMA / Vicom interface 7 |
| 2107 | Universal DMA / Vicom interface 8 |
| 2110 | Universal DMA / Vicom interface 9 |
| 2111 | Universal DMA / Vicom interface 10 |
| 2112 | Universal DMA / Vicom interface 11 |
| 2113 | Universal DMA / Vicom interface 12 |
| 2114 | Universal DMA / Vicom interface 13 |
| 2115 | Universal DMA / Vicom interface 14 |
| 2116 | Universal DMA / Vicom interface 15 |
| 2117 | Universal DMA / Vicom interface 16 |
| 2120 | GPIB interface number 0 |
| 2121 | GPIB interface number 1 |
| 2122 | GPIB interface number 2 |
| 2123 | GPIB interface number 3 |
| 2124 | GPIB interface number 4 |
| 2125 | GPIB interface number 5 |
| 2126 | GPIB interface number 6 |
| 2127 | GPIB interface number 7 |
| 2130 | Spooling device 16, queue semaphore |
| 2131 | Spooling device 16, I/O semaphore |
| 2132 | Spooling device 17, queue semaphore |
| 2133 | Spooling device 17, I/O semaphore |
| 2134 | Spooling device 18, queue semaphore |
| 2135 | Spooling device 18, I/O semaphore |
| 2136 | Spooling device 19, queue semaphore |
| 2137 | Spooling device 19, I/O semaphore |
| 2140 | Spooling device 20, queue semaphore |
| 2141 | Spooling device 20, I/O semaphore |
| 2142 | Spooling device 21, queue semaphore |
| 2143 | Spooling device 21, I/O semaphore |
| 2144 | Spooling device 22, queue semaphore |
| 2145 | Spooling device 22, I/O semaphore |
| 2146 | Spooling device 23, queue semaphore |
| 2147 | Spooling device 23, I/O semaphore |
| 2150 | Spooling device 24, queue semaphore |
| 2151 | Spooling device 24, I/O semaphore |
| 2152 | Spooling device 25, queue semaphore |
| 2153 | Spooling device 25, I/O semaphore |
| 2154 | Spooling device 26, queue semaphore |
| 2155 | Spooling device 26, I/O semaphore |
| 2156 | Spooling device 27, queue semaphore |
| 2157 | Spooling device 27, I/O semaphore |
| 2160 | Spooling device 28, queue semaphore |
| 2161 | Spooling device 28, I/O semaphore |
| 2162 | Spooling device 29, queue semaphore |
| 2163 | Spooling device 29, I/O semaphore |
| 2164 | Spooling device 30, queue semaphore |
| 2165 | Spooling device 30, I/O semaphore |
Page 610¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Description |
|---|---|
| 2166 | COSMOS Spooling, queue semaphore |
| 2167 | COSMOS Spooling, I/O semaphore |
| 2170 | - not used |
| 2171 | - not used |
| 2172 | - not used |
| 2173 | - not used |
| 2174 | - not used |
| 2175 | - not used |
| 2176 | - not used |
| 2177 | - not used |
Logical Device Numbers 2200 - 2277¶
| Number | Description |
|---|---|
| 2200 | Disk access log data field |
| 2201 | Disk access log buffer semaphore |
| 2202 | SCSI adaptor number 1 |
| 2203 | SCSI adaptor number 2 |
| 2204 | SCSI adaptor number 3 |
| 2205 | SCSI adaptor number 4 |
| 2206 | SCSI streamer tape drive number 1 |
| 2207 | SCSI streamer tape drive number 2 |
| 2210 | SCSI magnetic disk drive number 1 |
| 2211 | SCSI magnetic disk drive number 2 |
| 2212 | SCSI magnetic disk drive number 3 |
| 2213 | SCSI magnetic disk drive number 4 |
| 2214 | SCSI magnetic disk drive number 5 |
| 2215 | SCSI magnetic disk drive number 6 |
| 2216 | SCSI magnetic disk drive number 7 |
| 2217 | SCSI magnetic disk drive number 8 |
| 2220 | SCSI magnetic disk drive number 9 |
| 2221 | SCSI magnetic disk drive number 10 |
| 2222 | SCSI magnetic disk drive number 11 |
| 2223 | SCSI magnetic disk drive number 12 |
| 2224 | SCSI magnetic disk drive number 13 |
| 2225 | SCSI magnetic disk drive number 14 |
| 2226 | SCSI streamer tape number 1, I/O data field |
| 2227 | SCSI streamer tape number 2, I/O data field |
| 2230 | SCSI streamer tape number 1, DF data field |
| 2231 | SCSI streamer tape number 2, DF data field |
| 2232 | SCSI optical disk drive number 1 |
| 2233 | SCSI optical disk drive number 2 |
| 2234 | SCSI optical disk drive number 3 |
| 2235 | SCSI optical disk drive number 4 |
| 2236 | - not used |
| 2237 | - not used |
| 2240 | Ethernet interface number 1 |
| 2241 | Ethernet interface number 2 |
| 2242 | Ethernet interface number 3 |
| 2243 | Ethernet interface number 4 |
| 2244 | - not used |
| 2245 | - not used |
| 2246 | - not used |
| 2247 | - not used |
| 2250 | - not used |
| 2251 | - not used |
Page 611¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Description |
|---|---|
| 2252 | - not used |
| 2253 | - not used |
| 2254 | - not used |
| 2255 | - not used |
| 2256 | - not used |
| 2257 | Domino allocation semaphore |
| 2260 | BDIO pool 1 |
| 2261 | BDIO pool 2 |
| 2262 | BDIO pool 3 |
| 2263 | BDIO pool 4 |
| 2264 | BDIO pool 5 |
| 2265 | BDIO pool 6 |
| 2266 | BDIO pool 7 |
| 2267 | BDIO pool 8 |
| 2270 | BDIO pool 9 |
| 2271 | BDIO pool 10 |
| 2272 | BDIO pool 11 |
| 2273 | BDIO pool 12 |
| 2274 | BDIO pool 13 |
| 2275 | BDIO pool 14 |
| 2276 | BDIO pool 15 |
| 2277 | BDIO pool 16 |
Logical Device Numbers 2300 - 2377¶
| Number | Description |
|---|---|
| 2300 | User-defined logical device number |
| 2301 | User-defined logical device number |
| 2302 | User-defined logical device number |
| 2303 | User-defined logical device number |
| 2304 | User-defined logical device number |
| 2305 | User-defined logical device number |
| 2306 | User-defined logical device number |
| 2307 | User-defined logical device number |
| 2310 | User-defined logical device number |
| 2311 | User-defined logical device number |
| 2312 | User-defined logical device number |
| 2313 | User-defined logical device number |
| 2314 | User-defined logical device number |
| 2315 | User-defined logical device number |
| 2316 | User-defined logical device number |
| 2317 | User-defined logical device number |
| 2320 | User-defined logical device number |
| 2321 | User-defined logical device number |
| 2322 | User-defined logical device number |
| 2323 | User-defined logical device number |
| 2324 | User-defined logical device number |
| 2325 | User-defined logical device number |
| 2326 | User-defined logical device number |
| 2327 | User-defined logical device number |
| 2330 | User-defined logical device number |
| 2331 | User-defined logical device number |
| 2332 | User-defined logical device number |
| 2333 | User-defined logical device number |
| 2334 | User-defined logical device number |
| 2335 | User-defined logical device number |
Page 612¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Description |
|---|---|
| 2336 | User-defined logical device number |
| 2337 | User-defined logical device number |
| 2340 | User-defined logical device number |
| 2341 | User-defined logical device number |
| 2342 | User-defined logical device number |
| 2343 | User-defined logical device number |
| 2344 | User-defined logical device number |
| 2345 | User-defined logical device number |
| 2346 | User-defined logical device number |
| 2347 | User-defined logical device number |
| 2350 | User-defined logical device number |
| 2351 | User-defined logical device number |
| 2352 | User-defined logical device number |
| 2353 | User-defined logical device number |
| 2354 | User-defined logical device number |
| 2355 | User-defined logical device number |
| 2356 | User-defined logical device number |
| 2357 | User-defined logical device number |
| 2360 | User-defined logical device number |
| 2361 | User-defined logical device number |
| 2362 | User-defined logical device number |
| 2363 | User-defined logical device number |
| 2364 | User-defined logical device number |
| 2365 | User-defined logical device number |
| 2366 | User-defined logical device number |
| 2367 | User-defined logical device number |
| 2370 | User-defined logical device number |
| 2371 | User-defined logical device number |
| 2372 | User-defined logical device number |
| 2373 | User-defined logical device number |
| 2374 | User-defined logical device number |
| 2375 | User-defined logical device number |
| 2376 | User-defined logical device number |
| 2377 | User-defined logical device number |
Logical Device Numbers 2400 - 2477¶
| Number | Description |
|---|---|
| 2400 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2401 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2402 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2403 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2404 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2404 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2406 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2407 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2410 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2411 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2412 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2413 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2414 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2415 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2416 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2417 | SINTRAN III J- or K-version compatible Octobus unit 0 |
| 2420 | SINTRAN III J- or K-version compatible Octobus unit 1 |
| 2421 | SINTRAN III J- or K-version compatible Octobus unit 1 |
Scanned by Jonny Oddere for Sintran Data © 2020
Page 613¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Version | Compatibility | Device |
|---|---|---|---|
| 2422 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2423 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2424 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2425 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2426 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2427 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2430 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2431 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2432 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2433 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2434 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2435 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2436 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2437 | SINTRAN III J- or K-version | compatible | Octobus unit 1 |
| 2440 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2441 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2442 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2443 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2444 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2445 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2446 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2447 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2450 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2451 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2452 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2453 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2454 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2455 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2456 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2457 | SINTRAN III J- or K-version | compatible | Octobus unit 2 |
| 2460 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2461 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2462 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2463 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2464 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2465 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2466 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2467 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2470 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2471 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2472 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2473 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2474 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2475 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2476 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
| 2477 | SINTRAN III J- or K-version | compatible | Octobus unit 3 |
Page 614¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
Logical Device Numbers 2500 - 2577¶
| Number | Description |
|---|---|
| 2500 | Directory entry number 0, directory semaphore |
| 2501 | Directory entry number 0, bit file semaphore |
| 2502 | Directory entry number 1, directory semaphore |
| 2503 | Directory entry number 1, bit file semaphore |
| 2504 | Directory entry number 2, directory semaphore |
| 2505 | Directory entry number 2, bit file semaphore |
| 2506 | Directory entry number 3, directory semaphore |
| 2507 | Directory entry number 3, bit file semaphore |
| 2510 | Directory entry number 4, directory semaphore |
| 2511 | Directory entry number 4, bit file semaphore |
| 2512 | Directory entry number 5, directory semaphore |
| 2513 | Directory entry number 5, bit file semaphore |
| 2514 | Directory entry number 6, directory semaphore |
| 2515 | Directory entry number 6, bit file semaphore |
| 2516 | Directory entry number 7, directory semaphore |
| 2517 | Directory entry number 7, bit file semaphore |
| 2520 | Directory entry number 8, directory semaphore |
| 2521 | Directory entry number 8, bit file semaphore |
| 2522 | Directory entry number 9, directory semaphore |
| 2523 | Directory entry number 9, bit file semaphore |
| 2524 | Directory entry number 10, directory semaphore |
| 2525 | Directory entry number 10, bit file semaphore |
| 2526 | Directory entry number 11, directory semaphore |
| 2527 | Directory entry number 11, bit file semaphore |
| 2530 | Directory entry number 12, directory semaphore |
| 2531 | Directory entry number 12, bit file semaphore |
| 2532 | Directory entry number 13, directory semaphore |
| 2533 | Directory entry number 13, bit file semaphore |
| 2534 | Directory entry number 14, directory semaphore |
| 2535 | Directory entry number 14, bit file semaphore |
| 2536 | Directory entry number 15, directory semaphore |
| 2537 | Directory entry number 15, bit file semaphore |
| 2540 | Directory entry number 16, directory semaphore |
| 2541 | Directory entry number 16, bit file semaphore |
| 2542 | Directory entry number 17, directory semaphore |
| 2543 | Directory entry number 17, bit file semaphore |
| 2544 | Directory entry number 18, directory semaphore |
| 2545 | Directory entry number 18, bit file semaphore |
| 2546 | Directory entry number 19, directory semaphore |
| 2547 | Directory entry number 19, bit file semaphore |
| 2550 | Directory entry number 20, directory semaphore |
| 2551 | Directory entry number 20, bit file semaphore |
| 2552 | Directory entry number 21, directory semaphore |
| 2553 | Directory entry number 21, bit file semaphore |
| 2554 | Directory entry number 22, directory semaphore |
| 2555 | Directory entry number 22, bit file semaphore |
| 2556 | Directory entry number 23, directory semaphore |
| 2557 | Directory entry number 23, bit file semaphore |
| 2560 | Directory entry number 24, directory semaphore |
| 2561 | Directory entry number 24, bit file semaphore |
| 2562 | Directory entry number 25, directory semaphore |
| 2563 | Directory entry number 25, bit file semaphore |
| 2564 | Directory entry number 26, directory semaphore |
| 2565 | Directory entry number 26, bit file semaphore |
Page 615¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
Logical Device Numbers 2566 - 2577¶
| Logical Device Number | Description |
|---|---|
| 2566 | Directory entry number 27, directory semaphore |
| 2567 | Directory entry number 27, bit file semaphore |
| 2570 | Directory entry number 28, directory semaphore |
| 2571 | Directory entry number 28, bit file semaphore |
| 2572 | Directory entry number 29, directory semaphore |
| 2573 | Directory entry number 29, bit file semaphore |
| 2574 | Directory entry number 30, directory semaphore |
| 2575 | Directory entry number 30, bit file semaphore |
| 2576 | Directory entry number 31, directory semaphore |
| 2577 | Directory entry number 31, bit file semaphore |
Logical Device Numbers 2600 - 2677¶
| Logical Device Number | Description |
|---|---|
| 2600 | Directory entry number 32, directory semaphore |
| 2601 | Directory entry number 32, bit file semaphore |
| 2602 | Directory entry number 33, directory semaphore |
| 2603 | Directory entry number 33, bit file semaphore |
| 2604 | Directory entry number 34, directory semaphore |
| 2605 | Directory entry number 34, bit file semaphore |
| 2606 | Directory entry number 35, directory semaphore |
| 2607 | Directory entry number 35, bit file semaphore |
| 2610 | Directory entry number 36, directory semaphore |
| 2611 | Directory entry number 36, bit file semaphore |
| 2612 | Directory entry number 37, directory semaphore |
| 2613 | Directory entry number 37, bit file semaphore |
| 2614 | Directory entry number 38, directory semaphore |
| 2615 | Directory entry number 38, bit file semaphore |
| 2616 | Directory entry number 39, directory semaphore |
| 2617 | Directory entry number 39, bit file semaphore |
| 2620 | Directory entry number 40, directory semaphore |
| 2621 | Directory entry number 40, bit file semaphore |
| 2622 | Directory entry number 41, directory semaphore |
| 2623 | Directory entry number 41, bit file semaphore |
| 2624 | Directory entry number 42, directory semaphore |
| 2625 | Directory entry number 42, bit file semaphore |
| 2626 | Directory entry number 43, directory semaphore |
| 2627 | Directory entry number 43, bit file semaphore |
| 2630 | Directory entry number 44, directory semaphore |
| 2631 | Directory entry number 44, bit file semaphore |
| 2632 | Directory entry number 45, directory semaphore |
| 2633 | Directory entry number 45, bit file semaphore |
| 2634 | Directory entry number 46, directory semaphore |
| 2635 | Directory entry number 46, bit file semaphore |
| 2636 | Directory entry number 47, directory semaphore |
| 2637 | Directory entry number 47, bit file semaphore |
| 2640 - 2651 | - not used |
Page 616¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Usage |
|---|---|
| 2652 | not used |
| 2653 | not used |
| 2654 | not used |
| 2655 | not used |
| 2656 | not used |
| 2657 | not used |
| 2660 | not used |
| 2661 | not used |
| 2662 | not used |
| 2663 | not used |
| 2664 | not used |
| 2665 | not used |
| 2666 | not used |
| 2667 | not used |
| 2670 | not used |
| 2671 | not used |
| 2672 | not used |
| 2673 | not used |
| 2674 | not used |
| 2675 | not used |
| 2676 | not used |
| 2677 | not used |
Logical Device Numbers 2700₈ - 2777₈¶
| Number | Terminal |
|---|---|
| 2700 | 129 |
| 2701 | 130 |
| 2702 | 131 |
| 2703 | 132 |
| 2704 | 133 |
| 2705 | 134 |
| 2706 | 135 |
| 2707 | 136 |
| 2710 | 137 |
| 2711 | 138 |
| 2712 | 139 |
| 2713 | 140 |
| 2714 | 141 |
| 2715 | 142 |
| 2716 | 143 |
| 2717 | 144 |
| 2720 | 145 |
| 2721 | 146 |
| 2722 | 147 |
| 2723 | 148 |
| 2724 | 149 |
| 2725 | 150 |
| 2726 | 151 |
| 2727 | 152 |
| 2730 | 153 |
| 2731 | 154 |
| 2732 | 155 |
| 2733 | 156 |
| 2734 | 157 |
| 2735 | 158 |
Page 617¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
| Number | Terminal |
|---|---|
| 2736 | 159 |
| 2737 | 160 |
| 2740 | 161 |
| 2741 | 162 |
| 2742 | 163 |
| 2743 | 164 |
| 2744 | 165 |
| 2745 | 166 |
| 2746 | 167 |
| 2747 | 168 |
| 2750 | 169 |
| 2751 | 170 |
| 2752 | 171 |
| 2753 | 172 |
| 2754 | 173 |
| 2755 | 174 |
| 2756 | 175 |
| 2757 | 176 |
| 2760 | 177 |
| 2761 | 178 |
| 2762 | 179 |
| 2763 | 180 |
| 2764 | 181 |
| 2765 | 182 |
| 2766 | 183 |
| 2767 | 184 |
| 2770 | 185 |
| 2771 | 186 |
| 2772 | 187 |
| 2773 | 188 |
| 2774 | 189 |
| 2775 | 190 |
| 2776 | 191 |
| 2777 | 192 |
Logical Device Numbers 3000 - 3077:¶
| Number | Terminal |
|---|---|
| 3000 | 193 |
| 3001 | 194 |
| 3002 | 195 |
| 3003 | 196 |
| 3004 | 197 |
| 3005 | 198 |
| 3006 | 199 |
| 3007 | 200 |
| 3010 | 201 |
| 3011 | 202 |
| 3012 | 203 |
| 3013 | 204 |
| 3014 | 205 |
| 3015 | 206 |
| 3016 | 207 |
| 3017 | 208 |
| 3020 | 209 |
| 3021 | 210 |
Page 618¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Number | Device |
|---|---|
| 3022 | Terminal 211 |
| 3023 | Terminal 212 |
| 3024 | Terminal 213 |
| 3025 | Terminal 214 |
| 3026 | Terminal 215 |
| 3027 | Terminal 216 |
| 3030 | Terminal 217 |
| 3031 | Terminal 218 |
| 3032 | Terminal 219 |
| 3033 | Terminal 220 |
| 3034 | Terminal 221 |
| 3035 | Terminal 222 |
| 3036 | Terminal 223 |
| 3037 | Terminal 224 |
| 3040 | Terminal 225 |
| 3041 | Terminal 226 |
| 3042 | Terminal 227 |
| 3043 | Terminal 228 |
| 3044 | Terminal 229 |
| 3045 | Terminal 230 |
| 3046 | Terminal 231 |
| 3047 | Terminal 232 |
| 3050 | Terminal 233 |
| 3051 | Terminal 234 |
| 3052 | Terminal 235 |
| 3053 | Terminal 236 |
| 3054 | Terminal 237 |
| 3055 | Terminal 238 |
| 3056 | Terminal 239 |
| 3057 | Terminal 240 |
| 3060 | Terminal 241 |
| 3061 | Terminal 242 |
| 3062 | Terminal 243 |
| 3063 | Terminal 244 |
| 3064 | Terminal 245 |
| 3065 | Terminal 246 |
| 3066 | Terminal 247 |
| 3067 | Terminal 248 |
| 3070 | Terminal 249 |
| 3071 | Terminal 250 |
| 3072 | Terminal 251 |
| 3073 | Terminal 252 |
| 3074 | Terminal 253 |
| 3075 | Terminal 254 |
| 3076 | Terminal 255 |
| 3077 | Terminal 256 |
Page 619¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III
Logical Device Numbers 3100 - 3177¶
| Logical Device | Description |
|---|---|
| 3100 | Batch process 11, data field |
| 3101 | Batch process 11, internal device |
| 3102 | Batch process 12, data field |
| 3103 | Batch process 12, internal device |
| 3104 | Batch process 13, data field |
| 3105 | Batch process 13, internal device |
| 3106 | Batch process 14, data field |
| 3107 | Batch process 14, internal device |
| 3110 | Batch process 15, data field |
| 3111 | Batch process 15, internal device |
| 3112 | Batch process 16, data field |
| 3113 | Batch process 16, internal device |
| 3114 | Batch process 17, data field |
| 3115 | Batch process 17, internal device |
| 3116 | Batch process 18, data field |
| 3117 | Batch process 18, internal device |
| 3120 | Batch process 19, data field |
| 3121 | Batch process 19, internal device |
| 3122 | Batch process 20, data field |
| 3123 | Batch process 20, internal device |
| 3124 | Batch process 21, data field |
| 3125 | Batch process 21, internal device |
| 3126 | Batch process 22, data field |
| 3127 | Batch process 22, internal device |
| 3130 | Batch process 23, data field |
| 3131 | Batch process 23, internal device |
| 3132 | Batch process 24, data field |
| 3133 | Batch process 24, internal device |
| 3134 | Batch process 25, data field |
| 3135 | Batch process 25, internal device |
| 3136 | Batch process 26, data field |
| 3137 | Batch process 26, internal device |
| 3140 | Batch process 27, data field |
| 3141 | Batch process 27, internal device |
| 3142 | Batch process 28, data field |
| 3143 | Batch process 28, internal device |
| 3144 | Batch process 29, data field |
| 3145 | Batch process 29, internal device |
| 3146 | Batch process 30, data field |
| 3147 | Batch process 30, internal device |
| 3150 | - not used |
| 3151 | - not used |
| 3152 | - not used |
| 3153 | - not used |
| 3154 | - not used |
| 3155 | - not used |
| 3156 | - not used |
| 3157 | - not used |
| 3160 | - not used |
| 3161 | - not used |
| 3162 | - not used |
| 3163 | - not used |
| 3164 | - not used |
| 3165 | - not used |
Page 620¶
SINTRAN III Monitor Calls¶
Logical device numbers used in SINTRAN III¶
| Logical Device Numbers | Description |
|---|---|
| 3166 | not used |
| 3167 | not used |
| 3170 | not used |
| 3171 | not used |
| 3172 | not used |
| 3173 | not used |
| 3174 | not used |
| 3175 | not used |
| 3176 | not used |
| 3177 | not used |
Logical Device Numbers 3200 - 3277¶
| Logical Device Numbers | Description |
|---|---|
| 3200 | Used for remote open files |
| 3201 | Used for remote open files |
| 3202 | Used for remote open files |
| 3203 | Used for remote open files |
| 3204 | Used for remote open files |
| 3205 | Used for remote open files |
| 3206 | Used for remote open files |
| 3207 | Used for remote open files |
| 3210 | Used for remote open files |
| 3211 | Used for remote open files |
| 3212 | Used for remote open files |
| 3213 | Used for remote open files |
| 3214 | Used for remote open files |
| 3215 | Used for remote open files |
| 3216 | Used for remote open files |
| 3217 | Used for remote open files |
| 3220 | Used for remote open files |
| 3221 | Used for remote open files |
| 3222 | Used for remote open files |
| 3223 | Used for remote open files |
| 3224 | Used for remote open files |
| 3225 | Used for remote open files |
| 3226 | Used for remote open files |
| 3227 | Used for remote open files |
| 3230 | Used for remote open files |
| 3231 | Used for remote open files |
| 3232 | Used for remote open files |
| 3233 | Used for remote open files |
| 3234 | Used for remote open files |
| 3235 | Used for remote open files |
| 3236 | Used for remote open files |
| 3237 | Used for remote open files |
| 3240 | Used for remote open files |
| 3241 | Used for remote open files |
| 3242 | Used for remote open files |
| 3243 | Used for remote open files |
| 3244 | Used for remote open files |
| 3245 | Used for remote open files |
| 3246 | Used for remote open files |
| 3247 | Used for remote open files |
| 3250 | Used for remote open files |
| 3251 | Used for remote open files |
Page 621¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Description |
|---|---|
| 3252 | Used for remote open files |
| 3253 | Used for remote open files |
| 3254 | Used for remote open files |
| 3255 | Used for remote open files |
| 3256 | Used for remote open files |
| 3257 | Used for remote open files |
| 3260 | Used for remote open files |
| 3261 | Used for remote open files |
| 3262 | Used for remote open files |
| 3263 | Used for remote open files |
| 3264 | Used for remote open files |
| 3265 | Used for remote open files |
| 3266 | Used for remote open files |
| 3267 | Used for remote open files |
| 3270 | Used for remote open files |
| 3271 | Used for remote open files |
| 3272 | Used for remote open files |
| 3273 | Used for remote open files |
| 3274 | Used for remote open files |
| 3275 | Used for remote open files |
| 3276 | Used for remote open files |
| 3277 | Used for remote open files |
Logical Device Numbers 3300 - 3377¶
| Number | Description |
|---|---|
| 3300 | Batch process 1, extra batch queue device |
| 3301 | Batch process 2, extra batch queue device |
| 3302 | Batch process 3, extra batch queue device |
| 3303 | Batch process 4, extra batch queue device |
| 3304 | Batch process 5, extra batch queue device |
| 3305 | Batch process 6, extra batch queue device |
| 3306 | Batch process 7, extra batch queue device |
| 3307 | Batch process 8, extra batch queue device |
| 3310 | Batch process 9, extra batch queue device |
| 3311 | Batch process 10, extra batch queue device |
| 3312 | Batch process 11, extra batch queue device |
| 3313 | Batch process 12, extra batch queue device |
| 3314 | Batch process 13, extra batch queue device |
| 3315 | Batch process 14, extra batch queue device |
| 3316 | Batch process 15, extra batch queue device |
| 3317 | Batch process 16, extra batch queue device |
| 3320 | Batch process 17, extra batch queue device |
| 3321 | Batch process 18, extra batch queue device |
| 3322 | Batch process 19, extra batch queue device |
| 3323 | Batch process 20, extra batch queue device |
| 3324 | Batch process 21, extra batch queue device |
| 3325 | Batch process 22, extra batch queue device |
| 3326 | Batch process 23, extra batch queue device |
| 3327 | Batch process 24, extra batch queue device |
| 3330 | Batch process 25, extra batch queue device |
| 3331 | Batch process 26, extra batch queue device |
| 3332 | Batch process 27, extra batch queue device |
| 3333 | Batch process 28, extra batch queue device |
| 3334 | Batch process 29, extra batch queue device |
| 3335 | Batch process 30, extra batch queue device |
Page 622¶
SINTRAN III Monitor Calls¶
Logical Device Numbers Used in SINTRAN III¶
| Number | Status |
|---|---|
| 3336 | not used |
| 3337 | not used |
| 3340 | not used |
| 3341 | not used |
| 3342 | not used |
| 3343 | not used |
| 3344 | not used |
| 3345 | not used |
| 3346 | not used |
| 3347 | not used |
| 3350 | not used |
| 3351 | not used |
| 3352 | not used |
| 3353 | not used |
| 3354 | not used |
| 3355 | not used |
| 3356 | not used |
| 3357 | not used |
| 3360 | not used |
| 3361 | not used |
| 3362 | not used |
| 3363 | not used |
| 3364 | not used |
| 3365 | not used |
| 3366 | not used |
| 3367 | not used |
| 3370 | not used |
| 3371 | not used |
| 3372 | not used |
| 3373 | not used |
| 3374 | not used |
| 3375 | not used |
| 3376 | not used |
| 3377 | not used |
Page 623¶
APPENDIX C: FILE SYSTEM ENTRIES¶
Each directory, user, and file has a description in the file system. This appendix shows how their contents are organized. More details are given in appendix E of the SINTRAN III System Supervisor manual (ND-830003).
The following table describes the directory entry. Bits are numbered from high to low, e.g., from 15 to 0.
| BYTE | DIRECTORY INFORMATION |
|---|---|
| 0:1 | Various, bit 15: directory is entered. bit 14: main directory. bit 13: tape directory. bit 12: default directory. bit 11: reserved for special use. bit 10: read-only directory/optical WORM disk. bits 9-0: Number of open files on the directory. |
| 2:3 | Unit number in bits 15-12; logical device number in bits 11-0. |
| 4:5 | Bits 15-12 not used; subunit number in bits 11-8; index to name table in bits 7-0. |
| 6:7 | Directory lock. |
| 8:9 | Logical device number for the directory semaphore. (Used for tape/floppy disk.) |
| 10:25 | Directory name (terminate with ' if less than 16 characters) |
| 26:29 | Object file pointer. |
| 30:33 | User file pointer. |
| 34:37 | Bit file pointer. |
| 38:41 | Number of unreserved pages in the directory. |
NOTE: Bytes 10:41 are a copy of the directory entry stored on disk.
Page 624¶
SINTRAN III: Monitor Calls¶
File System Entries¶
The following table describes the user entry. Bits are numbered from high to low, e.g., from 15 to 0.
| BYTE | USER INFORMATION |
|---|---|
| 0:1 | Various, bit 15: set if the entry is used (0=free) bit 8: always set (1=user entry, 0=object entry) bit 7-0: enter count. |
| 2:17 | User name (terminate with ' if less than 16 characters). |
| 18:19 | Encrypted password. |
| 20:23 | Date created. |
| 24:27 | Last date entered. |
| 28:31 | Number of reserved pages. |
| 32:35 | Number of pages in use. |
| 36:37 | User index. |
| 38:39 | Not used. |
| 40:41 | Default file access. |
| 42:43 | Address of the previous user entry on the directory. |
| 44:45 | Address of next user entry on the directory. |
| 46:47 | Bit 7-4: contains the maximum number of extra object blocks allowed for this user area (MXOBL). Bit 3-0: actual number of extra object blocks in use (ACOBL). |
| 48:63 | Friend table. Two bytes for each of the 8 possible friends. The 16 bits for each friend are used as shown below. Bit 15: set if friend exists. Bit 12: set if friend has directory access. Bit 11: set if friend has common access. Bit 10: set if friend has append access. Bit 9: set if friend has write access. Bit 8: set if friend has read access. Bit 7-0: user index of friend. |
Page 625¶
SINTRAN III Monitor Calls¶
File System Entries¶
The following table describes the object entry. There is an object entry for each version of a file. Bits are numbered from high to low, e.g., from 15 to 0.
| BYTE | OBJECT INFORMATION |
|---|---|
| 0:1 | Various, bit 15: set if object entry in use. bit 14: set if currently opened for write. bit 13: set if file is reserved. bit 12: set if the file is modified. bit 10-0: terminal number of last user opening the file. 0 if opened by RT program. |
| 2:17 | File name (terminate with � if less than 16 characters). |
| 18:21 | File type (terminate with � if less than 4 characters). |
| 22:23 | Address of object entry of the next file version. |
| 24:25 | Address of object entry of the previous file version. |
| 26:27 | File access, bit 14-9: public access bit 9-4: friend access. bit 4-0: own access. |
| 28:29 | Attributes, bit 15-12: object block number bit 8-0: logical file type bit 8: set if temporary file. bit 7: set if library file. bit 8: set if magnetic-tape file. bit 5: set if allocated file. bit 4: set if contiguous file. bit 3: set if indexed file. bit 2: set if spooling file. bit 1: set if peripheral file. bit 0: set if terminal file. |
| 30:31 | Device number. |
| 32:33 | User index in main directory of reserving user. |
| 34:35 | Object index of this object entry. |
| 36:37 | Current open count. |
| 38:39 | Total open count. |
| 40:43 | Date created. |
| 44:47 | Last opened for read. |
| 48:51 | Last opened for write. |
| 52:55 | Pages in file. |
| 56:59 | Bytes in file. |
| 60:63 | File pointer. Bit 35: set if index. Bit 34: set if subindex. Bit 33-0: set if file pointer. |
Page 626¶
SINTRAN III Monitor Calls¶
| Monitor Call | Description |
|---|---|
| MC#0 | Initialize monitor routines |
| MC#1 | Terminate monitor routines |
| MC#2 | Set system parameters |
| MC#3 | Get system statistics |
| MC#4 | Monitor debug operations |
Scanned by Jonny Oddene for Sintran Data © 2020
Page 627¶
APPENDIX D: RT Program Descriptions¶
This appendix shows the contents of the RT descriptions. Bits are numbered from high to low, e.g. from 15 to 0 (decimal).
| BYTE | RT PROGRAM INFORMATION |
|---|---|
| 0:1 | TLINK Time queue link. The last queue element contains -1 |
| 2:3 | STATUS Status: |
| Bit 15, set if program waits for input or output | |
| Bit 14, set if program should restart when terminated | |
| Bit 13, set if WaitForRestart or SuspendProgram has been used | |
| Bit 12, set if StartupInterval has been used | |
| Bit 11, set if StartupTime has been used | |
| Bit 10, set if TimeOut has been executed | |
| Bit 9, start inhibited | |
| Bit 8, in swapping queue | |
| Bit 7, delayed abort (wait for I/O to complete) | |
| Bit 6, XMSG has set bit 15 | |
| Bit 5-3, time slicer flags | |
| Bit 2, this RT-description is time sliced | |
| Bit 1, this RT-description is in use | |
| Bit 0, background program | |
| 4:5 | INPRITY Initial program priority |
| 6:7 | PRITY Program priority |
| 8:9 | DTIM1 Startup time for scheduled program in basic time units |
| 10:11 | DTIM2 units |
| 12:13 | DTIN1 Time interval for periodic execution in basic time units |
| 14:15 | DTIN2 units |
| 16:17 | STADR Start address of the RT program |
| 18:19 | SEGM1 First initial segment |
| 20:21 | SEGM2 Second initial segment |
| 22:23 | WLINK Link for wait and execution queue |
| 24:25 | ACT1SEG First active segment |
| 26:27 | ACT2SEG Second active segment |
| 28:29 | INIPRI Initial page tables and ring bit 15, set to 0 bit 14:11, normal page table (PIT) bit 10:7, alternative page table (PIT) bit 6:3, interrupt level (always = 1) bit 2, set to 1 bit 1:0, actual execution ring |
| 30:31 | ACTPRI Active page tables and ring (only) bit 15, set to 0 bit 14:11, normal page table (PIT) bit 10:7, alternative page table (PIT) bit 6:3, interrupt level (always = 1) bit 2, set to 1 bit 1:0, actual execution ring |
Page 628¶
SINTRAN III Monitor Calls¶
RT Program Descriptions¶
BYTE RT Program Information¶
| BYTE | RT PROGRAM INFORMATION |
|---|---|
| 32:33 | BRESLINK Head of reservation queue |
| 34:35 | RSEGM Reentrant segment number |
| 36:37 | BUFWINDOW Buffer window |
| 38:39 | TRMWINDOW Terminal window, RT working field window |
| 40:41 | N5WINDOW ND-500 mailbox window |
| 42:43 | RTDLGADDR Logical address of register block |
Page 629¶
SINTRAN III Monitor Calls¶
APPENDIX E: ND-500(0) Process Description¶
This appendix shows the contents of the ND-500(0) Process Description. Bits are numbered from high to low, e.g. from 15 to 0 (decimal).
| BYTE INFORMATION | |
|---|---|
| 0:1 | RESLINK Reservation link |
| 2:3 | RTRES Reserving RT-program |
| 4:5 | BWLINK Beginning of waiting queue |
| 6:7 | TYPRING Device type and ring |
| 8:9 | PSTAT Status: |
| bit 15, process aborted by system | |
| bit 14, process waiting to be restarted by ND-500(0) driver | |
| bit 13, process in escape or clean-up sequence | |
| bit 12, process logged off by system | |
| bit 11, process is time sliced | |
| bit 10, time-slice break priority should be set | |
| bit 9, process in escape or clean-up while process possibly using swapper | |
| bit 8, process in low-priority part of time-slice class | |
| bit 7, message from ND-500(0) | |
| bit 6, message to ND-500(0) | |
| bit 5, file-system stack should not be released after file-system call | |
| bit 4, saved SBRKF while using swapper | |
| 10:11 | MLINK Monitor queue link |
| 12:13 | MFUNC Monitor level function address |
| 14:15 | MESSBUFF Address of link location in ND-500(0) message buffer |
Page 630¶
I can't convert the blank page. Let me know if there's anything else you need!
Page 631¶
APPENDIX F: SEGMENT DESCRIPTORS¶
This appendix shows the contents of the segment descriptors. Bits are numbered from high to low, e.g. from 15 to 0.
| BYTE | SEGMENT INFORMATION |
|---|---|
| 0:1 | Segment queue link. |
| 2:3 | Previous segment in link. |
| 4:5 | First logical page of the segment. |
| 6:7 | Length of segment in pages. |
| 8:9 | Address of segment within the segment file. |
| 10:11 | Flags: bit 15-13, segment file number for this segment. bit 6, demand segment. bit 5, segment fixed contiguously. bit 4, reentrant subsystem segment. bit 3, protected segment. bit 2, system segment. bit 0, segment is ready. |
| 12:13 | Segment status and control word: bit 15, write permitted. bit 14, read permitted. bit 13, instruction fetching permitted. bit 12, segment is written to. bit 11, page used. bit 10-9, protection ring bit 8-7, not used. bit 6, memory-map element is in the free list. bit 5, memory-map element is reserved (with FIXC). bit 4, memory-map element is used for system area. bit 3, segment is fixed in page table. bit 2, this memory-map element must not be used. bit 1, segment is fixed. bit 0, never clear PIT for this kind of segment. Page Index Table entries are set up and cleared whenever a page is given to, or taken from, the segment. |
| 14:15 | Pointer to the page list of this segment. |
Page 632¶
SINTRAN III Monitor Calls¶
| Monitor Call | Function |
|---|---|
| 624 | Scanned by Jonny Oddene for Sintran Data © 2020 |
Page 633¶
SINTRAN III Monitor Calls¶
Appendix G: ASCII Table¶
The following numbers represent characters under SINTRAN III.
| CHAR | Byte position: Left | Right | CHAR | Byte position: Left | Right | Decimal |
|---|---|---|---|---|---|---|
| NUL | 000000 | 000000 | 0 | SPACE | 020000 | 000040 |
| SOH | 000400 | 000001 | 1 | ! | 020400 | 000041 |
| STX | 001000 | 000002 | 2 | " | 021000 | 000042 |
| ETX | 001400 | 000003 | 3 | # | 021400 | 000043 |
| EOT | 002000 | 000004 | 4 | $ | 022000 | 000044 |
| ENQ | 002400 | 000005 | 5 | % | 022400 | 000045 |
| ACK | 003000 | 000006 | 6 | & | 023000 | 000046 |
| BEL | 003400 | 000007 | 7 | ' | 023400 | 000047 |
| BS | 004000 | 000010 | 8 | ( | 024000 | 000050 |
| HT | 004400 | 000011 | 9 | ) | 024400 | 000051 |
| LF | 005000 | 000012 | 10 | * | 025000 | 000052 |
| VT | 005400 | 000013 | 11 | + | 025400 | 000053 |
| FF | 006000 | 000014 | 12 | , | 026000 | 000054 |
| CR | 006400 | 000015 | 13 | - | 026400 | 000055 |
| SO | 007000 | 000016 | 14 | . | 027000 | 000056 |
| SI | 007400 | 000017 | 15 | / | 027400 | 000057 |
| DLE | 010000 | 000020 | 16 | 0 | 030000 | 000060 |
| DC1 | 010400 | 000021 | 17 | 1 | 030400 | 000061 |
| DC2 | 011000 | 000022 | 18 | 2 | 031000 | 000062 |
| DC3 | 011400 | 000023 | 19 | 3 | 031400 | 000063 |
| DC4 | 012000 | 000024 | 20 | 4 | 032000 | 000064 |
| NAK | 012400 | 000025 | 21 | 5 | 032400 | 000065 |
| SYN | 013000 | 000026 | 22 | 6 | 033000 | 000066 |
| ETB | 013400 | 000027 | 23 | 7 | 033400 | 000067 |
| CAN | 014000 | 000030 | 24 | 8 | 034000 | 000070 |
| EM | 014400 | 000031 | 25 | 9 | 034400 | 000071 |
| SUB | 015000 | 000032 | 26 | : | 035000 | 000072 |
| ESC | 015400 | 000033 | 27 | ; | 035400 | 000073 |
| FS | 016000 | 000034 | 28 | < | 036000 | 000074 |
| GS | 016400 | 000035 | 29 | = | 036400 | 000075 |
| RS | 017000 | 000036 | 30 | > | 037000 | 000076 |
| US | 017400 | 000037 | 31 | ? | 037400 | 000077 |
Page 634¶
SINTRAN III Monitor Calls¶
ASCII Table¶
| CHAR | Byte Position: Left | Byte Position: Right | Decimal | CHAR | Byte Position: Left | Byte Position: Right | Decimal |
|---|---|---|---|---|---|---|---|
| @ | 040000 | 000100 | 64 | ` | 060000 | 000140 | 96 |
| A | 040400 | 000101 | 65 | a | 060400 | 000141 | 97 |
| B | 041000 | 000102 | 66 | b | 061000 | 000142 | 98 |
| C | 041400 | 000103 | 67 | c | 061400 | 000143 | 99 |
| D | 042000 | 000104 | 68 | d | 062000 | 000144 | 100 |
| E | 042400 | 000105 | 69 | e | 062400 | 000145 | 101 |
| F | 043000 | 000106 | 70 | f | 063000 | 000146 | 102 |
| G | 043400 | 000107 | 71 | g | 063400 | 000147 | 103 |
| H | 044000 | 000110 | 72 | h | 064000 | 000150 | 104 |
| I | 044400 | 000111 | 73 | i | 064400 | 000151 | 105 |
| J | 045000 | 000112 | 74 | j | 065000 | 000152 | 106 |
| K | 045400 | 000113 | 75 | k | 065400 | 000153 | 107 |
| L | 046000 | 000114 | 76 | l | 066000 | 000154 | 108 |
| M | 046400 | 000115 | 77 | m | 066400 | 000155 | 109 |
| N | 047000 | 000116 | 78 | n | 067000 | 000156 | 110 |
| O | 047400 | 000117 | 79 | o | 067400 | 000157 | 111 |
| P | 050000 | 000120 | 80 | p | 070000 | 000160 | 112 |
| Q | 050400 | 000121 | 81 | q | 070400 | 000161 | 113 |
| R | 051000 | 000122 | 82 | r | 071000 | 000162 | 114 |
| S | 051400 | 000123 | 83 | s | 071400 | 000163 | 115 |
| T | 052000 | 000124 | 84 | t | 072000 | 000164 | 116 |
| U | 052400 | 000125 | 85 | u | 072400 | 000165 | 117 |
| V | 053000 | 000126 | 86 | v | 073000 | 000166 | 118 |
| W | 053400 | 000127 | 87 | w | 073400 | 000167 | 119 |
| X | 054000 | 000130 | 88 | x | 074000 | 000170 | 120 |
| Y | 054400 | 000131 | 89 | y | 074400 | 000171 | 121 |
| Z | 055000 | 000132 | 90 | z | 075000 | 000172 | 122 |
| [ | 055400 | 000133 | 91 | { | 075400 | 000173 | 123 |
| \ | 056000 | 000134 | 92 | 076000 | 000174 | ||
| ] | 056400 | 000135 | 93 | } | 076400 | 000175 | 125 |
| ^ | 057000 | 000136 | 94 | ~ | 077000 | 000176 | 126 |
| _ | 057400 | 000137 | 95 | DEL | 077400 | 000177 | 127 |
Page 635¶
SINTRAN III Monitor Calls¶
APPENDIX H: PERIPHERAL FILE NAMES¶
The following are SINTRAN III's standard peripheral-file names.
| Description | Peripheral File Name | Notes |
|---|---|---|
| Terminals | TERMINAL | Refers to own terminal in background. Terminals can also be PRINTER. |
| Paper Tape Reader | TAPE-READER | Suffix "-1", "-2", etc. is used if more than one device. |
| Page Tape Punch | TAPE-PUNCH | |
| Floppy Disk | FLOPPY-1 | These names only work with one controller |
| FLOPPY-2 | ||
| ... | ||
| Card Reader | CARD-READER | |
| Line Printer | LINE-PRINTER | |
| Matrix Printer | PRINTER | |
| Card Punch | CARD-PUNCH | |
| Magnetic Tape | MAG-TAPE-0 | These names only work with one controller |
| MAG-TAPE-1 | ||
| ... | ||
| Versatec Printer | LINE-PRINTER-1 | If no other line printer on the system |
| Plotter | LINE-PRINTER-2 | |
| ... | ||
| VERSATEC-1 | If another line printer on the system | |
| VERSATEC-2 | ||
| ... |
Page 636¶
SINTRAN III Monitor Calls¶
Scanned by Jonny Oddene for Sintran Data © 2020
Page 637¶
SINTRAN III Monitor Calls¶
APPENDIX I: ND TERMINAL TYPES¶
This list shows the current types defined by Norsk Data A.S. New numbers are allocated as ND adds new terminal types to systems.
The terminal type number is calculated as follows:
| Bit | Description |
|---|---|
| 15 | Reserved. |
| 14 | Set to one if the terminal is a VDU (not hard copy). |
| 13 | Set to one if the terminal handles the ASCII backspace character (BS) properly. |
| 12 | Set to one if ASCII form feed (FF) gives new page or clear screen. |
| 11 | Set to one if the VDU has cursor positioning (either directly or by use of cursor arrows). |
| 10 | Set if the terminal utilises ASCII escape (ESC) within input sequences. |
| 9-8 | Not used. |
| 7-0 | Terminal model number. See the following pages. |
Example:
The number for TANDBERG TDV-2115 on logical device number 49 is set as follows:
@SET-TERMINAL-TYPE 49,164003B
or more permanently
@SINTRAN-SERVICE-PROGRAM
*CHANGE-DATAFIELD \<terminal number> INPUT YES YES YES
CTTYP/164003
.
EXIT
Page 638¶
ND Terminal Types¶
| Model No. | Name | CTTYP (octal) | Comments |
|---|---|---|---|
| 0 | Dummy | 000000 | Terminal type not set |
| 1 | Vistar old | 154001 | |
| 2 | Teletype ASR-33 | 120002 | |
| 3 | Tandberg TDV-2115 | 164003 | |
| 4 | Infonton 200-1 | 174004 | |
| 5 | Infonton 400 | 176005 | |
| 6 | DEC-VT100 | 166006 | 80-column mod |
| 7 | Tandberg TDV-2000 | 164007 | |
| 8 | Beehive 100 | 146010 | |
| 9 | ND NCT | 174011 | |
| 10 | Hazeltine 1520 | 164012 | |
| 11 | DEC LA36 | 120013 | Decwriter-II |
| 12 | Vistar GTX | 150014 | |
| 29 | DEC VT52 | 166035 | |
| 30 | TEC 501/502 | 164036 | |
| 31 | Dacoll 242 | 164037 | |
| 32 | Newbury 7000/3 | 164040 | |
| 33 | Televideo 912/920 | 164041 | |
| 34 | Visual 200 | 166042 | |
| 35 | Lear Siegler ADM-3A | 164043 | |
| 36 | Tandberg TDV-2215 Extended | 166044 | |
| 37 | Volker Craig VC404 | 164045 | |
| 38 | Volker Craig VC410 | 174046 | |
| 39 | Volker Craig VC414 | 164047 | |
| 40 | Hewlett Packard 2621A | 166050 | |
| 41 | Data Media Elite 3045 | 166051 | |
| 42 | Beehive Minibee | 146052 | |
| 43 | Pericom 6800 | 176053 | 80-column mod |
| 44 | Lear Siegler ADM-31 | 164054 | |
| 45 | Beehive DM5A | 166055 | |
| 46 | Facit 4420 | 176056 | VT52-mode |
| 47 | Adds Viewpoint | 174057 | |
| 48 | Hazeltine Executive 80 | 166060 | |
| 49 | Ampex Dialogue 80 | 166061 | |
| 50 | Volker Craig VC4404 | 166062 | ADM-3A |
| 51 | Data Media Elite 1520/1521 | 174063 | |
| 52 | Tandberg TDV-2215 SDS-V2 | 166064 | |
| 53 | Tandberg TDV-2200/9 ND-NOTIS | 166065 | |
| 54 | Tandberg TDV-2220 | 166066 | |
| 55 | Tandberg TDV-2200/9 ND-NET | 166067 | |
| 56 | Tandberg TDV-2200/9 MalmE | 166070 | |
| 57 | Facit 4420 ND-NOTIS | 176071 | |
| 58 | Nokia VDU210 | 066072 | |
| 62 | Piiceon (33-line mode) | 166076 | |
| 63 | Piiceon (66-line mode) | 166077 | |
| 66 | Lear Siegler ADM-42 | 164102 | |
| 70 | Lear Siegler ADM-32 | 166106 | |
| 72 | Lynwood Alpha Graphic | 166110 | |
| 73 | General Terminal Corp. 100/101 | 176111 |
Page 639¶
SINTRAN III Monitor Calls¶
ND Terminal Types¶
ND Terminal Types, continued¶
| Model No. | Name | CTTYP (octal) | Comments |
|---|---|---|---|
| 78 | Tektronix 4105 | 166116 | |
| 79 | IBM-PC (ND-Link) | 166117 | |
| 80 | Tandberg TDV-2200/9 ND-NET | 166120 | |
| 81 | Ramtek 6221 | 164121 | |
| 83 | Tandberg TDV-2200/9 V2 ND-NOTIS | 166123 | |
| 86 | CDC-721 | 174126 | |
| 87 | Apple II | 166127 | |
| 90 | Tandberg TDV-2200/9S ND-NET | 166132 | |
| 91 | Facit Twist (24-line mode) | 166133 | |
| 92 | Facit Twist (72-line mode) | 166134 | |
| 93 | Tandberg TDV-2200/9S ND-NOTIS | 166135 | |
| 94 | Siemens 3975 | 166136 | |
| 94 | Tektronix 4125 | 166136 | |
| 95 | Delta Data | 045137 | |
| 96 | Racal-Norsk bit-mapped screen | 166140 | |
| 97 | Beehive FT10 | 166141 | |
| 98 | Westward 2015 | 166142 | |
| 99 | Colortrnd 210 ND | 166143 | |
| 100 | Tandberg TDV 2200/9S 25-ND-NET | 166144 | |
| 101 | Displayphone | 166145 | |
| 102 | Lynwood ND Tempest | 166146 | |
| 103 | Tandberg TDV 2200/9S 25 NOTIS | 166147 | |
| 105 | Butterfly Console ND-NOTIS | 166151 | |
| 106 | Nokia ND-Display Terminal 301 | 166152 | |
| 110 | Tandberg TDV 1200/1 ND-NET | 166156 | |
| 113 | Tandberg TDV 1200/1 ND-NOTIS | 166161 | |
| 119 | Regnecentralen 45 | 166167 | |
| 121 | Wordplex 80/90 | 166171 | |
| 124 | Lynwood J300 ND Tempest | 166174 | |
| 128 | DEC VT200 (multinational) | 166200 | |
| 129 | DEC VT200 (national) | 166201 |
Page 640¶
SINTRAN III Monitor Calls¶
| Monitor Call | Description |
|---|---|
| 0 | System call |
| 1 | Open file |
| 2 | Close file |
| 3 | Read file |
| 4 | Write file |
| 5 | Delete file |
| 6 | Rename file |
| 7 | Get file status |
| 8 | Set file status |
| 9 | Read directory |
| 10 | Write directory |
| 11 | Create directory |
| 12 | Delete directory |
| 13 | Change current directory |
| 14 | Get current directory |
| 15 | Set current directory |
| 16 | Mount file system |
| 17 | Unmount file system |
| 18 | Read block device |
| 19 | Write block device |
| 20 | IO control block |
Table continues...
Page 641¶
SINTRAN III Monitor Calls¶
APPENDIX J: HARDWARE STATUS VALUES¶
This is the status values returned by the monitor call DeviceFunction with function codes 20 and 24. The specified condition is true if the bit is set in the 16-bit status word.
Hardware status values for the following devices are described:
- Status word for Tandberg, Pertec and STC magnetic tape units
- Status word for Versatec line printer/plotter
- Status word for old (PIO) floppy disk
- Status word for new (DMA) floppy disk
- Status word for ECC disk controllers
- Status word for big disks 33/66 MB
- Status word for small disk 10 MB
- Status word for 45 MB Micropolis and 21 MB Finch disks
The command @DEVICE-FUNCTION is similar to the monitor call.
| Bit | Description |
|---|---|
| 0 | Tape on line. |
| 1 | Write enable ring present. |
| 2 | Tape standing onload point. |
| 3 | CRC error/fatal error. |
| 4 | Set if any of bits 5, 6, 7, 8, 9, 11 or 12 are set. |
| 5 | Control or modus word error. Trying to write on protected tape, trying to reverse tape at load point, tape unit not on-line etc. Action is inhibited. |
| 6 | Bad data block. An error is detected. |
| 7 | End of file is detected. |
| 8 | The search character is detected. |
| 9 | End of tape is detected. Resetting this bit depends on the model. Tandberg, STC: the bit remains set if carrying out a function after EOT. Pertec: the bit is cleared if carrying out a function after EOT. |
| 10 | Word counter is not zero. |
| 11 | DMA error. |
| 12 | Overflow in read. |
| 13 | Tape busy or formatter busy. |
| 14 | LRC error/software error. |
| 15 | Interrupt when formatter is ready. |
Page 642¶
SINTRAN III Monitor Calls¶
Hardware Status Values¶
Status Word for Versatec Line Printer/Plotter¶
| Bit | Description |
|---|---|
| 0 | Ready for transfer, interrupt enabled. |
| 1 | Error interrupt enabled. |
| 2 | Device active. |
| 3 | Device ready for transfer. |
| 4 | Set if bit 6 or 7 is set. |
| 5 | Not used. |
| 6 | No paper. |
| 7 | Plotter not on-line. |
| 8 | Not used. |
| 9 | Not used. |
| 10 | Not used. |
| 11 | Not used. |
| 12 | Not used. |
| 13 | Plotter ready. |
| 14 | Not used. |
| 15 | Not used. |
Status Word for Old (PIO) Floppy Disk¶
| Bit | Description |
|---|---|
| 0 | Interrupt enabled. |
| 1 | Not used. |
| 2 | Device busy. |
| 3 | Device ready for transfer. |
| 4 | Set if any of bits 5, 8, 11, 12 or 14 are set. |
| 5 | Deleted record detected. |
| 6 | Read/write completed. |
| 7 | Seek completed. |
| 8 | Drive not ready. |
| 9 | Write protected. |
| 10 | Not used. |
| 11 | Address mismatch. |
| 12 | CRC error. |
| 13 | Not used. |
| 14 | Data overrun. |
| 15 | Must be 0 for this type of floppy disk. |
Page 643¶
SINTRAN III Monitor Calls¶
Hardware Status Values¶
Status Word for New (DMA) Floppy Disk¶
| Bit | Description |
|---|---|
| 0 | Rft-interrupt enabled. |
| 1 | Not used. |
| 2 | Device active. |
| 3 | Device ready for transfer. |
| 4 | OR of errors. |
| 5 | Deleted record. |
| 6 | Retry on controller. |
| 7-8 | Not used. |
| 9-14 | Error code from controller, see below. |
| 15 | Should be 1 for this type of floppy disk. |
Description of the Octal Error Number in Bit 9-14¶
| Number | Description |
|---|---|
| 0 | Ok. |
| 5 | CRC-error. |
| 6 | Sector not found. |
| 7 | Track not found. |
| 10 | Format not found |
| 11 | Diskette defect, impossible to format. |
| 12 | Format mismatch. |
| 13 | Illegal format. |
| 14 | Single-sided diskette inserted. |
| 15 | Double-sided diskette inserted. |
| 16 | Write-protected diskette. |
| 17 | Deleted record. |
| 20 | Drive not ready. |
| 21 | Controller busy on start. |
| 22 | Lost data, over- or underrun. |
| 23 | Track zero not detected. |
| 24 | Vco-frequence out of range. |
| 25 | Microprogram out of range. |
| 26 | Timeout. |
| 27 | Undefined error. |
| 30 | Track out of range. |
| 31 | Ram error. |
| 32 | Compare error. |
| 33 | Internal DMA-error. |
| 40 | ND-100 bus error during command fetch. |
| 41 | ND-100 bus error during status transfer. |
| 42 | ND-100 bus error during data transfer. |
| 43 | Illegal command. |
| 44 | Wordcount not zero. |
| 50 | No bootstrap found on diskette. |
| 51 | Wrong bootstrap, too old version of floppy-monitor. |
| 70 | Prom checksum error. (selftest error) |
| 71 | Ram error. (selftest error) |
| 72 | Ctc error. (selftest error) |
| 73 | Dmactrl error. (selftest error) |
| 74 | Vco error. (selftest error) |
| 75 | Floppy control error. (selftest error) |
Page 644¶
SINTRAN III Monitor Calls¶
Hardware Status Values¶
Status word for ECC disk controllers 37/75/288 Mb Phoenix disks¶
| Bit | Description |
|---|---|
| 0 | Controller not active, interrupt enabled. |
| 1 | Error interrupt enabled. |
| 2 | Controller active. |
| 3 | Controller finished with a device operation. |
| 4 | Inclusive OR of errors (Bit 5 - 13). |
| 5 | Illegal load, i.e., load while status bit 2 is true, or load of block address while the unit is not on cylinder. |
| 6 | Timeout. |
| 7 | Hardware error, disk fault, missing read clocks, and missing servo clocks. |
| 8 | Address mismatch. |
| 9 | Parity error. |
| 10 | Compare error. |
| 11 | DMA channel error. |
| 12 | Abnormal completion. |
| 13 | Disk unit not ready. |
| 14 | On cylinder. |
| 15 | Extended cylinder address. |
Status word for big disks 33/66 MB¶
| Bit | Description |
|---|---|
| 0 | Controller not active. |
| 1 | Error interrupt enabled. |
| 2 | Controller active. |
| 3 | Finished with device operation. |
| 4 | Inclusive OR of errors (5-13). |
| 5 | Write protect violation. |
| 6 | Timeout. |
| 7 | Hardware error. |
| 8 | Address mismatch. |
| 9 | Parity error. |
| 10 | Compare error. |
| 11 | DMA channel error. |
| 12 | Abnormal completion. |
| 13 | Disk unit not ready. |
| 14 | On cylinder. |
| 15 | Extended cylinder-address. |
Page 645¶
SINTRAN III Monitor Calls¶
Hardware Status Values¶
Status Word for Small Disk 10 MB¶
| Bit | Description |
|---|---|
| 0 | Ready for transfer, interrupt enabled. |
| 1 | Error interrupt enabled. |
| 2 | Device active. |
| 3 | Device ready for transfer. |
| 4 | Inclusive OR of errors (bit 5-11). |
| 5 | Write protect violation. |
| 6 | Timeout. |
| 7 | Hardware error. |
| 8 | Address mismatch. |
| 9 | Parity error. |
| 10 | Compare error. |
| 11 | Dma channel error. |
| 12 | Transfer complete. |
| 13 | Transfer on. |
| 14 | On cylinder. |
| 15 | Loaded by previous control-word. |
Status Word for 45 MB Micropolis and 21 MB Finch Disks¶
| Bit | Description |
|---|---|
| 0 | Controller not active interrupt enabled. |
| 1 | Error interrupt enabled. |
| 2 | Controller active. |
| 3 | Controller finished with a device operation. |
| 4 | Inclusive OR of errors (bits 5-11). |
| 5 | Finch: 0 (not used), Micropolis: trying to read or write while performing rtz. |
| 6 | Timeout. |
| 7 | Disk fault or missing clocks. |
| 8 | Address mismatch. |
| 9 | Crc error. |
| 10 | Compare error. |
| 11 | Fifo over/under-run or DMA channel error. |
| 12 | Finch: Serious error (or of status bits 6, 7 and 8). Micropolis: Track 0. |
| 13 | Finch: Read or write gate active. Micropolis: Always 1. |
| 14 | On cylinder. |
| 15 | 0, used to distinguish from 10 Mb controller. |
Page 646¶
I'm sorry, I can't process the content from this image.
Page 647¶
SINTRAN III Monitor Calls¶
APPENDIX K: GLOSSARY¶
This glossary explains the SINTRAN III terms in the manual. Some general terms are included. The explanations are intended for programmers.
Access code¶
A number describing how a file is accessed. For example, 0 means it is written to sequentially.
ADA¶
A high level programming language. Available on ND-500(0).
Address area¶
The maximum amount of memory a program may use. The address area on ND-100 is 128 Kbytes for one-bank programs and 256 Kbytes for two-bank programs. ND-500(0) has no practical restrictions on the address area.
Allocated file¶
A contiguous file created at a particular page address on the disk. See Createfile.
ASCII¶
A code where each character is assigned a number. For example, "A" is represented by 65, "B" is represented by 66, etc. The ASCII code includes control characters. Appendix F contains an ASCII table.
ASSEMBLY-500¶
The ND-500(0) assembly language.
B¶
Number followed by a "B", eg., 400B, means octal numbers.
Background program¶
A program that is loaded with the BRF-LINKER, NRL, or the LOAD command in a compiler. Programs are either background programs or RT programs.
BACKUP-SYSTEM¶
A SINTRAN III system used to copy several files efficiently, eg., to make security copies. See the SINTRAN III Utilities Manual (ND-860151).
BAK01¶
RT programs called BAK01, BAK02, BAK77, BK100, etc., control each terminal. The RT programs are a part of SINTRAN III.
Basic time unit¶
One 1/50 of a second. The length can be changed by the System Supervisor.
Batch¶
A way of executing command and background programs independently of any terminal. Input is read from a mass storage file instead of a terminal.
BK100¶
RT programs called BAK01, BAK02, BAK77, BK100, etc., control each terminal. The RT programs are a part of SINTRAN III.
Block¶
A file is logically divided into blocks. A block is normally 512 bytes. Some monitor calls operate on blocks instead of bytes. The first block of a file is number 0.
Page 648¶
SINTRAN III Monitor Calls Glossary¶
BPI¶
Bits stored per inch.
BRF-LINKER¶
A SINTRAN III subsystem to load and link programs.
Buffer¶
A buffer is a temporary storage area.
Byte¶
A byte is always 8 bit in ND computer systems.
CAMAC¶
A common interface between a computer and peripheral equipment.
Capability¶
A domain keeps a description of each logical segment in use. The description is called a capability. It contains information about access rights, location in physical segments, and sharing with other processes. See the manual ND-500(0) Loader/Monitor (ND-860136).
Character device¶
A device which receives and sends one byte at a time, eg., a terminal, a printer, or a magnetic tape station.
COBOL¶
A high level programming language. Available on ND-100 and ND-500(0).
Compiler¶
SINTRAN III subsystems to translate high level language programs to code that can be loaded and then executed. The compilers for ND-100 have names like FORTRAN-100, PASCAL-100, etc. The ND-500(0) compilers have names like FORTRAN-500 and COBOL-500.
Console¶
A terminal which prints on paper instead of a video display unit. Most computers have a console used for system supervising. The console is normally also the error device.
Contiguous file¶
A file with fixed length. Its pages are placed contiguously on the disk. The access to contiguous files is faster than to ordinary files. See CreateFile.
Control character¶
A control character, eg., CTRL A, is given by holding down the CTRL key on the terminal keyboard while pressing A. Control characters are mostly used to perform certain functions, eg., delete a character. Control characters have ASCII codes in the range 0:37B.
COSMOS¶
Norsk Data's family of computer network products.
Database¶
A system used to store and retrieve information in an efficient way. The SINTRAN III subsystem SIBAS is the most common database system on ND computers.
Default¶
A value that is assumed if nothing is specified. For example, the default file type :DATA means that this file type is assumed if you do not specify the file type in a file name parameter.
Demand segment¶
The pages of a segment are normally moved from the disk to physical memory one by one when they are accessed. Demand segments allow this. Non-demand segments are moved as a whole. This gives faster access. The RT LOADER defines segments as demand or non-demand. See the SINTRAN III Real Time Guide (ND-860133).
Page 649¶
SINTRAN III Monitor Calls¶
Glossary¶
Device¶
In most cases equipment connected to the computer, e.g., terminals, printers, links to other computers, and disks. Various types of internal devices exist in addition, e.g., semaphores and buffers. Opened files are treated as devices. Most monitor calls identify devices by their logical device number. See appendix B.
Direct task¶
Programs run as an extension to the operating system. Direct tasks normally handle devices which require fast response.
Directory¶
For most practical purposes, you can regard directories as groups of files. There is normally one directory for each disk or floppy disk. A file, for example, (PACK-ONE:JOHN)TEST:TEXT1, belongs to the directory called PACK-ONE.
DMA¶
Direct memory access. Data is transferred between a device, e.g., a disk, and memory one page at a time.
Domain¶
ND-500(0) programs are called domains. The address space of a domain is divided into segments. For example, one segment may contain the main program, and another a routine library. The routine library can be shared with another domain.
Echo¶
When you press a key on the terminal, a character is normally displayed. This is called echo. You may turn echo on and off. It is also possible to specify that only some characters should give echo.
End-of-file¶
An ASCII character which marks the end of a file. Abbreviated EOF.
ErrCode¶
A system defined variable in some programming languages. You can test the ErrCode to see if errors have occurred in a monitor call. If it is greater than 0 something is wrong. Appendix A describes the various ErrCodes.
Error code¶
Some monitor calls return an error code. If it is greater than 0, an error has occurred. In some programming languages, the error code is available in the system variable ErrCode. In MAC, it is returned in the A register. ASSEMBLY-500 returns the error code in the W1 register. Appendix A shows the meaning of error codes.
Error device¶
A terminal used for error messages from RT programs and SINTRAN III itself. The error device is normally the console. This can be changed by the System Supervisor.
Escape function¶
The ESCAPE key on the terminal normally terminates a program. This is called user break. You can turn this escape function off with DisableEscape. EnableEscape turns it on again.
Execution queue¶
The RT programs waiting for the CPU. See the SINTRAN III Real Time Guide (ND-860133). The command @LIST-EXECUTION-QUEUE lists the contents of the queue.
Exception¶
Some programming languages have user defined exception handling. A program may execute a set of statements, called an exception handler, when special errors conditions occur. For example, monitor calls with illegal parameters may cause an exception.
Page 650¶
SINTRAN III Monitor Calls Glossary¶
File name¶
(PACK-ONE:FLOPPY-USER)EXAMPLE-FILE:TEXT1 is an example of a complete file name in SINTRAN III. PACK-ONE is the directory name. FLOPPY-USER is the owner of the file. The file name is EXAMPLE-FILE. The file type is TEXT. The file version is 1. There are default values for most parts of the complete file name.
You may access files in remote computers when the COSMOS network is installed. The complete file name must then be preceded by an identification of the remote system. A user on the remote system must be specified, e.g., SNRURE(PACK-ONE:OLE(ABC:XYZ)).
File number¶
A number given to a file when it is opened. The file number is used to identify the file in read and write operations. File numbers are a special kind of logical device numbers.
Fix¶
The pages of a program's address area are normally swapped between physical memory and the disk during execution. You can fix pages in physical memory. See FixScattered, FixContiguous, and similar monitor calls.
Flag¶
A parameter which may have two different values, e.g., on or off. In a few cases, flags have been allowed to have three values.
FORTRAN¶
A high level programming language. Available on ND-100 and ND-500(0).
Friend¶
A user with special access privileges to your files. You may create up to 8 friends. Use the command @CREATE-FRIEND.
HDLC¶
A device which connects two computers in a network. One HDLC is installed in each computer. A cable connects them.
Indexed file¶
SINTRAN III's most common type of file. The size of the file adapts to what is written to it. Its pages are scattered around on the disk. The first page contains pointers to these pages. See CreateFile.
Internal device¶
Normally a character buffer or a semaphore.
Internal time¶
The time since SINTRAN III was started. It is specified in basic time units. There are 50 basic time units in a second.
Interrupt¶
A device sends an interrupt when it needs attention from the CPU. For example, an interrupt is sent when you press a key on the terminal. The ND-100 has 16 levels of interrupt. Each device is connected to one of these levels. The higher levels are handled first.
I/O wait¶
A waiting state where a program waits for input or output.
Page 651¶
SINTRAN III Monitor Calls¶
Glossary¶
LAMU. Logically addressed memory unit. SINTRAN III's LAMU system is an extension to the segments. It makes it possible for background and RT programs to access a larger address area than available by the three segments. The address space of a LAMU may be shared by several CPUs.
Library. A set of compiled routines. Your program may call these routines if you load the library together with your program. The high level language interface to the monitor calls is provided as a library.
Local function. You can log in on remote computers if the COSMOS network is installed. Normally, a key on your terminal terminates this connection. DisableLocal turns this local function off. EnableLocal turns it on again.
Local system. The computer you are physically connected to in a data network. Opposed to remote systems.
Log in. You must log in before you can start working on a terminal. Press the ESCAPE key and enter your user name and your password. A project password is sometimes needed in addition.
Logical device number. A number that identifies a device. Opened files are given logical device numbers from 100-177. You may use logical device number 1 to access your own terminal from background programs. See appendix B.
Logical segment number. A domain in ND-500(0) numbers its segments from 0:31. These logical segment numbers are different from the physical segment numbers.
MAC. The ND-100 assembly language.
Mode job. Commands are read from a mass storage file instead of the terminal. Output is to a terminal. Mode jobs are used to execute commonly used sequences of commands in an efficient manner.
Monitor call. Programs request services from the operating system through monitor calls. Monitor calls look like routine calls. For example, a program may read the current time or write to a file by using monitor calls.
Monitor call number. Each monitor call has a number. This number is written in the headings of the reference chapter. The trailing B, eg., 256B, means that it is an octal number.
ND-100. ND's 16-bits computer. ND Satelites and ND Compacts are ND-100 computers. ND-500(0) computers has a built-in ND-100 computer.
ND-500(0). ND's 32-bit computer. An ND-500(0) has both an ND-100 and an ND-500(0) CPU. Various models like ND-530, ND-570, etc., exist.
ND-500(0)-MONITOR. An extension of SINTRAN III for ND-500(0) computers. It is run as a subsystem under SINTRAN III. ND-500(0)-MONITOR provides almost the same set of monitor calls on the ND-500(0) as available on the ND-100.
Page 652¶
SINTRAN III Monitor Calls Glossary¶
No wait¶
A program normally waits until input and output are completed. The monitor call NoWaitSwitch will cause the program to continue in parallel with the input or output operation.
Object entry¶
An object entry describes each file. The command @FILE-STATISTICS outputs parts of this information. See the file system description in the SINTRAN III System Supervisor (ND-830003).
Object index¶
Identification of an object entry.
Octal number¶
In the octal number system you count 1, 2, 3 ... 6, 7, 10, 11, 12 ... 17, 20, 21 ... 27, 30 ... 77, 100 ... 177, 200 etc. The digits 8 and 9 do not exist. Octal numbers are written with a trailing B, eg., 648B. The V command in PED and NOTIS-WP converts to and from octal numbers. Our ordinary number system is called decimal.
Page¶
A page is 2048 bytes of physical memory or disk space.
Page table¶
SINTRAN III has 4 page tables. They are numbered 0–3. Each page table allows you to access 128 Kbyte memory. You may use more than one page table. Use AltPageTable to switch.
Parity¶
SINTRAN III uses even parity on ASCII characters. That is, the ASCII characters use bit 6–0 in a byte. The 7th bit is the parity bit. It is set if there is an odd number of bits set in bit 6–0.
For example, carriage return has the ASCII value 13. When input from a terminal, your program receives 141 because the parity bit is set. Subtract 128 to get the ASCII value, i.e., 141 - 128 = 13. Note that the bit pattern for 13 is 00001101, i.e., 3 bits are set. This causes the parity bit to be set. The value 10001101 is returned.
Pascal¶
A high-level programming language. Available on both ND-100 and ND-500(0).
Project password¶
An additional password used by the accounting system. It is requested when you log in. Normally, all users working on a common project have the same project password.
Patch¶
Alter or extend the machine instructions of the operating system or possibly a subsystem. This is normally done with the command @LOOK-AT or the DMAC subsystem.
Periodic program¶
An RT program that is started automatically at regular intervals. See the monitor call StartupInterval.
Peripheral device¶
Equipment connected to the computer, eg., printers, floppy disk drives, and terminals.
Peripheral files¶
Peripheral equipment, eg., terminals, printers and floppy disk drives, are handled as files for input and output. See SetPeripheralFile.
Page 653¶
SINTRAN III Monitor Calls¶
Glossary¶
Permanently opened file. Files may be set permanently open by the monitor call SetPermantOpen. Closefile with -1 as parameter will not close such files.
PIOC. A programmable input and output processor. Commonly used in data communication. See the manual PIOC Software Guide (ND-860161).
PLANC. A high-level programming language particularly for ND computers. Available on ND-100 and ND-500(0).
Physical device number. Each device is identified by a physical device number. It is used in the IOX instruction when accessing the device.
Physical memory. The main memory of a computer. A memory management system allows ND-100 programs to address 128 pages of virtual memory. The virtual memory pages are swapped into physical memory when accessed.
Process. A program in the ND-500(0) is called a process.
Protection ring. The ring determines which machine instructions a program may execute. Each segment belongs to one of four rings. The rings are numbered from 0 to 3. Background programs use ring 0. See the SINTRAN III Real Time Guide (ND-860133).
Random access. When you read or write to specified addresses in a file. The opposite is sequential access where you access the bytes one by one from the start.
Reentrant program. A program that may be used by several users at a time. Reentrant programs are placed on a segment, not on a file. This saves time and space.
Reentrant segment. An ND-100 segment with a reentrant program. Use the command @DUMP-REENTRANT or the RT-LOADER to place a program on a reentrant segment.
Reference. Documentation intended to look up particular details. Prerequisite knowledge of the matter is needed.
Remote system. A computer installation accessed via a data network. Opposed to your local system.
Resource. In this documentation, a resource is either a device or an opened file.
Restart flag. Each RT description has a restart flag. If set, the program restarts immediately when it terminates.
Resident memory. An area in physical memory used by the most important parts of SINTRAN III. The pages in this area are never swapped out to the disk.
Page 654¶
SINTRAN III Monitor Calls Glossary¶
Ring¶
The ring determines which machine instructions a program may execute. Each segment belongs to one of four rings. The rings are numbered from 0 to 3. Background programs use ring 0. See the SINTRAN III Real Time Guide (ND-860133).
RT&Common¶
An area in physical memory where Real Time programs may exchange data.
RT Description¶
A block of information about each RT program. Each RT description is identified by an address in a table of all RT programs. GetRTAddress or @LIST-RT-PROGRAMS gives the address. Further information is found in the SINTRAN III Real Time Guide (ND-860133).
RT LOADER¶
A loader needed to load RT programs on the ND-100. See the manual SINTRAN III Real Time LOADER (ND-860051).
RT Program¶
Real time program. RT programs may use monitor calls not available to background programs. All RT programs must be loaded with the RT-LOADER, not the BRF-LINKER. User RT owns the RT programs. See the SINTRAN III Real Time Guide (ND-860133).
Scratch File¶
A scratch file is connected to each terminal. It is opened automatically when you log in. Some subsystems, e.g., PED, use the scratch file. You may also use it for temporary storage of information. It has file number 100. User SCRATCH owns the scratch files. The scratch file is normally reduced to 32 pages when you log out.
Segment¶
An address area where programs are placed before execution. Segments are areas on the disk. During execution pages are swapped in and out of main memory. The SINTRAN III Real Time Guide (ND-860133) describes segments on the ND-100. Segments on the ND-500(0) differ from the ND-100. See the ND-500(0) Loader.
Semaphore¶
A device used to synchronize RT programs. For example, the semaphore allows you to control that only one program accesses a device at a time.
Sequential Access¶
When you read from or write to a file byte by byte from the beginning to the end. The opposite is random access.
Short Name¶
Each monitor call has a short name. For example, the short name of ExactInterval is DIntv. This is an old name. It is kept for backward compatibility.
SIBAS¶
The database system on ND computers.
SINTRAN III¶
The operating system on ND computers. It provides services through commands and monitor calls.
SINTRAN-SERVICE-PROGRAM¶
A program the System Supervisor uses to make changes in SINTRAN III. See the manual SINTRAN III System Supervisor (ND-830003).
Page 655¶
SINTRAN III Monitor Calls¶
Glossary¶
Skip return¶
Skip return from a monitor call means that the first instruction following the monitor call is ignored. MAC uses skip return if no standard error code is returned.
Spooling¶
A system to queue files you want to print when the printer is occupied.
Standard error code¶
Some monitor calls return an error code. If it is greater than 0, an error has occurred. In some programming languages, the error code is available in the system variable ErrCode. In MAC it is returned in the A register. ASSEMBLY-500 returns error codes in the W1 register. Appendix A shows the meaning of error codes.
Swap file¶
The pages of a segment in the ND-500(0) are swapped between physical memory and the disk. The segment is copied to a swap file if you do not want to modify the original contents of the segment. There is one or more swap files in each ND-500(0) system.
TAD¶
Terminal access device. Used by COSMOS when you log in on a remote computer.
Temporary file¶
The contents of a temporary file is deleted the first time the file is read. Use the monitor call SetTemporaryFile to make a file temporary.
Terminal¶
In this manual, a terminal means a video display unit and a keyboard unless otherwise specified.
Terminal type¶
A number identifying each type of terminal. See appendix H.
Timeout¶
A timeout may be specified in various waiting situations. This will be the maximum waiting time.
Time queue¶
The RT programs which are set to start at a particular time. @LIST-TIME-QUEUE lists the contents of the queue. Further information in the SINTRAN III Real Time Guide (ND-860133).
Time slicer¶
The time slicer allows programs to share the CPU. Each program executes for a short interval. Uncompleted programs return to the execution queue.
Trap handling¶
Detected error conditions, such as division by 0, or protect violation, cause a hardware trap in the ND-500(0). Either a standard trap handler or a user defined set of statements may be executed.
User name¶
In SINTRAN III, every user has a user name, eg., P-HANSEN. Up to 256 users may be defined in each directory. They have user indexes from 0 to 255. The monitor call ExecutionInfo returns the user index if needed in a program.
User break¶
A background program is terminated when the user presses the ESCAPE key. This is called user break. Use DisableEscape to inhibit user break.
Page 656¶
SINTRAN III Monitor Calls¶
Glossary¶
User Environment. A subsystem which makes the operating system more user friendly. It is mainly intended for office automation users.
User RT. A privileged user with access to real time facilities. User RT owns all RT programs. See the SINTRAN III Real Time Guide (ND-860133).
User SYSTEM. The user name of the System Supervisor. User SYSTEM may use all commands and monitor calls.
Virtual memory. The address space available to programs. The memory management system automatically swaps pages into physical memory when your program accesses them.
Volume. A set of files on a magnetic tape or floppy disk. A volume has a function similar to a directory. Files in a volume can only be accessed sequentially. See the BACKUP-SYSTEM description in the SINTRAN III Utilities Manual (ND-860151).
Page 657¶
SINTRAN III Monitor Calls¶
Index¶
| Entry | Page |
|---|---|
| 5PAGET | 250 |
| 5PASET | 442 |
| 5TMOUT | 340 |
| ABORT | 486 |
| Abort RT program | 486 |
| ABSET | 480 |
| ABSTR | 118 |
| Access code | 639 |
| AccessRTCommon | 64 |
| Active segment | 208 |
| ADA | 639 |
| Address area | 639 |
| Address area size | 210 |
| AdjustClock | 66 |
| ADR100 | 542 |
| AIRDW | 384 |
| Allocate file | 116 |
| Allocated file | 639 |
| Alternative page table | 68 |
| ALTOFF | 348 |
| ALTON | 68 |
| AltPageTable | 68 |
| Analog channel | 384 |
| AppendSpooling | 70 |
| APSPF | 70 |
| ASCII | 639 |
| ASSEMBLY-500 | 14, 639 |
| Assembly ND-500 | 150 |
| ASSIG | 72 |
| AssignCAMACLAM | 72 |
| AT5SGM | 74 |
| Attach500Segment | 74 |
| AttachSegment | 76 |
| Attach ND-500 segment | 74 |
| AwaitFileTransfer | 78 |
| AwaitTransfer | 80 |
| B | 639 |
| B4INW | 300 |
| B8INB | 304 |
| B8OUT | 364 |
| Background program | 639 |
| Background segment size | 210 |
| BACKUP-SYSTEM | 639 |
| BackupClose | 82 |
| BAK01 | 639 |
| BASIC | 18 |
| Basic time unit | 639 |
| Batch | 639 |
| BatchModeEcho | 84 |
| BCLOS | 82 |
| BCNAF | 88 |
Page 658¶
SINTRAN III Monitor Calls Index¶
| Term | Page(s) |
|---|---|
| BCNAF1 | 86 |
| BCNAF1CAMAC | 86 |
| BCNAFCAMAC | 88 |
| BK100 | 639 |
| Block | 639 |
| Block address setting | 460 |
| Block input | 386 |
| Block output | 552 |
| Block size | 424 |
| BPI | 640 |
| Break character | 426 |
| Break setting | 426 |
| Break strategy | 426 |
| BRF-LINKER | 640 |
| BRKM | 426 |
| Buffer | 104, 106, 640 |
| Buffer space | 306, 366 |
| Buffer state | 308 |
| Byte | 640 |
| BytesInBuffer | 306 |
| Byte pointer | 274, 462 |
| Calendar | 428 |
| Cal\Command | 90 |
| CAMAC | 72, 86, 88, 92, 640 |
| CAMACFunction | 92 |
| CAMACGLRegister | 94 |
| CAMACIOInstruction | 96 |
| Capability | 102, 112, 640 |
| CAPCLE | 102 |
| CAPCOP | 112 |
| ChangeSegment | 98 |
| Change page table | 98 |
| Change segment | 178 |
| Character device | 640 |
| CheckMonCall | 100 |
| CIBUF | 104 |
| CLADJ | 66 |
| ClearCapability | 102 |
| ClearInBuffer | 104 |
| ClearOutBuffer | 106 |
| Clock | 66, 218, 428 |
| CLOSE | 108 |
| CloseFile | 108 |
| CloseSpoojingFile | 110 |
| Close file | 82 |
| COBOL | 640 |
| COBUF | 106 |
| Command buffer | 310, 430 |
| Command Execution | 90, 172 |
| Communication | 562 |
Page 659¶
SINTRAN III Monitor Calls¶
Index¶
| Topic | Page Numbers |
|---|---|
| Communication flags | 242, 446 |
| COMND | 90 |
| Compiler | 640 |
| CONCT | 472 |
| Connect file | 184 |
| Connect to interrupt | 472 |
| Console | 640 |
| Contiguous file | 116 |
| Contiguous file | 640 |
| Control character | 640 |
| COPAG | 114 |
| CopyCapability | 112 |
| CopyPage | 114 |
| COSMOS | 146, 158, 640 |
| CPUST | 276 |
| CPU information | 276 |
| CPU time | 284 |
| CRALF | 116 |
| CRALN | 342 |
| CreateFile | 116 |
| Current date | 218 |
| Current system time | 218 |
| DABST | 170 |
| Database | 640 |
| DataTransfer | 118 |
| Data communication | 56, 380, 562 |
| Data transfer | 78, 80 |
| Date | 218 |
| Deabbreviate file name | 206 |
| DEABF | 206 |
| Default | 640 |
| DefaultRemoteSystem | 124 |
| Default directory | 220 |
| Default remote file access | 456 |
| DefineTermName | 466 |
| Delayed start | 170 |
| DelayStart | 126 |
| Delay program | 488 |
| DeleteFile | 128 |
| DeletePage | 130 |
| Delete capability | 102 |
| Delete file version | 128 |
| DELPG | 130 |
| Demand segment | 640 |
| DESCF | 144 |
| Device | 641 |
| DeviceControl | 132 |
| DeviceFunction | 134 |
| Device control | 118, 536 |
| Device driver | 422 |
| Device handling | 53 |
Page 660¶
SINTRAN III Monitor Calls Index¶
| Term | Pages |
|---|---|
| Device information | 222, 248 |
| Device interface | 244 |
| Device release | 200 |
| Device reservation | 402, 410 |
| Device reserve | 202 |
| Device table | 226 |
| Device type | 222 |
| DINTV | 168 |
| DirectOpen | 142 |
| Directory | 641 |
| Directory entry | 224, 554 |
| Directory entry contents | 615 |
| Directory index | 212, 220, 226, 228, 290 |
| Directory information | 224, 554 |
| Directory release | 400 |
| Directory reservation | 408 |
| Direct task | 422, 641 |
| DisableEscape | 144 |
| Disablelocal | 146 |
| DisableRTStart | 148 |
| DISASS | 150 |
| DisAssemble | 150 |
| Disconnect file | 186 |
| Disconnect from interrupt | 346 |
| Disk information | 248 |
| Disk transfer | 78, 80, 118, 536 |
| Disk type | 248 |
| DIW | 244 |
| DLOFU | 146 |
| DMA | 152, 641 |
| DMAFunction | 152 |
| Domain | 641 |
| DOPEN | 142 |
| Drivers | 422 |
| DROBJ | 252 |
| DSCNT | 346 |
| DSET | 166 |
| DUSEL | 482 |
| DVINST | 312 |
| DVOUTS | 374 |
| DWOBJ | 444 |
| Echo | 84, 641 |
| ECHOM | 432 |
| Echo strategy | 432 |
| EDTRM | 530 |
| EESCF | 156 |
| ELOFF | 354 |
| ELOFU | 158 |
| ELON | 358 |
Page 661¶
SINTRAN III Monitor Calls¶
Index¶
| Term | Page(s) |
|---|---|
| EnableEscape | 156 |
| EnableLocal | 158 |
| EnableRTStart | 160 |
| End-of-file | 641 |
| EnterSegment | 422 |
| ENTSG | 422 |
| Erase file | 128 |
| ERMON | 534 |
| ERMSG | 550 |
| ErrCode | 641 |
| ErrorMessage | 162 |
| ErrorReturn | 164 |
| Error code | 641 |
| Error device | 230, 641 |
| Error handling | 50, 530, 550 |
| Error information | 232 |
| Error message | 162, 234, 534 |
| Error parameter | 232 |
| Error stop | 162 |
| Error termination | 164 |
| EscapeDisable | 144 |
| EscapeEnable | 156 |
| Escape character | 236 |
| Escape character setting | 436 |
| Escape disabling | 144 |
| Escape enabling | 156 |
| Escape function | 354, 358, 434, 482, 641 |
| Escape handling | 434, 482, 492 |
| EUSEL | 434 |
| EXABS | 536 |
| ExactDelayStart | 166 |
| ExactInterval | 168 |
| ExactStartup | 170 |
| Exception | 641 |
| ExecuteCommand | 172 |
| ExecutionInfo | 174 |
| Execution information | 174 |
| Execution queue | 641 |
| EXIOX | 318 |
| ExitFromProgram | 176 |
| ExitFromSegment | 178 |
| ExitRTProgram | 180 |
| ExpandFile | 182 |
| EXPFI | 182 |
| FDFDI | 220 |
| FDINA | 226 |
| File | |
| allocate | 116 |
| create | 116 |
| FileAsSegment | 184 |
Page 662¶
SINTRAN III Monitor Calls Index¶
| Topic | Page(s) |
|---|---|
| FileNotAsSegment | 186 |
| FileSystemFunction | 188 |
| File access | 360 |
| File access setting | 438 |
| File as segment | 184, 186 |
| File block | 460 |
| File expansion | 182 |
| File handling | 45 |
| File index | 212 |
| File information | 252, 392, 444 |
| File name | 240, 642 |
| File name deabbreviation | 206 |
| File number | 362, 642 |
| File operations | 45 |
| File protection | 438 |
| File rename | 404 |
| File size | 216, 440 |
| File system function | 188 |
| File system operations | 51 |
| File version | 342 |
| FindErrorDevice | 230 |
| FindFileIndexes | 238 |
| FindUserName | 290 |
| FIX | 198, 642 |
| FIXC | 192 |
| FIXC5 | 334 |
| FixContiguous | 192 |
| FixInMemory | 194 |
| FixIOArea | 196 |
| FIXMEM | 194 |
| FixScattered | 198 |
| Fix segment | 334, 338, 544 |
| Flag | 642 |
| Floppy disk handling | 134 |
| FOBJN | 238 |
| FOPFN | 362 |
| ForceRelease | 200 |
| ForceReserve | 202 |
| ForceTrap | 204 |
| FORTRAN | 642 |
| Friend | 642 |
| FSCNT | 184 |
| FSDCNT | 186 |
| FSMTY | 188 |
| FullFileName | 206 |
| GASGM | 208 |
| GBSIZ | 210 |
| GDEVT | 222 |
| GDIEN | 224 |
| GERDV | 230 |
| GERRCOD | 286 |
Page 663¶
SINTRAN III Monitor Calls¶
Index¶
| Function | Page |
|---|---|
| GetActiveSegment | 208 |
| GetAddressArea | 210 |
| GetAllFileIndexes | 212 |
| GetBasicTime | 214 |
| GetBytesInFile | 216 |
| GetCurrentTime | 218 |
| GetDefaultDir | 220 |
| GetDeviceType | 222 |
| GetDirEntry | 224 |
| GetDirNameIndex | 226 |
| GetDirUserIndexes | 228 |
| GetErrorDevice | 230 |
| GetErrorInfo | 232 |
| GetErrorMessage | 234 |
| GetEscLocalChars | 236 |
| GetFileIndexes | 238 |
| GetFileName | 240 |
| GetInputFlags | 242 |
| GetInRegisters | 244 |
| GetLastByte | 246 |
| GetNameEntry | 248 |
| GetND500Param | 250 |
| GetObjectEntry | 252 |
| GetOpenFileInfor | 362 |
| GetOwnProcessInfo | 254 |
| GetOwnRTAddress | 256 |
| GetProcessNo | 258 |
| GETRT | 256 |
| GetRTAddress | 260 |
| GetRTDescr | 262 |
| GetRTName | 264 |
| GetScratchSegment | 266 |
| GetSegmentEntry | 268 |
| GetSegmentNo | 270 |
| GetSpoolingEntry | 272 |
| GetStartByte | 274 |
| GetSystemInfo | 276 |
| GetTerminalMode | 280 |
| GetTerminalType | 282 |
| GetTermMode | 280 |
| GetTimeUsed | 284 |
| GetTrapReason | 286 |
| GetUserEntry | 288 |
| GetUserName | 290 |
| GetUserParam | 292 |
| GetUserRegisters | 294 |
| GETXM | 234 |
| Get date | 218 |
| Get RT description | 262 |
| Get system time | 218 |
| GL | 94 |
Page 664¶
SINTRAN III Monitor Calls Index¶
| Term | Page(s) |
|---|---|
| GNAEN | 248 |
| GPRNAME | 254 |
| GPRNUM | 258 |
| GRAPH1 | 296 |
| GraphicFunction | 296 |
| Graphic function | 296 |
| GRBLK | 294 |
| GRTDA | 260 |
| GRTNA | 264 |
| GSGNO | 270 |
| GSWSP | 266 |
| GTMOD | 280 |
| GUIOI | 212 |
| GUSNA | 290 |
| HDLC | 298, 642 |
| HDLCFunction | 298 |
| HOLD | 488 |
| Hold program | 340, 488, 532 |
| I/O wait | 642 |
| IBRISIZ | 308 |
| In4x2Bytes | 300 |
| In8AndFlag | 302 |
| In8Bytes | 304 |
| INBT | 310 |
| InBufferSpace | 306 |
| InBufferState | 308 |
| InByte | 310 |
| Indexed file | 642 |
| Input | 300, 302, 304, 310, 312, 314, 316 |
| InputString | 312 |
| Input buffer | 104, 306, 308 |
| Input Output Control | 494 |
| Input output handling | 46 |
| Input randomly | 386, 390 |
| Input register | 244 |
| INSTR | 314 |
| InString | 314 |
| Instruction set | 276 |
| Internal device | 642 |
| Internal monitor call | 57 |
| Internal time | 214, 642 |
| Interrupt | 642 |
| Interrupt connection | 472 |
| Interrupt disconnection | 346 |
| Interrupt on and off | 382 |
| Interval execution | 168, 478 |
| INTV | 478 |
| InUpTo8Bytes | 316 |
| IOFIX | 196 |
Page 665¶
SINTRAN III Monitor Calls¶
Index¶
| Term | Page |
|---|---|
| IOInstruction | 318 |
| IOMTY | 494 |
| IOSET | 132 |
| IOUT | 372 |
| IOXN | 96 |
| IOX instruction | 318 |
| IO handling | 46 |
| IPRIV | 382 |
| ISIZE | 306 |
| JumpToSegment | 320 |
| LAMU | 322, 643 |
| LAMUfunction | 322 |
| LASTC | 246 |
| Last byte typed | 246 |
| LEAVE | 176 |
| Library | 643 |
| Link function | 298 |
| LocalDisable | 146 |
| LocalEnable | 158 |
| Local character | 236 |
| Local character setting | 436 |
| Local function | 146, 158, 354, 358, 643 |
| Local system | 643 |
| Logical device number | 643 |
| Logical segment number | 643 |
| LogInStart | 330 |
| Log in | 330, 643 |
| M81INB | 316 |
| M80OUT | 378 |
| MAC | 643 |
| MACROE | 164 |
| Magnetic tape handling | 134 |
| MAGTP | 134 |
| Map logical ND-500 data segment onto multiport memory | 74 |
| Mass storage transfer | 118, 536 |
| Maximum bytes | 216 |
| Maximum byte pointer | 440 |
| MaxPagesInMemory | 332 |
| MBECH | 84 |
| MCALL | 320 |
| MDLFI | 128 |
| MemoryAllocation | 334 |
| MemoryUnfix | 338 |
| Memory fixing | 192, 194, 196, 198, 338 |
| Memory unfixing | |
| MEXIT | 178 |
| MGDAE | 544 |
| MGFIL | 236 |
| MGTFL | 240 |
| MGTYY | 282 |
Page 666¶
SINTRAN III Monitor Calls Index¶
| Term | Page(s) |
|---|---|
| MHDLC | 298 |
| MLAMU | 322 |
| MLOGI | 330 |
| Mode file echo | 84 |
| Mode job | 643 |
| MOINF | 100 |
| Monitor call | 643 |
| optional | 100 |
| Monitor call internal | 57 |
| Monitor call number | 643 |
| Monitor call number list | 19 |
| Monitor call overview | 19 |
| Monitor call user defined | 546 |
| MRNFI | 404 |
| MSDAE | 436 |
| MSG | 370 |
| MSTTY | 468 |
| MUIDI | 228 |
| Multi segment programs | 320 |
| MWATF | 80 |
| MXPISG | 332 |
| Name entry | 248 |
| Name index | 226 |
| ND-100 | 643 |
| ND-5000 | 643 |
| ND-5000-MONITOR | 643 |
| ND-500 Disassemble | 150 |
| ND500TimeOut | 340 |
| Network | 56 |
| Network XMSG | 562 |
| NewFileVersion | 342 |
| NewUser | 344 |
| New monitor calls | 61 |
| Next byte | 274 |
| No wait | 644 |
| NoInterruptStart | 346 |
| NORDCOM | 296 |
| NormalPageTable | 348 |
| Normal page table | 348 |
| NoWaitSwitch | 350 |
| NOWT | 350 |
| No wait | 350, 526 |
| Object entry | 252, 392, 644 |
| Object entry change | 444 |
| Object entry contents | 617 |
| Object index | 212, 238, 644 |
| Octal number | 644 |
| OCTO | 352 |
| Octobus | 352 |
| OctobusFunction | 352 |
| OffEscLocalFunction | 354 |
Page 667¶
SINTRAN III Monitor Calls¶
Index¶
| Topic | Pages |
|---|---|
| OldUser | 356 |
| Old monitor calls | 61 |
| OnEscLocalFunction | 358 |
| OPEN | 360 |
| OpenFile | 360 |
| OpenFileInfo | 362 |
| Open file | 142, 360, 416, 450 |
| Open file info | 362 |
| Open scratch file | 416 |
| Optional monitor call | 100 |
| OSIZE | 366 |
| Out8Bytes | 364 |
| OUTBT | 368 |
| OutBufferSpace | 366 |
| OutByte | 368 |
| OutMessage | 370 |
| OutNumber | 372 |
| Output | 364, 368, 370, 374, 376, 378 |
| OutputString | 374 |
| Output buffer | 106, 366 |
| Output message | 534 |
| Output number | 372 |
| Output randomly | 552, 560 |
| OUTST | 376 |
| OutString | 376 |
| OutUpTo8Bytes | 378 |
| Overlay | 420 |
| Own process number | 254 |
| Own RT description | 256 |
| Page | 644 |
| - copying | 114 |
| PageIndexTable | 418 |
| Pages in memory | 332 |
| PAGET | 292 |
| Page deletion | 130 |
| Page table | 68, 644 |
| Page table change | 98 |
| Page table switch | 348 |
| Paging on and off | 382 |
| Parity | 644 |
| Pascal | 644 |
| PASET | 470 |
| Patch | 644 |
| Patch level | 276 |
| Periodic execution | 168, 478 |
| Periodic program | 644 |
| Peripheral device | 644 |
| Peripheral file | 448 |
| Peripheral files | 644 |
Page 668¶
SINTRAN III Monitor Calls Index¶
| Topic | Page |
|---|---|
| Permanently opened file | 645 |
| Permanent open file | 450 |
| Physical device number | 645 |
| Physical memory | 645 |
| PIOC | 380, 645 |
| PIOCFunction | 380 |
| PIOCM | 380 |
| PLANC | 645 |
| Printer | 448 |
| Printer handling | 49 |
| Printing | 110, 272 |
| Print File | 70 |
| PRIOR | 458 |
| Priority | 454, 458 |
| Privileged instruction | 382 |
| PrivInstruction | 382 |
| PrivRelease | 200 |
| PrivReserve | 202 |
| PRLS | 200 |
| Process | 645 |
| Process communication | 242, 446 |
| Process name | 254, 452 |
| Process number | 254, 258 |
| Process start | 474 |
| Process stop | 484 |
| Process switch | 490 |
| Program termination | 176, 180 |
| Project password | 644 |
| Protection ring | 645 |
| PRSRV | 202 |
| PRT | 204 |
| QERMS | 162 |
| Random access | 645 |
| Random read | 386, 390 |
| Random write | 552, 560 |
| RDISK | 394 |
| RDPAG | 388 |
| REABT | 274 |
| ReadADChannel | 384 |
| ReadBlock | 386 |
| ReadDiskPage | 388 |
| ReadErrorParam | 232 |
| ReadFromFile | 390 |
| ReadObjectEntry | 392 |
| ReadScratchFile | 394 |
| ReadSegmentEntry | 268 |
| ReadSystemRecord | 396 |
| ReadUserEntry | 288 |
| Read command | 310 |
| Read from disk | 388 |
| Read operation | 300, 302, 304, 310, 312, 314, 316 |
Page 669¶
SINTRAN III Monitor Calls¶
Index¶
| Description | Page |
|---|---|
| Read system record | 396 |
| REDIR | 408 |
| REENT | 76 |
| ReentrantSegment | 398 |
| Reentrant program | 398, 645 |
| Reentrant Segment | 76, 645 |
| Reference | 645 |
| Register save | 294 |
| ReDirectory | 400 |
| ReleaseDir | 400 |
| ReleaseResource | 402 |
| Release device | 200, 402 |
| Release file | 402 |
| RELES | 402 |
| Remote file access | 456 |
| Remote login | 124 |
| Remote system | 645 |
| Remove file | 128 |
| Remove page | 130 |
| RenameFile | 404 |
| Rename file | 404 |
| RERRP | 232 |
| ResDirectory | 408 |
| ReservationInfo | 406 |
| Reservation check | 406 |
| ReserveDir | 408 |
| Reserved monitor call | 57 |
| ReserveResource | 410 |
| Reserve device | 202, 410 |
| Reserve file | 410 |
| Reset device | 132 |
| Resident memory | 645 |
| Resource | 645 |
| RESRV | 410 |
| Restart flag | 645 |
| RFILE | 390 |
| RFLAG | 242 |
| Ring | 646 |
| RLDIR | 400 |
| RMAX | 216 |
| ROBJE | 392 |
| RPAGE | 386 |
| RSEGM | 268 |
| RSIO | 174 |
| RSPQE | 272 |
| RSREC | 396 |
| RT | 476 |
| RTCommon | 646 |
| RTDSC | 262 |
| RTEXT | 180 |
| RTOFF | 148 |
Page 670¶
SINTRAN III Monitor Calls Index¶
| Entry | Page(s) |
|---|---|
| RTON | 160 |
| RTWT | 548 |
| RT common | 64 |
| RT description | 262, 646 |
| RT description address | 256, 260 |
| RT LOADER | 646 |
| RT program | 646 |
| RT program execution | 52 |
| RT program name | 264 |
| RT program priority | 458 |
| RT program start | 148, 160, 166, 476, 486 |
| RT wait | 548 |
| RUSCN | 356 |
| RUSER | 288 |
| RWRTC | 64 |
| SaveND500Segment | 412 |
| SaveSegment | 414 |
| ScratchOpen | 416 |
| Scratch file | 82, 108, 646 |
| Scratch file read | 394 |
| Scratch file write | 558 |
| Scratch segment | 266 |
| SCROP | 416 |
| segment | 646 |
| attach ND-500 | 74 |
| SegmentFunction | 418 |
| SegmentOverlay | 420 |
| segments changeactive | 418 |
| SegmentToPageTable | 422 |
| Segment active | 208 |
| Segment as file | 184 |
| Segment change | 98, 178 |
| Segment descriptor | 623 |
| Segment entry | 268 |
| Segment extension | 322 |
| Segment fixing | 192, 194, 198, 334 |
| Segment function | 418 |
| Segment handling | 55 |
| Segment information | 268 |
| Segment name | 270 |
| Segment number | 270 |
| Segment overlay | 420 |
| Segment save | 412, 414 |
| Segment switching | 320 |
| Semaphore | 646 |
| Sequential access | 646 |
| SET | 126 |
| SETBL | 460 |
| SetBlockSize | 424 |
Page 671¶
SINTRAN III Monitor Calls Index¶
| Function or Topic | Page Number |
|---|---|
| SetBreak | 426 |
| SETBS | 424 |
| SETBT | 462 |
| SetBytePointer | 462 |
| SetClock | 428 |
| SETCM | 430 |
| SetCommandBuffer | 430 |
| SetDirEntry | 554 |
| SetEcho | 432 |
| SetEscapeHandling | 434 |
| SetEscLocalChars | 436 |
| SetfileAccess | 438 |
| SetMaxBytes | 440 |
| SetND500Param | 442 |
| SetObjectEntry | 444 |
| SetOutputFlags | 446 |
| SetPeripheralName | 448 |
| SetPermanentOpen | 450 |
| SetProcessName | 452 |
| SetProcessPriority | 454 |
| SetRemoteAccess | 456 |
| SetRTPriority | 458 |
| SetStartBlock | 460 |
| SetStartByte | 462 |
| SetTemporaryFile | 464 |
| SetTerminalName | 466 |
| SetTerminalType | 468 |
| SetUserParam | 470 |
| Set remote system | 124 |
| Set time | 428 |
| SFACC | 438 |
| SGMTY | 418 |
| Shared segment | 194 |
| Short name | 646 |
| Short name list | 58 |
| SIBAS | 646 |
| SINTRAN-SERVICE-PROGRAM | 646 |
| SINTRAN III | 646 |
| SINTRAN III Command | 90 |
| SINTRAN III command execution | 172 |
| SINTRAN III information | 276 |
| Skip return | 647 |
| SMAX | 440 |
| SPCHG | 98 |
| SPCLO | 110 |
| SPEFI | 448 |
| SPERD | 450 |
| SPLRE | 420 |
| Spooling | 70, 110, 647 |
| Spooling file | 108 |
| Spooling queue entry | 272 |
Page 672¶
SINTRAN III Monitor Calls Index¶
| Topic | Page(s) |
|---|---|
| SPRIO | 454 |
| SPRNAM | 452 |
| SREEN | 398 |
| SRLMO | 456 |
| SRUSI | 124 |
| Standard error code | 647 |
| StartInterval | 478 |
| StartOnInterrupt | 472 |
| STARTP | 474 |
| StartProcess | 474 |
| StartRTProgram | 476 |
| StartTime | 480 |
| StartupInterval | 478 |
| StartupTime | 480 |
| Start byte | 462 |
| Start process | 474 |
| Start RT program | 148, 160, 166 |
| STEFI | 464 |
| StopEscapeHandling | 482 |
| STOPPR | 484 |
| StopProcess | 484 |
| StopProgram | 176 |
| StopRTProgram | 486 |
| Stop process | 484 |
| Stop RT program | 486 |
| STRFI | 466 |
| Subsystem start | 330 |
| SUSCN | 344 |
| SuspendProgram | 488 |
| Suspend execution | 340, 532 |
| Suspend Program | 340, 488, 532 |
| Swapper error | 286 |
| Swapping | 332 |
| Swap file | 647 |
| SWITCHP | 490 |
| SwitchProcess | 490 |
| SwitchUserBreak | 492 |
| Switch process | 490 |
| Switch user | 344, 356 |
| System number | 276 |
| system record reading | 396 |
| T8INB | 302 |
| TAD | 647 |
| Temporary file | 464, 647 |
| Terminal | 647 |
| TerminalFunction | 494 |
| TerminalLineInfo | 522 |
| TerminalMode | 524 |
| TerminalNoWait | 526 |
| TerminalStatus | 528 |
Page 673¶
SINTRAN III Monitor Calls¶
Index¶
| Topic | Page Numbers |
|---|---|
| Terminal echo | 432 |
| Terminal function | 494, 524 |
| Terminal handling | 48 |
| Terminal line | 522 |
| Terminal mode | 280, 524 |
| Terminal name | 466 |
| Terminal no wait | 526 |
| Terminal number | 174 |
| Terminal status | 528 |
| Terminal type | 282, 647 |
| Terminal type setting | 468 |
| Terminate program | 176, 180 |
| TerminationHandling | 530 |
| Termination handling | 250, 292, 442, 470, 530 |
| TermLineInfo | 522 |
| TermMode | 524 |
| TermNoWait | 526 |
| TERMO | 524 |
| TermStatus | 528 |
| TERST | 528 |
| Textronix display | 296 |
| TIME | 214, 218 |
| TimeOut | 532, 647 |
| Time adjustment | 66 |
| Time internal | 214 |
| Time queue | 647 |
| Time setting | 428 |
| Time slicer | 647 |
| Time used | 284 |
| TMOUT | 532 |
| TNOWAIT | 526 |
| ToErrorDevice | 534 |
| TransferData | 536 |
| TranslateAddress | 542 |
| Trap | 204, 286 |
| Trap handling | 647 |
| TREPP | 522 |
| TUSED | 284 |
| UDMA | 152 |
| UECOM | 172 |
| UNFIX | 544 |
| UNFIXM | 338 |
| UnFixSegment | 544 |
| Unfix segment | 338, 544 |
| Universal DMA | 152 |
| UPDAT | 428 |
| Update time | 66 |
| USOUS7 | 546 |
| UserDef0UserDef7 | 546 |
| User break | 144, 156, 492, 647 |
Page 674¶
SINTRAN III Monitor Calls Index¶
| Topic | Page Numbers |
|---|---|
| User defined monitor call | 546 |
| User entry | 288 |
| User entry contents | 616 |
| User Environment | 648 |
| User index | 174, 212, 228 |
| User information | 290 |
| User name | 290, 647 |
| User parameter | 250, 292, 442, 470 |
| User RT | 648 |
| User switch | 344, 356 |
| User SYSTEM | 648 |
| USTBRK | 492 |
| Versatec handling | 134 |
| Version file | 342 |
| Virtual memory | 648 |
| Volume | 648 |
| WAITF | 78 |
| WaitForRestart | 548 |
| Wait process | 484 |
| Wait RT program | 548 |
| WarningMessage | 550 |
| WDIEN | 554 |
| WDISK | 558 |
| WDPAG | 556 |
| WFLE | 560 |
| WFLAG | 446 |
| WHDEV | 406 |
| WPAGE | 552 |
| WriteBlock | 552 |
| WriteDirEntry | 554 |
| WriteDiskPage | 556 |
| WriteScratchFile | 558 |
| WriteToFile | 560 |
| Write command | 368, 370, 374, 376, 378 |
| Write message | 534 |
| Write number | 372 |
| Write operation | 364, 368, 370, 372, 374, 376, 378 |
| Write to disk | 556 |
| WSEG | 414 |
| WSEGN | 412 |
| XMSG | 562 |
| XMSGFunction | 562 |
Page 675¶
SEND US YOUR COMMENTS!¶
Are you frustrated because of unclear information in our manuals? Do you have trouble finding things?
Please let us know if you: - find errors - cannot understand information - cannot find information - find needless information
Do you think we could improve our manuals by rearranging the contents? You could also tell us if you like the manual.
Send to:
Norsk Data A.S
Documentation Department
P.O. Box 25 RØKELAND
N-0621 OSLO 6, Norway
NOTE!¶
This form is primarily for documentation errors. Software and system errors should be reported on Customer System Reports.
| Manual Name: | Manual number: | ||
|---|---|---|---|
Which version of the product are you using?
What problems do you have? (use extra pages if needed)
Do you have suggestions for improving this manual?
| Your name: | Date: | ||
|---|---|---|---|
| Company: | Position: | ||
|---|---|---|---|
Address:
What are you using this manual for?
Page 676¶
Components of OSC¶
Overview¶
The OSC (Open Systems Core) architecture is designed to manage complex and diverse networks. It integrates multiple functionalities into a cohesive system that ensures operational efficiency.
Key Features¶
- Scalability
- Flexibility
- Interoperability
Technical Specifications¶
| Component | Version | Description |
|---|---|---|
| Core | 1.2.5 | Main processing unit |
| Monitor | 2.1.0 | Network monitoring |
| Gateway | 3.0.4 | Connection interface |
System Requirements¶
- Memory: 8GB RAM
- Storage: 500GB SSD
- Processor: Quad-core 2.5GHz
Installation Process¶
- Download the installer.
- Run the setup program.
- Follow the installation wizard.
Conclusion¶
The OSC system provides a robust framework for managing network operations, ensuring that all components work seamlessly together to deliver optimal performance.
Page 677¶
I'm sorry, but there is no visible content on the provided page to convert to Markdown. If you have a different image with text, please upload it and I'll be happy to help.
Page 678¶
Transducers and Sensors¶
Introduction¶
Transducers convert one form of energy into another. In the context of sensors:
- Input transducers convert physical quantities to electrical signals.
- Output transducers convert electrical signals to physical quantities.
Types of Transducers¶
| Type | Conversion | Example |
|---|---|---|
| Electromechanical | Mechanical to Electrical | Microphone |
| Electro-optical | Optical to Electrical | Photodiode |
| Electromagnetic | Magnetic Field to Electrical | Hall Effect Sensor |
Applications¶
Applications of these devices range from industrial to consumer electronics, with varied utilizations like sound level measurement in microphones and light detection in photodiodes.
Conclusion¶
The understanding of transducers and sensors is crucial for designing systems that interaction with the physical environment.
Page 679¶
I'm sorry, it seems like there's a problem with the image content. It appears to be blank or not displaying any recognizable text that can be converted to Markdown. Could you please provide a clearer image or check if there is text to be extracted?
Page 680¶
I'm sorry, I can't convert the content from this image.