home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 625.lha / EPROMmer_v2 / Eprommer.doc.pp / Eprommer.doc
Text File  |  1992-03-01  |  11KB  |  197 lines

  1.  
  2. March 23, 1989
  3.                            ABOUT THESE FILES
  4.  
  5. Eprommer.doc - this file.
  6. Eprommer.pic - the schematic, a dpaint picture.
  7. Personality.pic - schematics for the personality modules, a dpaint picture.
  8. Eprommer.bas - The basic program, an ascii file.
  9. Eprommer.run - The compiled program.
  10. Exec.bmap - one of those files you have to have to use kickstart routines
  11.           from basic.
  12.  
  13. There are also .info files and maybe a batch file for renaming files with
  14. big names.
  15.  
  16.                          WHAT ARE WE HERE FOR?
  17.  
  18.      I designed an EPROM programmer and wrote some software for it. Here
  19. we have the schematics and the source and compiled versions of the
  20. program. I designed this programmer to read and write sound chips for
  21. drum machines and drum pads, so the software has some extra features
  22. that can do some conversion of different data types, as well as raw
  23. AMIGA sound files. Since I've built it, it's been used for other EPROMs
  24. as well. It will read and program 2716 to 27512 EPROMs. It will also
  25. read 24 pin 8k roms as well. Also, it wouldn't take much to modify it
  26. for 32 pin EPROMs up to 4 megabit. The software works pretty well, but
  27. even compiled, it is still written in basic and can't use all the neat
  28. features that C programmers have at their disposal. I promise to learn C
  29. someday. The hardware is first rate. By the way, this whole shebang is
  30. my property and you are only allowed to build it and use the software
  31. personally, no selling or profit-making without my written consent. You
  32. may send the entire arc-ed file to other networks as long as you do not
  33. remove anything from it. I also intend this programmer and the software
  34. for casual use around the house, and can not be responsible for damages
  35. from it, it's use, etc. The EPROMs it makes work fine for me, but don't
  36. put one in a heart-lung machine or an MX missile. Especially not in an
  37. MX missile.(though I have heard that worse parts have gotten into a
  38. few). 
  39.  
  40.                         WHAT YOU SHOULD DO FIRST
  41.  
  42.      If you haven't executed the execute.me file, you should do that.
  43. Then you can delete it. Print out the pictures. When you look at them,
  44. the aspect ratio may seem a little squat, but they will print nicely.
  45. The pics are 640x408, 2 color. Set preferences pitch to elite.
  46. (important!) In the dpaint print menu, set margins at 1 and 64, page
  47. height 34 lines, %high=100, %wide=100. Use the old preferences printer
  48. drivers, they glitch less from dpaint. There's one on the boards called
  49. newepson.dri that doublestrikes and looks real good. Print out the .bas
  50. version of the program. It's rather large, but hopefully not so
  51. fragmented and batshit that you won't be able to figure it out with a
  52. little help and understanding of the circuit. Actually, the software is
  53. self-explanatory, you can use it without 
  54. knowing how it's done.
  55.  
  56.                            ABOUT THE CIRCUIT
  57.  
  58.      The first part is the power supply. It requires an ac adapter with
  59. a 12vac rating, meaning more than 12v unloaded. Half wave rectification
  60. is used, and a voltage doubler for the programming voltage. There's a
  61. negative 1.2 volt bias supply so the 317 regulator can swing to 0 volts.
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. The 317 has three transistors attached to it so it can supply three
  69. programming voltages plus either high or low TTL level, depending on
  70. jumper 8-9 on the personality module. The programming voltage is
  71. software selectable. The first 74HCT374 turns on and sets the
  72. programming voltage. It also can set up one of the other 374's for
  73. latching an address. It does it like this: When we make SEL high, the
  74. first 374 latches onto a byte from the parallel port. If the first
  75. bit(loaddr) is low, we have set up the third 374 so that when we then
  76. make SEL low, the third 374 is clocked, latching the lower address. This
  77. all assumes we have been stuffing the appropriate data out the parallel
  78. port. So we go like this: stuff a command out parallel port, clock SEL
  79. high, stuff a byte of the address out parallel port, clock SEL low,
  80. stuff a command out parallel port, clock SEL high, stuff other byte of
  81. address out parallel port, clock SEL low. Now you have the address set
  82. for the EPROM, and you can read or write it. BUSY is hooked to both OE
  83. on the EPROM and DIR on the 74HCT245, so if we want to read the EPROM we
  84. first should make the parallel port tri-state, then we can pull BUSY low
  85. and the EPROM's data will be sent to the port where we can read it. If
  86. we want to write to the EPROM, we would leave BUSY high, set our
  87. programming voltage, and pulse POUT low. POUT is connected to PGM on the
  88. EPROM, so that's all it takes. On 2732 and 27512 EPROMs, some pins do
  89. more than one thing, so we have to change the program slightly for them,
  90. but basically that's it. The personality modules adjust the pinout for
  91. the various EPROM types. By the way, you will notice there are 3 unused
  92. pins on the command 374. You can hook anything you want there, but I  
  93. intended to use them for the extra address lines required by some of the
  94. new jumbo EPROMs in 32 pin packages. Keep your eyes peeled for updates.
  95.  
  96.                             HOW TO BUILD IT
  97.  
  98.      I wire-wrapped the thing and put it in a plastic box. I suggest
  99. using a double row header or some kind of connector right on the
  100. perfboard so you don't have a big cable hanging off the end while you
  101. are trying to build it. I also used zero insertion force sockets for the
  102. EPROM and the personality modules. I plugged and glued the ZIF sockets
  103. into wire wrap sockets on the board to get them in the air. I glued all
  104. the sockets to the board. For ICs, you will need three 74HCT374, one
  105. 74HCT245, and a 74HCT02. You can probably use LS parts, but HC will
  106. probably not work. You will need a 7805 and a 317 regulator, and if you
  107. use TO-220 packages you won't need to heatsink them. I used a 12 vac,
  108. 800ma AC adapter, you can probably use one rated at 500ma. The current
  109. requirements are not steep, but we only half wave rectify plus the
  110. voltage doubler, etc. So much for sentence fragments. Don't substitute
  111. 1N4000 types for the 1N914s, we need speed in one place and voltage
  112. drops in another. You must include the .01-5.1k termination on the three
  113. control lines to avoid false clocking when we change data on the
  114. parallel port. I smoked a few EPROMs before I figured that out. I had a
  115. real long cable, and the programming voltage would come on while I was
  116. reading EPROMs. 27512s die when they get 25 volts. You will need some 16
  117. pin dip-type headers to make into personality modules. They are just
  118. jumpers, and most do a couple of EPROM types. 
  119.  
  120.                            ABOUT THE SOFTWARE
  121.  
  122.      Pretty much the first thing that happens is the allocation of 64k
  123. of ram. This is a scratchpad area where we can move data in and out, cut
  124. and paste. It is the place where all data tranfers must pass. I used the
  125. system's mem-alloc function to allocate this ram, for two reasons. 1)
  126. Basic arrays are limited to 32767 words, 2 bytes shy of 64k. 2) Basic
  127. moves arrays whenever a new variable is defined, and I feel
  128. claustrophobic if I can't create a new variable when I want to. This
  129. causes at least one problem. You must have Exec.bmap in the same
  130. directory as the program. No biggie. Also, this program will not run on
  131. a 512k Amiga. This may be because I do not fully understand the
  132. mem-alloc function. It is not clear to me if this is because I requested
  133. fastram or because this program is huge. It isn't that big, so I assume
  134. there must be a way of requsting fastram if there is fastram, and chip
  135. ram otherwise. This is not a problem except when I need to use a 512k
  136. AMIGA, something I avoid whenever possible. The program then does the
  137. normal menu action, and you may notice the dorky basic-style file
  138. system. Another reason to learn C, then I could use the slick
  139. menu-driven file handlers. It works if you remember filenames. The meat
  140. of the eprom part of the program is something reminiscent of the C64.
  141. That is, where do I poke for the CIA?  That is right, I poke the
  142. hardware directly. So don't try to print from your word processor while
  143. programming EPROMs. Maybe I will OPEN the parallel port officially in a
  144. later version of this program so we won't have any conflicts. Uh-oh,
  145. another small problem. Timing. I added do-nothing loops to get the
  146. one-millisecond programming pulses right. THE TIMING WILL ONLY BE RIGHT
  147. ON THE COMPILED VERSION OF THE PROGRAM. If you insist on programming
  148. from the basic interpreter, you should take out the do-nothing parts or
  149. else zero them out. Also if you do other things while programming
  150. EPROMS, you are likely to get some longer than normal pulses. This is
  151. not likely to cause any problems, but if you are programming 27512s, you
  152. might be tempted to play workbench lander while you wait, and it will
  153. take even longer to program the chip. It is unlikely that the chip will
  154. be harmed. By the way, a 2764 takes about a minute to program, and a
  155. 27512 takes about 12 minutes. 
  156.      The extra features: Two's complement. When going between AMIGA
  157. sounds and, say, E-MU E-DRUM sounds, you must translate 0 to 255 numbers
  158. to -128 to 127 numbers, or vice-versa. That is what Two's complement
  159. will do, take the ram you specify and massage it. By the way, the AMIGA
  160. uses -128 to 127for it's sound files. Expand and compress are not
  161. implemented as of this writing, but they are for translating 12 bits
  162. compressed to 8 bits (such as Linndrum or Drumtraks) into AMIGA samples
  163. or vice-versa. I also intend to include a SHUFFLE routine into this
  164. program, to take alternate address bytes like a 16bit machine into
  165. contiguous bytes like an 8bit machine, useful for data files, not sound
  166. samples.
  167.      By the way, use the pulldown menu to exit the program rather than
  168. the close window dot. The system may not properly close all files and
  169. reallocate memory otherwise. Also, to read 2364A ROMs, tell the program
  170. you are reading a 27128 EPROM, but use the 2364A personality module.
  171. Also you must add 4096 to all EPROM addresses, ie to read an entire
  172. 2364A, tell the program to start at EPROM address 4096 and to read 8192
  173. bytes. I did it this way because there weren't enough pins on the
  174. personality socket to include A12.
  175.  
  176.                             CLOSING COMMENTS
  177.  
  178.      This programmer works pretty well, but if you'd like to improve it
  179. or the software, please feel free. I would love to hear from anyone with
  180. comments, as well. I have yet to find anyone to share hardware hacks on
  181. the AMIGA with. There are a few other projects I will probably upload
  182. eventually, so keep your eyes peeled. By the way, if you haven't built
  183. electronic projects from scratch before, check with an expert before
  184. attempting to build this circuit. The schematic makes certain
  185. assumptions about your electronic prowess.
  186.      If you would like to reach me, you may send E-mail to PeopleLink,
  187. my handle is BOFFO*BOB. You can also send  E-mail to MCAB-BBS(a local
  188.  
  189.  
  190.  
  191. Amiga BBS) at 707-964-7114 to BOB BLICK (my real name). My address for
  192. real mail is:
  193. Bob Blick
  194. Box 916
  195. Mendocino, CA 95460
  196.  
  197.