[sebhc] HDOS 2 boot problem identified.
Dwight K. Elvey
dwight.elvey at amd.com
Tue May 25 14:05:08 CDT 2004
>From: "Dave Dunfield" <dave04a at dunfield.com>
>>Boy, you got a wierd one here! It did exactly the same for me using the
>>2.0 distribution disk (maybe thats what you were using).
>>This isn't sensing behavior - that occurs before the first console I/O. The
>>sensing process is not only to detect baud rate (only on the 8250), but to
>>determine which port your console is connected to (it could be either on the
>>8251 at 370 or the 8250 at 350). If an 8250 is present, it would display
>>SPACE on the led's and wait for you to hit spaces on your console. I'm
>>guessing you don't currently emulate the 8250 so it went past that to the
>>I don't recall ever having any tech inquiries regarding this particular
>>hangup on real H8's. But I do know that the console gets re-initialized at
>>that point, because on my real H8 I have to manually turn on RTS then for my
>>serial connection to continue talking to it (proper RTS management was
>>obviously overlooked in the driver).
>>So, just a guess at this point .. but take a look at how your emulation
>>handles re-initialzation of the chip after it's been in use. Particularly
>>in regard to interrupt handling.
>I have identified the problem - the HDOS 2 driver in high memory uses a
>timeout based on the CPU speed while looking for sector holes - on a moderately
>fast PC, this loop breaks, and times out before sector holes are found. If you
>hit F9 while the boot is hung, you can step through the code and see where it
>is using BC as a timer while looking for the hold detect bit.
It would seem that if you want to get things working right, you
need to make index holes appear to your emulator, based on the
instruction cycles executed. There are two possible choices here.
You can attempt to add each instruction cycle time exactly
or you can simply average the instruction count. I don't recall
there being wait states on things but I don't think it would be
Emulating the index holes and the 2 ms interrupt based on instruction
count would mean that the emulator should work for all disk without
any code modifications.
Delivered by the SEBHC Mailing List
More information about the Sebhc