Xref: utzoo comp.os.msdos.programmer:3633 comp.sys.ibm.pc.hardware:6013 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!gvgpsa!gold.gvg.tek.com!shaunc From: shaunc@gold.gvg.tek.com (Shaun Case) Newsgroups: comp.os.msdos.programmer,comp.sys.ibm.pc.hardware Subject: Re: Romable code with Microsoft C? Message-ID: <2006@gold.gvg.tek.com> Date: 27 Feb 91 22:46:19 GMT References: <1991Feb22.155750.1404@wuphys.wustl.edu> <1991Feb22.211530.4528@nntp-server.caltech.edu> Followup-To: comp.os.msdos.programmer Organization: Grass Valley Group, Grass Valley, CA Lines: 52 In article <1991Feb22.211530.4528@nntp-server.caltech.edu> josephc@nntp-server.caltech.edu (Simplelogic) writes: >marty@wuphys.wustl.edu (Marty Olevitch) writes: > >>We have an application that runs on a PC from ROM. Up until now, we have >>been using Aztec C to create the romable code, but now we are thinking of >>switching to Microsoft C for a number of reasons. Looking over the >>documentation, there is nothing on creating romable code with MSC. Can it be >>done? Is it necessary to buy a separate linker or "locater", or can the MS >>link program be used? > >I have had a similar wish using Borland's products, and I have found that >there was no way to directly produce rommable code. A quick call to Borland >did, however, reveal a name of a company that might help: Paradigm Systems >(1-800-582-0864, or 1-800-537-5043 to order) in New York. > When I had to design and build a single board 8088 machine with a monitor in ROM for an engineering class, I used a utility called ROMIZE that turned turbo C object code into rommable code. However, it needed either TASM or MASM, along with exe2bin to make the code. The utility was horked off Compu$erv by a classmate, and is PD as far as I know. I used it with great success. The only restrictions were: 1) You had to compile to .obj code using the right memory model (small, I think, it's been a while) 2) You couldn't use any library routines that called BIOS services or did PC dependent stuff. Thus, you couldn't use floating point, printf(), file io, console io, etc, but you could use things like isalpha(), casts, arrays, etc. I wasn't really sure in some cases what used BIOS calls and what didn't, so I ended up writing a lot of small functions like str_to_hex(), itoa(), etc. It was pretty easy, and a lot of fun, and now I have a nice library of (probably inefficient) routines for bonehead compilers that don't support things like strstr(). The utility had its own c0 startup code, which was assembly, with source. You could change it if you wanted to -- I think I had to make a small patch to it. Anyhow, I still have the package, and would be willing to mail it to a few people, if you are interested. I'd really like it if someone could find an FTP site for it, or could put it on Simtel. It's pretty short. Shaun. -- Shaun Case: shaunc@gold.gvg.tek.com or atman%ecst.csuchico.edu@RELAY.CS.NET or Shaun Case of 1:119/666.0 (Fidonet) or 1@9651 (WWIVnet) --- A bullet in the Bush is worth two in the hand.