Skip to the content
PCBKitNew board
2 layers244 × 244 mmCortexPC, the printed circuit board in 3D

Powertran Cortex clone. PC formfactor, based on Stuart Conner's MiniCortex

Size
244 × 244 mm
Copper layers
2
Thickness
1.6 mm
Parts
167
Nets
421
Pads
1,429
Tracks, vias
7,418, 394
Pours
5
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
25 May 2025
Updated
12 Dec 2025

Overview

CortexPC is an open-source printed circuit board by danwerner21, from the danwerner21/CortexPC repository on GitHub. It is a 2-layer board of 244 × 244 mm with 167 parts on 421 nets, routed with 7,418 tracks and 394 vias.

It is built around the ATTINY85-20PU, 74LS245SC and LM386, with the 27C256-17/J, 74LS32SC and 74LS374PC among its other parts. Its parts include 53 capacitors, 38 connectors, 28 ICs, 23 resistors and 8 diodes. It belongs with the AVR (ATmega, ATtiny) and FPGA and CPLD boards of this library.

Main components

12

README

README.md

CortexPC

CortexPC

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

Source code for the Cortex Version of Unix V6 and a ton more TI990 software (including cross development tools) can be found here on Dave Pitts' TI-990 web page.

Memory Map

The memory map is shown in the table below.

text
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

Creating CF card Image for MDEX and Unix

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

Jumper Settings

text
  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)
  

Powering up

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:

text
  ___         _           ___  ___
 / __|___ _ _| |_ _____ _| _ \/ __|
| (__/ _ \ '_|  _/ -_) \ /  _/ (__
 \___\___/_|  \__\___/_\_\_|  \___|

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.

Useful Links

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

Bugs/To Do

  • No known bugs in V0.9
  • Keyboard Firmware needs created and tested

Troubleshooting

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.

Patches

  • none needed for V0.9

BOM

ReferenceValueQtyDescription
C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C19,C21,C23,C25,C27,C290.1u23
C18,C20,C22,C2410u4
C2622u1
C2847uF1
C301uF1Polarized capacitor
C3110uF1Polarized capacitor
C320.1 uF1Unpolarized capacitor
C330.01 uF1Unpolarized capacitor
C34100µF1
C350.1µF1
C40,C4115pf2
D1PWR1LED
D2IDLE1LED
D3MAP1LED
D51N5817120V 1A Schottky Barrier Rectifier Diode, DO-41
D6IDE ACT1LED
D8Tx1LED
D9Rx1LED
D10,D111N41482100V 0.15A standard switching diode, DO-35
J1F18A TANG NANO Connector1Generic 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,J17IRQ Selection6Generic 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,J18Bus_I_not_SA_8bit68-bit ISA-PC bus connector
J4Enable Serial Int1Generic connector, single row, 01x02, script generated
J5TTL SERIAL 01
J6TTL SER 0 PWR1
J7USER OUT1Generic connector, single row, 01x07, script generated
J9AUDIO OUT1coaxial connector (BNC, SMA, SMB, SMC, Cinch/RCA, LEMO, ...)
J19Parallel Keyboard IN1Generic connector, single row, 01x11, script generated
JP1JUMPER1Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)
JP4EXT IDE LED1
JP5IDE PWR1
P114.31818 MHz CLK1
P48 BIT IDE (CF)1
P5CONN_10X21Generic 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/)
P6POWER_SW1Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)
R1,R3,R6,R7,R11,R12,R13,R174708-- mixed values --
R2,R4,R8,R10,R1410K5
R510001Resistor
R910Ω1
R16,R1810k2Resistor
SW1RESET1Push button switch, generic, two pins
SW2POWER1Push button switch, generic, two pins
U174LS141
U274LS071
U3TMS9995-DIP_11
U474LS041
U5,U2774LS742-- mixed values --
U674LS1121
U7SN764891
U8DS12331
U9SRAM_512K1512K x 8 Low Power CMOS RAM, DIP-32
U10TMS9918 EMU1
U11,U30GAL22V102
U12,U1374LS322Quad 2-input OR
U14,U28,U29,U3174LS2444Octal Buffer and Line Driver With 3-State Output, active-low enables, non-inverting outputs
U1574LS1381
U1774LS6881
U1827C2561
U21TMS9902A1
U2274LS2591
U2374LS612-DIP1
U2574LS2451Octal BUS Transceivers, 3-State outputs
U2674HCT141Hex inverter schmitt trigger
Y112MHz1

Parts

167
QtyValueFootprintReferences
230.1uCustom:STD_DDW_CAPC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C19, C21, C23, C25, C27, C29 +7
12CONN_1MountingHole:MountingHole_3.2mm_M3_Pad_TopBottomP2, P7, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18
8470Custom:STD_DDW_RESISTORR1, R3, R6, R7, R11, R12, R13, R17
6Bus_I_not_SA_8bitCustom:BUSPC_HOSTJ3, J10, J12, J14, J16, J18
6IRQ SelectionCustom:STD_DDW_PINHEAD_V_2x06J2, J8, J11, J13, J15, J17
510kCustom:STD_DDW_RESISTORR16, R18, R28, R29, R30
410KCustom:STD_DDW_RESISTORR2, R4, R8, R14
410uCustom:STD_DDW_PCAPC18, C20, C22, C24
410ufCustom:STD_DDW_PCAPC39, C43, C49, C58
374LS244Custom:STD_DDW_DIP20U28, U29, U31
20.047ufCustom:STD_DDW_CAPC47, C56
20.1 uFCustom:STD_DDW_CAPC32, C37
210 ohmsCustom:STD_DDW_RESISTORR15, R24
210KPotentiometer_THT:Potentiometer_Bourns_3386F_VerticalRV1, RV2
215pfCustom:STD_DDW_CAPC40, C41
21N4148Custom:STD_DDW_DIODED10, D11
22200pfCustom:STD_DDW_CAPC42, C46
2220ufCustom:STD_DDW_PCAPC48, C57
24.7KCustom:STD_DDW_RESISTORR26, R27
2470pfCustom:STD_DDW_CAPC44, C45
274LS32Custom:STD_DDW_DIP14U12, U13
274LS374Custom:STD_DDW_DIP20U19, U20
274LS74Custom:STD_DDW_DIP14U5, U27
2GAL22V10Custom:STD_DDW_DIP24_SkinnyU11, U30
2LM386Custom:STD_DDW_DIP8U24, U32
10.01 uFCustom:STD_DDW_CAPC33
10.1µFCustom:STD_DDW_CAPC35
10.22ufCustom:STD_DDW_PCAPC38
10.47ufCustom:STD_DDW_PCAPC50
11 MHz CLKCustom:STD_DDW_DIP14P3
11000Custom:STD_DDW_RESISTORR5
1100µFCustom:STD_DDW_PCAPC34
110uFCustom:STD_DDW_PCAPC31
110ΩCustom:STD_DDW_RESISTORR9
112MHzCustom:STD_DDW_XTALY1
114.31818 MHz CLKCustom:STD_DDW_DIP14P1
11N5817Custom:STD_DDW_DIODED5
11uFCustom:STD_DDW_PCAPC30
122uCustom:STD_DDW_PCAPC26
127C256Custom:STD_DDW_DIP28U18
14.7pFCustom:STD_DDW_CAPC36
147uFCustom:STD_DDW_PCAPC28
16581Custom:STD_DDW_DIP28U16
174HCT14Custom:STD_DDW_DIP14U26
174LS04Custom:STD_DDW_DIP14U4
174LS07Custom:STD_DDW_DIP14U2
174LS112Custom:STD_DDW_DIP16U6
174LS138Custom:STD_DDW_DIP16U15
174LS245Custom:STD_DDW_DIP20U25
174LS259Custom:STD_DDW_DIP16U22
174LS612-DIPCustom:STD_DDW_DIP40U23
174LS688Custom:STD_DDW_DIP20U17
18 BIT IDE (CF)Custom:STD_DDW_PINHEAD_V_2x20P4
1ATtiny85-20PCustom:STD_DDW_DIP8U33
1AUDIO OUTCustom:CUI_RCJ-047J9
1CONN_10X2Custom:ATXConnectorP5
1DS1233Custom:STD_DDW_TO92U8
1ENABLE KEYBOARDCustom:STD_DDW_PINHEAD_V_1x02JP2
1EXT IDE LEDCustom:STD_DDW_PINHEAD_V_1x02JP4
1Enable Serial IntCustom:STD_DDW_PINHEAD_V_1x02J4
1F18A TANG NANO ConnectorCustom:STD_DDW_PinHeader_2x10J1
1IDE ACTCustom:STD_DDW_LED5D6
1IDE PWRCustom:STD_DDW_PINHEAD_V_1x03JP5
1IDLECustom:STD_DDW_LED5D2
1JUMPERCustom:STD_DDW_PINHEAD_V_1x02JP1
1KEYBOARDCustom:PS2_DINJ19
1MAPCustom:STD_DDW_LED5D3
1POWERCustom:STD_DDW_TACTSWSW2
1POWER_SWCustom:STD_DDW_PINHEAD_V_1x02P6
1PWRCustom:STD_DDW_LED5D1
1RESETCustom:STD_DDW_TACTSWSW1
1RxCustom:STD_DDW_LED5D9
1SID AMP EnableCustom:STD_DDW_PINHEAD_V_1x02J21
1SID CSCustom:STD_DDW_PINHEAD_V_1x03JP3
1SID OUTCustom:CUI_RCJ-047J24
1SID SpeakerCustom:STD_DDW_PINHEAD_V_1x02J20
1SN76489Custom:STD_DDW_DIP16U7
1SN76489 AMP EnableCustom:STD_DDW_PINHEAD_V_1x02J22
1SN76489 SpeakerCustom:STD_DDW_PINHEAD_V_1x02J23
1SRAM_512KCustom:STD_DDW_DIP32U9

The 160 most common of 167 parts.

Questions

How big is the CortexPC PCB?

It measures 244 × 244 mm and has 2 copper layers, 1.6 mm thick.

What parts does the CortexPC use?

167 parts, built around the ATTINY85-20PU, 74LS245SC, LM386 and 27C256-17/J. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the CortexPC KiCad files?

From the danwerner21/CortexPC repository on GitHub, at the commit this page was made from: the board is Hardware/CortexPC.kicad_pcb and its schematic Hardware/CortexPC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the CortexPC design in my own project?

Its repository states no licence, so its author keeps all rights: ask danwerner21 before reusing the design.

Similar boards

  • 2 layers235 × 160 mmProcessor.tms9995, the printed circuit board in 3D

    Processor.tms9995

    lynchaj/duodyne

    Duodyne is a hobbyist retrocomputer system designed to run ROMWBW. It is comprised of modules on a system bus

    105 parts15
  • 2 layers244 × 244 mm6809PC-6U, the printed circuit board in 3D

    6809PC-6U

    danwerner21/6809PC

    6809 PC

    167 parts2
  • 2 layersCompaqportableIII, the printed circuit board in 3D

    CompaqportableIII

    raymondh2/CompaqPortableIII

    Current PCB Memory Expansion board layout is untested. The backplane for the expansion cards is tested and working.

    123 parts17
  • 4 layers194.5 × 188.6 mmMyCpu, the printed circuit board in 3D

    MyCpu

    fortinsylvain/MyCpu

    Home brew CPU Hardware with 1-bit ALU implementation using 74LSxx, a micro-code and assembler coded in C#.

    162 parts18MIT
  • 2 layers239.6 × 239.9 mmTK3000, the printed circuit board in 3D

    TK3000

    clemarfolly/TK3000

    Réplica do Microdigital TK3000

    329 parts7GPL-3.0
  • 2 layers379.1 × 273.4 mmNE Delta, the printed circuit board in 3D

    NE Delta

    frubem/NE_Delta_Schematics

    Forked from https://codeberg.org/hkzlab/NE_Delta_Schematics

    185 parts
  • 2 layers338.7 × 107.7 mmQuapple, the printed circuit board in 3D

    Quapple

    kitspace-test-repos/kicad6-file-collection

    122 partsMIT
  • 4 layers337.6 × 105.7 mmISA CGA, the printed circuit board in 3D

    ISA CGA

    hkzlab/CGA_Redux

    The Color Graphics Adapter Redux board is a more or less faithful clone of the original IBM CGA, based on the original schematics

    170 parts56