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

Jonathan Graham Harston wrote:

> The 80186 client does:
> F000:1D7A 24 0F        $.    AND AL,00Fh ; Get CPU bits
> F000:1D7C 3C 0B        <.    CMP AL,00Bh ; Is it 80186?
> F000:1D7E 75 16        u.    JNZ 1D96h   ; Not 80186, jump to error
> F000:1D80 B0 01        0.    MOV AL,001h ; AL=1
> F000:1D82 EB E5        ke    JMP 1C69h   ; Jump to enter code

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 suggest (very strongly!) that these are actually interrupt vectors for 
those interrupts that are handled by the 80186 ROM, namely Interrupt 0Ch 
(the Tube hardware interrupt), Interrupts 040h to 04Ch (the MOS calls) and 
04Fh (the ROM-based error handler).

Trying to interpret a set of interrupt vectors as descriptive bytes or 
executable code is bound to lead to nonsense.

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