Page 2 of 2
Re:X-OS 0.3.2
Posted: Thu May 13, 2004 6:58 am
by DennisCGc
Simply, the fault is up to both
(seriously, you SHOULD push and pop eax)
Re:X-OS 0.3.2
Posted: Fri May 14, 2004 2:18 am
by aladdin
i tried to push/pop eax, and there is no change
i also tried to push/pop all regs and it doesn't work :-\
Re:X-OS 0.3.2
Posted: Fri May 14, 2004 8:18 am
by DennisCGc
Code: Select all
k_int0:
cli
call idt_int0
mov al,0x20
out 0x20,al
sti
iret
This should be:
Code: Select all
k_int0:
push eax
cli
call idt_int0
mov al,0x20
out 0x20,al
pop eax
sti
iret
Does this work, or did you already give it a try ? ::)
Re:X-OS 0.3.2
Posted: Fri May 14, 2004 8:57 am
by Pype.Clicker
cli and sti are bug-prone and useless in this situation. Drop them. The cpu does save/restore IF for you.
this is the correct stub for "IRQ0"
Code: Select all
k_int0:
pushad
push ds
push es
mov ax,DEFAULT_DATA_SELECTOR
mov ds, ax
mov es,ax
call idt_int0
mov al,0x20
out 0x20,al
pop es
pop ds
popad
iret
this is the correct stub for "division by zero exception"
Code: Select all
k_int0:
pushad
push ds
push es
mov ax,DEFAULT_DATA_SELECTOR
mov ds, ax
mov es,ax
call idt_int0
pop es
pop ds
popad
iret
Re:X-OS 0.3.2
Posted: Fri May 14, 2004 9:20 am
by aladdin
I think the problem comes from IRQ0 (timer), coze, when I push/pop eax there, the console scrolls correctly, but floppy driver can't fire IRQ6..
so i'll try youre code, hoping it fix my problem...
thank you for help
Re:X-OS 0.3.2
Posted: Fri May 14, 2004 12:06 pm
by DennisCGc
Pype.Clicker wrote:
cli and sti are bug-prone and useless in this situation. Drop them. The cpu does save/restore IF for you.
Also, the PICs are blocking any IRQ signal too, but using cli/sti doesn't matter.
And it isn't causing a bug.
Re:X-OS 0.3.2
Posted: Sat May 15, 2004 11:25 am
by aladdin
it seems that your code works well, but i have the same problem as when i used a simple push/pop eax, my floppy driver can't get IRQ6, the only way to get it is to change eax value returned by IRQ0, is this normal ??
when i use this code
Code: Select all
k_int0:
pushad
push ds
push es
mov ax,DEFAULT_DATA_SELECTOR
mov ds, ax
mov es,ax
call idt_int0
mov al,0x20
out 0x20,al
pop es
pop ds
popad
iret
I can't get IRQ6
but when I use this one
Code: Select all
k_int0:
pushad
push ds
push es
mov ax,DEFAULT_DATA_SELECTOR
mov ds, ax
mov es,ax
call idt_int0
mov al,0x20
out 0x20,al
pop es
pop ds
popad
or eax, 0x8000
iret
it works well ???
Re:X-OS 0.3.2
Posted: Tue Jun 29, 2004 10:03 am
by mpp.eox3
hmm the first time I tested it, I got a triple fault in vmware - right after the x-os splash/boot screen.
the second time it hangs, still showing the splash/boot screen. pressing the any key doesn't help, I just get some beeps.
the third try gives an triple fault again..
btw the splash screen "scroll up effect" takes a bit long, doesn't it?..
Re:X-OS 0.3.2
Posted: Tue Jun 29, 2004 1:52 pm
by aladdin
have u tested it on bochs qemu or, a real machine?
how mutch memory have you give it on vmware ?
btw the splash screen "scroll up effect" takes a bit long, doesn't it?.
it's not a scroll up effect, it's because of emulated bios calls under vmware (or any other virtual machine).
it works faster on a real PC.
u can disable splash screen by editing boot/setup.asm and comment the call to splash screen function .
thank u 4 testing
Re:X-OS 0.3.2
Posted: Tue Jun 29, 2004 4:45 pm
by mpp.eox3
I ran it under vmware with 32megs of ram.
/* was too lazy to fire up bochs and press the buttons through the textmode config menu
*/
I'll get virtualpc soon, as it's in the msdnaa for free =)
/* I could have installed it long time ago, but I also was too lazy
*/
Re:X-OS 0.3.2
Posted: Fri Jul 02, 2004 1:29 pm
by aladdin
/* was too lazy to fire up bochs and press the buttons through the textmode config menu */
u can use bochs -q instead