This is an ATX format implimentation of the Mini-Cortex system by Paul Ruizendaal and Stuart Conner. The Mini-Cortex system is a further development of a TMS 9995 breadboard project to produce a system similar to a Powertran Cortex, but using more modern components. The system is based around a TMS 9995 running at 3 MHz, with 32K byte EEPROM, and will use 512K bytes of RAM accessed through a memory mapper. An on-board serial port and IDE interface exists on the card. There is also provisions for a TMS9918 clone, a keyboard and some expansion slots -- these are not totally supported by the firmware at this time however.
The main EEPROM image provides a boot menu which enables the user to select between the EVMBUG system monitor from TI's TMS 9995 Evaluation Module, a port of the Powertran Cortex Power BASIC made for a TM 990 computer, the Marinchip Disk Executive (MDEX) operating system, and an implementation of V6 Unix including a C compiler.
Much more information can be found at Stuart's site
The memory map is shown in the table below.
Memory Address Mapped To
>0000 - >7FFF ROM when enabled, otherwise RAM
>8000 - >EFFF RAM
>F000 - >F0FB TMS 9995 internal RAM
>F0FC - >FDFF RAM
>FE00 - >FE03 CF card ATA registers
>FE08 - >FE08 SN76489 SOUND
>FE20 - >FE21 Video
>FE40 - >FE4F Memory mapper registers 0-15
>FE60 - >FE7F SID Chip
>FE80 - >FEBF Offboard IO (ports $80-$FF)
>FFF0 - >FFF9 RAM
>FFFA - >FFFF TMS 9995 internal RAM
CRU Address Mapped To
>0000 - >003F TMS 9902 registers
>0040 - >007F Control signal latch (further details here)
(Plus processor internal CRU bits)
(Note that in TI Speak ">" means Hexidecimal, so for the rest of us >FFFA is the same as $FFFA or 0xFFFA or FFFAH)
for more information see Stuart's site
The CF card has to be newly formatted with an MBR (master boot record), a single partition formatted as FAT32, and a cluster size of 4096 bytes - the CF card needs to be at least 256 MB to support this. Not all brands/sizes of CF card seem to work - you may have more success with an older, low capacity card. A SanDisk 2.0GB card with a "SDCFB" marking on the back works well.
It can be problematic formatting a new card using Windows 10 as it does not always seem to write an MBR to the card. I use a formatting utility called Rufus details and download here with Boot selection==Non bootable, Partition Scheme==MBR, File System=FAT32, and Cluster Size= 4096 Bytes. Once the card is correctly formatted, use Windows to write the four files from the software folder ZIP filedirectly to the card. for more information see Stuart's site
P6 - ATX Case Power Button
JP1- ATX Case Reset Button
JP3- SID Chip CS (Some SID replacement chips need 2-3, default 1-2)
J21- Enable SID Audio Amp
J20- SID Speaker Out
J22- SN76489 Audio Amp
J23- SN76489 Speaker Out
J1 - F18A TANG NANO Connector
J4 - Serial Interrupt Enabled (Required for UNIX)
J5 - TTL Serial Interface
J6 - TTL Serial Power Enable
JP2- Enable Keyboard Interface
JP4- ATX Case IDE Led output
JP5- IDE Power Enable (2-3 for VCC on IDE Pin 20)
The serial port on the TMS9995 board is configured for 9600 Baud, 7 data bits, even parity, one stop bit, no flow control.
The EVMBUG monitor and the boot loaders for MDEX and Unix, are stored on a single 32K byte EEPROM. The required application is selected from a boot menu. To display the boot menu, connect the board to a configured serial port on a PC, apply power then press any key.
You should then see:
___ _ ___ ___
/ __|___ _ _| |_ _____ _| _ \/ __|
| (__/ _ \ '_| _/ -_) \ / _/ (__
\___\___/_| \__\___/_\_\_| \___|
TMS9995 COMPUTER SYSTEM
BIOS V1.0
PRESS 1 FOR EVMBUG MONITOR
PRESS 2 FOR MDEX
PRESS 3 FOR UNIX
To select a software application from the menu, press the corresponding numeric key.
MDEX documentation is available on the site http://www.powertrancortex.com/documentation.html. The documentation and MDEX disks were recovered and made available by Dave Hunter, the owner of the www.powertrancortex.com site. Porting of the MDEX files to the Mini-Cortex was by Paul Ruizendaal. On the Mini-Cortex, the files are stored in two emulated disks on the CF card.
The first version of Unix ported was LSX Unix (https://www.mailcom.com/lsx/), which was designed to run with 40K byte RAM and two 256K byte floppies. LSX Unix was adapted from Unix V6 by Dr. Heinz Lycklama (https://www.60bits.net/msu/mycomp/terak/termubel.htm). This port has been further ported to the TI 990 minicomputer by Dave Pitts, who has also made improvements to the code build system.
Dave Pitts' TI-990 web page. EVMBUG documentation
- No known bugs in V0.9
- Keyboard Firmware needs created and tested
The first test image tests just the processor (TMS9995_test_1_eprom_image), the EPROM and the EPROM chip select logic. Program and fit the EPROM, power on, press the reset switch. The CPU should execute a loop from ROM., then use the logic probe to check for a series of pulses on pin 20 of the EPROM every 2 seconds or so.
If the first test passes, repeat with the second test image (TMS9995_test_2_eprom_image), which also tests the RAM and the RAM chip select logic. With the second test, a series of pulses should be seen on pin 20 of the EPROM every 6 seconds or so.
The third test image has two versions. The first version configures the serial port to 9600 Baud, 7 bits/character, even parity, 2 stops bits, no flow control, and then loops continually sending the ASCII characters >21 ("!") to >7E . This version tests most of the system including ROM and RAM. The second version is a ROM only version. It also configures the serial port to 9600 Baud, 7 bits/character, even parity, 2 stops bits, no flow control, and then loops continually sending the ASCII characters >21 ("!") to >7E , but does not use any external RAM.
- none needed for V0.9
| Reference | Value | Qty | Description |
|---|---|---|---|
| C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C19,C21,C23,C25,C27,C29 | 0.1u | 23 | |
| C18,C20,C22,C24 | 10u | 4 | |
| C26 | 22u | 1 | |
| C28 | 47uF | 1 | |
| C30 | 1uF | 1 | Polarized capacitor |
| C31 | 10uF | 1 | Polarized capacitor |
| C32 | 0.1 uF | 1 | Unpolarized capacitor |
| C33 | 0.01 uF | 1 | Unpolarized capacitor |
| C34 | 100µF | 1 | |
| C35 | 0.1µF | 1 | |
| C40,C41 | 15pf | 2 | |
| D1 | PWR | 1 | LED |
| D2 | IDLE | 1 | LED |
| D3 | MAP | 1 | LED |
| D5 | 1N5817 | 1 | 20V 1A Schottky Barrier Rectifier Diode, DO-41 |
| D6 | IDE ACT | 1 | LED |
| D8 | Tx | 1 | LED |
| D9 | Rx | 1 | LED |
| D10,D11 | 1N4148 | 2 | 100V 0.15A standard switching diode, DO-35 |
| J1 | F18A TANG NANO Connector | 1 | Generic connector, double row, 02x10, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) |
| J2,J8,J11,J13,J15,J17 | IRQ Selection | 6 | Generic connector, double row, 02x06, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) |
| J3,J10,J12,J14,J16,J18 | Bus_I_not_SA_8bit | 6 | 8-bit ISA-PC bus connector |
| J4 | Enable Serial Int | 1 | Generic connector, single row, 01x02, script generated |
| J5 | TTL SERIAL 0 | 1 | |
| J6 | TTL SER 0 PWR | 1 | |
| J7 | USER OUT | 1 | Generic connector, single row, 01x07, script generated |
| J9 | AUDIO OUT | 1 | coaxial connector (BNC, SMA, SMB, SMC, Cinch/RCA, LEMO, ...) |
| J19 | Parallel Keyboard IN | 1 | Generic connector, single row, 01x11, script generated |
| JP1 | JUMPER | 1 | Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/) |
| JP4 | EXT IDE LED | 1 | |
| JP5 | IDE PWR | 1 | |
| P1 | 14.31818 MHz CLK | 1 | |
| P4 | 8 BIT IDE (CF) | 1 | |
| P5 | CONN_10X2 | 1 | Generic connector, double row, 02x10, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) |
| P6 | POWER_SW | 1 | Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/) |
| R1,R3,R6,R7,R11,R12,R13,R17 | 470 | 8 | -- mixed values -- |
| R2,R4,R8,R10,R14 | 10K | 5 | |
| R5 | 1000 | 1 | Resistor |
| R9 | 10Ω | 1 | |
| R16,R18 | 10k | 2 | Resistor |
| SW1 | RESET | 1 | Push button switch, generic, two pins |
| SW2 | POWER | 1 | Push button switch, generic, two pins |
| U1 | 74LS14 | 1 | |
| U2 | 74LS07 | 1 | |
| U3 | TMS9995-DIP_1 | 1 | |
| U4 | 74LS04 | 1 | |
| U5,U27 | 74LS74 | 2 | -- mixed values -- |
| U6 | 74LS112 | 1 | |
| U7 | SN76489 | 1 | |
| U8 | DS1233 | 1 | |
| U9 | SRAM_512K | 1 | 512K x 8 Low Power CMOS RAM, DIP-32 |
| U10 | TMS9918 EMU | 1 | |
| U11,U30 | GAL22V10 | 2 | |
| U12,U13 | 74LS32 | 2 | Quad 2-input OR |
| U14,U28,U29,U31 | 74LS244 | 4 | Octal Buffer and Line Driver With 3-State Output, active-low enables, non-inverting outputs |
| U15 | 74LS138 | 1 | |
| U17 | 74LS688 | 1 | |
| U18 | 27C256 | 1 | |
| U21 | TMS9902A | 1 | |
| U22 | 74LS259 | 1 | |
| U23 | 74LS612-DIP | 1 | |
| U25 | 74LS245 | 1 | Octal BUS Transceivers, 3-State outputs |
| U26 | 74HCT14 | 1 | Hex inverter schmitt trigger |
| Y1 | 12MHz | 1 |
