X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=3sys;a=blobdiff_plain;f=sys1%2Fkern%2Fsrc%2Fmem.asm;fp=sys1%2Fkern%2Fsrc%2Fmem.asm;h=54c04f3b38f13aa449e83c2e6e1e5312e960a2f8;hp=3a4bf8543806fbea25f5a3b992cff853362f5b4b;hb=e05574a9511e724651361905620f96666c7acb04;hpb=aac04321fda4094e8623a10ed39d2916ada40ccf diff --git a/sys1/kern/src/mem.asm b/sys1/kern/src/mem.asm index 3a4bf85..54c04f3 100644 --- a/sys1/kern/src/mem.asm +++ b/sys1/kern/src/mem.asm @@ -10,8 +10,26 @@ set_gdt: lgdt [gdtlim] ret + global setup_selectors +setup_selectors: + ; set data selectors directly + mov ax, [esp + 8] + mov ss, ax + mov es, ax + mov ds, ax + mov gs, ax + mov fs, ax + ; set cs with a long jump + mov ax, [esp + 4] + mov [jseg], ax + mov dword [joffs], .setcs + jmp far [joffs] +.setcs: ret + + align 4 - dw 0 +joffs dd 0 +jseg dw 0 gdtlim dw 0 gdtbase dd 0