I wonder if it is possible to use the Masm package to do application that are writable to ROM/EPROM/EEPROM ....

In what thing is *normal* programming different than ROM/EPROM/EEPROM programming ?

If you have any ressource or source code , it will be greatly appreciated :)

Thank you.
Posted on 2001-08-12 22:58:33 by JP?
Somewhere in my self behind me is a schematic and source code to an EPROM programmer i got in an electronics mag years ago.. However, its possible to use MASM for this as the source code (if you have the proper behaviours needed understood), but you will also need an external hardware device to actually program the chips (this is what the schematic was).. Im not sure if this was what your intentions were??

Posted on 2001-08-12 23:04:05 by NaN
Yeah ... I know what it is ( talking of the EPROM programmer .... and also the EPROM eraser which shoots UV light )

I'm 16 right now and I definitly plan to do my Computer Engeneering at the University. I do some simple and more complex circuit right now .... and I was wondering if I could program my own EPROM chip !

Aren't you studying in Engeneering NaN ?

Posted on 2001-08-12 23:15:54 by JP?
   • Your destination architecture is an 8086
   • Your writing the boot loader (addr:0xFFF0)

   Create a com (binary image) program. Then convert into a format that the burner software can use.
Posted on 2001-08-13 03:16:23 by eet_1024
hmm hmm, your question isn't really clear to me. an eeprom is just some memory, but what kind of processor is gonna read it out? and execute it? if you use a 8086 you have to use a normal assembler like masm, tasm, etc. but if you use a uC like a PIC or something then you need to look around on the web. I'm studying something like you wanna study btw ;)
Posted on 2001-08-13 11:28:40 by lifewire
Hi there
When a micro start up, it looks for the first instruction at a set address, ie the 8085/Z80 look for an instruction at address 0000H. (which btw is usually "disable interupts").
Hence the hardware needs to be configured so that the EPROM is wired for this addres where the micro fetches its first instruction.
On a PC the bios takes care of this before starting DOS/WIN or whatever.
Masm exe files does not start at this adress and hence cannot be used directly.
As far as I know there are no switches to change this in MASM.

If you are after an EPROM programmer do a search for this and "Electronics Australia". They ran a project a few years ago, though the programmer is limited to 8M from "memory"??.
The unit will read/write most of the old CMOS EPROM with 25Vpp.
Limited on the new 3.3V stuff though.

Hope this helps


Posted on 2001-08-14 04:07:52 by fiddler
JP3: Can you post more info please?

fiddler & JP3:
   When writing a com file, you use the ORG directive.

In a com (and a sys?) prog:

ORG 100H
In a bootloader for the 8086:

JMP Main

ORG 0E000H ;Where your main code will reside

Here is a fasm example:


org 0x200
db 'Test String'
times 0x400 - $ db 0 ;The fills the gap in the file.

org 0x400
jmp Main
db 'Hello World'

Command line:

  The org directives are used to create correct jump's. FAsm creates a relative jump to -202 (FAR).

  Debug will treat the bin as if it was a com and load it at 0x100. But this is insignifacant when using relative jumps.
Posted on 2001-08-14 04:33:30 by eet_1024
Just woundring...
Where can I by a EPROM/EEPROM - burner?
I heard about it but can't find It...

What can i do with a EPROM/EEPROM burner?
Posted on 2001-08-15 04:46:43 by d00zer
"What can i do with a EPROM/EEPROM burner?"

PC's start executing instructions from the
ROM/EPROM on the motherboard. These instructions
eventually pass control to the operating system on
the Floppy/CD-ROM/Harddrive. Then Windows or
whatever takes over.

If you wanted to you could rewrite the program on
the ROM/EPROM to do whatever you wanted it to do.
An example was discussed on The Screen Savers on
TechTV the other night. A guest was demonstrating
old Radio Shack 100 laptops, circa 1983-4. He
said that all of the blinking warning signs used
by the California Department of Transportation
were controlled by these RS 100 or 102 laptops.
The original ROM was taken out of each laptop and
replaced by a stripped down version of UNIX to run
the warning displays and communicate with
headquarters with their built in modems; I think
they were 300 Baud originally!

Some of the very old motherboards I originally
started playing with--1985--had an open socket
that you could plug a ROM into. The address for
the socket was printed on the motherboard and
would be the address your program would branch to.

Many network cards have ROM sockets which are
designed to hold Boot-ROMs to have the client PC's
load their operating systems from the server via
the network.

Many other possibilities exist if you consider
things other than PC's

Also whether the code would be a COM or EXE or SYS
doesn't necessarily matter if the ROM is replacing
the motherboard ROM. Since the COM, EXE, SYS
would only matter after Windows had taken control.
This would be straight assembly code.

Posted on 2001-08-15 05:20:17 by farrier
   That's another good example of obsolete hardware given a new life.

   When I say to create a com/sys, I mean to create a binary image file. An exe file is parsed by Windows (or DOS) and loaded into memory in slightly different form. This includes allocating different segments for code, data, etc. the header at the beginning of the file tells the loader of what segments to create. All DOS (or Windows) does to a com file is load it at offset 0x100. It has no header and only one segment for code, data, and the stack. The maximum amount of code that can go into a com file is 65435 bytes (the PSP eats 0x100B). But this requires a few tricks :) to have a stack and data area.

   To create an image for a ROM/ERPOM/EEPROM/FLASH that is bigger than 64k, you can copy smaller images into a bigger one. Just use the org directive properly. Or for some real fun, write a debug script and patch the jmp's.

All of this talk about ROM's has put me into a mood to breadboard an 8086 with FLASH, RAM, and some LED's for Sh_ts and giggles. (((:grin:)))
Posted on 2001-08-15 06:08:31 by eet_1024
For a EPROM reader/burner try Needhams.com
Their range support most EPROM's, however they are not cheap starting at USD200

There are untold possibilities, how about turning a game boy into a fish finder or reverse your car chip for more horsepower.

Hope this helps

Posted on 2001-08-15 15:45:00 by fiddler

the asm sources, for masm 5.1, of a award bios, are available in the inet

come with full sources, and with some tools to test the cmos setup program... 9 1/2 megas

the address that are in the .nfo file follow. i wasnt able to connect to they...


Posted on 2001-08-15 19:31:08 by ancev

Yes, please post more info on what you are trying to accomplish.

I've got an EPROM programmer on my desk, I use it all the time (shameless inducement). But not with MASM, I don't code for stand-alone x86 stuff.
Posted on 2001-08-15 22:57:20 by Ernie
I think that the Sennaspy sites have been down for some time now. Try this instead:

BTW, does anyone know how PhoenixNet works?
Posted on 2001-08-16 04:25:48 by Janne
For a cheap eprom burner see


Should keep you off the street for a few hours


Posted on 2001-08-16 04:53:09 by fiddler
8086 starts execution at 0xFFFF0. Segment's sorta slipped my mind. I'll have to see what they are initialized to.
Posted on 2001-08-16 05:01:53 by eet_1024
What I want to do is a very simple thing . ( not very complicated project since it will be my first time with ROM stuff ) ... I've tought about a really simple calculator ( just the basic - + / * )

What do you think of it ? Or if you have simple project ( for a complete newbie in that sector ) in mind tell me .. I'll be pleased :)

Have fun :alright: !

Posted on 2001-08-16 16:34:24 by JP?
What are you plugging the ROM into?

Are you using a development board, or are you planning on building a small system with a microcontroller or microprocessor, or are you replacing the PC ROMs, or what?
Posted on 2001-08-16 17:49:08 by tank
Proposed project: 4-banger calculator

Inputs: 16 push buttons (10 numbers, add, sub, mult, divide, clear, equals)

Output: Numeric display. Direct drive 7-segment LEDs perhaps simplest.

Code: For simple integer calcs, not too terrrible. But I betcha dollars to donuts mult and div never get written (and if mult does work, div will never get fully debugged).

Complexity level: intermediate.

The project combines reading the push buttons with the additional burdon of getting the display elements to properly show the desired numbers.

I'd personally try to think of something simpler to start with, perhaps just driving a single 7-segment display digit and let it count at a 1 Hz rate.
Posted on 2001-08-19 00:01:19 by Ernie
   I've got 3 8086's, 4 256kB FLASH's, 2 128kb RAM's, 4 Hex Displays (really cool and rare), and a 20x2 LCD. If I wanted to get really old school, I've got 2 Z80's.
Posted on 2001-08-19 02:27:49 by eet_1024