What you are seeing with your eprom programmer is the (hex record representation) of that data that is stored in the eprom. The data represents the machine code, which is a level down from the assembly language of the processor. When software is written, especially when it is done so in a high level language, the code is then turned into blocks in assembly or machine language by a compiler. These blocks, called the object code, contain program statements and data are then assembled into a program image by the linker, which is what you are seeing. This image, however, is highly machine dependant and it is generally not possible to run the software on anything other than what it was designed for. On top of the hardware dependancy, it can be very difficult to decode the software back into an intelligble form the hex record.
Adding all of the complexitiies I mention above and more, unfortunately, I don't see how it would be possible to copy a rom chip from a PC and use this to add functionality to a different application.
I recently acquired an EPROM programmer that plugs into my printer port on my PC. The software allows me to take all the hex info off one chip and put it on another, or edit the hex info (hex editor) as I guess most programmers do. Is there any "cool" stuff I can do with this thing? I fantasized taking the EPROM off my 486 motherboard, copying it into a larger capacity chip and adding DOS onto the chip but the Internet searches lead me to believe that's apples and oranges. Most of my searches tend to imply that programming an EPROM is proprietary to a processor/microprocessor and not much mention of software to make things happen between the two. Is there anything "neat" I can do with just my EPROM programmer without getting deeply involved integrating a processor? Can I put a small database on an EPROM chip with my programmer, then mount the chip on a small circuitboard that plugs into a serial/parallel port on a PC and access the data with a simple QBASIC program? Hoping there is something else "cool" I can do with EPROM chips than just copy them. Any help is appreciated, Bart
Hi, Bart. There are quite a few things you can do with EPROMs as a hobbyist (most of them a little dated and clunky in comparison with just using a PIC), but the "cool" part of your burner/programmer is at the other end of the cable.
The printer port is a remarkably versatile collection of Input/Output pins. By being connected to the PC, you can use those I/O pins to sense and control any number of things.
If you want to look into this, the best place to start is Jan Axelson's Lakeview Research website:
This website has a number of really good links which will give you a start in programming and interfacing with the printer port. I'd also highly recommend Jan Axelson's book, "Printer Port Complete", which shows how to do it all in one place. It's well-written and very suitable for people who don't have a degree in electronics, and also provides an accompanying CD which gives numerous examples in several programming languages.
A few pieces of advice. First, start out with your parallel port set in SPP mode (you can do this by tweaking the PC BIOS). Programming is simpler, and there's less chance of a newbie letting the smoke out of the printer port or interface circuit if the I/O pins are dedicated innies or outies.
If you're comfortable with M$DOS, it's a better OS for newbies because you don't have to negotiate with Windows for control of the port I/O. And if it doesn't make you gag, you might want to start out with DOS and M$ QBASIC, the further crippled version of the already crippled QuickBASIC. It's included free in M$DOS 5.0 and up. This will gives you the fastest and cheapest start in reading printer port pins and turning outputs on and off. Actually, if you know what you're doing, you can plug in your interface circuit, boot your computer with M$DOS 5 and the printer port in SPP mode, load QBASIC and read the printer port input pins and set output pins with only a couple of lines of code in the Immediate window. Can't get easier than that.
Wiring errors and code errors errors can both result in damaging the printer port, and you should be able to either throw out the PC or replace an I/O card without cursing your bitter fate (voice of experience). Remember that newer computers (last 10 years) and all laptops have the SMT printer port chip on the motherboard, so smoking this IC usually means throwing out the motherboard, or at least, getting stuck and having to deal with a big repair hassle.
So if you're going to be experimenting with the printer port, I'd recommend you use an old junker PC you can afford to throw away for the hardware debugging part of projects. You can get junkers at garage sales or by dumpster diving from businesses that are upgrading their PCs. This is usually the best way, because you can get frequently get identical machines in quantity, most of them are fairly new, and nobody really enjoys throwing out something that still works. Some businesses will be happy to let you scavenge the old boxes as long as they trust you to wipe the hard drive first. A corollary to this is checking at your local religious primary and high schools. They are the foremost recipients of donated business PCs, and are always trying to rotate the oldest ones out. Be sure to volunteer to move them out yourself. Since you want to feel good about this, offer a few bucks each, too. Saint Liebowitz will thank you, and it's always good to have him on your side, offering up a prayer for your circuit when you turn the power on. ;-)
"Bart" schreef in bericht news:5c36e$436b4f57$d8442642$ snipped-for-privacy@FUSE.NET...
Sorry but can't give much help. An EPROM programmer is a tool just like a hammer. You can use the latter to hit nails into something but to be usefull you need some project that needs that nails. I can imagine some projecs for EPROMs but they need skills and interests you apparently don't have. After all, normal, windowed EPROMs are out of focus for quite some time. It's all EEPROM or flash these days.
Well, depending on your breadboarding skills, you can do any number of things. But you'll have to get into the guts, the nuts and bolts, the ones and zeros of binary EPROM programming. Your hex file shows you the bit pattern in the EPROM. And erased EPROM should show all FF.
So, you've got a universal logic chip that, for any given pattern of
13 (14? 15? 16? depends on the EPROM) input bits, you can define a unique pattern of 8 output bits.
State Machine? Bootstrap ROM/OS? (You'd have to hand-assemble that, like any other idea here) Sound Generator? Logic Generator? Character ROM?
Thanks for all the replies, I'm wondering from Rich's reply that if I breadboard the EPROM for reading, and hook up a 4-bit binary counter to the inputs at say 1 herz, then whatever is programmed (binarily speaking) at address zero will fire corresponding output pins (the one's, not zeroes), and a second later fire output pins corresponding to data programmed in address one, toggling each second through to address 15. I could program one's and zeroes in the proper spots at each address to control a segmented LED to change character every second. If not enough milliamps for LED's then I could incorporate transistors at each output pin to fire the LED's? Am I thinking correctly on this? Hope so as this could open up a whole new area for me. Any responses appreciated, Bart
"Bart" schreef in bericht news:338d1$436d6806$d8442895$ snipped-for-privacy@FUSE.NET...
Your thinking is correct, but you have to pay attention to some details. So you connect the outputs of your counter to the addresslines A0-A3 of the EPROM and all other addresslines to ground. You also have to pay attention to the current that can be drawn from the outputs of the EPROM. Different types have different specifications. You may need to read the datasheet.
EPROM outputs can often sink more current then they can source. So it may be interesting to connect a LED with its seriesresistor between Vcc and the output. Be aware that a zero on the output lights the LED in this case.
You only use a very small part of the EPROM in this example. Other addresslines may be used for longer sequences (with a five or more bits counter) or to make a choice between different sequences.
If you have more questions, feel free to ask here. It's what this group is meant for.