Re: maybe a bit OT: EEPROMs and PCs
- From: "wolfgang kern" <nowhere@xxxxxxxxxxx>
- Date: Fri, 12 Aug 2005 01:37:14 +0200
Jure Sah asked about BIOS re-write:
No OT anyway,
ROM-BIOS are mainly written in pure bare-metal ASM,
even I've seen a few HLL crap routines (push ebp |mov ebp,esp..)
also in there.
| 1. I'll need hardware to access the data in the EEPROMs. I got an old
| HW-9007 ISA RAM-EEPROM card with supporting programs, so I could write
| to the EEPROMs using that, but I'd preffer to buy myself something more
| for the purpose (I have yet to sucessfully align the EEPROM legs to
| insert one into that old thing). How cheap can I get what I need?
There may be some old Eprom-burners available on Ebay (spell: Ipay).
| 2. I got the i386 computer with it's BIOS in two 128 kb EEPROMs (meaning
| lots of room and x86 assembly). My assembler makes .com files, to write
| to EEPROM I'll need properly alligned bits in raw .bin files.
| How exactly is the EEPROM being fed into the CPU on PC bootup?
The opposite direction:
after power-up/reset the CPU is fed with the BIOS-code :)
start point is a 16-bit far jump at FFFF:0000 (=F000:FFF0)
| Can I use a normal assembler to make the binaries I can burn directly?
What would you consider as normal ?
Every assembler which can create mixed binary code (16/32 bit)
and allow ORG up to FFFF:0000/0fffffff0 can be used.
So even I got my own tools (HEX_WORK85/KESYS/PAL-PROM-burner)
I see FASM, NASM, and for 16 bit only ye olde TASM and the original
MASM as opportunities.
| What do I have to do to make that work right?
Learn all about your hardware by fully disassembling the original BIOS-ROM.
| 3. Where can I find any hints on how not to screw up?
I'm afraid 'Nowhere', except for the few clerics on 'nowhere.@nevernet'
may have a few answers to your questions :)
| I suppose IBM never made a document on how to write BIOSes and give
| it around on the internet freely.
You wont find any documented BIOS standard, it just doesn't exist.
Every motherboard got it's very own features/weak points and design.
By any luck you might get a BIOS-source code from the MB-producer,
but I heavy doubt this as any useful information.
| Any way for me to get that sort of information for free?
The information is for free in your BIOS-ROM, just disassemble/read it.
| 4. Obviously I'll have to know the internals of some peripherial
| hardware (e.g.: NICs). Any hints on where to find that sort of info? I
| guess reading chip manufacturer specs will have to do for most things,
| but where (or how ;) do I get things such as base addresses and such?
Yes, you need to know all about the hardware you like to use.
RBIL will be your best friend here (bits/ports/BIOS-interrupts)
| I realize all this may be a bit complex, but I think I can do it when
| it's just me and the I/Os (no workarounds to worry about).
Not that complex if you think about small changes only.
I just modified my existing BIOS-ROMs with a few add-ons and kept the
rest as it is. There is usually plenty of unused space at E000:0000 ...
your questions are welcome here...
__
wolfgang
.
- Follow-Ups:
- Re: maybe a bit OT: EEPROMs and PCs
- From: Jure Sah
- Re: maybe a bit OT: EEPROMs and PCs
- References:
- maybe a bit OT: EEPROMs and PCs
- From: Jure Sah
- maybe a bit OT: EEPROMs and PCs
- Prev by Date: maybe a bit OT: EEPROMs and PCs
- Next by Date: Go to CLAX and enjoy the difference
- Previous by thread: maybe a bit OT: EEPROMs and PCs
- Next by thread: Re: maybe a bit OT: EEPROMs and PCs
- Index(es):
Relevant Pages
|