Searching \ for '[OT] PC Expasion ROM Identification' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/index.htm?key=expasion+rom+identification
Search entire site for: 'PC Expasion ROM Identification'.

Exact match. Not showing close matches.
PICList Thread
'[OT] PC Expasion ROM Identification'
1998\10\13@065551 by N Steenkamp

flavicon
picon face
Hi,

I need to tap the wide knowledge base of the piclist again ;-)

When a PC boots, it looks in the expansion ROM space for, well,
expansion ROM's.  What must an (EP)ROM contain in order for the PC to
recognise it as being valid and for it to start executing?  I presume some
ID bytes and maybe a checksum?

Thanx!
Niki

1998\10\13@142217 by Lee Jones

flavicon
face
> When a PC boots, it looks in the expansion ROM space for, well,
> expansion ROM's.  What must an (EP)ROM contain in order for the PC to
> recognise it as being valid and for it to start executing?  I presume
> some ID bytes and maybe a checksum?

from "The XT-AT Handbook for Engineers, Programmers, And
Other Serious PC/XT and PC/AT Users" by John P Choisser and
John O Foster; fourth edition; July 1994; ISBN 0-929392-00-0
published by Annabooks, 11848 Bernardo Plaza Ct, Suite 110,
San Diego, CA 92128 USA.

It's a great little 3.5" x 6" (90mm x 150mm) pocket reference
to all those PC facts that you need.

<begin quote> (page 58)

41. User ROM Scan

The BIOS provides a means whereby builders of adapter cards
may hook into the power-on initialization sequence.

During POST, the BIOS loads a set of default vectors into the
appropriate BIOS interrupt addresses.  The the BIOS scans
memory addresses C8000 to F4000 in 2K blocks looking for
valid modules on the I/O bus.

A valid module will have 55H as byte 0, AAH as byte 1, and a
length indicator in byte 2.  The length byte is the number of 512
byte blocks over which a checksum (module hex 100) mut be
zero.  (The length byte must not exceed FBh, regardless of the
length of your code, so you must force a sum of 00 starting
with byte 0 up to whatever length byte [2] represents.  Your
actual code may be longer, but an error will occur if the length
byte is larger than FBh.)

Your initialization code must start in Byte 3, since the BIOS
will do a Far Call there if the module is found to be valid
(passes the three tests above).  If you will want control back
later when the computer boots, this is also your chance to
change the boot vector to point to the entry point for you code.
At the end, do a Far Return so the BIOS can finish the power-
on routines.  If you have changed the boot vector to point to
your entry point, you will regain control when the computer
boots.

If your module is correct, it will start with 55 AA, and will
have a checksum of 00 over the distance indicated by the length
code in byte 2. (The length code will be divisible by four.)

<end quote>

I believe that last parenthetical statement about the length being
"divisible by four" is an assumption that each adapter will fill a
multiple of the 2K byte blocks reserved for add-in modules.



There was also a series of columns in Circuit Cellar Ink called
Firmware Furnace by Ed Nisley.  They started about 3 years ago
(circa early-1996) and have ended.  In it, he described turning
a PC into an embedded controller.  It covered hooking into the
POST, writing a boot sector, etc.  Very usefull series of articles.

                                               Lee Jones

-------------------------------------------------------------------
Jones Computer Communications             spam_OUTleeTakeThisOuTspamfrumble.claremont.edu
509 Black Hills Dr, Claremont, CA 91711         voice: 909-621-9008
-------------------------------------------------------------------

1998\10\15@171244 by myke predko

flavicon
face
Lee Jones responded:
>> When a PC boots, it looks in the expansion ROM space for, well,
>> expansion ROM's.  What must an (EP)ROM contain in order for the PC to
>> recognise it as being valid and for it to start executing?  I presume
>> some ID bytes and maybe a checksum?

o
o
o

>41. User ROM Scan
>
>The BIOS provides a means whereby builders of adapter cards
>may hook into the power-on initialization sequence.
>
>During POST, the BIOS loads a set of default vectors into the
>appropriate BIOS interrupt addresses.  The the BIOS scans
>memory addresses C8000 to F4000 in 2K blocks looking for
>valid modules on the I/O bus.

I just wanted to make one comment on this; the address range given is not
valid for modern PCs.  In the modern PC's memory map, memory from 0x0E0000
to 0x0FFFFF is allocated to system BIOS (the extra space is normally devoted
to the disk and video subsystems) and is not available on the bus.  This
means that if you are designing a device, it can only sit in the 96K between
0x0C8000 to 0x0DFFFF.

{Quote hidden}

I have no idea where that paragraph came from.

>There was also a series of columns in Circuit Cellar Ink called
>Firmware Furnace by Ed Nisley.  They started about 3 years ago
>(circa early-1996) and have ended.  In it, he described turning
>a PC into an embedded controller.  It covered hooking into the
>POST, writing a boot sector, etc.  Very usefull series of articles.

Check out Ed's book, "The Embedded PC's ISA Bus: Firmware Gadgets and
Practical Tricks" - In it he introduces the ISA bus by going through the
steps of designing a graphic LCD display for the PC (rather than a tube) for
use in an embedded application.  The book is very practical and really
doesn't have useful reference information that can be easily found in
appendices or whatever - you should also look at something like "The
Undocumented PC" to have a pretty complete idea of what's going on.

I have it in my "Book Room" at:

http://www.myke.com/Book_Room/book3.htm

Along with a number of other books on PC interfacing (including "The
Undocumented PC").

myke

Scott Adams latest, "The Joy of Work" is the Book of the Week.

http://www.myke.com/Book_Room/book1a.htm

Also look at:

http://www.myke.com/My_Books/homcu.htm

for information on "Handbook of Microcontrollers"

More... (looser matching)
- Last day of these posts
- In 1998 , 1999 only
- Today
- New search...