home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 625.lha / 2MegAgnusHACKinA2000.pp / 2MegAgnusHACKinA2000
Text File  |  1992-03-07  |  53KB  |  1,226 lines

  1. **** HOW TO PUT 2Meg AGNUS INTO A2000 + 2M/1M enhancements **** (FULL)
  2.  
  3. Hi !
  4. Many people asked me for a 2Meg Agnus hack repost...
  5.  
  6. As I cannot E-mail my articles directly, I post BOTH OF THEM again here.
  7.  
  8.         Part ONE deals with "simply" putting a new 2M Agnus into A2000s.
  9.  
  10.         Part TWO deals with some enhancements to the original project,
  11.         such as using again the original on-board 1M as slowFAST RAM,
  12.         or saving 1M of CHIP by re-using these 1M.
  13.  
  14. If you're interested in one part only, just "search" the
  15. words "PART ONE" or "PART TWO" in the text below. They're only once.
  16.  
  17. DON'T FORGET THAT I HAVE ==NOT== MY AMIGA HERE IN JAPAN,
  18. SO THAT THESE HACKS HAVEN'T BEEN TESTED YET.
  19. NOR I CAN SUPPLY YOU WITH ANY SCHEMATICS OR PCB !
  20.  
  21. Ready ? Set, Go !
  22.  
  23. ----PART ONE : how to put 2M Agnus into A2000----
  24.  
  25. Hello folks, I'm back !
  26.  
  27. After having posted here again my article about 2Meg AGNUS inside A2000,
  28. I found I was a lazy boy to not have SERIOUSLY thought about it yet.
  29. I finally achieved the artwork this morning.
  30. This has NOT been tested on my own A2000, because it has now a looong rest in France...
  31. I'd really like to, but as I can't, please feel free to TRY it by yourself
  32. if you're brave enough to face the difficulties (personally, I would NEVER hesitate...).
  33.  
  34. This hack is made for the people who have an A2000-B, 0.5M/1M Agnus and would like
  35. to become members of the 2M CHIP circle. It will require lots of time,
  36. checkings and CARE, of course.
  37.  
  38. May anybody from C= read this, and correct me if required... THANKS !
  39.  
  40. !!! NOTES !!!
  41.  
  42. ** When I say "xx M Agnus", it means that this Agnus has the ability
  43. ** to address xx M of CHIP RAM. For example, 0.5M Agnus (8370/8371) can
  44. ** address 0.5M of CHIP RAM only, but also 0.5M of "FAST" RAM at #C00000.
  45.  
  46. ** I will talk about the 2M CHIP Agnus release for A2000 and A3000 : ref 8372B.
  47. ** It is DIFFERENT from the release for A500+, ref 8375, because the A500+
  48. ** has its memory splitted between on-board chips (1M) and A501+ (1M), so
  49. ** that /RAS0 and /RAS1 still EXIST.
  50. ** The followings may not apply to A500(+) because of this, but A500+ owners
  51. ** have already access to 2M CHIP (A500+ + A501+) !! Lucky they are !!
  52.  
  53. ** The schematics I'll give you are the ones for A2000-B rev 2 with 0.5M Agnus.
  54. ** These are the ONLY ones I own at this time.
  55. ** But I've been able to check the ones of new A500+.
  56. ** For A2000-B with 1M Agnus, I will tell you IF some things differ.
  57. ** Revs. 2 thru 4.2 of A2000-B should not be too different,
  58. ** but I'd like you to CHECK the differences before trying anything !!!
  59. ** Rev 6 of A2000-B doesn't differ on memory parts, so that's also O.K. !!!
  60.  
  61. 1> Jumpers and RAM configurations for Gary and Agnus
  62. ----------------------------------------------------
  63.  
  64. Hereafter, I will name the addresses by their first 2 digits only :
  65. example, #C0 means #C00000..C0FFFF.
  66. These two digits are A23..A20 (1st) and A19..A16 (2nd).
  67. The other "forgotten" ones are A15..A0 (4 digits).
  68.  
  69. ------------------------
  70. Note about CHIP/FAST RAM
  71. ------------------------
  72.  
  73. RAM at location #00..1F is called "CHIP" because all custom chips
  74. and 68000 have access to it. Due to this shared access, this memory
  75. is a little bit slower than "other" memory.
  76.  
  77. RAM at location above #20 and at #C0..C7 is called "FAST" because
  78. only 68000 has access to it. No DMA is possible here.
  79.  
  80. In fact, RAM at #C0..C7 is UNPROPERLY called "FAST" because it is
  81. still managed by Agnus, so that this is still a "SLOW" memory.
  82. The correct term should be "SLOW/FAST" memory, but I'll still
  83. employ "FAST", to distinguish between "CHIP" and "not CHIP" memory,
  84. even if the term employed is not really accurate...
  85.  
  86. -----------
  87. The jumpers
  88. -----------
  89.  
  90. Two jumpers are directly connected to Gary and Agnus :
  91.  
  92.         - J101 : selects A19 or A23 as "A19" input for Agnus
  93.         - J500 : if in, tells Gary that some "fast" RAM is here at #C0..C7
  94.  
  95. Gary receives as inputs A17..A23 from 68000 bus. Then it is able to decode
  96. both #00..1F and #C0..C7 address locations, which correspond respectively to
  97. the first 2Mb of CHIP and the 0.5Mb of "FAST" RAM.
  98.  
  99. If J500 is in, Gary assumes that there is effectively some RAM in #C0..C7,
  100. and will, later on, assert /RAMEN to tell Agnus to manage
  101. some RAM at these locations.
  102.  
  103. If J500 is out, Gary assumes there is no memory at #C0..C7, so that it will
  104. not assert /RAMEN later on at these locations, and will assert /RAMEN only
  105. at #00..1F for CHIP RAM. Agnus then ignores locations #C0..C7.
  106.  
  107. If J101 is on pins 1-2, A23 from 68000 bus is connected to A19 of Agnus.
  108. This position is called "normal" on A2000 (old) schematics, because on
  109. these old ones, the configuration 512k CHIP (#00..07) and 512k FAST (#C0..C7)
  110. is still assumed. These RAM are respectively managed by /RAS0 and /RAS1 of
  111. Agnus. The bank selection is made upon A19 input : /RAS0 is asserted
  112. when A19=0 and /RAS1 is asserted when A19=1 (of course, not permanently,
  113. only during RAM accesses !). This gives two banks of RAM.
  114.  
  115. Agnus receives A1..A18 from 68000 bus, but doesn't decode addresses by itself.
  116. It's the the role of the Gary signal /RAMEN, which acts like a /CS_RAM signal,
  117. to tell Agnus to manage RAM or not. Further on, Agnus should be aware of
  118. the 512k CHIP at #00 and also of the 512k FAST at #C0. As Agnus cannot
  119. decode addresses, A23 will be connected to Agnus "A19" to make sure that
  120. the 1st bank of CHIP will be selected when /RAMEN=0 and A23=0 (=#00..1F)
  121. and the 2nd bank of FAST when /RAMEN=0 and A23=1 (=#C0..C7).
  122.  
  123. If J101 is at pins 2-3 (called "special" position), A19 from 68000 bus is now
  124. connected to Agnus "A19" input, so that the 2nd bank of RAM (/RAS1) is selected
  125. when A19=1, NOT when A23=1. The new memory map is now : 1st bank CHIP (/RAS0)
  126. at #00..07 and 2nd bank CHIP (/RAS1) at #08..0F.
  127.  
  128. According to the previous arguments, you can now set up this chart :
  129.  
  130. configuration   |   J101    |   J500    | comments
  131. ----------------|-----------|-----------|-------------------------------------
  132. 512k CHIP+
  133. 512k FAST           1-2         in        The 1st bank will be at #00..07
  134.                                                                                   The 2nd bank will be at #C0..C7
  135.                                                                                   To be used with 0.5Mb Agnus
  136. ------------------------------------------------------------------------------
  137. 1Mb CHIP+
  138. no fast                     2-3         out       The 1st bank will be at #00..07
  139.                                                                                   The 2nd bank will be at #08..0F
  140.                                                                                   To be used with 1Mb Agnus
  141. ------------------------------------------------------------------------------
  142. 512k CHIP           1-2         out       The 1st bank will be at #00..07
  143.                                                                                   Gary assumes there is nothing at #C0
  144.                                                                                   Works but only 512k...not so useful!
  145. ------------------------------------------------------------------------------
  146. 512k CHIP,
  147. bad memory map      2-3         in        The 1st bank will be at #00..07
  148.                                                                                   but Gary assumes the 2nd at #C0..C7
  149.                                                                                   while Agnus decodes it at #08..0F !!
  150.                                                                                   *** STOP, YOU MISLEAD YOUR AMIGA ***
  151. -------------------------------------------------------------------------------
  152.  
  153. So that if you upgrade from 0.5M Agnus to 1M Agnus, pull J500 out and move
  154. J101 to pins 2-3 : that's all ! And also, if you want to "backgrade" from
  155. 1M Agnus to 0.5M Agnus, put J500 in and move J101 to pins 1-2... could be
  156. useful when, for example, you burnt your 1M Agnus and your local supplier
  157. has only 0.5M spare Agnus to give you while ordering for new 1M ones,
  158. so that you can still use your Amiga with 512k CHIP + 512k FAST (it
  159. happened to me one year ago... I had to use it !).
  160.  
  161. For owners of 0.5M Agnus : an easy way to "disconnect" FAST memory
  162. (with games or else) is to put a switch in place of J500.
  163. With switch "ON", you have 512k CHIP + 512k FAST.
  164. With switch "OFF", you have only 512k CHIP.
  165. But remember to move the switch during Reset ONLY, not while working...
  166.  
  167. 2> The new 2M CHIP version of Agnus
  168. -----------------------------------
  169.  
  170. Somebody previously posted this here in this newsgroup :
  171.  
  172. >The pinout of the 8372b (the 2MB agnus) is the same of the 8370/8371 agnus,
  173. >which you can find in the A500/A2000 manuals, except for 3 pin:
  174. >The RAS0 is now RAS alone, the RAS1 is now MA9 (the tenth bit of the
  175. >multiplexed address for DRAM), the XCLK (external clock) is now A20 (the
  176. >20th address bit of 68000 address bus).
  177. >NOTE: the external clock enable is now kept high by a pullup, so (and for the
  178. >lack of XCLK), using the 8372b, you cannot clock the system externally. This
  179. >may be the reason because the NewTek Video Toaster doesn't work on the A3000.
  180. >--
  181. >                                       red@alessia.dei.unipd.it
  182.  
  183. It means that the new 2M CHIP Agnus :
  184.  
  185.         - now has an only /RAS line instead of former /RAS0 and /RAS1
  186.         - now supplies the RAMs with a new multiplexed address line : MA9
  187.           (to have access to full 2Mb instead of 0.5Mb with MA0...MA8 only)
  188.         - now has no possibility to be "genlocked" thru XCLK
  189.           (this should be made externally with a FAST multiplexer)
  190.  
  191. Only one RAS line is now available : /RAS. It means that only one 16-bit bank
  192. of RAM is managed by /RAS from Agnus. Such a bank could be made of 16 chips
  193. of 1Mx1 RAM : they are splitted into 2 groups of 8, providing 2 banks of
  194. 8 bits accessed by /CASL and /CASU from Agnus (/CASL and /CASU are still here).
  195. You may also use 4 chips of 1Mx4 RAM, and split them into 2 groups of 2 chips
  196. (the PCB is smaller and easier to design, and it should suck less power).
  197.  
  198. But, due to the new MA9 line, RAM multiplexed address bus is now 10 bits wide :
  199. 256k RAM cannot be used anymore (9 bits wide), unless you design some "hack" to
  200. use them.
  201.  
  202. Another annoying feature is that you cannot "genlock" your Amiga with an external
  203. signal connected to XCLK of video port. You should now do this EXTERNALLY, using
  204. a FAST (due to frequencies involved) multiplexer whose inputs are connected
  205. to internal 28M and external XCLK, while input select is achieved by XCLKEN.
  206. The output is then connected to Agnus "28M" input, and to all the other chips
  207. that make use of the system clock. You may or may not wish to do this little
  208. hack too, depending on the genlock board you have or not (I don't have some,
  209. so NOW I don't care for it).
  210.  
  211. 3> What do you have to change to use a 2M Agnus ?
  212. -------------------------------------------------
  213.  
  214. The 10 bits wide address bus for RAM will force you to use some
  215. 1Mx.. RAM, unles you'd like to design a (little more complex) "glue" to
  216. switch (lots of) 256kx... RAM chips.
  217.  
  218. Remember now that the on-board RAM chips will be out of use with your 2M Agnus !
  219. But I'll provide you with a hack with which you'll still be able to use
  220. half of them. Please follow my next article !
  221.  
  222. Some pins have changed, so you'll have to "cut" (safely !) your main board
  223. to connect these pins to new places.
  224.  
  225. 4> Pins to cut/ to remove
  226. -------------------------
  227. Agnus
  228. pin #   | old name  | new name  | what to do on Agnus socket ?
  229. --------|-----------|-----------|----------------------------------------------
  230. 57        RAS0        RAS         still goes to RAMs, no change required
  231. -------------------------------------------------------------------------------
  232. 56        RAS1        MA9         still goes to RAMs, but signal is different
  233.                                   no change required BTW
  234. -------------------------------------------------------------------------------
  235. 35        XCLK        A20         the track from video port should be cut,
  236.                                   then pin 35 should be connected to 68000 bus
  237. -------------------------------------------------------------------------------
  238. 36        XCLKEN      XCLKEN      the name and function didn't change, but
  239.                                   it'd be better to prevent ANY assertion
  240.                                   that may mislead Agnus, so cut the track !
  241. -------------------------------------------------------------------------------
  242.  
  243. In details :
  244.  
  245.         - pin 57 is still a /RAS signal which goes to RAM banks :
  246.           as former /RAS0 selected the 1st RAM bank, you should now cut this signal
  247.           to prevent any conflict between the RAM you'll had and the one on board.
  248.  
  249.                             74F244 (U541)                        --- former /RAS0
  250.                                 |\   22 ohms (RP502)             |  (not used now)
  251.           Agnus pin 57 ---------| >----^-^-^-^----+-- cut here --+-- 1st bank /RAS
  252.                               8 |/ 12 3       4   |              |
  253.                                                   |              --^-^-^-^-|+5
  254.           here you have now /RAS duly buffered----^             pull-up 470 ohms
  255.  
  256.           Existing parts :     - 74F244 (U541)
  257.                                - RP502 (quad resistor pack)
  258.           You'll have to cut : - between RP502 and RAM themselves
  259.           You'll have to add : - a resistor 470 ohms, 1/2W after the cut
  260.  
  261.         - pin 56 takes now part of the multiplexed address bus of RAM banks :
  262.           as former /RAS1 selected the 2nd RAM bank, you should now cut this signal
  263.           to prevent any conflict between the RAM you'll had and the one on board.
  264.  
  265.                             74F244 (U541)                        --- former /RAS1
  266.                                 |\   22 ohms (RP502)             |  (not used now)
  267.           Agnus pin 56 ---------| >----^-^-^-^----+-- cut here --+-- 2nd bank /RAS
  268.                              13 |/ 7  9       10  |              |
  269.                                                   |              --^-^-^-^-|+5
  270.           here you have now MA9 duly buffered-----^             pull-up 470 ohms
  271.  
  272.           Look at the previous hack for the 1st bank, it's same, except for pin numbers !
  273.  
  274.         - pin 35 : the XCLK track from video port should be cut, then pin 35 should be
  275.           connected to 68000 address bus, pin 48 (A20).
  276.  
  277.           XCLK from video ----------- cut here -+----------------- Agnus pin 35
  278.                                                 |
  279.                                                 ------------------ 68000 pin 48
  280.  
  281.         - pin 36 : XCLKEN should be tied to +5v thru a pull-up. Fortunately, this pull-up
  282.           still exists on the main board (RP109, 4.7k, pins 1 & 2). So first, look for it
  283.           and cut the XCLKEN track from video port BEFORE this resistor.
  284.  
  285.           XCLKEN from video ----------- cut here -+----------------- Agnus pin 36
  286.                                                   |
  287.                                                   --^-^-^-^--- pull-up is here !
  288.  
  289. That should be all for cutting operations.
  290. The next step will be soldering only !... but more complicated.
  291.  
  292. 5> The new RAM to use
  293. ----------------------
  294.  
  295. Now your A2000-B is motified to accept without problems the new 2M Agnus.
  296. BUT the major problem is now about RAM themselves : 256kx.. cannot be used
  297. anymore ! You'll have to build your own memory board wht 1Mx.. RAM chips
  298. to fit the new requirements of 2M Agnus !
  299.  
  300. As I am a lucky boy, a friend of mine gave me a full hand of ZIP 1Mx1 RAM
  301. (32 chips !!!), given that "some of them are burnt and he didn't want to
  302. waste his time to check all of them, so that he bought a new set of RAM" !!
  303. Some guys like to waste their money... but it was a chance for me !
  304. After testings, I have now all the 16 required chips for the memory board.
  305.  
  306. You can also use four 1Mx4 chips, but maybe more expensive or less easy to find.
  307. But you can !!!
  308.  
  309. The connections to 2M Agnus are now straight-forward, VERY easy, with NO
  310. additional "glue" (i.e. gates).
  311.  
  312. This was the old configuration with 0.5M Agnus :
  313.  
  314.                                            -------------------------------
  315. /CASL----------------------------------*---| /CAS = /CASL     1/2 Bank 0 |
  316.                                        |   |                  bits 0..7  |
  317. /RAS0-----*----------------------------^---| /RAS = /RAS0     8x256kx1   |
  318.           |                            |   -------------------------------
  319.           |                            |
  320.           |                            |   -------------------------------
  321. /CASU-----^-----------------*----------^---| /CAS = /CASU     1/2 Bank 0 |
  322.           |                 |          |   |                  bits 8..15 |
  323.           ------------------^----------^---| /RAS = /RAS0     8x256kx1   |
  324.                             |          |   -------------------------------
  325.                             |          |
  326.                             |          |   -------------------------------
  327.                             |          ----| /CAS = /CASL     1/2 Bank 1 |
  328.                             |              |                  bits 0..7  |
  329. /RAS1----------*------------^--------------| /RAS = /RAS1     8x256kx1   |
  330.                |            |              -------------------------------
  331.                |            |
  332.                |            |              -------------------------------
  333.                |            ---------------| /CAS = /CASU     1/2 Bank 1 |
  334.                |                           |                  bits 8..15 |
  335.                ----------------------------| /RAS = /RAS1     8x256kx1   |
  336.                                            -------------------------------
  337.  
  338. This was the old configuration with 1M Agnus since A2000-B rev 6 :
  339. (everything is same except RAM chips, now 256kx4 type)
  340.  
  341.                                            -------------------------------
  342. /CASL----------------------------------*---| /CAS = /CASL     1/2 Bank 0 |
  343.                                        |   |                  bits 0..7  |
  344. /RAS0-----*----------------------------^---| /RAS = /RAS0     2x256kx4   |
  345.           |                            |   -------------------------------
  346.           |                            |
  347.           |                            |   -------------------------------
  348. /CASU-----^-----------------*----------^---| /CAS = /CASU     1/2 Bank 0 |
  349.           |                 |          |   |                  bits 8..15 |
  350.           ------------------^----------^---| /RAS = /RAS0     2x256kx4   |
  351.                             |          |   -------------------------------
  352.                             |          |
  353.                             |          |   -------------------------------
  354.                             |          ----| /CAS = /CASL     1/2 Bank 1 |
  355.                             |              |                  bits 0..7  |
  356. /RAS1----------*------------^--------------| /RAS = /RAS1     2x256kx4   |
  357.                |            |              -------------------------------
  358.                |            |
  359.                |            |              -------------------------------
  360.                |            ---------------| /CAS = /CASU     1/2 Bank 1 |
  361.                |                           |                  bits 8..15 |
  362.                ----------------------------| /RAS = /RAS1     2x256kx4   |
  363.                                            -------------------------------
  364.  
  365. This will be the new configuration with 2M Agnus and 1Mx1 RAM :
  366.  
  367.                                            -------------------------------
  368. /CASL--------------------------------------| /CAS = /CASL     1/2 Bank   |
  369.                                            |                  bits 0..7  |
  370. /RAS -----*--------------------------------| /RAS = /RAS0     8x1Mx1     |
  371.           |                                -------------------------------
  372.           |
  373.           |                                -------------------------------
  374. /CASU-----^--------------------------------| /CAS = /CASU     1/2 Bank   |
  375.           |                                |                  bits 8..15 |
  376.           ---------------------------------| /RAS = /RAS0     8x1Mx1     |
  377.                                            -------------------------------
  378.  
  379. And finally this will be the new configuration with 2M Agnus and 1Mx4 RAM :
  380.  
  381.                                            -------------------------------
  382. /CASL--------------------------------------| /CAS = /CASL     1/2 Bank   |
  383.                                            |                  bits 0..7  |
  384. /RAS -----*--------------------------------| /RAS = /RAS0     2x1Mx4     |
  385.           |                                -------------------------------
  386.           |
  387.           |                                -------------------------------
  388. /CASU-----^--------------------------------| /CAS = /CASU     1/2 Bank   |
  389.           |                                |                  bits 8..15 |
  390.           ---------------------------------| /RAS = /RAS0     2x1Mx4     |
  391.                                            -------------------------------
  392.  
  393. 6> How to design your board :
  394. -----------------------------
  395.  
  396. Since no extra gate is required, building it should be really easy.
  397. Most of pins are connected straight-forward from one chip to another.
  398.  
  399. Note that 1Mx1 RAM chips have separate DIN/DOUT pins. To use them
  400. hereafter, these pins should be connected to each other on your board.
  401.  
  402. Here is the diagram using 1Mx1 RAM chips (a double bar means one chip) :
  403.  
  404.                   -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- --
  405.                   || || || || || || || ||          || || || || || || || ||
  406. MA0..MA8----------||-||-||-||-||-||-||-||----------||-||-||-||-||-||-||-||
  407. /WE1--------------||-||-||-||-||-||-||-||   /WE2---||-||-||-||-||-||-||-||
  408.                   || || || || || || || ||          || || || || || || || ||
  409. 4> MA9------------||-||-||-||-||-||-||-||----------||-||-||-||-||-||-||-||
  410. 4> /RAS-----------||-||-||-||-||-||-||-||----------||-||-||-||-||-||-||-||
  411.                   || || || || || || || ||          || || || || || || || ||
  412. /CASL-------------||-||-||-||-||-||-||-||   /CASU--||-||-||-||-||-||-||-||
  413.                   || || || || || || || ||          || || || || || || || ||
  414.                   -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- --
  415. D0..15------------0  1  2  3  4  5  6  7-----------8  9  10 11 12 13 14 15
  416.  
  417. Here is the diagram using 1Mx4 RAM chips (a vertical bar means one chip) :
  418.  
  419.                   --    --           --     --
  420.                   ||    ||           ||     ||
  421. MA0..MA8----------||----||-----------||-----||
  422. /WE1--------------||----||    /WE2---||-----||
  423.                   ||    ||           ||     ||
  424. 4> MA9------------||----|| ----------||-----||
  425. 4> /RAS-----------||----||-----------||-----||
  426.                   ||    ||           ||     ||
  427. /CASL-------------||----||    /CASU--||-----||
  428.                   ||    ||           ||     ||
  429.                   --    ---          --     --
  430. D0..15------------0123  4567---------891011 12131415
  431.  
  432. On A2000 with 256kx1 chips :
  433.  
  434. You'll find...  MA0   at pin 5 of U501..532
  435.                 MA1   at pin 7
  436.                 MA2   at pin 6
  437.                 MA3   at pin 12
  438.                 MA4   at pin 11
  439.                 MA5   at pin 10
  440.                 MA6   at pin 13
  441.                 MA7   at pin 9
  442.                 MA8   at pin 1
  443.                 MA9   after the 22 ohms resistor of chapter. 4>
  444.                 /RAS  after the 22 ohms resistor of chapter. 4>
  445.                 /CASL at pin 15 of U501..508 and U517..524
  446.                 /CASU at pin 15 of U509..516 and U525..532
  447.                 /WE1  at pin 3  of U501..516
  448.                 /WE2  at pin 3  of U517..532
  449.                 D0    at pins 2/14 of U501 and U517
  450.                 D1    at pins 2/14 of U502 and U518
  451.                 D2    at pins 2/14 of U503 and U519
  452.                 D3    at pins 2/14 of U504 and U520
  453.                 D4    at pins 2/14 of U505 and U521
  454.                 D5    at pins 2/14 of U506 and U522
  455.                 D6    at pins 2/14 of U507 and U523
  456.                 D7    at pins 2/14 of U508 and U524
  457.                 D8    at pins 2/14 of U509 and U525
  458.                 D9    at pins 2/14 of U510 and U526
  459.                 D10   at pins 2/14 of U511 and U527
  460.                 D11   at pins 2/14 of U512 and U528
  461.                 D12   at pins 2/14 of U513 and U529
  462.                 D13   at pins 2/14 of U514 and U530
  463.                 D14   at pins 2/14 of U515 and U531
  464.                 D15   at pins 2/14 of U516 and U532
  465.                 +5V   at pin 8 of U501..532  <= put a 0.22 uf decoupling
  466.                 GND   at pin 16 of U501..532 <= capacitor for EACH chip !
  467.  
  468. A2000-B with 1M Agnus and 256kx4 RAM chips have different pinouts.
  469. Search by yourself !!
  470.  
  471. I used separate /WE for lower/upper bits to avoid overloading a single line
  472. with too many chips, and since this line is already doubly buffered on board.
  473.  
  474. This makes a lot of pins to connect ! But since the same pin can be found at
  475. different locations on the board, you can conect them the way you want.
  476.  
  477. BUT don't use excessively long wires... too much noise may occur on buses !
  478.  
  479. May I give you a trick : to fix your board and make connections easier,
  480. try to use wire-wrapping IC sockets and sold their legs DIRECTLY to
  481. older RAM chips. That way, your board will be fasten to the main PCB
  482. AND you will easily pick up the signals on the sockets themselves,
  483. not on the PCB (of course, don't use one socket per RAM chip !!!).
  484.  
  485. May your Amiga bless you... he (sorry, SHE) has 2M CHIP now !!!
  486.  
  487. Good luck. Tell me more about your own works...
  488.  
  489. P-chan.
  490. ---
  491.  
  492. ----PART TWO : how to put 2M Agnus into A2000 ++++ MORE RAM !!!----
  493.  
  494. Can you remember my first article ?
  495. I promised you a continuation.
  496. HERE IT IS !!!
  497.  
  498. ### All of this couldn't have been done without the help of
  499. ### Dave Haynie (from CBM) and many other people on net,
  500. ### who replied to my questions gracefully. Thanks, guys !
  501.  
  502. This addendum to my previous hack will give you the possibility :
  503.  
  504.         - either to add 1Meg of FAST ram at $C0 address, USING the
  505.           EXISTING 1 MEG RAM originally on the main board,
  506.  
  507.         - or to save 1Meg by using this original on-board 1Meg RAM
  508.           (no need for extra 2Meg, 1Meg is enough to have 2Meg of CHIP)
  509.  
  510. I assume that you have read my previous article.
  511. I will try here to give you the most accurate informations as possible,
  512. but since I cannot try it on my own A2000, I cannot help you
  513. to put it inside your computer.
  514.  
  515. The article is made of 4 chapters (all in one post) :
  516.  
  517.         - the 1st will deal with problems to face when trying to add
  518.           more RAM to on-board one
  519.  
  520.         - the 2nd one will explain you how to use the internal 1Meg AND
  521.           an extra external 1Meg to provide 2Meg CHIP, assuming that
  522.           you didn't make the 2Meg hack yet
  523.  
  524.         - the 3rd one will explain you how to use the internal 1Meg again
  525.           as "slowFAST" RAM, assuming that you already made the 2Meg hack
  526.  
  527.         - the 4th one (rather short) will explain you how to generate
  528.           the main clock multiplexer for 28M and XCLK clocks,
  529.           in order to be able to use some genlock again, since
  530.           the new 2Meg Agnus does not do this internally any more
  531.  
  532. For each part, I will explain the theory, then the realization.
  533.  
  534. >>> I SUGGEST YOU TO READ ALL CHAPTERS, EVEN IF SOME OF THEM MAY
  535. >>> BE OF NO INTEREST TO YOU AT FIRST
  536.  
  537. For anything related to my previous article, please read it again !
  538. I will not repeat all of it, just the required points.
  539.  
  540. Ready ? Set... Go  !
  541.  
  542. 1> How Agnuses manage internal RAM; how to add extra RAM
  543. =======================================================
  544.  
  545. 1.1> Agnus 0.5Mb and 1Mb
  546. ------------------------
  547.  
  548. Agnuses 0.5Mb and 1Mb CHIP manage the RAM the same way.
  549. They provide :
  550.  
  551.         - /CASL for CAS of the lower 8 bits  7...0
  552.         - /CASU for CAS of the upper 8 bits 15...9
  553.         - /RAS0 for RAS of the lower 512Ko (bank 0)
  554.         - /RAS1 for RAS of the upper 512Ko (bank 1)
  555.         - MA0..MA8 for multiplexed address bus (256k wide)
  556.  
  557. The only difference comes from the address where bank 1 is assumed.
  558. For Agnus 0.5M CHIP (8370/8371 releases), since only 0.5M CHIP RAM
  559. is available for CPU, custom chips, etc...,
  560. the 2nd bank of 512Ko (bank 1) is mapped at $C0, using
  561. address bit A23 to switch between bank 0 ($00) and bank 1 ($C0).
  562. Gary is aware of this, and selects Agnus at $C0 addresses too.
  563. This gives you 512Ko CHIP at $00..07 and 512Ko "pseudoFAST" at $C0..C7.
  564.  
  565. For Agnus 1M CHIP (8372A), the 2nd bank of 512Ko now follows the
  566. 1st one, at $08.
  567. This gives you 512Ko CHIP at $00..07 and 512Ko CHIP at $08..0F,
  568. for a total of 1M CHIP at $00..0F.
  569.  
  570. Internal jumpers should be set like this :
  571.  
  572.                 J101    J500
  573. -------------------------------------
  574. 0.5M Agnus      1-2     IN      A23 is used to select /RAS0 or /RAS1
  575.                                 There is EXTENDED RAM at $C0
  576.  
  577. 1M Agnus        2-3     OUT     A19 is used to select /RAS0 or /RAS1
  578.                                 There is no RAM at $C0
  579.  
  580. RAMs to be used should be 256k model,
  581. since address bus for RAMs is 9 bits wide.
  582.  
  583. 1.2> Agnus 2Mb
  584. --------------
  585.  
  586. This newest release (8372B) now manages RAM a different way.
  587. It provides :
  588.  
  589.         - /CASL and /CASU again (same functions)
  590.         - an unique /RAS for all RAM
  591.         - an address bus MA0..MA9 of 10 bits (1M wide)
  592.  
  593. One unique bank of 1Mb is now used, with 1Mx1 chips (16) or 1Mx4 (4).
  594.  
  595. The jumpers are in the same configuration as for 1M Agnus.
  596. A19 and A20 are now multiplexed to give the last MA9 address line.
  597.  
  598. 1.3> Major differencies, and problems to solve
  599. ----------------------------------------------
  600.  
  601. [1] The new address bus is now 10 bits wide, for 1M parts, instead of 9
  602. [2] There is now only one /RAS signal for all chips
  603. [3] How to perform refresh cycles now ?
  604.  
  605. Let's study each of them separately...
  606.  
  607. 1.3.1> Bus is 10 bits wide
  608. --------------------------
  609.  
  610. The old address bits multiplexing chart for 0.5M/1M agnus was :
  611.  
  612. Multiplexed Bit       MA0 MA1 MA2 MA3 MA4 MA5 MA6 MA7 MA8
  613. Address Bit for ROWS  A9  A10 A11 A12 A13 A14 A15 A16 A17
  614. Address Bit for COLS  A1  A2  A3  A4  A5  A6  A7  A8  A18
  615.  
  616. There is no A0, because the 68000 uses /UDS and /LDS instead.
  617. These /UDS and /LDS will generate /CASU and /CASL.
  618.  
  619. The "A19" input, COMING FROM JUMPER J101 !!!, was used to switch between
  620. /RAS0 (A19=0) and /RAS1 (A19=1).
  621.  
  622. The new Agnus 2Meg now has a new MA9 bit. The chart is now :
  623.  
  624. Multiplexed Bit       MA0 MA1 MA2 MA3 MA4 MA5 MA6 MA7 MA8 MA9
  625. Address Bit for ROWS  A9  A10 A11 A12 A13 A14 A15 A16 A17 A19
  626. Address Bit for COLS  A1  A2  A3  A4  A5  A6  A7  A8  A18 A20
  627.  
  628. You can notice that the former one is STILL valid, for compatibility.
  629.  
  630. But the old 256k RAMS used with 0,5M/1M Agnuses had a 9 bits wide bus only.
  631. If we want to use these 256k chips again, the new hack will have to manage
  632. the signals some way to handle both 9 and 10 bits wide buses.
  633.  
  634. 1-3-2> Only one /RAS
  635. --------------------
  636.  
  637. Old Agnuses used two banks of 512Kb with two /RAS0,/RAS1 signals.
  638. They were forced to do this because 256K chips were to be bundled into
  639. 16 bits wide data bus to match 68000 requirements.
  640. To be given a total of 512Kb, two banks of 256Kb, i.e. 128K x 16 bits,
  641. were to be used. 68000 could see a total of 256K x 16 bits.
  642.  
  643. Now, new 2M Agnus has one /RAS signal, because new chips are 1Mx1 (or x4)
  644. wide, so that a few number of them would be necessary to be given
  645. a 16 bits wide data bus.
  646. To be given a total of 1Mb, one bank of 1Mb, i.e. 512K x 16 bits, is used.
  647.  
  648. Since old RAMs used two separate /RAS signals, the new hack will have to
  649. generate these two /RAS again.
  650. These chips couldn't be splitted any more into two banks of 16 bits.
  651.  
  652. 1-3-3> Refresh cycles
  653. ---------------------
  654.  
  655. All Agnuses perform RAS-only refresh cycles.
  656. It means that, during refresh cycle, all RAS signals are asserted
  657. and transmitted to RAMs.
  658. It also means that the new hack will have to do it the same way.
  659. It finally means that the RAM bank switching should <<<NOT>>> be made
  660. with /RAS signals, since all of them <<MUST>> be asserted during refresh.
  661.  
  662. The only other possible solution is to play with /CASU and /CASL to
  663. switch between different RAM banks.
  664.  
  665. 1-4> How to mix 9 bits wide and 10 bits wide buses
  666. --------------------------------------------------
  667.  
  668. You have noticed in 1-3-2 that the first 9 bits of 2M Agnus
  669. and the full 9 bits of 0.5M/1M Agnuses are EXACTLY SAME.
  670. It will be VERY USEFUL.
  671. If things had been changed inside 2M Agnus address multiplexers,
  672. maybe the hack WOULD NOT HAVE BEEN POSSIBLE !
  673. Let's read further on.
  674.  
  675. "Old" 256k chips used MA0..MA8.
  676. "New" 1M   chips use  MA0..MA8 + MA9.
  677.  
  678. Since MA0..MA8 are COMMON to both models, and are assigned to the
  679. SAME ADDRESS BITS, we can simply mix them on the same bus.
  680. MA9 will be simply not used on 256k chips (left unconnected).
  681.  
  682. But old chips use two /RAS signals, while new ones use only one /RAS.
  683. AND ALL /RAS SIGNALS SHOULD BE ASSERTED DURING REFRESH CYCLES  !!
  684.  
  685. Sigh... there is no way to switch between banks with /RAS signals.
  686. This would have been VERY easy to do. Well, forget it !
  687.  
  688. The only signals we can use are now /CASU and /CASL.
  689. Can you imagine the solution ?...
  690.  
  691. - ALL /RAS signals will be connected to each other : that way,
  692.   refresh cycles could be done on EVERY RAM bank, with no problem
  693.  
  694. - /CASU and /CASL will be selected or not for each bank,
  695.   upon the accessed address :
  696.  
  697.         * if A23=0 : addresses $00..1F are assumed
  698.           --> 2Meg CHIP is to be r/w
  699.           --> /CASU and /CASL for 2Meg CHIP will be asserted ONLY
  700.           --> all other /CASL and /CASU will be left at "1" (not selected)
  701.  
  702.         * if A23=1 : addresses over $C0 are assumed
  703.           --> extra "slowFAST" is to be r/w
  704.           --> /CASU and /CASL for "slowFAST" will be asserted ONLY
  705.           --> all other /CASL and /CASU will be left at "1" (not selected)
  706.  
  707. To manage "slowFAST" at addresses above $C0, we will simply have to
  708. play with /CAS signals.
  709.  
  710. To switch between the 4 banks of 256kb (for the extra 1M + on-board 1M),
  711. we will also have to play with /CAS signals.
  712.  
  713. Remember : now /RAS signal is unique and common to ALL CHIPS !!
  714.  
  715. 2> Reusing the on-board 1Meg to be given 2Meg of CHIP
  716. =====================================================
  717.  
  718. You have now understood that you'll have to use 256k chips.
  719. Using 1M chips doesn't make any sense, since you will need 16 of them
  720. (or 4 using 1Mx4) to be able to generate a 16 bits wide data bus,
  721. and this will give you a total of 2Mb !!!
  722. And you wanted to save 1Mb didn't you ?...
  723.  
  724. Now check your components warehouse, and the RAM chips on your
  725. Amiga PCB.
  726.  
  727. I would suggest you to use the SAME MODEL for the extra 1Meg you will
  728. have to add, because, this way, it will be very easy :
  729.  
  730.         - solder the new chips OVER the old ones, LEAVING /CAS and /RAS
  731.           pins twisted upwards (signals not connected yet) !
  732.  
  733. If you want to use a different model (i.e. 4 chips of 256kx4 while
  734. there are 16 chips of 256kx1 on board), you'll have to make your own
  735. PCB, with new RAMs on it, then make appropriate links to old RAMs
  736. to pick up signals and power.
  737.  
  738. Anyway, you will need :
  739.  
  740.         - either 4 chips of 256k x 4, 120ns or less
  741.         - or    16 chips of 256k x 1, 120ns or less
  742.  
  743. You can also use two 256kx8 SIMMs or SIPPs, or even 256kx9 (the ones for Pee-Cees),
  744. leaving the last 9th bit unused.
  745.  
  746. Now the problem of RAMs to use is solved.
  747. We still have to manage the new RAS and CAS signals.
  748.  
  749. Here is the way to do it.
  750. INV is a single inverter.
  751. OR3 is a 3-inputs OR gate.
  752.  
  753. from 2M Agnus                                           to RAMs
  754.  
  755. A20--*-------> 20                        20--|
  756.      |                                   19--|OR3>---> /CASU bank I-1
  757.      --INV---> INV20                     /U--|
  758.  
  759. A19--*-------> 19                        20--|
  760.      |                                   19--|OR3>---> /CASL bank I-1
  761.      --INV---> INV19                     /L--|
  762.  
  763. /CASU----> /U                            /R----------> /RAS  bank I-1
  764.  
  765. /CASL----> /L
  766.                                          20--|
  767. /RAS ----> /R                         INV19--|OR3>---> /CASU bank I-2
  768.                                          /U--|
  769.  
  770.                                          20--|
  771.                                       INV19--|OR3>---> /CASL bank I-2
  772.                                          /L--|
  773.  
  774.                                          /R----------> /RAS  bank I-2
  775.  
  776.  
  777.                                       INV20--|
  778.                                          19--|OR3>---> /CASU bank II-1
  779.                                          /U--|
  780.  
  781.                                       INV20--|
  782.                                          19--|OR3>---> /CASL bank II-1
  783.                                          /L--|
  784.  
  785.                                          /R----------> /RAS  bank II-1
  786.  
  787.  
  788.                                       INV20--|
  789.                                       INV19--|OR3>---> /CASU bank II-2
  790.                                          /U--|
  791.  
  792.                                       INV20--|
  793.                                       INV19--|OR3>---> /CASL bank II-2
  794.                                          /L--|
  795.  
  796.                                          /R----------> /RAS  bank II-2
  797.  
  798. The way it works is VERY easy to understand :
  799.  
  800. A20=0 : 1st bank of 1Mb used (on-board)
  801.  
  802.         - A19=0 : 1st half bank of 256kb used : bank I-1
  803.         - A19=1 : 2nd half bank of 256kb used : bank I-2
  804.  
  805. A20=1 : 2nd bank of 1Mb used (extra, soldered over the 1st bank, or on a separate PCB)
  806.  
  807.         - A19=0 : 1st half bank of 256kb used : bank I-1
  808.         - A19=1 : 2nd half bank of 256kb used : bank I-2
  809.  
  810. Now you are FREE to make it the way you want.
  811. I suggest you to use some ALS or F parts instead of common LS, to
  812. avoid extra delays as far as possible.
  813.  
  814. Since there is no OR-3 available in TTL technology, you could use instead
  815. a F241 buffer, and some OR-2 gates (F32) before :
  816.  
  817.         - /1G and 2G are connected to A20 : switch between bank I and II
  818.           is done, and one inverter is saved (since /1G is an inverted
  819.           input, and 2G is a true one)
  820.  
  821.         - 1Y1..1Y4 outputs are connected to /CASU and /CASL of bank I-1,
  822.           /CASU and /CASL of bank I-2
  823.  
  824.         - same thing for 2Y1..2Y4 outputs for bank II (1 and 2)
  825.  
  826.         - there is one inverter free of use in U107 (F04), pins 12 and 13,
  827.           feel free to use it to invert A19 and get a INV19 this way
  828.  
  829.         - A19 is combined separately with /CASU and /CASL with OR-2,
  830.           their output being the inputs of F241 itself, like this :
  831.  
  832.           F241: 1Y1=/CASU I-1       1Y2=/CASL I-1
  833.                 1Y3=/CASU I-2       1Y4=/CASL I-2
  834.                 2Y1=/CASU II-1      2Y2=/CASL II-1
  835.                 2Y3=/CASU II-2      2Y4=/CASL II-2
  836.  
  837.                 20 -*-> /1G
  838.                     |
  839.                     --> 2G
  840.  
  841.                    19|
  842.                    /U|OR2>--> 1A1,2A1
  843.  
  844.                    19|
  845.                    /L|OR2>--> 1A2,2A2
  846.  
  847.                 INV19|
  848.                    /U|OR2>--> 1A3,2A3
  849.  
  850.                 INV19|
  851.                    /L|OR2>--> 1A4,2A4
  852.  
  853. The cheapest way : 1 F241 and 1 F32 only !
  854. And more, ALL /CAS signal are buffered again !
  855.  
  856. The most convenient part would have been a PAL, but since
  857. only a few people might be able to burn it, I thought it was better
  858. to use discrete TTL parts...
  859.  
  860. I suggest you to add some resistors in serial with /CAS lines,
  861. to avoid overshoots, a common problem while using DRAMs, like this :
  862.  
  863.                       47 ohms
  864. output from TTL ------^-^-^-^-----*-------> input to DRAMs
  865.                                   |
  866.                 +5V |-^-^-^-^------
  867.                       470 ohms
  868.  
  869. You can notice that there is a pullup to VCC here, because I make use
  870. of a F241 whose outputs are tri-stated for a non-selected bank.
  871. Such pullups will avoid untimely peeks to confuse your DRAMs.
  872.  
  873. The next step should be to distinguish between the respective banks
  874. and /CAS signals.
  875.  
  876. Suppose that bank  I-1 and  I-2 are the on-board original chips,
  877.          and bank II-1 and II-2 are the extra soldered chips.
  878.  
  879. You should consider a full row of 16 chips (or 4 if you have 256kx4).
  880. Check which ones are connected to original /CASL and /CASU signals
  881. from "old" Agnus.
  882. Buffered /CASU is available at pin 14 of U541 (F244),
  883. buffered /CASL is available at pin 16 of U541 (F244).
  884.  
  885. Once you know WHERE each /CAS signal IS, you can CUT the tracks from U541.
  886. PLEASE BE CAREFUL TO CUT ONLY LINKS TO u541, NOT LINKS BETWEEN CHIPS !!!
  887. You will then have the 2 /CASU and 2 /CASL signals for bank I.
  888.  
  889. For the new 1Mb you added, it is much easier because /CAS signals were
  890. left unconnected.
  891. You should connect /CAS pins by groups of 8 chips (or 2 with 256kx4).
  892. You will then have the 2 /CASU and 2 /CASL signals for bank II.
  893.  
  894. You should now have 8 /CAS signals : 4 /CASL and 4 /CASU.
  895. Connect them to the new F241... that's all for /CAS.
  896.  
  897. NOTE TO WARPED PEOPLE:
  898.  
  899.         You have in your left hand 4 /CASL signals from F541,
  900.         and in your right hand 4 /CASL inputs to RAMs.
  901.         Since all RAMs are selected via an unique /RAS,
  902.         you can FREELY MIX THEM THE WAY YOU WANT !
  903.         YOU CAN EVEN FORGET THE Banks I,II,1,2 !
  904.         YOU CAN, OF COURSE, ALSO DO IT WITH /CasU SIGNALS !
  905.         It will also work PERFECTLY, but I'm afraid you'll have some
  906.         problems to trace the data bits and to order the banks
  907.         properly in your schematics...
  908.         BY THE WAY, NEVER MIX /CasL with /CasU, because 68000 will be misled...
  909.         You can make your RAMs crazy, but now the 68000 itself...
  910.  
  911. For /RAS signals, I told you in my previous post to cut /RAS0 and /RAS1
  912. from U541 (pins 12 and 7).
  913. Since now all /RAS are same, you will have to connect again
  914. BOTH /RAS0 and /RAS1 to pin 12 of U541 (please read my previous article !).
  915. This way, /RAS0=/RAS1=/RAS.
  916.  
  917. For data bus, you should connect :
  918.  
  919.         - bank II-1 to bits 15..8 (since it uses /CASU)
  920.         - bank II-2 to bits  7..0 (since it uses /CASL)
  921.  
  922.         ... if you didn't solder new RAMs onto old ones, and preferred using
  923.             our own PCB.
  924.  
  925. DON'T MAKE ANY MISTAKE : CHECK THAT Bits 15..8 GO TO /CASU BANKS,
  926. AND Bits 7..0 GO TO /CASL BANKS !
  927. (did you read my "NOTE TO WARPED PEOPLE" ?...)
  928.  
  929. Don't forget to put a few more decoupling capacitors on the new RAMs,
  930. they will enjoy them a lot.
  931.  
  932. The last thing should be to set the jumpers J101 and J500.
  933. Put J101 in 2-3 position and pull J500 out.
  934. Read Chapter 1 for more explanations (or my previous post).
  935.  
  936. Of course, you will need a 2M Agnus.
  937. So please read my previous post to see how to put it in,
  938. and which tracks to cut/add.
  939.  
  940. THAT'S FINISHED !
  941.  
  942. ---rahhh, I should have some rest here, typing for 2 hours 1/2 ... ---
  943.  
  944.  
  945. 3> 2Meg CHIP + 1Meg FAST in your Amiga 2000 !
  946. =============================================
  947.  
  948. ---an only rest of 10 seconds...my fingers are painful---
  949.  
  950. I suppose now that you have already made my previous 2Meg hack.
  951. You should have now a new bank of 2Mb (made of 16 chips 1Mx1 or something like that),
  952. an the on-board chips (1Mb) left unused.
  953.  
  954. How pitiful they are, sucking current from power suplply for NOTHING.
  955. You'd better give them some work to do, don't you ?
  956.  
  957. Let's study the problem.
  958. The "authorized" CHIP address range ($00..1F) is already full with your
  959. 2Mb of CHIP RAMs you added previously.
  960. Do you guess where there is some place free ? Above $C0 of course !
  961. This is where "old" "slowFAST" 512Kb were put when you had
  962. your ancestral 0.5Mb (if you ever had some...).
  963. CBM says that they "officially" support only 512Kb here,
  964. but there is some more place, free of use.
  965. Of course, you shouldn't dare the devil up to death, and
  966. I think an extra 1M here is a safe limit...
  967.  
  968. By the way, you will put at $C0 the sleeping chips of your main board,
  969. for FREE (considering the price of TTL parts compared to memory...),
  970. giving you a total of 2Mb CHIP and 1Mb "slowFAST".
  971. Not too bad hmmm ???
  972.  
  973. I hope you read Chapter 2 earlier.
  974. I will take some ideas from it, since the principle is the SAME.
  975.  
  976. You have your 2Mb CHIP managed with /RAS, /CASL and /CASU from 2M Agnus.
  977. You have the on-board 1M RAM managed with former /RAS0, /RAS1,
  978. and /CASL, /CASU from former 0.5M/1M Agnus.
  979. We now have to switch between them, using /CAS instead of /RAS.
  980.  
  981. The technique is really similar, but now A23 will switch between
  982. CHIP and "slowFAST" (instead of A20 in Chapter 2),
  983. and there is only 1 pair of /CASU+/CASL signals to give to the
  984. 2M CHIP, giving a total of 3 /CASU and 3 /CASL to manage
  985. (instead of 4 /CASU and 4 /CASL in Chapter 2).
  986.  
  987. The schematics are really straightforward... let's go !!!!!
  988. INV is a single inverter.
  989. OR2 is a 2-inputs OR gate.
  990. OR3 is a 3-inputs OR gate.
  991.  
  992. from 2M Agnus (or 68000 for A23)                         to RAMS
  993.  
  994. A23--*-------> 23                        23--|
  995.      |                                   /U--|OR2>---> /CASU 2M CHIP
  996.      --INV---> INV23
  997.  
  998. A19--*-------> 19                        23--|
  999.      |                                   /L--|OR2>---> /CASL 2M CHIP
  1000.      --INV---> INV19
  1001.  
  1002. /CASU----> /U                            /R----------> /RAS  2M CHIP
  1003.  
  1004. /CASL----> /L
  1005.  
  1006. /RAS ----> /R
  1007.                                       INV23--|
  1008.                                          19--|OR3>---> /CASU 1M bank 1
  1009.                                          /U--|
  1010.  
  1011.                                       INV23--|
  1012.                                          19--|OR3>---> /CASL 1M bank 1
  1013.                                          /L--|
  1014.  
  1015.                                          /R----------> /RAS  1M bank 1
  1016.  
  1017.  
  1018.                                       INV23--|
  1019.                                       INV19--|OR3>---> /CASU 1M bank 2
  1020.                                          /U--|
  1021.  
  1022.                                       INV23--|
  1023.                                       INV19--|OR3>---> /CASL 1M bank 2
  1024.                                          /L--|
  1025.  
  1026.                                          /R----------> /RAS  1M bank 2
  1027.  
  1028. Once more, the way it works is VERY easy to understand :
  1029.  
  1030. A23=0 : 2M CHIP used :
  1031.  
  1032.         - A19/A20 are handled by 2M Agnus (MA9)
  1033.  
  1034. A23=1 : 1M on-board used :
  1035.  
  1036.         - A19=0 : 1st half bank of 256kb used : bank 1
  1037.         - A19=1 : 2nd half bank of 256kb used : bank 2
  1038.  
  1039. Now you are FREE to make it the way you want.
  1040. I suggest you to use some ALS or F parts instead of common LS, to
  1041. avoid extra delays as far as possible.
  1042.  
  1043. Since there is no OR-3 available in TTL technology, you could use instead
  1044. a F241 buffer, and some OR-2 gates (F32) before :
  1045.  
  1046.         - /1G and 2G are connected to A23 : switch between CHIP and "slowFAST"
  1047.           is done, and one inverter is saved (since /1G is an inverted
  1048.           input, and 2G is a true one)
  1049.  
  1050.         - 1Y1,1Y2 outputs are connected to /CASU and /CASL of 2M CHIP,
  1051.           1Y3,1Y4 are left unconnected
  1052.  
  1053.         - 2Y1,2Y2 outputs are connected to /CASU and /CASL of bank 1 (1M on board),
  1054.           and 2Y3,2Y4 to /CASU and /CASL of bank 2 (1M on board)
  1055.  
  1056.         - there is one inverter free of use in U107 (F04), pins 12 and 13,
  1057.           feel free to use it to invert A19 and get a INV19 this way
  1058.  
  1059.         - A19 is combined separately with /CASU and /CASL with OR-2,
  1060.           their output being the inputs of F241 itself, like this :
  1061.  
  1062.           F241: 1Y1=/CASU 2M CHIP   1Y2=/CASL 2M CHIP
  1063.                 1Y3= n.c            1Y4= n.c.
  1064.                 2Y1=/CASU bank 1    2Y2=/CASL bank 1.. of 1M on board
  1065.                 2Y3=/CASU bank 2    2Y4=/CASL bank 2.. of 1M on board
  1066.  
  1067.                 23 -*-> /1G
  1068.                     |
  1069.                     --> 2G
  1070.  
  1071.                    /U-------> 1A1
  1072.  
  1073.                    /L-------> 1A2
  1074.  
  1075.                    19|
  1076.                    /U|OR2>--> 2A1
  1077.  
  1078.                    19|
  1079.                    /L|OR2>--> 2A2
  1080.  
  1081.                 INV19|
  1082.                    /U|OR2>--> 2A3
  1083.  
  1084.                 INV19|
  1085.                    /L|OR2>--> 2A4
  1086.  
  1087. The cheapest way : 1 F241 and 1 F32 only !
  1088. And more, ALL /CAS signal are buffered again !
  1089.  
  1090. I suggest you to add some resistors in serial with /CAS lines,
  1091. to avoid overshoots, a common problem while using DRAMs, like this :
  1092.  
  1093.                       47 ohms
  1094. output from TTL ------^-^-^-^-----*-------> input to DRAMs
  1095.                                   |
  1096.                 +5V |-^-^-^-^------
  1097.                       470 ohms
  1098.  
  1099. You can notice that there is a pullup to VCC here, because I make use
  1100. of a F241 whose outputs are tri-stated for a non-selected bank.
  1101. Such pullups will avoid untimely peeks to confuse your DRAMs.
  1102.  
  1103. The next step should be to distinguish between the respective banks
  1104. and /CAS signals in the on-board 1Meg.
  1105.  
  1106. There should have two rows of 16 (or 4 if you have 256kx4) chips.
  1107. You can choose freely which one will be bank 1 and which one bank 2.
  1108.  
  1109. You should now consider a full bank.
  1110. Check which chips are connected to original /CASL and /CASU signals
  1111. from "old" Agnus.
  1112. Buffered /CASU is available at pin 14 of U541 (F244),
  1113. buffered /CASL is available at pin 16 of U541 (F244).
  1114.  
  1115. Once you know WHERE each /CAS signal IS, you can CUT the tracks from U541.
  1116. PLEASE BE CAREFUL TO CUT ONLY LINKS TO u541, NOT LINKS BETWEEN CHIPS !!!
  1117. You will then have the 2 /CASU and 2 /CASL signals for the on-board 1Meg.
  1118.  
  1119. You should now disconnect /CASU and /CASL (of 2M CHIP) links to main board.
  1120. According to my previous hack, you should have connected them to U541, or on-board 1Meg.
  1121. You will have to connect them instead to the new hack, at 1Y1 and 1Y2 of F241.
  1122.  
  1123. You should now have 6 /CAS signals : 3 /CASL and 3 /CASU.
  1124. Connect them to the new F241... that's all for /CAS.
  1125.  
  1126. For /RAS signals, I told you in my previous post to cut /RAS0 and /RAS1
  1127. from U541 (pins 12 and 7).
  1128. Since now all /RAS are same, you will have to connect again
  1129. BOTH /RAS0 and /RAS1 to pin 12 of U541 (please read my previous article !).
  1130. This way, /RAS0=/RAS1=/RAS.
  1131.  
  1132. /RAS link has been already done previously for the new 2M CHIP.
  1133. Same thing for data bus.
  1134.  
  1135. Now you have some extra RAM at $C0.
  1136. So that you should put the jumper J500 in, to tell Gary to
  1137. assert Agnus during $C0... accesses.
  1138. If you forget to do this, your new 1M of "slowFAST" will NEVER be detected !
  1139.  
  1140. Of course, no need for "ADDRAM" or some other utilities.
  1141. AUTOMATICALLY, the system will sense your 2Meg CHIP, and, due to J500 IN,
  1142. the $C0... addresses.
  1143.  
  1144. Check the WB title bar : you should have over 2Mb now !
  1145.  
  1146. ---now I REALLY need for a rest... see you again in about half an hour---
  1147.  
  1148.  
  1149. 4> SYSTEM CLOCK MULTIPLEXER
  1150. ===========================
  1151.  
  1152. The former 0.5M/1M Agnuses received both 28M and XCLK, and
  1153. selected one of them (upon /XCLKEN) internally.
  1154.  
  1155. The new 2M Agnus needed 1 more I/O pad for A20, so that
  1156. XCLK has been sacrificed.
  1157.  
  1158. In my previous article, I told you how to cut XCLK from Agnus socket,
  1159. but I didn't tell you how to be able to switch again between
  1160. internal and external system frequencies.
  1161.  
  1162. The remedy is so easy.
  1163.  
  1164. This is the version using NAND-2 gates. 74F00,S00 or AS00 MUST be used,
  1165. because of the high frequencies involved :
  1166.  
  1167. internal oscillator, pin 8-----
  1168.                               |
  1169.           --|                 ---------|
  1170. /XCLKEN---*-|NAND2>--------------------|NAND2>-----|
  1171.           |                                     ---|NAND2>---28M
  1172.           -----------------------------|        |
  1173. XCLK-----------------------------------|NAND2>---
  1174.  
  1175. And here is the version with 74 S 51 :
  1176.  
  1177. internal oscillator, pin 8----> 13
  1178. /XCLKEN-----------------------> 1, 2, 3
  1179. XCLK--------------------------> 10
  1180. to ground---------------------> 4, 5
  1181.  
  1182.                                 8 -----------------> 28M
  1183.  
  1184.                       6 and 9 connected to each other
  1185.                       14 to VCC, 7 to ground
  1186.  
  1187. You can choose the one you prefer, but the installation procedure is the same.
  1188.  
  1189.         - look for the main oscillator (28.xxx MHZ)
  1190.         - cut its output (pin 8), leave the track free
  1191.         - connect this pin 8 to the multiplexer
  1192.         - connect the output of the multiplexer to the previous track
  1193.         - connect XCLK from video connector to the multiplexer
  1194.           (it can be also found close to Agnus since you cut this track
  1195.            for the 2M hack...)
  1196.         - connect /XCLKEN from Agnus to the multiplexer
  1197.  
  1198. Don't forget to use a decoupling capacitor for the TTL part.
  1199.  
  1200. 5> AS A CONCLUSION
  1201. ==================
  1202.  
  1203. Your Amiga is now ready for new experiments.
  1204. 2M CHIP, and 1M "slowFAST" eventually, should be enough for many of you,
  1205. I suppose.
  1206.  
  1207. You didn't need any memory expansion board at all : you made yours !
  1208. Easily...
  1209.  
  1210. I'm now waiting for your replies.
  1211. Try this new enhanced hack if you DARE !
  1212.  
  1213. P-chan.
  1214. ---
  1215. Pascal JANIN - Amiga maniac.. ///    ..and Anime addict Forever...
  1216. STANLEY ELECTRIC CO.         ///
  1217. R&D Group 71G, Japan   \\\  ///    "Yappappaa yappappaa Pi-i chan desu!"
  1218. Fax: 81+ 45-911-0007     \\X//
  1219. Email:NO!  Fax/"F":YES!    \/    "Kyoko-san ! Suki jaaa-- !!" >Godai-kun
  1220. --
  1221. ****** REMEMBER : I canNOT reply you by E-mail, only r/w here !!! ******
  1222.  
  1223. **** To all friends who mail me directly and ask me for a mailed reply :
  1224. **** don't forget that I CANNOT reply to you via E-mail !
  1225.  
  1226.