• Please review our updated Terms and Rules here

HI and LO BIOS ROMs..

falter

Veteran Member
Joined
Jan 22, 2011
Messages
6,556
Location
Vancouver, BC
Just was wondering what these are properly called.. you know with machines like the Amiga, the Mindset.. they have two or more ROMs, and usually one is 'HI' and one is 'LO'... is that 'high address ROM' and 'low address ROM'? Just wondering exactly what HI and LO mean.
 
There is no formal name that I am aware of. Yes, LO is short for 'low address' and HI is short for high address. Some BIOS ROM sets are actually labeled HIGH and LOW. And rather than HIGH and LOW, or HI and LO, the BIOS author may have instead used ODD and EVEN. Does the diagram at [here] explain things?
 
Instead of lo/high address it’s probably more accurate to think of it as lo/hi byte or word. Low/High address makes them sound consecutively placed, not interleaved.
 
Just was wondering what these are properly called.. you know with machines like the Amiga, the Mindset.. they have two or more ROMs, and usually one is 'HI' and one is 'LO'... is that 'high address ROM' and 'low address ROM'? Just wondering exactly what HI and LO mean.
Definitely not "address". Machines with 16 bit memory, often 68000 machines like the Amiga and Atari and a few pizza box unix workstations need two 8-bit ROMS for each memory location, so one serves the "high byte" of each address and the other the "low byte". and they sit side-by-side on the address bus. Such machines will usually also need 16 x 1-bit sets of memory chips, or like the Atari STE pairs of 8-bit SIMMS.
 
Even/Odd is less confusing. Recall that CPUs like the 68K have a different byte ordering from, say, the 8086 within a word. So, for example, the hex number 1234 is stored in the 8086 as a "little endian" word as 3412, where, on the 68000, it's stored as 1234.
 
I think the "high/lo" generally refers to the data line numbering, IE, on a 16 bit CPU you'd have D0-7 on the "Low" and "D8-D15" on the "High", not really to the endianess of the CPU, but yeah... I guess there really isn't an absolutely correct/precise way to define it.

I suppose if you were a real glutton for punishment you could interleave the chips by literally putting the even *bits* in one chip and odd in the other, but it'd take a particularly sadistic designer to want to do that.
 
Even/Odd is less confusing. Recall that CPUs like the 68K have a different byte ordering from, say, the 8086 within a word. So, for example, the hex number 1234 is stored in the 8086 as a "little endian" word as 3412, where, on the 68000, it's stored as 1234.
I think ODD/EVEN is confusing but it does really matter, I believe you need to use the terminology used by the manufacturer in the diagrams/schematics ang this is usually Hi/Lo or some variant thereof.

So if I am upgrading an Atari ST with 6-roms, I need to be able to match ROMS to the sockets. Checking early Atari ST schematic which has 6 ROMS I see FE-H, FE-L, FD-H, FD-L, FC-H, FC-L, where the first two letters are its address in the memory map and the third is the high or low byte.

I guess some one will now produce an odd/even example...
 
In fact, most production equipment don't use any of that--they usually refer to the IC position; e.g. U42.
Of course, motherboards haven't had non-flash memory for a long time, so do what works.
 
Not sure but, yeah, something like that. I don’t think they were really available before the latest 1980’s.

This need for double the memory parts is why hybrid 8/16 bit CPUs like the 8088 were attractive alternatives to ”true” 16 bit architectures. And another thing you’ll notice is by the 1990’s, because parallel ROMs wider than 8 bits never really did become mainstream, 32 bit PCs often have only 16 or even 8 bit wide BIOS hardware and rely on copying the narrow ROM into shadow RAM to sidestep the performance hit. No point in fitting a bunch of ROM sockets, especially awkward many-pin ones, when you can just waste a little RAM instead.
 
Sure, by 1990, RAM was getting cheap (per KB at least); one might as well copy a PROM into memory and run it from there at full speed. Just noting that I've got a couple of 40 pin DIP 16bit EPROMs in my stash. Oddly enough, they came from a laser printer. NS32016 engine.
 
Back
Top