home *** CD-ROM | disk | FTP | other *** search
- --- DOCUMENTATION FOR the CHKSUM , SPLIT and ADDROMS program USAGE---
-
- Anyone intersted in the source codes for these programs,
- send $5 to the address below to cover disk & mailing costs.
-
- **** BOTH PROGRAMS REQUIRE DOS 3.0 AND UP *****NO CHECK IS MADE
-
- -----------------------------------------------|
- WRITTEN by: Pete Korner |
- 10509 Hunt Ave. |
- South Gate, Ca. |
- 213-533-8568 |
- -----------------------------------------------|
-
- CHKSUM provides the true checksum of any file, any size, but primarily
- written to use on PC/AT roms. The roms may be edited but their cheksum
- must be adjusted to end with 00 in order for them to boot up. The first
- two bytes (I.E. XX00) can end up to be any hex charaters.
- ------------------------------------------------------------------------
- SPLIT separates a file into even and odd byte files for eprom use in the
- AT or AT clone type computers.
- -------------------------------------------------------------------------
- ADDROMS reverses the action of SPLIT , combines even and odd roms files
- into one file which allows for easier editing.
- --------------------------------------------------------------------------
- PC/XT roms are 8 bit and DO NOT require splitting into evn/odd files.
-
- Note: PC/XT clones have no basic roms, only the BIOS. The rom
- is at fe00:0 to fe00:ffff for 2000h bytes. Change the move
- address in AT's debug routine to fe00:0 2000 cs:100 and set CX to
- 2000h instead of 8000h and only one file needs to be named/written.
- IBM PC/XT basic rom adresses are at f600:0 , f800:0 , fa00:0 and
- fc00:0 for the four basic roms. The PC/XT BIOS rom is at fe00:0 .
- ---------------------------------------------------------------------------
-
- If you are interested in editing your roms, READ the rest of this file.
- I'll go through a relatively simple example of editing the disk para-
- meter table and 'fixing' up the checksum afterwords.
- ----------------------------------------------------------------------------
-
- The following debug routine may be used to read the AT or AT clone roms.
-
-
- debug 'CR' ;start debug
- - ;debug's cursor
- rcx ;set CX register
- 8000 ;for 8000h bytes
- n 1st.hlf ;name for the 1st half of rom
- m f000:0 8000 cs:100 ;move 1st half of rom into debug's segment
- w ;write the file to disk
- n 2nd.hlf ;name fo 2nd half of rom
- m f800:0 8000 cs:100 ;move 2nd half of rom into debug's segment
- w ;write the file to disk
- q ;quit debug
-
- At this point we have two files, 1st.hlf and 2nd.hlf 32768 decimal bytes
- each. Most AT clones have 128k roms, in which case the 1st.hlf is all 'ff's
- and we do not need it. In this case the 2nd.hlf file is the complete bios rom.
-
- IBM's AT roms are 256k each so we need to combine the two files. Use the
- folowing commands from dos.
- copy /b 1st.hlf+2nd.hlf atrom ;creates new file ATROM
- del 1st.hlf ;we do not need
- del 2nd.hlf ;these any more
-
- Now we have the complete ROM in one file. Running the chksum program
- should yield a hex number which ends with '00'. All roms must have a
- 'XX00' cheksum, otherwise they won't boot.
- In the AT roms the hard disk parameter table starts at 'offset 6401' ,
- 6501 if using debug. Each group of 16h bytes corresponds to a 'type' ,
- of hard disk starting with type 1 at offset 6501.
- This table may be modified if you are installing a hard disk whose
- parameters do not match any of the standard values in the rom.
- [i.e. # of cylinders, heads etc.] We can maximize hard disk capacities
- by matching these parameters.
- I modified my AT clone's rom for RLL use with the WD 1003 - RA2
- controller by replacing the 11h [# of setors/track] byte in the
- table with 1Ah [26 sectors]. This provided 50% more capacity on my
- hard disk.
- After modification the checksum must be made to end with 00's again.
- Here is how we can do it...
- After modifing the rom file to your liking write it back out to
- disk with debug's 'W'command.
- Run the chksum program on the file.
- Write down the new checksum.
- Let's say the new checksum is 2233h.
- Load the modified rom file again with debug. [i.e debug atrom]
- Type the following at debug's prompt: H ffff 2233
- Debug comes back with the sum and diff: 2232 DDCC
- What we need is the last two bytes of the diffrence. The 'CC'.
- We need to change an unused 'FF' in the rom to 'CC'.
-
- The starting precomp cylinder bytes for some AT hard disks is ff ff
- in the table.
- At 6556 and 6557 we find a couple of 'ff's corresponding to
- the precom cyl. bytes for type 6 hard disk.
- This disk is 615 cyl 4 heads [20meg] with the precom cyls. 'ff ff'
- As long as the precomp cyls # is greater then the # of cylinders
- [6702h reversed = 0267h = 615dec ] the controller will not format
- any cylinders with precomp.
- So we can freely change the first byte to anything so our checksum
- will come out to "xx00".
- In our case we change it to 'CC' [-E 6556 FF.CC ]
- and write it back out with a "W'.
- Now if we rerun the chksum on the file it will have an 'XX00' checksum.
- AT roms are split evn/odd [low/high] because of the 16 bit address bus.
- We need to split our file in this fashion to make it usable as a ROM
- in an AT or AT clone. [Remember the checsum MUST end with 'xx00' for
- the combined file not neccesarily for the split ones individualy.]
-
- When we run the SPLIT program on our new file ATROM, we get ATROM.EVN and
- ATROM.ODD suitable as input files for eprom burners.
-
- I hope you'll find these ROMTOOLS useful... Pete Korner
-