mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
105 lines
1.4 KiB
Plaintext
105 lines
1.4 KiB
Plaintext
; The OS/K Team licenses this file to you under the MIT license.
|
|
; See the LICENSE file in the project root for more information.
|
|
|
|
;
|
|
; SHUTDOWN syscall
|
|
;
|
|
; End virtual machine
|
|
;
|
|
Sys.Shutdown := 0x00
|
|
|
|
;
|
|
; EXIT syscall
|
|
;
|
|
; Return to COMMAND.COM
|
|
;
|
|
Sys.Exit := 0x01
|
|
|
|
;
|
|
; EXEC syscall
|
|
;
|
|
; IN
|
|
; ax0 = new RIP to load
|
|
; ax1 = frame ID to switch to
|
|
;
|
|
; New frame ID must be higher than current
|
|
; frame ID, and cannot be below 5
|
|
;
|
|
; New CR1 is set so that new RIP corresponds to 1MB
|
|
;
|
|
Sys.ExecuteInFrame := 0x02
|
|
|
|
; FIND syscalls
|
|
;
|
|
; Find file on disk
|
|
;
|
|
; IN
|
|
; ax0 = address of name buffer
|
|
; ax1 = size of name buffer
|
|
;
|
|
; OUT
|
|
; rax = # of bytes written in name buffer
|
|
; rdx = size of file
|
|
;
|
|
;
|
|
Sys.FindFirst := 0x20
|
|
Sys.FindNext := 0x21
|
|
|
|
;
|
|
; OPEN syscall
|
|
;
|
|
; IN
|
|
; ax0 = name string
|
|
;
|
|
; OUT
|
|
; rax = handle of file, or <0 if couldn't open
|
|
;
|
|
Sys.OpenFile := 0x30
|
|
|
|
;
|
|
; CREATE syscall
|
|
;
|
|
; IN
|
|
; ax0 = name string
|
|
;
|
|
; OUT
|
|
; rax = 0 on success, or <0 if couldn't open
|
|
;
|
|
Sys.CreateFile := 0x31
|
|
|
|
;
|
|
; REMOVE syscall
|
|
;
|
|
; IN
|
|
; ax0 = name string
|
|
;
|
|
; OUT
|
|
; rax = 0 on success, or <0 if couldn't open
|
|
;
|
|
Sys.RemoveFile := 0x32
|
|
|
|
;
|
|
; CLOSE syscall
|
|
;
|
|
; IN
|
|
; ax0 = file handle
|
|
;
|
|
Sys.CloseFile := 0x35
|
|
|
|
;
|
|
; READ syscall
|
|
;
|
|
; IN
|
|
; ax0 = file handle
|
|
; ax1 = buffer address
|
|
; ax2 = buffer size
|
|
;
|
|
; OUT
|
|
; rax = number of bytes read, <0 on error
|
|
;
|
|
Sys.ReadFile := 0x38
|
|
|
|
; Halt mode
|
|
Sys.EnterHaltMode := 0x999
|
|
|