• Please review our updated Terms and Rules here

Copying BIOS (EPROM burner)

dongfeng

Veteran Member
Joined
Nov 16, 2003
Messages
1,348
Location
London, England
My Epson AX2e 286 computer has a broken BIOS, but I do know someone with another identical computer who I hope can help me. So, I would like to "copy" the working BIOS. There are two BIOS chips, one high, one low, only one of which is broken in my machine.

If anyone has done this before, please let me know how it can be done by software, since taking out the chips cannot be possible.

I would like to use a software to dump the contents to file, which can then be used to an EPROM burner to make me a duplicate chip.

Can anyone have any suggestion to me? :D

Thanks in advance !!!
 
ax2e02.JPG
 
If you can get the hex listings of the eproms, or raw data, I have a burner. (it's a bit sad, It's vintage too & I have to run it in dos! ) The only 27C256 s I have on the shelf are 200nS , so It will cost about a fiver to get a couple of faster ones.

???


Couldnt you "peek" them in QB, I'm none too familiar with the architecture of PCs, but isn't the BIOS unpaged?
 
Last edited:
THanks for the offer Nige, I will certainly let you know if I do manage to get adecent copy!

Hopefully I can find a good way to extract the data as raw or hex, I am trying to read up on it at the moment :)
 
Step 1:

The two EPROMS span a single address range with even addresses in one EPROM and odd addresses in the other EPROM. Copy that address range into a file. Assuming that the AX2e reflects the IBM 5170 (and for compatibility reasons, I'm sure it must), then the address range to copy into a file is the 64K block starting at F000:0
You can use DEBUG to do that

Step 2:

Run a program that will split that single file into a high-order file and a low-order file (I prefer to use "odd/even"). I and quite a few readers can easily knock something up to do that.
You end up with a 32K file for each EPROM. What will be difficult to ascertain at this point is which file matches to which EPROM in the AX2e.
And so perhaps you get both EPROMs burnt and then you can experiment with your motherboard to determine which is which.
 
Apart from DEBUG, there are other threads in this forum that mention some software used to grab BIOS code.
I think that must be the software that Mike (mbbrutman) wrote.

If you want to use DEBUG instead, try the following. Although I can get DEBUG to read/write 64K blocks, for some reason it would write the wrong data.
And so instead, the following uses DEBUG to create two 32K files which are then joined to create a FINAL.BIN file by using an appropriate COPY command.


Code:
    C:\> DEBUG

    -N MYF000.BIN          (resulting file will be named MYF000.BIN)

    -R BX                  (set BX=0000H/CX=8000H as count of bytes to write,  00008000H = 32K)
    BX 0000
    :0000
    -R CX
    CX 0000
    :8000

    -M F000:0 8000 0100    (copy 32K bytes from F000:0 to offset 0100 in local segment)

    -W 0100                (write from offset 0100 in local segment)
    Writing 8000 bytes

    -N MYF800.BIN          (resulting file will be named MYF800.BIN)

    -M F800:0 8000 0100    (copy 32K bytes from F800:0 to offset 0100 in local segment)

    -W 0100                (write from offset 0100 in local segment)
    Writing 8000 bytes

    -Q

    C:\>copy /b myf000.bin+myf800.bin final.bin


At this point you have FINAL.BIN which needs to be specially split as I stated in my earlier post.
.
 
Last edited:
The magic program is PCjrcart available from my web site and referenced here a few times.

It's not as good at dumping BIOS as it is for looking for BIOS ROM extensions. You have to do some poking around in debug to know what address the BIOS starts at. And if you know that already, the debug technique isn't that hard to do.
 
interesting... yeah if mbbrutman's programs doesn't work you can PEEK all the BIOS data in QB. it should be possible to write to the BIOS chips, becuase obviously there are BIOS flashers widely available.

hmmm i notice there are little mitsubishi logos on those chips... they seem to have been a major BIOS ROM mfg... my 8088's BIOS ROM is a mitsubishi too.
 
You guys are brilliant!!! I'll hopefully get a BIOS dumb both using Mbbrutman's PCJRCART and the debug routine. Fingers crossed it will be fine...

I've tried both out on my XT with positive results. We'll see...

Thanks again! :D
 
If you use PCJRCART, remember to strip the headers and use only the data. You'll prob'ly be better off dumping your friend's ROM. Yours may be somewhat corrupted if the chip is physically broken.

--T
 
Last edited:
interesting... yeah if mbbrutman's programs doesn't work you can PEEK all the BIOS data in QB. it should be possible to write to the BIOS chips, becuase obviously there are BIOS flashers widely available.

hmmm i notice there are little mitsubishi logos on those chips... they seem to have been a major BIOS ROM mfg... my 8088's BIOS ROM is a mitsubishi too.

BIOS flashers only work wit BIOSes in flash. These are in EPROM (different sort of memory), so you have to use a dedicated EPROM programmer. (unless you "special Knowlege", and a Z88 or a PSION which have their own EPROM programmers built in.)
 
how are the chips broken? Physically?

The problem with using debug is that you really can't save a chunk of data 64kbytes in size (65,536 IIRC) to a file. It would always be 1 byte short (the means of specifying the size of a file to be saved is stored in a register - and since the largest numeric a 16-bit register can store is FFFFh, or 65,535, you turn up short! Weird. In the end, if you can take on that extra byte to the file, you'd have something you can work with. There are presumably easy ways of doing that I guess...
 
64K = 65,536 bytes, from 0 to 65,535, inclusive, or from 0000 to FFFF since 0000 is a valid address. Course, I ain't sure how DEBUG handles it, but DDT will dump addresses 0000 - FFFF, no problem.

--T
 
right, but if you specify "1" in that register, you'll save a file of size 1 byte. If you specify 65,535, you'll save a file of that size. Ain't no way to fit a bigger number in a 16 bit register. That's my understanding of debug anyhoo. Used it at one time to write rudimentary assembler programs.
 
I'm not very familliar with debug, but if you are just trying to copy an area of memory for burning a ROM, DDT uses the -w command to dump the specified address range to a disk file. It doesn't ask for the size of the file, just first & last address. If you enter -w0000,FFFF it will dump the full 64K (65536). I'm sure debug must be similar, isn't it?

--T
 
Oi not unless there's another way of doing it. Maybe some other peep can confirm or deny. DEBUG is a very primitive app keep in mind. Handy, but short on bells and whistles.
 
Now I'm going looney(er)...
DDT doesn't have a (W)rite command, but DEBUG does. I remember now, under CP/M, you have to exit from DDT and use CP/M's 'SAVE' command to write the contents of (all or part of) memory to disk (after you've loaded it from disk into DDT with the (R)ead command.
I'm just getting my debuggerz mixed-up a little.

--T
 
Back
Top