geode loader: load driver from the same folder

git-svn-id: svn://kolibrios.org@9478 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2021-12-26 16:00:44 +00:00
parent f7761a485b
commit 7acdbd2b5b
2 changed files with 46 additions and 23 deletions

View File

@ -0,0 +1,3 @@
if tup.getconfig("NO_FASM") ~= "" then return end
ROOT = "../../.."
tup.rule("geode.asm", "fasm %f %o " .. tup.getconfig("PESTRIP_CMD") .. tup.getconfig("KPACK_CMD"), "%B")

View File

@ -1,35 +1,55 @@
use32 use32
db 'MENUET01' db 'MENUET01'
dd 1 dd 1, start, i_end, mem, mem, 0, selfpath
dd start
dd i_end
dd mem
dd mem
dd 0
dd 0
start: start:
;------ strcat(selfpath, '.drv')
mov eax, selfpath
@@:
inc eax
cmp [eax], byte 0
jne @b
mov [eax], dword '.drv'
;------ writing some info
mov edx, info_msg
call debug_string
mov cl, 13 ; line break symbol
int 40h
;------ init driver
mov eax, 68 mov eax, 68
mov ebx, 16 mov ebx, 16
mov ecx, sz_sound mov ecx, sz_sound
int 0x40 int 40h
test eax, eax test eax, eax
jnz .exit jnz .exit
mov eax, 68 mov eax, 68
mov ebx, 21 mov ebx, 21
mov ecx, sz_path mov ecx, selfpath
int 0x40 int 40h
.exit: .exit:
mov eax, -1 mov eax, -1
int 0x40 int 40h
debug_string:
mov eax,63
mov ebx,1
@@:
mov cl,[edx]
test cl,cl
jz @f
int 40h
inc edx
jmp @b
@@:
ret
sz_sound db 'SOUND',0 sz_sound db 'SOUND',0
sz_path db '/rd/1/drivers/geode.drv',0 info_msg db 'Trying to load the driver: '
selfpath rb 4096
align 4 align 4
i_end: i_end: