List of SITS system calls: Difference between revisions

From Computer History Wiki
Jump to navigationJump to search
Larsbrinkhoff (talk | contribs)
Add more.
m +Cats
 
(6 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.  (C) indicates a capability.
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
! colspan="3" | Arguments
! colspan="4" | Inputs
! Outputs
|-
|-
| 0
| 0
| .NOOP
| .NOOP
| None
| -
| colspan="3" | None
| colspan="4" | -
| -
|-
|-
| 1
| 1
| .FORK
| .FORK
| Create new process
| Create new process
| colspan="3" | Entry point
| colspan="4" | Entry point
| -
|-
|-
| 2
| 2
| .POOFF
| .POOFF
| Kill this process
| Kill this process
| colspan="3" | None
| colspan="4" | -
| -
|-
|-
| 3
| 3
| .SLEEP
| .SLEEP
| Sleep
| Sleep
| Time
| colspan="2" | Time (least significant)
| colspan="2" | Time
| colspan="2" | Time (most significant)
| -
|-
|-
| 4
| 4
| .SINK
| .SINK
| Disable floating point
| Disable floating point
| colspan="3" | None
| colspan="4" | -
| -
|-
|-
| 5
| 5
| .FLOAT
| .FLOAT
| Enable floating point
| Enable floating point
| colspan="3" | None
| colspan="4" | -
| -
|-
|-
| 6
| 6
| .INVOK
| .INVOK
| Invoke capability
| Invoke capability
| Capability (C)
| Function,,capability (C)
| argument
| argument
| argument
| colspan="2" | argument
| (Variable)
|-
|-
| 7
| 7
| .QULK
| .QULK
| Lock queue  
| Lock queue  
| colspan="3" | Queue (C)
| colspan="4" | Queue (C)
| -
|-
|-
| 10
| 10
| .QUNLK
| .QUNLK
| Unlock queue
| Unlock queue
| colspan="3" | Queue (C)
| colspan="4" | Queue (C)
| -
|-
|-
| 11
| 11
| .TTGIV
| .TTGIV
| Give TTY away
| Give TTY away
| Master sphere (C)
| colspan="2" | Master sphere (C)
| colspan="2" | Teletype (C)
| colspan="2" | Teletype (C)
| -
|-
|-
| 12
| 12
| .TTGET
| .TTGET
| Get the TTY
| Get the TTY
| colspan="3" | Teletype (C)
| colspan="4" | Teletype (C)
| -
|-
|-
| 13
| 13
| .WRDI
| .WRDI
| Word input
| Word input
| colspan="3" |  
| colspan="4" | File (C)
| Data
|-
|-
| 14
| 14
| .WRDO
| .WRDO
| Word output
| Word output
| colspan="3" |
| colspan="4" | File (C)
| -
|-
|-
| 15
| 15
| .BYTI
| .BYTI
| Byte input
| Byte input
| colspan="3" |
| colspan="4" | File (C)
| Data
|-
|-
| 16
| 16
| .BYTO
| .BYTO
| Byte output
| Byte output
| colspan="3" |
| colspan="4" | File (C)
| -
|-
|-
| 17
| 17
| .BLKI
| .BLKI
| Block input
| Block input File (C)
| colspan="3" |
| File (C)
| Length
| colspan="2" | Address
| -
|-
|-
| 20
| 20
| .BLKO
| .BLKO
| Block output
| Block output
| colspan="3" |
| File (C)
| Length
| colspan="2" | Address
| -
|-
|-
| 21
| 21
| .MAP
| .MAP
| Create page
| Create page
| colspan="3" |  
| Access,,sphere (C)
| Destination page,,source type
| Source page
| Page length,,page offset
| -
|-
|-
| 22
| 22
Line 109: Line 134:
| Size
| Size
| Start
| Start
| Disk
| colspan="2" | Disk
| -
|-
|-
| 23
| 23
Line 116: Line 142:
| Copy name
| Copy name
| Length of name
| Length of name
| Pointer to name
| colspan="2" | Pointer to name
| -
|-
|-
| 24
| 24
| .RDMAP
| .RDMAP
| Read map
| Read map
| Sphere (C)
| colspan="2" | Sphere (C)
| colspan="2" | Address
| colspan="2" | Address
| -
|-
|-
| 25
| 25
| .FONT
| .FONT
| Read or write font
| Read or write font
| Function,,font
| colspan="2" | Function,,font
| colspan="2" | Address
| colspan="2" | Address
| -
|-
|-
| 26
| 26
| .SSTAT
| .SSTAT
| Read system status  
| Read system status  
| colspan="3" | Address
| colspan="4" | Address
| -
|-
|-
| 27
| 27
| .VIDSW
| .VIDSW
| Set video switch modes
| Set video switch modes
| Source
| colspan="2" | Source
| colspan="2" | Destination
| colspan="2" | Destination
| -
|-
|-
| 30
| 30
| .RUG
| .RUG
| Hack system sphere(?)
| System sphere breakpoint to RUG
| colspan="3" |
| colspan="4" | -
| -
|-
|-
| 31
| 31
| .GERRW
| .GERRW
| Get error word
| Get error word
| colspan="3" |
| colspan="4" | -
| (Variable)
|-
|-
| 32
| 32
| .TIME
| .TIME
| Get or set time
| Get or set time
| colspan="3" |
| colspan="4" | Address of six words: seconds, minutes, hours, days, months, years
| -
|-
|-
| 33
| 33
| .SYJB
| .SYSJB
| Perform system job
| Perform system job
| colspan="3" | None
| colspan="4" | -
| -
|-
|-
| 34
| 34
| .GETID
| .GETID
| Get process id
| Get process id
| colspan="3" |
| colspan="4" | -
| Id
|-
|-
| 35
| 35
| .MFPI
| .MFPI
|
| Read word from instruction address space
| colspan="3" | Address
| colspan="4" | Address
| Data
|-
|-
| 36
| 36
| .OSPAC
| .OSPAC
|
| (?)
| colspan="3" |
| 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