F$SSvc

Set SVC
Adds or replaces a system call

OS9 F$SSvc 103F 32

Entry Conditions

Y address of the system call initialization table

Exit Conditions

None

Error Output

CC carry set on error
B error code, if any

Additional Information

  • Set SVC adds or replaces a system call, which you have written, to NitrOS-9’s user and system mode system call tables.
  • Register Y passes the address of a table, which contains the function codes and offsets, to the corresponding system call handler routines. This table has the following format:

Relative
Address

Use
 

$00
Function Code

$02
Offset From Byte 3
To Function Handler
 

$03
Function Code

$05
Offset From Byte 6
To Function Handler
 

 

More Entries

 
$80
End-of-table mark

  • If the most significant bit of the function code is set, NitrOS-9 updates the system table. If the most significant bit of the function code is not set, NitrOS-9 updates the system and user tables.
  • The function request codes are in the range $29-$34. I/O calls are in the range $80-$90.
  • To use a privileged system call, you must be executing a program that resides in the system map and that executes in the system state.
  • The system call handler routine must process the system call and return from the subroutine with an RTS instruction.
  • The handler routing might alter all CPU registers (except Register SP).
  • Register U passes the address of the register stack to the system call hander as shown in the following diagram:

 
Relative
Address

Name

U -->
CC
    
$00
R$CC

A
$01
R$A (R$D)

B
$02
R$B

DP
$03
R$DP

X
$04
R$X

Y
$06
R$Y

U
$08
R$U

PC
$0A
R$PC

krn


MongoDB Logo MongoDB