home *** CD-ROM | disk | FTP | other *** search
/ ftp.elysium.pl / ftp.elysium.pl.tar / ftp.elysium.pl / docs / hardware / c64.pla.equations < prev    next >
Text File  |  2010-08-07  |  12KB  |  322 lines

  1. C64 PLA logic equations
  2.  
  3.  
  4. On 30th August 1994, Jens Schoenfeld (sysop@nostlgic.oche.de) posted
  5. the raw data from the C64 PLAs in the German newsgroup
  6. z-netz.rechner.c64+c128.allgemein.  He read the chip with an EPROM
  7. programmer device as a 27512 EPROM using a home-built adaptor.
  8.  
  9. From the 64kB raw data, I, Marko MΣkelΣ (Marko.Makela@HUT.FI) and
  10. several others tried to manually create the logic equations,
  11. independent of each other.  I was the first one who completed the
  12. work.  Especially the CASRAM equations took lots of time.  My friend
  13. Andreas Boose (boose@unixserv.rz.fh-hannover.de) helped me to optimize
  14. the CASRAM equations a bit.
  15.  
  16. Our work was finally verified by Mark Smith (mark@te.rl.ac.uk), who
  17. read out the 82S100 of my oldest C64 and converted the JEDEC file to
  18. logic equations with the Abel program.  Andreas Boose verified the new
  19. equations.
  20.  
  21. This file contains three sections:
  22. 1. a manufacturer data sheet of 82S100
  23. 2. a JEDEC file which can be used to burn a 82S100 to act like a C64 PLA
  24. 3. a logic equation file created with Abel
  25.  
  26. Mark Smith writes:
  27.  
  28. "Anyone should be able to blow a new PLA from the JEDEC file I sent
  29. you, and when supplies of the 82S100 chip finally dry up completely,
  30. the equations should be able to be put into a different type of logic
  31. array chip. The only thing that would have to be done is to make a
  32. printed circuit board adaptor to take the pins on the new chip to the
  33. correct positions to plug into the C64 motherboard. As far as I am
  34. aware, there are virtually no other PLA chips with a 28 pin
  35. footprint. Modern ones are nearly all square packaged PLCC types.  It
  36. is also very difficult to find a modern PLA chip with 16 inputs and 8
  37. outputs - most have only 22 dual purpose I/Os or have many more. I
  38. think the next step up is a 44 pin device.
  39.  
  40. So a modern replacement would probably have to be a 44 pin PLCC square
  41. packaged PAL (PLA) chip mounted onto a printed circuit board which
  42. takes the pins to a 28 pin dual in line header outline.
  43.  
  44. I'm sure it could be done. Maybe I should look into it, as 82S100s are
  45. very difficult to come by now and out of the 3 C64s I have, the 2 that
  46. were faulty both had duff PLA chips. The faulty PLA chips were both
  47. Commodore mass produced replacements for the fuse programmable
  48. 82S100. I think that the commodore replacement chips are probably less
  49. reliable than the original 82S100s used in early machines."
  50.  
  51.  
  52. Hint: Search for "===" to find the sections in this file.
  53. ===
  54. 82S100 data sheet
  55. -----------------
  56.  
  57. The 82S100 is a bipolar, fuse-link programmable logic array. It uses the
  58. standard AND/OR/invert architecture to directly implement custom 
  59. um-of-product logic equations.
  60.  
  61. Each device consists of 16 dedicated inputs and 8 dedicated outputs. Each
  62. output is capable of being actively controlled by any or all of the 48
  63. product terms. The true, complement, or don't care condition of each of the
  64. 16 inputs ANDed together comprise one P-Term. All 48 P-Terms are then OR-d
  65. to each output. The user must then only select which P-Terms will activate
  66. an output by disconnecting terms which do not affect the output. In addition,
  67. each output can be fused as active high or active low.
  68.  
  69. The 82S100 is fully TTL compatible and includes chip-enable control for
  70. expansion of input variables and output inhibit. It features three state
  71. outputs.
  72.  
  73. Field programmable Ni-Cr links
  74. 16 inputs
  75. 8 outputs
  76. 48 product terms
  77. Commercial verion - N82S100 - 50ns max address access time
  78. Power dissipation - 600mW typ
  79. Input loading - 100uA max
  80. Chip enable input
  81. Three state outputs
  82.  
  83. The 82S100 devices are shipped in an unprogrammed state characterised by:
  84. All internal Ni-Cr links are intact and therefore each product term contains
  85. both true and complement values of every input variable,
  86. the OR matrix contains all 48 P-Terms,
  87. the polarity of each output is set to active high,
  88. all outputs are at a low logic level.
  89. ===-------------------- Cut here - filename=c64pla.jed ------------------------
  90.  
  91.  
  92.  
  93. Data I/O*
  94. QP0028* QF1928* G0 *
  95. L0000
  96. 11010111110110011111100111011111
  97. 00111111111101111101010111111001
  98. 11011111010111111111011111010101
  99. 11111001101011110101111111110110
  100. 11010110011110011101111101101111
  101. 11011110110101100111100111011111
  102. 01101111111101101101011001111001
  103. 10101111011011111111111101111111
  104. 11110111110110010110111111111111
  105. 01111111111101111010100101101111*
  106. L0320
  107. 01111111110101100111101011111111
  108. 11111111111101011101011001011001
  109. 11011111011110111111010111010110
  110. 01111010110111110111101111011101
  111. 11010110010110011101111101111011
  112. 11011101110101100111101011011111
  113. 01111011111101011101011001011001
  114. 10101111011110111111010111010110
  115.  
  116. 11010110010110011010111101111011*
  117. L0640
  118. 11011101110101100111101010101111
  119. 01111011111111111101011001011001
  120. 01101111011110111111111111010110
  121. 01111010011011110111101111010111
  122. 11011010111110011011111101111101
  123. 11111111110110101111101101101111
  124. 01111101111101111101100111111001
  125. 10101111011111101111111111010101
  126. 11111011011011110111111011111111
  127. 11111111111101110110010101111110*
  128. L0960
  129. 11111111111010110111111101101111
  130. 01111111111111111110100111111111
  131. 01101111011111111111111111100111
  132. 11111111011011110111111111111111
  133. 11011001111111110110111101111111
  134. 11111111110101101011111101101111
  135. 01111111101111111111111111111111
  136. 11111111111111110111111111111111
  137. 11111111111111110111111110111111
  138.  
  139. L1280
  140. 00000000000000000000000000000000
  141. 00000000000000000000000000000000
  142. 00000000000000000000000000000000
  143. 00000000000000000000000000000000
  144. 00000000000000000000000000000000
  145. 00000000000000000000000000000000
  146. 00000000000000000000000000000000
  147. 00000000000000000000000000000000
  148. 00000000000000000000000000000000
  149. 00000000000000000000000000000000*
  150. L1600
  151. 00000000000000000000000000000000
  152. 00000000000000000000000000000000
  153. 00000000000000000000000000000000
  154. 00000000000000000000000000000000
  155. 00000000000000000000000000000000
  156. 00000000000000000000000000000000
  157. 00000000000000000000000000000000
  158. 00000000000000000000000000000000
  159. 00000000000000000000000000000000
  160. 00000000000000000000000000000000*
  161.  
  162. 01111111*
  163. C7F5D*
  164. 849E
  165.  
  166.  
  167.  
  168. ===--------------------- Cut here - filename=c64pla.abl -----------------------
  169.  
  170.  
  171. MODULE c64pla 
  172. "Created by JED2AHDL ABEL 4.10 on Wed Jul 19 15:37:23 1995 
  173.  
  174. TITLE 
  175. 'PLA chip in old version of Commodore 64'
  176.  
  177.         c64pla device 'f100';
  178.  
  179. "Device is a Signetics/Mullard/Phillips 82S100
  180.  
  181.  
  182. "Pin and Node Declarations
  183.           FE,  A13,  A14,  A15               PIN   1, 2, 3, 4;
  184.           _VA14,  _CHAREN,  _HIRAM,  _LORAM  PIN   5, 6, 7, 8;
  185.           _CAS,  ROMH,  ROML,  I_O           PIN   9,10,11,12;
  186.           GR_W,  GND,  CHAROM,  KERNAL       PIN  13,14,15,16;
  187.           BASIC,  CASRAM,  _OE,  VA12        PIN  17,18,19,20;
  188.           VA13,  _GAME,  _EXROM,  R__W       PIN  21,22,23,24;
  189.           _AEC,  BA,  A12,  VCC              PIN  25,26,27,28;
  190.  
  191.         CASRAM ISTYPE 'Neg';
  192.         ROMH,ROML,I_O,GR_W,CHAROM,KERNAL,BASIC,CASRAM ISTYPE 'Com';
  193.         ROMH,ROML,I_O,GR_W,CHAROM,KERNAL,BASIC,CASRAM ISTYPE 'Invert';
  194.  
  195.         X,K,Z,C,P,U,D = .X.,.K.,.Z.,.C.,.P.,.U.,.D.;
  196.  
  197. EQUATIONS
  198.  
  199. !ROMH = (_HIRAM  & A15  & !A14  & A13  & !_AEC  & 
  200.                R__W  & !_EXROM  & !_GAME 
  201.              # A15  & A14  & A13  & !_AEC  & _EXROM  & 
  202.                !_GAME 
  203.              # _AEC  & _EXROM  & !_GAME  & VA13  & VA12 );
  204. !ROMH.OE = _OE;
  205.  
  206. !ROML = (_LORAM  & _HIRAM  & A15  & !A14  & !A13  & 
  207.                !_AEC  & R__W  & !_EXROM 
  208.              # A15  & !A14  & !A13  & !_AEC  & _EXROM  & 
  209.                !_GAME );
  210. !ROML.OE = _OE;
  211.  
  212. !I_O = (_HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  213.                A12  & BA  & !_AEC  & R__W  & _GAME 
  214.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  215.                A12  & !_AEC  & !R__W  & _GAME 
  216.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  217.                A12  & BA  & !_AEC  & R__W  & _GAME 
  218.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  219.                A12  & !_AEC  & !R__W  & _GAME 
  220.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  221.                A12  & BA  & !_AEC  & R__W  & !_EXROM  & 
  222.                !_GAME 
  223.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  224.                A12  & !_AEC  & !R__W  & !_EXROM  & !_GAME 
  225.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  226.                A12  & BA  & !_AEC  & R__W  & !_EXROM  & 
  227.                !_GAME 
  228.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  229.                A12  & !_AEC  & !R__W  & !_EXROM  & !_GAME 
  230.              # A15  & A14  & !A13  & A12  & BA  & 
  231.                !_AEC  & R__W  & _EXROM  & !_GAME 
  232.              # A15  & A14  & !A13  & A12  & !_AEC  & 
  233.                !R__W  & _EXROM  & !_GAME );
  234. !I_O.OE = _OE;
  235.  
  236. !GR_W = (!_CAS  & A15  & A14  & !A13  & A12  & 
  237.                !_AEC  & !R__W );
  238. !GR_W.OE = _OE;
  239.  
  240. !CHAROM = (_HIRAM  & !_CHAREN  & A15  & A14  & !A13  & 
  241.                A12  & !_AEC  & R__W  & _GAME 
  242.              # _LORAM  & !_CHAREN  & A15  & A14  & !A13  & 
  243.                A12  & !_AEC  & R__W  & _GAME 
  244.              # _HIRAM  & !_CHAREN  & A15  & A14  & !A13  & 
  245.                A12  & !_AEC  & R__W  & !_EXROM  & !_GAME 
  246.              # _VA14  & _AEC  & _GAME  & !VA13  & VA12 
  247.              # _VA14  & _AEC  & !_EXROM  & !_GAME  & !VA13  & 
  248.                VA12 );
  249. !CHAROM.OE = _OE;
  250.  
  251. !KERNAL = (_HIRAM  & A15  & A14  & A13  & !_AEC  & 
  252.                R__W  & _GAME 
  253.              # _HIRAM  & A15  & A14  & A13  & !_AEC  & 
  254.                R__W  & !_EXROM  & !_GAME );
  255. !KERNAL.OE = _OE;
  256.  
  257. !BASIC = (_LORAM  & _HIRAM  & A15  & !A14  & A13  & 
  258.                !_AEC  & R__W  & _GAME );
  259. !BASIC.OE = _OE;
  260.  
  261. !CASRAM = !(_LORAM  & _HIRAM  & A15  & !A14  & A13  & 
  262.                !_AEC  & R__W  & _GAME 
  263.              # _HIRAM  & A15  & A14  & A13  & !_AEC  & 
  264.                R__W  & _GAME 
  265.              # _HIRAM  & A15  & A14  & A13  & !_AEC  & 
  266.                R__W  & !_EXROM  & !_GAME 
  267.              # _HIRAM  & !_CHAREN  & A15  & A14  & !A13  & 
  268.                A12  & !_AEC  & R__W  & _GAME 
  269.              # _LORAM  & !_CHAREN  & A15  & A14  & !A13  & 
  270.                A12  & !_AEC  & R__W  & _GAME 
  271.              # _HIRAM  & !_CHAREN  & A15  & A14  & !A13  & 
  272.                A12  & !_AEC  & R__W  & !_EXROM  & !_GAME 
  273.              # _VA14  & _AEC  & _GAME  & !VA13  & VA12 
  274.              # _VA14  & _AEC  & !_EXROM  & !_GAME  & !VA13  & 
  275.                VA12 
  276.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  277.                A12  & BA  & !_AEC  & R__W  & _GAME 
  278.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  279.                A12  & !_AEC  & !R__W  & _GAME 
  280.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  281.                A12  & BA  & !_AEC  & R__W  & _GAME 
  282.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  283.                A12  & !_AEC  & !R__W  & _GAME 
  284.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  285.                A12  & BA  & !_AEC  & R__W  & !_EXROM  & 
  286.                !_GAME 
  287.              # _HIRAM  & _CHAREN  & A15  & A14  & !A13  & 
  288.                A12  & !_AEC  & !R__W  & !_EXROM  & !_GAME 
  289.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  290.                A12  & BA  & !_AEC  & R__W  & !_EXROM  & 
  291.                !_GAME 
  292.              # _LORAM  & _CHAREN  & A15  & A14  & !A13  & 
  293.                A12  & !_AEC  & !R__W  & !_EXROM  & !_GAME 
  294.              # A15  & A14  & !A13  & A12  & BA  & 
  295.                !_AEC  & R__W  & _EXROM  & !_GAME 
  296.              # A15  & A14  & !A13  & A12  & !_AEC  & 
  297.                !R__W  & _EXROM  & !_GAME 
  298.              # _LORAM  & _HIRAM  & A15  & !A14  & !A13  & 
  299.                !_AEC  & R__W  & !_EXROM 
  300.              # A15  & !A14  & !A13  & !_AEC  & _EXROM  & 
  301.                !_GAME 
  302.              # _HIRAM  & A15  & !A14  & A13  & !_AEC  & 
  303.                R__W  & !_EXROM  & !_GAME 
  304.              # A15  & A14  & A13  & !_AEC  & _EXROM  & 
  305.                !_GAME 
  306.              # _AEC  & _EXROM  & !_GAME  & VA13  & VA12 
  307.              # !A15  & !A14  & A12  & _EXROM  & !_GAME 
  308.              # !A15  & !A14  & A13  & _EXROM  & !_GAME 
  309.              # !A15  & A14  & _EXROM  & !_GAME 
  310.              # A15  & !A14  & A13  & _EXROM  & !_GAME 
  311.              # A15  & A14  & !A13  & !A12  & _EXROM  & 
  312.                !_GAME 
  313.              # _CAS );
  314. !CASRAM.OE = _OE;
  315.  
  316.  
  317. TEST_VECTORS
  318. ([]->[])
  319.  
  320.  
  321. END
  322.