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                      
|______________|