[comp.sys.ibm.pc] Phoenix BIOS 3.07

djb@wjh12.harvard.edu (David J. Birnbaum) (09/12/89)

While snooping around in high RAM I noticed a peculiarity.  My CompuAdd
286 has a Phoenix ROM BIOS, version 3.07, dated 5/27/87.  Doing a debug
dump of f000:8000 shows that the BIOS begins at this address (at least
the display begins with PPhhooeenniixx, etc.).  But dumping e000:8000
(note: different segment) shows the identical information.  In fact,
dumping several random addresses between e000:8000 and e000:ffff produced
exactly the same display as dumping the same offsets in the f000 segment.
  I called CompuAdd to ask why there should be two apparently identical
copies of the BIOS in high RAM.  I used debug to go to the cold boot
address in the e000 segment and the machine indeed booted, so it looks
like the BIOS is really there.  The CompuAdd technical support folks
mentioned that Phoenix version 3.1 is larger than usual and does extend
into the e000 segment, but the 3.07 shouldn't.  They guessed that my 
BIOS might have been supplied on larger than usual chips, so that the
small amount of information, instead of being confined to addresses
above f8000, is written twice, with the copy beginning at e8000.  I
know virtually nothing about such matters; is this possible? probable?
  In any case, I'd be grateful if:
1) anyone with a 286 with Phoenix BIOS version 3.07 dated 5/27/87 could
peek at high memory and let me know whether they find the same information
and
2) someone could explain what purpose is served by having two identical
copies of the BIOS information.  Is there any way I can reclaim my e000
segment?
  Please reply by email to:
djb@wjh12.harvard.edu [Internet]
djb@harvunxw.bitnet [Bitnet]
  Thanks.
--David

las) (09/14/89)

In article <398@wjh12.harvard.edu> djb@wjh12.UUCP (David J. Birnbaum) writes:
}While snooping around in high RAM I noticed a peculiarity.  My CompuAdd
}286 has a Phoenix ROM BIOS, version 3.07, dated 5/27/87.  Doing a debug
}dump of f000:8000 shows that the BIOS begins at this address (at least
}the display begins with PPhhooeenniixx, etc.).  But dumping e000:8000
}(note: different segment) shows the identical information.  In fact,
}dumping several random addresses between e000:8000 and e000:ffff produced
}exactly the same display as dumping the same offsets in the f000 segment.
}  I called CompuAdd to ask why there should be two apparently identical
}copies of the BIOS in high RAM.  I used debug to go to the cold boot
}address in the e000 segment and the machine indeed booted, so it looks
}like the BIOS is really there.

Actually, it is probably not "really there."  Instead they're probably just
the same place.  What I mean is that the address decoding circuitry is
probably mapping e000 and f000 to the same place - note that there is only
a one bit difference between e (1110) and f (1111).  This may have been done
on purpose, though not necessarily to achieve the affect of having e000 and
f000 both refer to the ROM space.  Rather instead, implementing it this way
may have saved a few gates - whether that saved any money or not may be
arguable, but it's just the sort of thing a designer might do since it
might simplify the design.  The designers may simply have said to them-
selves: "There's no need to decode the e000 address space since there's 
[supposedly] nothing there in the IBM PC memory map, so we won't."  The
result may then have been a design which just happens to decode e000 to 
the same memory space as f000.

"But! But! But!..." you may sputteringly protest.  Remember though, 
B000:0000 on up is reserved in the IBM PC address space, and although 
certain portions of that space are definitely used for known purposes, 
IBM never promised you that they had to make the unassigned sections of 
that space available for any purpose - they're "reserved."

If I'm wrong, please be kind and don't flame.  If you think it's a
stupid idea, please don't {f|b}lame me!

regards, Larry
-- 
Signed: Larry A. Shurr (cbema!las@att.ATT.COM or att!cbema!las)
Clever signature, Wonderful wit, Outdo the others, Be a big hit! - Burma Shave
(With apologies to the real thing.  The above represents my views only.)
(Please note my mailing address.  Mail sent directly to cbnews doesn't make it.)

rogers@SRC.Honeywell.COM (Brynn Rogers) (09/14/89)

In article <9523@cbnews.ATT.COM> cbema!las@cbnews.ATT.COM (Larry A. Shurr,20650,cb,9a110,6148605851) writes:
>In article <398@wjh12.harvard.edu> djb@wjh12.UUCP (David J. Birnbaum) writes:
>}While snooping around in high RAM I noticed a peculiarity.  My CompuAdd
>}286 has a Phoenix ROM BIOS, version 3.07, dated 5/27/87.  Doing a debug
>}dump of f000:8000 shows that the BIOS begins at this address (at least
>}the display begins with PPhhooeenniixx, etc.).  But dumping e000:8000
>}(note: different segment) shows the identical information.  In fact,
>}dumping several random addresses between e000:8000 and e000:ffff produced
>}exactly the same display as dumping the same offsets in the f000 segment.

>Actually, it is probably not "really there."  Instead they're probably just
>the same place.  What I mean is that the address decoding circuitry is
>probably mapping e000 and f000 to the same place - note that there is only
>a one bit difference between e (1110) and f (1111).  This may have been done
>on purpose, though not necessarily to achieve the affect of having e000 and
>f000 both refer to the ROM space. 

Actually it is because there is a 32kx8 rom in a socket for a 64kx8 and
one address line (A15 on the chip, A16 on the bus) is just plain ignored by
the 32k chip. The reason that A16 is run to the socket is to allow for the
ROM bigger chips, which in IBM systems include basic in ROM.
  Nobody uses the e000 segment because if they did, it wouldn't work in a
IBM, and IBM compatability (No matter how stupid IBM is) is the name of
the game.




 Brynn Rogers    Honeywell S&RC        rogers@src.honeywell.com
 work 612-782-7577 home 874-7737  

mallari@cory.Berkeley.EDU (Brian Mallari) (10/27/89)

I'm having a little problem with my 286.

In May of last year, my dad bought a Packard Bell 286 computer.
It uses Phoenix BIOS 3.07 and requires a "setup" program to
configure the system (video card, drive types, memory configuration,
etc.).  The problem is that of the selections in the setup program
for disk drives, It only gives an option for High Density 1.2Meg
or Normal 360K.  I called the Packard Bell Technical Service Dept
and they said that I have the right BIOS but the wrong setup (old
version).  So the technician said to send him a blank disk and he'll
send back the newest version.  So far it's been 3 weeks and no cigar.
So I thought that maybe setup programs were universal, that the info
that they alter is the same for all setup programs.  Is this true?

I would also like to know if people out there using Phoenix BIOS 3.07
can configure their 1.44Mb 3.5" disk drives.

Thanks in advance for all the help you can give me.

-Brian
 ________________________________
Brian Mallari
University of California, Berkeley
mallari@cory.berkeley.edu