summaryrefslogtreecommitdiff
path: root/doc/ints.txt
blob: 2a97049d3585b324926e631c0d0be0f0ca5677c6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
quit task is int 0x38


yield task is int 0x39
eax is cleared on yield


syscall is int 0x30
system call number in eax
args in ebx, ecx, edx, esi, edi
result in eax
  note: do not assume eax is unmodified if there is no value to be returned
modifies ecx, edx

file system calls have units of bytes unless otherwise specified
functions returning handles or pointers use 0 to indicate error
functions returning "success" use 1 for success and 0 for failure
see keys.txt for the return type of the "get key" system call

invalid system call numbers change eax to -1, and have no other effect.


 function      | eax | eax out       | ebx           | ecx         | edx   | esi    | edi
---------------|-----|---------------|---------------|-------------|-------|--------|-----
 open file     | 0x0 | handle        | drive number  | path        |       |        |
 close file    | 0x1 |               | handle        |             |       |        |
 file read     | 0x2 | read          | handle        | file offset | count | buffer |
 get file size | 0x3 | size          | handle        |             |       |        |
 start task    | 0x4 | success       | drive number  | path        |       |        |
 log string    | 0x5 |               | sz string     |             |       |        |
 get key       | 0x6 | keycode       |               |             |       |        |
 allocate ram  | 0x7 | start pointer | pages         |             |       |        |