Difference between revisions of "List of SITS system calls"

From Computer History Wiki
Jump to: navigation, search
(EMT or TRAP.)
m (+Cats)
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[SITS]] system calls were done using EMT in loder 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.
+
[[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 arguments go on the stack.
+
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
! Function
+
! Description
! Arguments
+
! colspan="4" | Inputs
! Return values
+
! Outputs
 
|-
 
|-
 
| 0
 
| 0
 
| .NOOP
 
| .NOOP
| None
+
| -
| None
+
| colspan="4" | -
| None
+
| -
 
|-
 
|-
 
| 1
 
| 1
 
| .FORK
 
| .FORK
 
| Create new process
 
| Create new process
| Entry point
+
| colspan="4" | Entry point
| None
+
| -
 
|-
 
|-
 
| 2
 
| 2
 
| .POOFF
 
| .POOFF
| Kill self
+
| Kill this process
| None
+
| colspan="4" | -
| None
+
| -
 
|-
 
|-
 
| 3
 
| 3
 
| .SLEEP
 
| .SLEEP
 
| Sleep
 
| Sleep
| Long word: positive number 60th seconds, or negative time to continue
+
| colspan="2" | Time (least significant)
| None
+
| 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
| .SYJB
+
| .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 22: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