Embedded 8088 code bootup string problem

Greeting all, I have an embedded system that I have to maintain now which had it's last changes put in over ten years ago. I am not a programmer by any means but I need to solve a simple problem: The bootup string has to be put into the prom manually and I think the assembler can do it and save a lot of time. Here's the scoop as I inherited the thing.

The processor is an 8088. The prom is a 27C512. The assembler is a Borland TASM 2.0 Program code is written in six modules totaling about 0.5mb and is assembled by running a batch file in DOS. This creates an EXE file which is converted to a BIN by the DOS EXE2BIN utility. The resulting BIN file has to be blown into a prom and then read back out of the prom as a hex file. This, of course, provides the fill for the prom so the boot up string can be installed by editing the HEX file. The bytes at the boot location must be as follows:

fff0 = ea fff1 = 00 fff2 = 00 fff3 = 00 fff4 = f0

Damn! Surely this can't be the only way!! If I try to put the bootup code in the code at the location specified I get a out of segment error. I think this is because it is being put into an EXE instead of a BIN file and the headers etc run the code past the segment. That's my guess. I do have the documentation for this assembler and, if they thought anyone would ever write anything but PC code, you would never guess it so there is nothing for me there. Sorry people, only the ancient among us may have knowledge about this assembler now. Anyone? And, many Thanks!

Reply to
Eddie Fowlkes
Loading thread data ...

If I'm not totally misremembering things, TASM doesn't really need post-processing by EXE2BIN --- it can generate .COM or raw binary files directly.

That's overly complicated. Just use one of the many BIN2HEX utilities available out there to transform your binary file to hex file format.

[Patching in the jump-to-start at the bootup vector location...]

You'ld have to learn how to instruct TASM and/or the linker to put the boot jump into a segment of its own, and locate that at the right position.

--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply to
Hans-Bernhard Broeker

Definite deja-vu! I was literally just going through some 15 year old

8088/V20 code looking at how I built the ROMs. This wouldn't be for some legacy Vipco/Magic Sign stuff would it? If so, let's talk... ;^)

So far, the other replies have covered everything*. If I come across anything clever, I'll post. As I said, I really am just going through the old code & "tool chain". (Building/knitting a "junk-box special".)

  • The main thing I remember about Paradigm Locate was the incredible
*STINK* from the manual binding. Only the rendering plants in the south-side of Chicago have been worse. Other than that, it worked as advertised.
--
Ron Sharp.
"Gosh that takes me back... or is it forward? That's the trouble with time
travel, you never can tell."
  -- Doctor Who "Androids of Tara"
Reply to
Android Cat

Yep ... (Yecch!)

Tauno Voipio tauno voipio @ iki fi

Reply to
Tauno Voipio

  1. Create a one line text file named a.hex with the boot code in it: :05FFF000EA000000F032
  2. After running EXE2BIN, run a BIN2HEX converter on your file. Example: BIN2HEX binary.bin b.hex
  3. Merge the two hex files using copy: COPY a.hex+b.hex c.hex

You should be able to program the PROM with c.hex. Steps 2 & 3 are the only ones needed for subsequent builds if this works.

Reply to
Dingo

No, No, this is just a very arcane processor used in the two way radio industry. I had figured that the problem was in the way EXE2BIN screwed with the file so I have another EXE written to take the HEX output, pad it and add in the boot string. Since the assembler is just being used for this one processor and application, I think an after-ass treatment will work best here. It is not the best solution but it really is good enough in this case. Thanks, Eddie

Reply to
Eddie Fowlkes

Find yourself a locating linker. It'll make you life a lot easier, especially if you ever find yourself with more than 64k of code.

Paradigm sells development kits. There used to be a linker on the net called jloc that was free as long as you let the author know you were using it. Might still be available.

HTH,

-=Dave

--
Change is inevitable, progress is not.
Reply to
Dave Hansen

Not just that - the very first IBM PC:s (PC, PC/XT) were built on 8088's.

I still have an 8088 from engineering sample series C - othewise OK, but interrupts do not work.

Tauno Voipio tauno voipio @ iki fi

Reply to
Tauno Voipio

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.