home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 233.lha / Eprommer / Eprommer.doc < prev    next >
Text File  |  1989-04-29  |  11KB  |  265 lines

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