Difference between revisions of "List of SITS system calls"
From Computer History Wiki
(Starting to fill in information.) |
m (+Cats) |
||
| (9 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
| − | [[SITS]] system calls | + | [[SITS]] system calls were done using EMT in older versions, and TRAP in newer. The system call number makes up the lower 7 bits. Bit 200 can be set to have the call fault on error, in which case a $ replaces the . in the symbolic name. |
| + | |||
| + | System call inputs are popped off the stack, and outputs are pushed. On error, the Z flag is set and arguments are left on the stack. In the table below, (C) indicates a capability. | ||
{| class="wikitable" | {| class="wikitable" | ||
| − | |||
! Number | ! Number | ||
! Name | ! Name | ||
| − | ! | + | ! Description |
| − | ! | + | ! colspan="4" | Inputs |
| − | ! | + | ! Outputs |
|- | |- | ||
| 0 | | 0 | ||
| .NOOP | | .NOOP | ||
| − | | | + | | - |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 1 | | 1 | ||
| .FORK | | .FORK | ||
| Create new process | | Create new process | ||
| − | | Entry point | + | | colspan="4" | Entry point |
| − | | | + | | - |
|- | |- | ||
| 2 | | 2 | ||
| .POOFF | | .POOFF | ||
| − | | Kill | + | | Kill this process |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 3 | | 3 | ||
| .SLEEP | | .SLEEP | ||
| Sleep | | Sleep | ||
| − | | | + | | colspan="2" | Time (least significant) |
| − | | | + | | colspan="2" | Time (most significant) |
| + | | - | ||
|- | |- | ||
| 4 | | 4 | ||
| .SINK | | .SINK | ||
| − | | | + | | Disable floating point |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 5 | | 5 | ||
| .FLOAT | | .FLOAT | ||
| − | | | + | | Enable floating point |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 6 | | 6 | ||
| .INVOK | | .INVOK | ||
| − | | | + | | Invoke capability |
| − | | | + | | Function,,capability (C) |
| − | | | + | | argument |
| + | | colspan="2" | argument | ||
| + | | (Variable) | ||
|- | |- | ||
| 7 | | 7 | ||
| .QULK | | .QULK | ||
| − | | | + | | Lock queue |
| − | | | + | | colspan="4" | Queue (C) |
| − | | | + | | - |
|- | |- | ||
| 10 | | 10 | ||
| .QUNLK | | .QUNLK | ||
| − | | | + | | Unlock queue |
| − | | | + | | colspan="4" | Queue (C) |
| − | | | + | | - |
|- | |- | ||
| 11 | | 11 | ||
| .TTGIV | | .TTGIV | ||
| − | | | + | | Give TTY away |
| − | | | + | | colspan="2" | Master sphere (C) |
| − | | | + | | colspan="2" | Teletype (C) |
| + | | - | ||
|- | |- | ||
| 12 | | 12 | ||
| .TTGET | | .TTGET | ||
| − | | | + | | Get the TTY |
| − | | | + | | colspan="4" | Teletype (C) |
| − | | | + | | - |
|- | |- | ||
| 13 | | 13 | ||
| .WRDI | | .WRDI | ||
| − | | | + | | Word input |
| − | | | + | | colspan="4" | File (C) |
| − | | | + | | Data |
|- | |- | ||
| 14 | | 14 | ||
| .WRDO | | .WRDO | ||
| − | | | + | | Word output |
| − | | | + | | colspan="4" | File (C) |
| − | | | + | | - |
|- | |- | ||
| 15 | | 15 | ||
| .BYTI | | .BYTI | ||
| − | | | + | | Byte input |
| − | | | + | | colspan="4" | File (C) |
| − | | | + | | Data |
|- | |- | ||
| 16 | | 16 | ||
| .BYTO | | .BYTO | ||
| − | | | + | | Byte output |
| − | | | + | | colspan="4" | File (C) |
| − | | | + | | - |
|- | |- | ||
| 17 | | 17 | ||
| .BLKI | | .BLKI | ||
| − | | | + | | Block input File (C) |
| − | | | + | | File (C) |
| − | | | + | | Length |
| + | | colspan="2" | Address | ||
| + | | - | ||
|- | |- | ||
| 20 | | 20 | ||
| .BLKO | | .BLKO | ||
| − | | | + | | Block output |
| − | | | + | | File (C) |
| − | | | + | | Length |
| + | | colspan="2" | Address | ||
| + | | - | ||
|- | |- | ||
| 21 | | 21 | ||
| .MAP | | .MAP | ||
| − | | | + | | Create page |
| − | | | + | | Access,,sphere (C) |
| − | | | + | | Destination page,,source type |
| + | | Source page | ||
| + | | Page length,,page offset | ||
| + | | - | ||
|- | |- | ||
| 22 | | 22 | ||
| .ALLOC | | .ALLOC | ||
| − | | | + | | Allocate swap |
| − | | | + | | Size |
| − | | | + | | Start |
| + | | colspan="2" | Disk | ||
| + | | - | ||
|- | |- | ||
| 23 | | 23 | ||
| .CRUSR | | .CRUSR | ||
| − | | | + | | Make this a user process |
| − | | | + | | Copy name |
| − | | | + | | Length of name |
| + | | colspan="2" | Pointer to name | ||
| + | | - | ||
|- | |- | ||
| 24 | | 24 | ||
| .RDMAP | | .RDMAP | ||
| − | | | + | | Read map |
| − | | | + | | colspan="2" | Sphere (C) |
| − | | | + | | colspan="2" | Address |
| + | | - | ||
|- | |- | ||
| 25 | | 25 | ||
| .FONT | | .FONT | ||
| − | | | + | | Read or write font |
| − | | | + | | colspan="2" | Function,,font |
| − | | | + | | colspan="2" | Address |
| + | | - | ||
|- | |- | ||
| 26 | | 26 | ||
| .SSTAT | | .SSTAT | ||
| − | | | + | | Read system status |
| − | | | + | | colspan="4" | Address |
| − | | | + | | - |
|- | |- | ||
| 27 | | 27 | ||
| .VIDSW | | .VIDSW | ||
| − | | | + | | Set video switch modes |
| − | | | + | | colspan="2" | Source |
| − | | | + | | colspan="2" | Destination |
| + | | - | ||
|- | |- | ||
| 30 | | 30 | ||
| .RUG | | .RUG | ||
| − | | | + | | System sphere breakpoint to RUG |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 31 | | 31 | ||
| .GERRW | | .GERRW | ||
| − | | | + | | Get error word |
| − | | | + | | colspan="4" | - |
| − | | | + | | (Variable) |
|- | |- | ||
| 32 | | 32 | ||
| .TIME | | .TIME | ||
| − | | | + | | Get or set time |
| − | | | + | | colspan="4" | Address of six words: seconds, minutes, hours, days, months, years |
| − | | | + | | - |
|- | |- | ||
| 33 | | 33 | ||
| − | | . | + | | .SYSJB |
| − | | | + | | Perform system job |
| − | | | + | | colspan="4" | - |
| − | | | + | | - |
|- | |- | ||
| 34 | | 34 | ||
| .GETID | | .GETID | ||
| − | | | + | | Get process id |
| − | | | + | | colspan="4" | - |
| − | | | + | | Id |
|- | |- | ||
| 35 | | 35 | ||
| .MFPI | | .MFPI | ||
| − | | | + | | Read word from instruction address space |
| − | | | + | | colspan="4" | Address |
| − | | | + | | Data |
|- | |- | ||
| 36 | | 36 | ||
| .OSPAC | | .OSPAC | ||
| − | | | + | | (?) |
| − | | | + | | colspan="4" | |
| − | | | + | | - |
|} | |} | ||
| + | |||
| + | The .INVOK call is further decoded from the function: | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Number | ||
| + | ! Name | ||
| + | ! Description | ||
| + | ! Input | ||
| + | |- | ||
| + | | 200 | ||
| + | | .DELCP | ||
| + | | Delete capacity | ||
| + | | - | ||
| + | |- | ||
| + | | 201 | ||
| + | | .CPYCP | ||
| + | | Copy capacity | ||
| + | | Control bits to clear | ||
| + | |- | ||
| + | | 202 | ||
| + | | .GIVCP | ||
| + | | Give capacity to another sphere | ||
| + | | Source | ||
| + | |- | ||
| + | | 203 | ||
| + | | .TAKCP | ||
| + | | Take capacity from the sphere | ||
| + | | C-list | ||
| + | |} | ||
| + | |||
| + | [[Category: PDP-11 Operating Systems]] | ||
| + | [[Category: Non-DEC Operating Systems]] | ||
Latest revision as of 21:45, 26 March 2023
SITS system calls were done using EMT in older versions, and TRAP in newer. The system call number makes up the lower 7 bits. Bit 200 can be set to have the call fault on error, in which case a $ replaces the . in the symbolic name.
System call inputs are popped off the stack, and outputs are pushed. On error, the Z flag is set and arguments are left on the stack. In the table below, (C) indicates a capability.
| Number | Name | Description | Inputs | Outputs | |||
|---|---|---|---|---|---|---|---|
| 0 | .NOOP | - | - | - | |||
| 1 | .FORK | Create new process | Entry point | - | |||
| 2 | .POOFF | Kill this process | - | - | |||
| 3 | .SLEEP | Sleep | Time (least significant) | Time (most significant) | - | ||
| 4 | .SINK | Disable floating point | - | - | |||
| 5 | .FLOAT | Enable floating point | - | - | |||
| 6 | .INVOK | Invoke capability | Function,,capability (C) | argument | argument | (Variable) | |
| 7 | .QULK | Lock queue | Queue (C) | - | |||
| 10 | .QUNLK | Unlock queue | Queue (C) | - | |||
| 11 | .TTGIV | Give TTY away | Master sphere (C) | Teletype (C) | - | ||
| 12 | .TTGET | Get the TTY | Teletype (C) | - | |||
| 13 | .WRDI | Word input | File (C) | Data | |||
| 14 | .WRDO | Word output | File (C) | - | |||
| 15 | .BYTI | Byte input | File (C) | Data | |||
| 16 | .BYTO | Byte output | File (C) | - | |||
| 17 | .BLKI | Block input File (C) | File (C) | Length | Address | - | |
| 20 | .BLKO | Block output | File (C) | Length | Address | - | |
| 21 | .MAP | Create page | Access,,sphere (C) | Destination page,,source type | Source page | Page length,,page offset | - |
| 22 | .ALLOC | Allocate swap | Size | Start | Disk | - | |
| 23 | .CRUSR | Make this a user process | Copy name | Length of name | Pointer to name | - | |
| 24 | .RDMAP | Read map | Sphere (C) | Address | - | ||
| 25 | .FONT | Read or write font | Function,,font | Address | - | ||
| 26 | .SSTAT | Read system status | Address | - | |||
| 27 | .VIDSW | Set video switch modes | Source | Destination | - | ||
| 30 | .RUG | System sphere breakpoint to RUG | - | - | |||
| 31 | .GERRW | Get error word | - | (Variable) | |||
| 32 | .TIME | Get or set time | Address of six words: seconds, minutes, hours, days, months, years | - | |||
| 33 | .SYSJB | Perform system job | - | - | |||
| 34 | .GETID | Get process id | - | Id | |||
| 35 | .MFPI | Read word from instruction address space | Address | Data | |||
| 36 | .OSPAC | (?) | - | ||||
The .INVOK call is further decoded from the function:
| Number | Name | Description | Input |
|---|---|---|---|
| 200 | .DELCP | Delete capacity | - |
| 201 | .CPYCP | Copy capacity | Control bits to clear |
| 202 | .GIVCP | Give capacity to another sphere | Source |
| 203 | .TAKCP | Take capacity from the sphere | C-list |