~vdupras/duskos

967ac9e8ab39b522d1be206de04b0c6eee470e87 — Virgil Dupras a month ago 2dd86b0
Remove "lnxcall" and fs/linux.fs

There are not needed anymore now that we're on FAT16
2 files changed, 0 insertions(+), 29 deletions(-)

M dusk.asm
D fs/fs/linux.fs
M dusk.asm => dusk.asm +0 -14
@@ 78,7 78,6 @@ herestart: resb MEMSIZE
heremax:
SECTION .data
bootsrc: incbin "boot.fs"
rootfspath: db "fs", 0
wnfstr: db " word not found"
uflwstr: db "stack underflow"
wordexpstr: db "word expected"


@@ 94,9 93,6 @@ _start:
	mov dword [main], word_mainloop
	mov dword [inrd], word_bootrd
	mov dword [emit], word__emit
	mov eax, SYSCALL_CHDIR
	mov ebx, rootfspath
	int 0x80
	jmp word_abort

firstword 'bye', 3, word_bye


@@ 238,16 234,6 @@ defword 'key', 3, word_key
	int 0x80
	ret

; ( eax ebx ecx edx -- eax )
defword 'lnxcall', 7, word_lnxcall
	pspop edx
	pspop ecx
	pspop ebx
	pspop eax
	int 0x80
	pspush eax
	ret

defword 'drop', 4, word_drop
	add ebp, CELLSZ
	ret

D fs/fs/linux.fs => fs/fs/linux.fs +0 -15
@@ 1,15 0,0 @@
\ Filesystem implemented as Linux system calls
\ Requires a "lnxcall" word in the kernel

: lnxclose ( fd -- ) 6 ( close ) swap 0 0 ( close fd 0 0 ) lnxcall drop ;

create _buf $100 allot
: _tozstr ( s -- zs )
  c@+ >r _buf r@ move 0 _buf r> + c! _buf ;

create _ 'C' c, 'a' c, 'n' c, ''' c, 't' c, $20 c, 'o' c, 'p' c, 'e' c, 'n' c,
: lnxopen ( fname -- fd )
  _tozstr 5 ( open ) swap 0 0 ( open cstr noflag O_RDONLY ) lnxcall
  dup 0< if _ 10 rtype abort then ;
create _ 1 allot
: lnxgetc ( fd -- c-or-0 ) 3 ( read ) swap _ 1 lnxcall 1 = if _ c@ else 0 then ;