TMS9995 Max II
Information here is about a TMS9995 pcb board that has full 64k of memory and a TMS9901 peripheral chips (2).
PLD Code - no peripheral chips
Name 9995 EMVBUG + Cortex extra ram space;
Partno 0001;
Revision Ver 1;
Date 27/10/17;
Designer mc;
Company mcoz;
Location oz;
Assembly manual;
Device g22v10;
/** Inputs **/
pin [2..11] = [a6..15] ;
pin 14 =nmemen;
pin 13= nwe;
/** Outputs **/
pin 17 = rom;
pin 23 = mce;
pin 20 = !sce1;
pin 18 = !cruclk;
/** Declarations and Intermediate Variable Definitions **/
field ioaddr= [a15..6];
sce1_eqn = (ioaddr:[0000..003F]);
/** Logic Equations **/
mce = !a15 # nmemen ;
rom = a15 # nmemen;
sce1 = sce1_eqn & nmemen;
cruclk = nwe;
Here is Binary code for the EPROM - load from address h0000.
After loading the Monitor and cortex Basic into EPROM ... press rest button then any key on keyboard to get the PROMPT for EVMBUG or BASIC
As you can see it runs with 22K free RAM space
now the trick is to find out why NVRAM does not cooperate
Here is schematic of the board with EPROM option and 2 peripheral chips ..
Vew of a PCB ...of above circuit
Partly completed board .. note the colours on the com1 port for comms .. note you do not need the peripheral chips to run the board.
To add the peripheral function to the board with extra 2 9901 chips change to pld code to something like this..
PLD for peripheral chips ..
Name 9995 EMVBUG + Cortex extra ram space;
Partno 0001;
Revision Ver 1;
Date 20/05/19;
Designer mc;
Company mcoz;
Location oz;
Assembly manual;
Device g22v10;
/** Inputs **/
pin [2..11] = [a6..15] ;
pin 14 =nmemen;
pin 13= nwe;
/** Outputs **/
pin 17 = rom;
pin 23 = mce;
pin 22 = !ce1;
pin 21 = !ce2;
pin 20 = !sce1;
pin 18 = !cruclk;
/** Declarations and Intermediate Variable Definitions **/
field ioaddr= [a15..6];
sce1_eqn = (ioaddr:[000X..003X]);
ce1_eqn = (ioaddr:[004X..00CX]);
ce2_eqn = (ioaddr:[01XX..014X]);
/** Logic Equations **/
mce = !a15 # nmemen ;
rom = a15 # nmemen;
sce1 = sce1_eqn & nmemen;
ce1 = ce1_eqn & nmemen;
ce2 = ce2_eqn & nmemen;
cruclk = nwe;