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 ;)