add /IGNORE:4216 to HAL link step, add writing and directory listing to the FAT32 driver, add the concept of current working directory to the VFS, add writing to the VFS, more operations in the shell, rename KeCurrentThread to KeGetCurrentThread and add KeGetCurrentProcess, add STATUS_NO_MORE_FILES, change KeFault* to KePanic, add syscalls for writing to files, add a proper syscall to writing to the console, move Screen.Clear to after memory status debug print, add ObjectTypeDir to OBJECT_TYPE, extend kernel32 by file operations and upgrade user32 (and add gdi32) to match windows a bit more closely, change CreateProcessA to accept the first argument as NULL.
This commit is contained in:
1 parent
a5f0acfac8
commit
8c7564d5e1
33 files changed
+2343
-429
No files matched your search
@@ -47,6 +47,11 @@ SYS_OPEN_FILE EQU 27
|
||||
SYS_READ_FILE EQU 28
|
||||
SYS_SEEK_FILE EQU 29
|
||||
SYS_GET_FILE_SIZE EQU 30
|
||||
SYS_WRITE_FILE EQU 43 ; a0=handle a1=buf a2=size a3=*bytesWritten
|
||||
SYS_CREATE_FILE EQU 44 ; a0=*path a1=*handleOut
|
||||
SYS_DELETE_FILE EQU 45 ; a0=*path
|
||||
SYS_TRUNCATE_FILE EQU 46 ; a0=handle a1=newSize
|
||||
SYS_GET_FILE_POS EQU 47 ; a0=handle -> current offset
|
||||
|
||||
; Screen
|
||||
SYS_SCREEN_BLIT EQU 31
|
||||
@@ -70,5 +75,16 @@ SYS_CREATE_PROCESS EQU 40
|
||||
SYS_WAIT_FOR_PROCESS EQU 41
|
||||
SYS_GET_PROCESS_EXIT_CODE EQU 42
|
||||
|
||||
; Console output
|
||||
SYS_WRITE_CONSOLE EQU 48
|
||||
|
||||
; Directory enumeration
|
||||
SYS_OPEN_DIR EQU 49
|
||||
SYS_READ_DIR EQU 50
|
||||
|
||||
; Current Working Directory
|
||||
SYS_SET_CWD EQU 51
|
||||
SYS_GET_CWD EQU 52
|
||||
|
||||
; Sentinel
|
||||
SYS_MAX EQU 43
|
||||
SYS_MAX EQU 53
|
||||
@@ -109,6 +109,11 @@ SYSCALL_STUB2 OpenFile, SYS_OPEN_FILE
|
||||
SYSCALL_STUB2 ReadFile, SYS_READ_FILE
|
||||
SYSCALL_STUB2 SeekFile, SYS_SEEK_FILE
|
||||
SYSCALL_STUB2 GetFileSize, SYS_GET_FILE_SIZE
|
||||
SYSCALL_STUB2 WriteFile, SYS_WRITE_FILE ; handle, buf, size, *bytesWritten
|
||||
SYSCALL_STUB2 CreateFile, SYS_CREATE_FILE ; *path, *handleOut
|
||||
SYSCALL_STUB2 DeleteFile, SYS_DELETE_FILE ; *path
|
||||
SYSCALL_STUB2 TruncateFile, SYS_TRUNCATE_FILE ; handle, newSize
|
||||
SYSCALL_STUB2 GetFilePos, SYS_GET_FILE_POS ; handle -> offset
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Screen
|
||||
@@ -144,4 +149,21 @@ SYSCALL_STUB2 CreateProcess, SYS_CREATE_PROCESS
|
||||
SYSCALL_STUB2 WaitForProcess, SYS_WAIT_FOR_PROCESS
|
||||
SYSCALL_STUB2 GetProcessExitCode, SYS_GET_PROCESS_EXIT_CODE
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Console output (white text, for user programs)
|
||||
; ---------------------------------------------------------------------------
|
||||
SYSCALL_STUB2 WriteConsole, SYS_WRITE_CONSOLE
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Directory enumeration
|
||||
; ---------------------------------------------------------------------------
|
||||
SYSCALL_STUB2 OpenDir, SYS_OPEN_DIR
|
||||
SYSCALL_STUB2 ReadDir, SYS_READ_DIR
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Current Working Directory
|
||||
; ---------------------------------------------------------------------------
|
||||
SYSCALL_STUB2 SetCwd, SYS_SET_CWD
|
||||
SYSCALL_STUB2 GetCwd, SYS_GET_CWD
|
||||
|
||||
END
|
||||
Reference in new issue
Block a user