An expandable 6502 SBC

An expandable 6502 SBC
Hardware
core
A 6502 single board computer.
The circuit consists of a 6502, one or two 32k x 8 RAMs, a 32k x 8 EPROM, glue chip (GAL16V8A), a 1.832 MHz oscillator and an expansion connector.

The use of a GAL for the glue chip allows a complete change of the memory map without any circuit changes. This makes the board very versatile as new interfaces or changes in ROM or RAM requirements can be accommodated without recourse to the soldering iron. For anyone interested an example set of equations for this chip are in sbc.pld and can be compiled with WinCUPL. The fuse file, sbc.jed and the compiler listing, sbc.txt are also included.

Name     sbc ;
PartNo   00 ;
Date     01/08/00 ;
Revision 01 ;
Designer Lee ;
Company  ;
Assembly None ;
Location  ;
Device   g16v8as ;

/* This GAL is the random glue for the sbc board	*/

/* Logic minimisations		None				*/
/* Optimizations			None				*/
/* Download				JEDEC/POF/PRG		*/
/* Doc File Options		fuse plot, equations	*/
/* Output				None				*/

/* *************** INPUT PINS *********************/

PIN	1 = A15	;				/* address bus		*/ 
PIN	2 = A14	;				/* address bus		*/ 
PIN	3 = A13	;				/* address bus		*/ 
PIN	4 = A12	;				/* address bus		*/ 
PIN	5 = A11	;				/* address bus		*/ 
PIN	6 = A10	;				/* address bus		*/ 
PIN	7 = A9	;				/* address bus		*/ 
PIN	8 = A8	;				/* address bus		*/ 
PIN	9 = RW	;				/* read write		*/ 
PIN	11 = p02	;				/* phase 2 clock		*/ 

/* *************** OUTPUT PINS *********************/

PIN  19 = ROM		;			/* 32K ROM			*/ 
PIN  18 = port0		;			/* port 0 strobe		*/ 
PIN  17 = port1		;			/* port 1 strobe		*/ 
PIN  16 = RAM0		;			/* lower 32K RAM		*/ 
PIN  15 = RAM1		;			/* upper 32K RAM		*/ 
/*PIN  14 = 		;			/*				*/ 
/*PIN  13 = 		;			/*				*/ 
/*PIN  12 = 		;			/*				*/ 

/* intermediate terms */

Mrom	= A15 & A14 & A13 & A12 & A11 & RW ;		/* Monitor ROM adress range	*/
Brom = A15 & A14 & (!A12 # !A13) & RW ;			/* BASIC ROM C000 - EFFF*/

/* Output terms */

!port0	= A15 & A14 & A13 & A12 & !A11 & !A10 & !A9 & !A8 ;	/* 256 byte	block	*/
!port1	= A15 & A14 & A13 & A12 & !A11 & !A10 & !A9 & A8 ;	/* 256 byte	block	*/
!RAM0		= !A15 & p02 ;							/* lower 32K RAM	*/ 
!RAM1		= !(Mrom # Brom # !port0 # !port1) & A15 & p02 ;	/* upper 32K RAM	*/ 
!ROM		= (Mrom # Brom) & p02 ;						/* 32K ROM		*/ 

CUPL(WM)        4.7b  Serial# XX-xxxxxxxx
Device          g16v8as  Library DLIB-h-36-2
Created         Wed May 30 06:14:58 2001
Name            sbc 
Partno          00 
Revision        01 
Date            01/08/00 
Designer        Lee 
Company         
Assembly        None 
Location        
*QP20 
*QF2194 
*G0 
*F0 
*L00000 01010111011101111111111111110101
*L00032 01011011111111111111111111110101
*L00064 01011111101111111111111111110101
*L00256 01010111011110111011101110111111
*L00512 01010111011110111011101101111111
*L00768 11101111111111111111111111111101
*L01024 10011111110111011111111111111101
*L01056 11010111010110011111111111111101
*L01088 11011111110111011111111111111001
*L02048 00000000001100000011000000100000
*L02112 00000000000001111111111111111111
*L02144 11111111111111111111111111111111
*L02176 111111111111111110
*C28A9
*B080


*******************************************************************************
                                      sbc
*******************************************************************************

CUPL(WM)        4.7b Serial# XX-xxxxxxxx
Device          g16v8as  Library DLIB-h-36-2
Created         Wed Jan 03 06:19:06 2001
Name            sbc 
Partno          00 
Revision        01 
Date            01/08/00 
Designer        Lee 
Company 
Assembly        None 
Location        

===============================================================================
                            Expanded Product Terms
===============================================================================

Brom =>
    A12 & !A13 & A14 & A15 & RW
  # !A12 & A13 & A14 & A15 & RW

Mrom =>
    A11 & A12 & A13 & A14 & A15 & RW

!RAM0 =>
    !A15 & p02

!RAM1 =>
    !A14 & A15 & p02 & port0 & port1
  # A15 & !RW & p02 & port0 & port1
  # !A12 & !A13 & A15 & p02 & port0 & port1
  # !A11 & A12 & A13 & A15 & p02 & port0 & port1

!ROM =>
    A11 & A12 & A13 & A14 & A15 & RW & p02
  # !A12 & A13 & A14 & A15 & RW & p02
  # A12 & !A13 & A14 & A15 & RW & p02

!port0 =>
    !A8 & !A9 & !A10 & !A11 & A12 & A13 & A14 & A15

!port1 =>
    A8 & !A9 & !A10 & !A11 & A12 & A13 & A14 & A15



===============================================================================
                                 Symbol Table
===============================================================================

Pin Variable                                    Pterms   Max     Min    
Pol   Name              Ext     Pin     Type     Used   Pterms  Level   
--- --------            ---     ---     ----    ------  ------  -----   

    A8                          8        V        -       -       -     
    A9                          7        V        -       -       -     
    A10                         6        V        -       -       -     
    A11                         5        V        -       -       -     
    A12                         4        V        -       -       -     
    A13                         3        V        -       -       -     
    A14                         2        V        -       -       -     
    A15                         1        V        -       -       -     
    Brom                        0        I        2       -       -     
    Mrom                        0        I        1       -       -     
    RAM0                        16       V        1       8       1     
    RAM1                        15       V        4       8       1     
    ROM                         19       V        3       8       1     
    RW                          9        V        -       -       -     
    p02                         11       V        -       -       -     
    port0                       18       V        1       8       1     
    port1                       17       V        1       8       1     


LEGEND    D : default variable         F : field      G : group
          I : intermediate variable    N : node       M : extended node
          U : undefined                V : variable   X : extended variable
          T : function



===============================================================================
                                   Fuse Plot
===============================================================================

Syn   02192 - Ac0   02193 x 

Pin #19  02048  Pol x  02120  Ac1 x 
 00000 x-x-x---x---x---------------x-x- 
 00032 x-x-x----x------------------x-x- 
 00064 x-x--x--x-------------------x-x- 
 00096 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00128 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00160 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00192 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00224 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #18  02049  Pol x  02121  Ac1 x 
 00256 x-x-x---x----x---x---x---x------ 
 00288 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00320 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00352 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00384 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00416 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00448 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #17  02050  Pol x  02122  Ac1 x 
 00512 x-x-x---x----x---x---x--x------- 
 00544 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00576 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00608 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00640 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00672 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00704 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00736 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #16  02051  Pol x  02123  Ac1 x 
 00768 ---x--------------------------x- 
 00800 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00832 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00864 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00896 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00928 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00960 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 00992 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #15  02052  Pol x  02124  Ac1 x 
 01024 -xx-------x---x---------------x- 
 01056 --x-------x---x--------------xx- 
 01088 --x--x---xx---x---------------x- 
 01120 --x-x---x-x--xx---------------x- 
 01152 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01184 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01216 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01248 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #14  02053  Pol x  02125  Ac1 - 
 01280 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01312 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01344 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01376 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01408 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01440 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01472 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01504 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #13  02054  Pol x  02126  Ac1 - 
 01536 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01568 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01600 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01632 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01664 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01728 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01760 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Pin #12  02055  Pol x  02127  Ac1 - 
 01792 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01824 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01856 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01888 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01920 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01952 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 01984 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
 02016 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 


LEGEND    X : fuse not blown 
          - : fuse blown 


===============================================================================
                                 Chip Diagram
===============================================================================

                               ______________
                              |   car_CPU    |
                      A15 x---|1           20|---x Vcc                      
                      A14 x---|2           19|---x ROM                      
                      A13 x---|3           18|---x port0                    
                      A12 x---|4           17|---x port1                    
                      A11 x---|5           16|---x RAM0                     
                      A10 x---|6           15|---x RAM1                     
                       A9 x---|7           14|---x                          
                       A8 x---|8           13|---x                          
                       RW x---|9           12|---x                          
                      GND x---|10          11|---x p02                      
                              |______________|