2019-06-15 13:42:30 +02:00
|
|
|
# The OS/K Team licenses this file to you under the MIT license.
|
|
|
|
# See the LICENSE file in the project root for more information.
|
|
|
|
|
|
|
|
CPU device function slots:
|
|
|
|
|
|
|
|
slot ax0 ax1 ax2 thr name desc
|
|
|
|
0-15 - - - - (reserved) (reserved)
|
|
|
|
16 - - - - getmaxidx rax = maximal index for a register frame
|
|
|
|
17 - - - - getrfusage rax = number of register frames active
|
|
|
|
18 - - - - getcuridx rax = index of the current register frame
|
2019-06-15 14:20:35 +02:00
|
|
|
19 - - - - leastavail rax = least index among inactive frames, -1 if none
|
|
|
|
20 i - - - isactive rax = is register frame #ax0 active?
|
|
|
|
21 i - - y activate activates register frame #ax0 (filling it with 0's)
|
|
|
|
22 i - - y deactivate deactivates register frame #ax0 (losing all its contents!)
|
|
|
|
23 i i - y copyframe copy contents of frame #ax1 into (active) frame #ax0
|
|
|
|
24 i i - y moveframe move frame #ax1 to (inactive) frame index #ax0
|
|
|
|
25-31 - - - - (reserved) (reserved)
|
2019-06-15 13:42:30 +02:00
|
|
|
32 i - - - loadargs load registers ax0-ax7 from frame #ax0
|
|
|
|
33 i r - - loadreg rax = register #ax1 from frame #ax0
|
|
|
|
34-47 - - - - (reserved) (reserved)
|
|
|
|
48 i r i y storereg store ax2 into register #ax1 from frame #ax0
|
|
|
|
49-63 - - - - (reserved) (reserved)
|
|
|
|
64 i i - y idtadd mark interrupt #ax0 as handled by register frame #ax1
|
|
|
|
65 i - - y idtdel mark interrupt #ax0 as unhandled
|
|
|
|
66 i - - - idtquery rax = interrupt #ax0 handled? rdx = index of handling frame
|
2019-06-15 13:44:24 +02:00
|
|
|
67+ - - - - (reserved) (reserved)
|
2019-06-15 13:42:30 +02:00
|
|
|
|
|
|
|
Arguments:
|
|
|
|
i immediate
|
|
|
|
r register index (0=inv, 1=rip, etc...)
|
|
|
|
|