Dec 052017
Provides the ability to write a ROM to disk, and then make modifications to it. Includes full C source code.
File HACKROM.ZIP from The Programmer’s Corner in
Category Miscellaneous Language Source Code
Provides the ability to write a ROM to disk, and then make modifications to it. Includes full C source code.
File Name File Size Zip Size Zip Type
2CHIP.BAT 330 199 deflated
2ROMS.BAT 191 123 deflated
APPEND.C 1050 430 deflated
APPEND.EXE 8182 5110 deflated
BINEX.EXE 7680 3406 deflated
CHKSUM.C 1408 680 deflated
CHKSUM.EXE 8592 5402 deflated
HDAT.BAS 1964 992 deflated
LSPLIT.C 1045 543 deflated
LSPLIT.EXE 8176 5189 deflated
ROM.DOC 5559 2294 deflated
ROMSAVAT.C 489 306 deflated
ROMSAVAT.EXE 6650 3592 deflated
ROMSAVXT.C 414 259 deflated
ROMSAVXT.EXE 6650 3595 deflated
ROMSPLIT.C 834 445 deflated
ROMSPLIT.EXE 8038 5092 deflated
UNSPLIT.C 953 478 deflated
UNSPLIT.EXE 8128 5143 deflated

Download File HACKROM.ZIP Here

Contents of the ROM.DOC file

Rom capture utilities for PC and AT

This is a set of utilities that allows the user to capture the contents
of the rom sets in either the PC or the AT. It allows the content of the rom
to be written to a file called xtrom for the XT or atrom for the AT. A
utility called romsplit is provided for the AT that allows the atrom file to
be split into two files that represent the even and odd bytes and which are
called tempeven and tempodd, respectively. Note that this is not necessary
for the XT. Another utility called lsplit is provided to allow the large
files produced by romsav to be split into files that will fit into the desired
destination eproms. For prom burners that accept data format in the Motorola
S record format, a utility called binex is provided that converts a binary
file into standard S record format. A typical session is described below for
an AT.Original Author UNKNOWN, more routines added by Allan Teo.

1. Run the command "romsavat". This will produce a file called "atrom".


2. Run the command "romsplit" (copy "atrom" to a new file temp). This
will produce two files called "tempeven" and "tempodd".

3. If the destination eproms are 27256 then it is not necessary to split
the files into smaller ones, otherwise run the command "lsplit
tempeven", where is the decimal size of the destination file in
bytes (e.g. "lsplit 16384 tempeven" to make tempeven into two files called
"F0" and "F1" that will fit into 27128 eproms. Rename the files to some
new name so that they will not be overwritten at the next step. Now run
the command "lsplit tempodd" to produce files for the odd byte

3.0.1 You can run APPEND to get LSPLITed ROMS back to the original config.
EG: Append F0 F1 tempevn to get back tempevn
RUN UNSPLIT to get back ATROM after recovering tempevn + tempodd

3.1 If you are using roms that come only in 2 27128 eproms (EG: AT PHEONIX),
and you had run ROMSAVAT you will still get a 65536 byte file.
then run UNSPLIT after running lsplit 16384 tempevn etc
producing the F0 and F1 files for both even and odd eproms.
F0 should all be FFs or some garbage and F1 is CODE.
Copy the EVEN F1 to tempevn and the ODD F1 to tempodd.
run unsplit. It will produce a file call ROM.
You can then debug and change it. No point wasting it in 2 27256 eproms.

3.2 Chksum should then be run to recalculate the chksum and produce
a new file you specify, say TEMP. Then you can split it again.

3.3 if the rom file is 65536 bytes, then in DEBUG, the rest of the code
should continue at CS+1000:0 to the end where you can see the date.

4. If you are producing S records run "binex " on
each file that you wish to convert to S record format.

5. Feed them to a prom burner and keep track of which eproms were even

and odd and the order in which they were burned to allow you to install
them properly in the target system.

27512 = 65536
27256 = 32768
27128 = 16384
2764 = 8192

romsavxt will save = 40960 bytes
romsavat will save = 65536 "

chksum.exe works on AT and XT roms that add up all bytes in the rom ignoring
the carry, after which the result in the 1 byte register
(EG:AL or a BL) must equal 0.

:: Example Saving Phoenix Roms or similar clone roms.

copy atrom temp
lsplit 16384 tempevn
copy f1 tempevn
lsplit 16384 tempodd
copy f1 tempodd
unsplit;; produce a 32768 file
debug ROM ;; make changes if wanted
chksum rom temp
BURN tempevn and tempodd in 27128 chips
append f0 tempevn newtempe
copy newtempe tempevn
append f0 tempodd newtempo
copy newtempo tempodd
to BURN TEMPEVN and TEMPODD in 27256 eproms

:: Example Saving the Real Thing and put it into a Taiwanese CLONE.

debug atrom ;; make changes if needed
chksum atrom temp
You can now BURN tempevn and tempodd in 27256 chips
lsplit 16384 tempevn - produce f0 and f1
burn f0,f1 into 27128 eproms, f0 eprom goes into first socket, f1
into SECOND.
lsplit 16384 tempodd - produce f0 and f1
burn f0,f1 into 27128 eproms, f0 eprom goes into THIRD socket, f1 goes

The Next step describes how to CHANGE THE FIXED DRIVE TABLES in an AT.

YOU MUST HAVE SYMDEB from the MASM4.0 package to use this
If you have BASICA or GWBASIC execute the command
A>basica hdat
FOLLOW the instructions in UPPERCASE

Remember to use a FAR pointer if you don't have large mem model
(Large mem model used only in romsavat and romsavxt, all others
can be compiled using the small model)

hdat.bas, all batch files Chksum.c, unsplit.c and append.c
added by Allan Teo, 76566,2357

 December 5, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>