home *** CD-ROM | disk | FTP | other *** search
-
-
-
- March 23, 1989
- ABOUT THESE FILES
-
- Eprommer.doc - this file.
- Eprommer.pic - the schematic, a dpaint picture.
- Personality.pic - schematics for the personality
- modules, a dpaint picture.
- Eprommer.bas - The basic program, an ascii file.
- Eprommer.run - The compiled program.
- Exec.bmap - one of those files you have to have to use
- kickstart routines from basic.
- There are also .info files and maybe a batch file for
- renaming files with big names.
-
- WHAT ARE WE HERE FOR?
-
- I designed an EPROM programmer and wrote some software for it. Here
- we have the schematics and the source and compiled versions of the
- program. I designed this programmer to read and write sound chips for
- drum machines and drum pads, so the software has some extra features
- that can do some conversion of different data types, as well as raw
- AMIGA sound files. Since I've built it, it's been used for other EPROMs
- as well. It will read and program 2716 to 27512 EPROMs. It will also
- read 24 pin 8k roms as well. Also, it wouldn't take much to modify it
- for 32 pin EPROMs up to 4 megabit. The software works pretty well, but
- even compiled, it is still written in basic and can't use all the neat
- features that C programmers have at their disposal. I promise to learn C
- someday. The hardware is first rate. By the way, this whole shebang is
- my property and you are only allowed to build it and use the software
- personally, no selling or profit-making without my written consent. You
- may send the entire arc-ed file to other networks as long as you do not
- remove anything from it. I also intend this programmer and the software
- for casual use around the house, and can not be responsible for damages
- from it, it's use, etc. The EPROMs it makes work fine for me, but don't
- put one in a heart-lung machine or an MX missile. Especially not in an
- MX missile.(though I have heard that worse parts have gotten into a
- few).
-
- WHAT YOU SHOULD DO FIRST
-
- If you haven't executed the execute.me file, you should do that.
- Then you can delete it. Print out the pictures. When you look at them,
- the aspect ratio may seem a little squat, but they will print nicely.
- The pics are 640x408, 2 color. Set preferences pitch to elite.
- (important!) In the dpaint print menu, set margins at 1 and 64, page
- height 34 lines, %high=100, %wide=100. Use the old preferences printer
- drivers, they glitch less from dpaint. There's one on the boards called
- newepson.dri that doublestrikes and looks real good. Print out the .bas
- version of the program. It's rather large, but hopefully not so
- fragmented and batshit that you won't be able to figure it out with a
- little help and understanding of the circuit. Actually, the software is
- self-explanatory, you can use it without
- knowing how it's done.
-
- ABOUT THE CIRCUIT
-
- The first part is the power supply. It requires an ac adapter with
- a 12vac rating, meaning more than 12v unloaded. Half wave rectification
- is used, and a voltage doubler for the programming voltage. There's a
- negative 1.2 volt bias supply so the 317 regulator can swing to 0 volts.
-
-
-
-
-
-
- The 317 has three transistors attached to it so it can supply three
- programming voltages plus either high or low TTL level, depending on
- jumper 8-9 on the personality module. The programming voltage is
- software selectable. The first 74HCT374 turns on and sets the
- programming voltage. It also can set up one of the other 374's for
- latching an address. It does it like this: When we make SEL high, the
- first 374 latches onto a byte from the parallel port. If the first
- bit(loaddr) is low, we have set up the third 374 so that when we then
- make SEL low, the third 374 is clocked, latching the lower address. This
- all assumes we have been stuffing the appropriate data out the parallel
- port. So we go like this: stuff a command out parallel port, clock SEL
- high, stuff a byte of the address out parallel port, clock SEL low,
- stuff a command out parallel port, clock SEL high, stuff other byte of
- address out parallel port, clock SEL low. Now you have the address set
- for the EPROM, and you can read or write it. BUSY is hooked to both OE
- on the EPROM and DIR on the 74HCT245, so if we want to read the EPROM we
- first should make the parallel port tri-state, then we can pull BUSY low
- and the EPROM's data will be sent to the port where we can read it. If
- we want to write to the EPROM, we would leave BUSY high, set our
- programming voltage, and pulse POUT low. POUT is connected to PGM on the
- EPROM, so that's all it takes. On 2732 and 27512 EPROMs, some pins do
- more than one thing, so we have to change the program slightly for them,
- but basically that's it. The personality modules adjust the pinout for
- the various EPROM types. By the way, you will notice there are 3 unused
- pins on the command 374. You can hook anything you want there, but I
- intended to use them for the extra address lines required by some of the
- new jumbo EPROMs in 32 pin packages. Keep your eyes peeled for updates.
-
- HOW TO BUILD IT
-
- I wire-wrapped the thing and put it in a plastic box. I suggest
- using a double row header or some kind of connector right on the
- perfboard so you don't have a big cable hanging off the end while you
- are trying to build it. I also used zero insertion force sockets for the
- EPROM and the personality modules. I plugged and glued the ZIF sockets
- into wire wrap sockets on the board to get them in the air. I glued all
- the sockets to the board. For ICs, you will need three 74HCT374, one
- 74HCT245, and a 74HCT02. You can probably use LS parts, but HC will
- probably not work. You will need a 7805 and a 317 regulator, and if you
- use TO-220 packages you won't need to heatsink them. I used a 12 vac,
- 800ma AC adapter, you can probably use one rated at 500ma. The current
- requirements are not steep, but we only half wave rectify plus the
- voltage doubler, etc. So much for sentence fragments. Don't substitute
- 1N4000 types for the 1N914s, we need speed in one place and voltage
- drops in another. You must include the .01-5.1k termination on the three
- control lines to avoid false clocking when we change data on the
- parallel port. I smoked a few EPROMs before I figured that out. I had a
- real long cable, and the programming voltage would come on while I was
- reading EPROMs. 27512s die when they get 25 volts. You will need some 16
- pin dip-type headers to make into personality modules. They are just
- jumpers, and most do a couple of EPROM types.
-
- ABOUT THE SOFTWARE
-
- Pretty much the first thing that happens is the allocation of 64k
- of ram. This is a scratchpad area where we can move data in and out, cut
- and paste. It is the place where all data tranfers must pass. I used the
- system's mem-alloc function to allocate this ram, for two reasons. 1)
- Basic arrays are limited to 32767 words, 2 bytes shy of 64k. 2) Basic
- moves arrays whenever a new variable is defined, and I feel
-
-
-
-
-
-
- claustrophobic if I can't create a new variable when I want to. This
- causes at least one problem. You must have Exec.bmap in the same
- directory as the program. No biggie. Also, this program will not run on
- a 512k Amiga. This may be because I do not fully understand the
- mem-alloc function. It is not clear to me if this is because I requested
- fastram or because this program is huge. It isn't that big, so I assume
- there must be a way of requsting fastram if there is fastram, and chip
- ram otherwise. This is not a problem except when I need to use a 512k
- AMIGA, something I avoid whenever possible. The program then does the
- normal menu action, and you may notice the dorky basic-style file
- system. Another reason to learn C, then I could use the slick
- menu-driven file handlers. It works if you remember filenames. The meat
- of the eprom part of the program is something reminiscent of the C64.
- That is, where do I poke for the CIA? That is right, I poke the
- hardware directly. So don't try to print from your word processor while
- programming EPROMs. Maybe I will OPEN the parallel port officially in a
- later version of this program so we won't have any conflicts. Uh-oh,
- another small problem. Timing. I added do-nothing loops to get the
- one-millisecond programming pulses right. THE TIMING WILL ONLY BE RIGHT
- ON THE COMPILED VERSION OF THE PROGRAM. If you insist on programming
- from the basic interpreter, you should take out the do-nothing parts or
- else zero them out. Also if you do other things while programming
- EPROMS, you are likely to get some longer than normal pulses. This is
- not likely to cause any problems, but if you are programming 27512s, you
- might be tempted to play workbench lander while you wait, and it will
- take even longer to program the chip. It is unlikely that the chip will
- be harmed. By the way, a 2764 takes about a minute to program, and a
- 27512 takes about 12 minutes.
- The extra features: Two's complement. When going between AMIGA
- sounds and, say, E-MU E-DRUM sounds, you must translate 0 to 255 numbers
- to -128 to 127 numbers, or vice-versa. That is what Two's complement
- will do, take the ram you specify and massage it. By the way, the AMIGA
- uses -128 to 127for it's sound files. Expand and compress are not
- implemented as of this writing, but they are for translating 12 bits
- compressed to 8 bits (such as Linndrum or Drumtraks) into AMIGA samples
- or vice-versa. I also intend to include a SHUFFLE routine into this
- program, to take alternate address bytes like a 16bit machine into
- contiguous bytes like an 8bit machine, useful for data files, not sound
- samples.
- By the way, use the pulldown menu to exit the program rather than
- the close window dot. The system may not properly close all files and
- reallocate memory otherwise. Also, to read 2364A ROMs, tell the program
- you are reading a 27128 EPROM, but use the 2364A personality module.
- Also you must add 4096 to all EPROM addresses, ie to read an entire
- 2364A, tell the program to start at EPROM address 4096 and to read 8192
- bytes. I did it this way because there weren't enough pins on the
- personality socket to include A12.
-
- CLOSING COMMENTS
-
- This programmer works pretty well, but if you'd like to improve it
- or the software, please feel free. I would love to hear from anyone with
- comments, as well. I have yet to find anyone to share hardware hacks on
- the AMIGA with. There are a few other projects I will probably upload
- eventually, so keep your eyes peeled. By the way, if you haven't built
- electronic projects from scratch before, check with an expert before
- attempting to build this circuit. The schematic makes certain
- assumptions about your electronic prowess.
- If you would like to reach me, you may send E-mail to PeopleLink,
- my handle is BOFFO*BOB. You can also send E-mail to MCAB-BBS(a local
-
-
-
-
-
-
- Amiga BBS) at 707-964-7114 to BOB BLICK (my real name). My address for
- real mail is:
- Bob Blick
- Box 916
- Mendocino, CA 95460
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-