[alt.msdos.programmer] How to check which memory locs. are really occupied by BIOS?

schulz@ipsi.UUCP (Guenther F. Schulz) (02/22/90)

Hi all,

does anybody happen to know a method how to make sure which
memory areas are really occupied by bios routines (machine
bios, video bios, div. controller bios...) AFTER BOOTUP?

I don't think of an advice like "take 386-to-the-max or any
other virtual memory manager for 386 machines" but of some
hints which I can use for a program which I am presently
writing (C and assembler).

Thanx for any pointers,

Guenter Schulz.

nelson@sun.soe.clarkson.edu (Russ Nelson) (02/23/90)

In article <300@ipsi.UUCP> schulz@ipsi.UUCP (Guenther F. Schulz) writes:

   does anybody happen to know a method how to make sure which
   memory areas are really occupied by bios routines (machine
   bios, video bios, div. controller bios...) AFTER BOOTUP?

Checksum the bios roms.  If they checksum correctly, it's a ROM.

They may be at any 2k from c000 (some docs say c800) through e000.
  Byte 0:  55h
  byte 1: 0aah
  byte 2: length in 512-byte blocks
Checksum using addition modulo 100h should be zero.

--
--russ (nelson@clutx [.bitnet | .clarkson.edu])  Russ.Nelson@$315.268.6667
Violence never solves problems, it just changes them into more subtle problems

kaleb@mars.jpl.nasa.gov (Kaleb Keithley) (02/24/90)

In article <300@ipsi.UUCP> schulz@ipsi.UUCP (Guenther F. Schulz) writes:
>does anybody happen to know a method how to make sure which
>memory areas are really occupied by bios routines (machine
>bios, video bios, div. controller bios...) AFTER BOOTUP?

Check the myriad DOS Technical References, Microsoft has defined that BIOS
routines start at specific addresses, and have special signature bytes.
All you should have to do is read through memory looking for signature bytes.

Chewey, get us outta here!
                 
kaleb@mars.jpl.nasa.gov            Jet Propeller Labs
Kaleb Keithley