<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Thu, 10 Jul 2008 22:06:09 +0100
From   : dl.harper@... (David Harper)
Subject: ROM type byte inconsitancies

Jonathan Graham Harston wrote:

> David Harper wrote:
>> I question that this has anything to do with type bytes, etc.
>> These bytes given above are actually at location 0000:0100 (not at 0:0) 
>> in
>> the 80186 ROM. In fact all the bytes prior to these are set to 0, except 
>> for
>> 4 bytes at location 0000:0030.
>
> I think you've got the wrong end of the stick. All second processors,
> on being instructed to execute some code in the second processor memory,
> examine that code for a standard sideways ROM header. If there is a ROM
> header, indicated by there being &00,"(C)" at entry_point+entry_point?7
> then the ROM type byte at entry_point?6 is examined. If the ROM type
> byte does not indicate that the code is language code, or it is not the
> correct code for the second processor CPU, then an error is generated,
> or the system is rebooted.

OK. I see what you are getting at.

In practice there are problems with getting the 80186 to run language code 
at all. Whether or not it works depends on the 80186 ROM version. (There 
were several versions of the 80186 ROM produced, but they forgot to change 
the version numbers and dates correctly, so they are a little hard to tell 
apart. I remember disassembling a lot of this code at one stage, trying to 
puzzle out why "Type 4" Tube calls (supposed to cause a jump to the given 
address) would work on some Master 512 machines and not others.)

What this means in practice is that not all 80186 co-pros will enter 
languages correctly. They will reject non-80186 code, but will not 
necessarily enter code that should be OK. Since the 80186 ROM was really 
only designed to get DOS-Plus started, little effort was spent on debugging 
the other parts of the ROM, and language start-up was certainly one that 
fell by the wayside.

AFAIK no-one ever produced any language ROMs to run on the 80186 outside 
DOS-Plus, so there was not much pressure to get this part of the code right.

David Harper 
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>