I write a book about old computers. Oh, sorry: I mean "vintage computers" from 80's. My primary goal is to show how one can build a 8bit computer from scratch. It means: how to set up a CPU, how to connect memories, how to connect peripheral chips, and why to connect...

This computer is a "demo construction": A computer, based on 8085 CPU, with 32 kB of (EEP)ROM and 32 kB of RAM, serial connection and parallel ports. All should be as simple as possible. And here is a result.

Wait a moment - why OMEN?

It is simple. OMEN is an abbreviation (of course) of Czech expression "Osmibitový Mikropočítač pro Elektronické Nadšence", which means "an 8bit Microcomputer for Electro Enthusiasts".

Of course - when I have connected the speaker and played a tune, the first tune I have implemented was... right, "The Omen" by Prodigy!

Monitor

Monitor has four commands:

D is for memory dump

M is for memory change

G is for Go

: is for load a HEX file

EEPROM contains TINY BASIC at address 1000h, so enter G1000 to start BASIC.

Programming

As easy, just write a program in assembly language, compile it to the HEX and copy/paste to serial monitor. Then use G command (as GO) to run.

See this video:

LED display and a hexadecimal keyboard 

Here is the classic peripheral device for a single board computer: LED 7segment display and a hexadecimal keyboard. 

Of course I can use the classic keyboard matrix and some 7segment displays, a bunch of resistors 

and transistors and solder a vintage one. Yes, I can, and it's easy. Instead I have used the cheap LED+key module from China. Its type is QYF-TM1638. 

This is it:

You can buy it on eBay or AliExpress for about 3 USD.

It provides the modern LED display driver and keyboard scanner. It has a serial interface - not an UART, but some kind of SPI with bidirectional data line.

You need three pins to connect this module: strobe pin (output from CPU), clock pin (output from CPU) and data (bidir). So there was a problem: How to achieve a bidir interface in the OMEN Alpha?

I have used the 82C55 parallel interface, port C. Port C can be split into two groups (higher and lower half, PC7-PC4 and PC3-PC0), which can be configured as input or output independently. Ports A and B has the same direction for the whole port.

So I have set the lower half of port C as output for STB and CLK, and the upper one I can switch between input and output. Data pin DIO is connected to port C pin 7.

Here is a source code for the driver. It is not optimized, straightforward and rather ugly, but it works!

OMEN Alpha, issue 2 

The second version of PCB has some new features: 

PCB - Issue 4

My Tindie shop is out of stock, so I decided to fabricate a new batch of PCBs. I have skipped the Issue 3 (backplane version) and made a new, slightly improved version, Issue 4. The improvements are:

Parts placing on PCB 

Here is parts placing image: 

Jumpers etc. 

System connector (at the upper edge, square marks pin 1) 

  1. /WR 
  2. D0 
  3. D1
  4. D2 
  5. D3 
  6. D4 
  7. D5 
  8. D6 
  9. D7 
  10. A0 
  11. A1 
  12. A2 
  13. /RD 
  14. IO1 
  15. IO2 
  16. IO3 
  17. IO4 
  18. IO5 
  19. IO6 
  20. IO7 
  21. Vcc 
  22. GND 
  23. RST7.5 
  24. CLK 
  25. RESET (output)
  26. READY (normally 1. Pull down to 0 for processor wait state)

Parallel ports: 

Square marks the "Vcc" pin.

JP2:

GNDPA7PA6PA5PA4
VccPA0PA1PA2PA3

JP3:

GNDPB7PB6PB5PB4
VccPB0PB1PB2PB3

JP4:

GNDPC7PC6PC5PC4
VccPC0PC1PC2PC3

Further plans

I plan more OMENs, named Bravo, Charlie, Delta, Echo... Bravo is simillar SBC, but with 65C02 CPU. And other ones? Stay tuned!