Difference between revisions of "PAL16L8"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(New PLD version fixing screen corruption when using external ram extension)
Line 2: Line 2:
  
 
On the CPC 6128 schematic, it is top centre: [http://www.cpcwiki.eu/imgs/4/4a/CPC6128_Schematic.png CPC6128 Schematic] however the X inputs aren't distinguished.
 
On the CPC 6128 schematic, it is top centre: [http://www.cpcwiki.eu/imgs/4/4a/CPC6128_Schematic.png CPC6128 Schematic] however the X inputs aren't distinguished.
 +
 +
== Fixed version (Gerald) ==
 +
Original version from Porchy suffer from a bad handling of the RAMDIS signal. This cause screen artefact when accessing an external extension RAM like XMEM.
 +
 +
 +
A14OUT    = !(  !A14
 +
              #  !A15 & !Q0 & Q2 );
 +
 +
A15OUT    = !(  !A15 & !A14
 +
              #  !A15 & !Q1
 +
              #  !A15 & !Q0 & !Q2 );
 +
 +
Q0    = (  D7ANDD6 & nRESET & D0 & !A15 & !nIOWR
 +
          #  !D7ANDD6 & nRESET & Q0
 +
          #  nRESET & A15 & Q0
 +
          #  nRESET & nIOWR & Q0 );
 +
 +
Q1    = (  D7ANDD6 & nRESET & D1 & !A15 & !nIOWR
 +
          #  !D7ANDD6 & nRESET & Q1
 +
          #  nRESET & A15 & Q1
 +
          #  nRESET & nIOWR & Q1 );
 +
 +
Q2    = (  D7ANDD6 & nRESET & D2 & !A15 & !nIOWR
 +
          #  !D7ANDD6 & nRESET & Q2
 +
          #  nRESET & A15 & Q2
 +
          #  nRESET & nIOWR & Q2 );
 +
 +
nCAS0    = (  nCAS
 +
            #  RAMDIS & !nCPU & nCAS0
 +
            #  !A15 & A14 & !nCPU & Q2 & nCAS0
 +
            #  A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
 +
            #  !nCPU & !Q0 & Q1 & !Q2 & nCAS0
 +
            #  !nCAS1 );
 +
 +
nCAS1    = !(  !RAMDIS & !nCAS & !A15 & A14 & !nCPU & Q2 & nCAS0
 +
            #  !RAMDIS & !nCAS & A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
 +
            #  !RAMDIS & !nCAS & !nCPU & !Q0 & Q1 & !Q2 & nCAS0
 +
            #  !nCAS & !A15 & A14 & Q2 & nCAS0 & !nCAS1
 +
            #  !nCAS & A15 & A14 & Q0 & !Q2 & nCAS0 & !nCAS1
 +
            #  !nCAS & !Q0 & Q1 & !Q2 & nCAS0 & !nCAS1 );
 +
 +
[[File:CPC6128.JED]] : Fixed version of  Amstrad 40031 GAL replacement
 +
 +
== Initial replacement equation (Porchy) ==
  
 
The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:
 
The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:

Revision as of 15:08, 3 October 2015

The CPC6128 second bank of 64K RAM is controlled by a PAL 16L8 chip. It has the Amstrad part number 40031.

On the CPC 6128 schematic, it is top centre: CPC6128 Schematic however the X inputs aren't distinguished.

Fixed version (Gerald)

Original version from Porchy suffer from a bad handling of the RAMDIS signal. This cause screen artefact when accessing an external extension RAM like XMEM.


A14OUT     = !(  !A14
             #   !A15 & !Q0 & Q2 );

A15OUT     = !(  !A15 & !A14
             #   !A15 & !Q1
             #   !A15 & !Q0 & !Q2 );

Q0     = (  D7ANDD6 & nRESET & D0 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q0
         #   nRESET & A15 & Q0
         #   nRESET & nIOWR & Q0 );

Q1     = (  D7ANDD6 & nRESET & D1 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q1
         #   nRESET & A15 & Q1
         #   nRESET & nIOWR & Q1 );

Q2     = (  D7ANDD6 & nRESET & D2 & !A15 & !nIOWR
         #   !D7ANDD6 & nRESET & Q2
         #   nRESET & A15 & Q2
         #   nRESET & nIOWR & Q2 );

nCAS0     = (  nCAS
            #   RAMDIS & !nCPU & nCAS0
            #   !A15 & A14 & !nCPU & Q2 & nCAS0
            #   A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
            #   !nCPU & !Q0 & Q1 & !Q2 & nCAS0
            #   !nCAS1 );

nCAS1     = !(  !RAMDIS & !nCAS & !A15 & A14 & !nCPU & Q2 & nCAS0
            #   !RAMDIS & !nCAS & A15 & A14 & !nCPU & Q0 & !Q2 & nCAS0
            #   !RAMDIS & !nCAS & !nCPU & !Q0 & Q1 & !Q2 & nCAS0
            #   !nCAS & !A15 & A14 & Q2 & nCAS0 & !nCAS1
            #   !nCAS & A15 & A14 & Q0 & !Q2 & nCAS0 & !nCAS1
            #   !nCAS & !Q0 & Q1 & !Q2 & nCAS0 & !nCAS1 );

File:CPC6128.JED : Fixed version of Amstrad 40031 GAL replacement

Initial replacement equation (Porchy)

The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:

A15OUT = (!X2 & !X1 & A14
     # !X3 & !X2 & A14
     # A15); 

!X1 = (!A15 & D7ANDD6 & RESET & !IOWR & D0
     # !X1 & RESET & IOWR
     # !X1 & !D7ANDD6 & RESET
     # !X1 & A15 & RESET);

!X2 = (!A15 & D7ANDD6 & RESET & !IOWR & D1
     # !X2 & RESET & IOWR
     # !X2 & !D7ANDD6 & RESET
     # !X2 & A15 & RESET);

!X3 = (!A15 & D7ANDD6 & RESET & !IOWR & D2
     # !X3 & RESET & IOWR
     # !X3 & !D7ANDD6 & RESET
     # !X3 & A15 & RESET);

!CAS1 = (X3 & !X1 & A15 & A14 & !NCAS & !RAMDIS & !CPU & CAS0
     # !X3 & !A15 & A14 & !NCAS & !RAMDIS & !CPU & CAS0
     # X3 & !X2 & X1 & !NCAS & !RAMDIS & !CPU & CAS0
     # !NCAS & CAS0 & !CAS1);

!CAS0 = (X3 & X2 & X1 & !NCAS & !RAMDIS & CAS1
     # X3 & !X1 & !A15 & !NCAS & !RAMDIS & CAS1
     # !X3 & A15 & !NCAS & !RAMDIS & CAS1
     # !X1 & !A14 & !NCAS & !RAMDIS & CAS1
     # !X3 & !A14 & !NCAS & !RAMDIS & CAS1
     # !NCAS & !RAMDIS & CPU & CAS1
     # !NCAS & !CAS0 & CAS1);

A14OUT = (A15 & A14
     # !X1 & A14
     # X3 & A14);

File:Amstrad6128.jed Original JED File posted on CPCWiki Forum