home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sys / apple2 / 27350 < prev    next >
Encoding:
Text File  |  1993-01-22  |  4.3 KB  |  81 lines

  1. Newsgroups: comp.sys.apple2
  2. Path: sparky!uunet!usc!howland.reston.ans.net!sol.ctr.columbia.edu!news.unomaha.edu!slab.slip.uiuc.edu!derek
  3. From: derek@slab.slip.uiuc.edu (Derek Taubert)
  4. Subject: The DMA thing (was Re: ROM 01 vs ROM 3)
  5. Message-ID: <1993Jan22.144915.7191@slab.slip.uiuc.edu>
  6. Reply-To: derek@slab.slip.uiuc.edu (Derek Taubert)
  7. Organization: Damage, inc.
  8. Date: Fri, 22 Jan 1993 14:49:15 GMT
  9. Lines: 70
  10.  
  11. Whoops, sorry about that.  Here's the version for those of you who wanted to
  12. read it:
  13.  
  14. unknown@apple.com (Matt Ackeret) asked me:
  15.  
  16. >  Anyway, also, have you ever figured out a way to get a full 24 bit
  17. >  address from the RAM card slot?  If you could, it's then just a
  18. >  matter of a very few simple 7400 series gates to demultiplex to
  19. >  the correct SIMM/RAM bank, thus it'd be hella easy to build an 8
  20. >  meg RAM card.  (I really dunno why Apple screwed up and didn't
  21. >  simply put all 24 address lines to the RAM connector!)
  22.  
  23. >  Also, what exactly *IS* the deal with DMA?  I mean, there's a DMA
  24. >  pin (at least I know there is to all of the regular slots, even on
  25. >  previous //s)...  So what exactly is the conflict with RAM cards?
  26.  
  27.   Since your 2 questions are directly related, I'll try to answer both at the
  28. same time.
  29.  
  30.   First, the memory connector on the IIgs does not have the full 24 address
  31. lines for a very good reason.  The way Apple did it makes it very easy to
  32. build an expansion board with DRAMs because the refresh and address
  33. multiplexing is handled by circuitry on the main motherboard.  With the
  34. addition of signals CROW0 - CROW1, it specifically makes it very easy to build
  35. a memory board with 4 rows of DRAMs (256K or 1M DRAMs).
  36.   Disregarding the address lines used for ROM access from the memory slot -
  37. another lecture, the address lines FRA0-FRA9 supply both the row address and
  38. the column address for DRAMs.  They are multiplexed onto these lines at
  39. different times, corresponding to when CRAS and CCAS are enabled.  (I can tell
  40. that you knew some of this, but I thought I'd elaborate for other folks)
  41.   Now then, those 2 sets of addresses (row and column) and CROW0, CROW1 come
  42. from the lower 22 bits of the main processor's address lines.  2^22 = you
  43. guessed it, 4 Meg.  You should notice that this figure is not by coincidence
  44. the same amount of memory that you can normally DMA to without a hitch.
  45.  
  46.   Let's review how the 65816 supplies a 24 bit address with only 16 address
  47. lines on the physical processor, shall we?  During the rising edge of phase 2,
  48. the bank address (highest 8 address bits) appears on the data lines.  The FPI
  49. knows this, and uses the data lines to get those 4 bits that it needs to make
  50. 22 during a normal CPU cycle.  It is possible to do this manually (latch the
  51. bank address off of the data lines), in fact you have to if you wish to put
  52. more than 4 Meg on a RAM card.  For normal CPU memory accesses, this will work
  53. just groovy.
  54.  
  55.   (Time for a Ross Perot - Here's the deal)  DMA is another story.  DMA cards
  56. are designed to run the address and data lines just like the processor does,
  57. so that the rest of the circuitry in the machine really doesn't care who is in
  58. control.  However, when a DMA operation is occurring to the lower 4 Meg of
  59. memory, the old Apple II cards won't be supplying a bank address during the
  60. middle of the phase 2 clock.  Oops, how are we going to be compatible with
  61. this?  No biggie, the FPI just goes and looks at address $C037 (which actually
  62. happens to be an internal register to the FPI, so no memory access is
  63. necessary) and uses that in place.  Groovy.
  64.   Well, this causes a problem for the lonely memory card that doesn't have
  65. $C037 as an internal register, and wishes to have more than 4 Meg on board.
  66. It REALLY causes trouble if the lonely memory card is disregarding completely
  67. what comes from the FPI, and just using the bank address it gets off of the
  68. data lines for figuring out DRAM addresses - this is how we get 100% DMA
  69. incompatible cards.
  70.  
  71.   The following may or may not be true, so somebody correct me if I'm wrong.
  72. DMA compatibility above 4 Meg is not a function of the memory card, it is a
  73. function of the DMA device that wants to do it.  Simply stated, if a card
  74. wants to DMA to an address above the 4 Meg limit, it has to look just like the
  75. 65816 and supply the bank address on the data lines during the middle of
  76. phase 2.
  77.  
  78. Clear as mud?  I though so.
  79.  
  80. Derek
  81.