Hi Kevin,

a) freedos *always* calls int13 on the block device stack
with stack bottom
         DOS DS:aa0
and top  DOS DS:ee2 (384 byte); DOS DS is usually 0x00D0 or 0x00d1

without config.sys
   stacks=9,512
   
interrupts are serviced on the stack that happens to be in use at
interrupt time

with stacks=9,512 DOS installs a stack of 512 byte before calling the
interrupt handler

> The hard drive is accessed via PIO mode, so enabling irqs isn't
> required for correct hd operation.  I'm guessing bochs bios turns on
> irqs so that the system ticks and other timers don't go unanswered
> while the hard drive is reading/writing data.  (The hard drive could
> take multiple seconds for an access - if irqs are off I think it would
> lead to lost timer ticks.)
right. also required for serial (modem) communications.

OTOH I'm wandering why you don't just turn any int 13 read/write
request into a VM_CALL(DiskRead, buffer, num_sectors) or similar
this should be *much* faster

> I have commented out the irq enable for testing, and I can confirm
> that the problems stop occuring.  Unfortunately, when I enable irqs
> and put tests in the bios ISR routines, I don't see them getting
> called with low stack space.  This adds a new wrinkle - how much stack
> space does the freedos ISR routines need..

    lbacache tuns: 03a6:00cd = 03fa:00ec (stack start at 03fa:0000)

you might be able to set a memory break point at 3fa:0000; either
using the debugger, or compiling into the virtual machine directly
(I have no idea what the Bochs debugger is able to do)

if the debugger fires, find out which interrupt was called ...

good luck

Tom



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Register now and save $200. Hurry, offer ends at 11:59 p.m., 
Monday, April 7! Use priority code J8TLD2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to