Software apps and online services
Hand tools and fabrication machines
I am writing a book about old computers. Oh, sorry: I mean "vintage computers" from the '80s. My primary goal is to show how one can build an 8-bit computer from scratch. This 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 32kB of (EEP)ROM and 32kB 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 8-bit 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!Become a patron on Patreon
Hurry up the production and innovation cycle, become a patron...
Monitor v3 has four commands:
- D is for memory dump
- M is for memory change
- G is for Go
- : is for load a HEX file
- B invoke the TINY BASIC
- X sets the break point
- R shows/alters the registers after program break
- C is for continue after break
You can set desired values into registers by the R command, including the PC register, and then run program by the C command.
EEPROM contains TINY BASIC at address 1000h, so enter G1000 to start BASIC.An alternative monitor MON85
You can find all of the source codes and ready made images on GitHub.
- Support for undocumented 8085 instructions DSUB B, ARHL, RDEL, LDHI d8, LDSI d8, LHLX D, SHLX D, JNK a16, JK a16, RSTV
- Command R displays all flags of F register (SZKA3PVC). If flag is not set dash '-' is displayed.
- Added restart vector RST 8 (0040h) for possibility to handle RSTV call.
- Changed TRACE mode. After entering TRACE mode, instruction on actual PC and content of registers (if it is switched on) are displayed. Entering a space ' ' executes this instruction, and returns to the 'T>' prompt with the next instruction.
- Instructions LXI, DAD, INX, DCX displays argument 'SP' rather than 'S'.
- Commands that requires 1 byte parameter raises error if entered value not fit to 1 byte.
- Command 'C' checks overlap of source and destination block and for copying uses appropriate direction.
- Command 'F' checks <start> and <end> parameters and raises error, if <end> is lower than <start>.
- Added command 'H' to send out memory content in Intel HEX format.
- Sending of LF and CR characters were reversed and are sent in the usual order - CR first and followed by LF.
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 Blinking via Parallel Port and TINY BASICPrototype photo gallery
A little bit improved PCB is on its own way - 10 pieces should arrive next week. So I will test it and upload SCH, BRD as well as Gerber files.
Simple SPI simulation by port PC of 8255.OMEN Alpha, issue 2
The second version of PCB has some new features:
- System connector (24 pins) with data bus, A0-A2, /RD and /WR, seven /CS (decoded), system clock and an interrupt
- Selectable IRQ (RST7.5) for external interrupt request
- Switchable /WE for EEPROM to enable in-place programming
Here is parts placing image:
- JP1 is a serial port. Pins are (from bottom to up): GND, TxD, RxD (next to "JP1" label)
- JP2, JP3, JP4: Parallel ports from 8255. A square marks pin 1, see below to schematics. JP2 is port PA, JP3 is for PB, JP4 is for PC
- JP5 is a EEPROM write enable. Connect pins 1-2 to disable writing, connect 2-3 to enable (pin 1 is the leftmost, pin 3 is next to the label "JP5")
- JP7 is RST7.5 enabler. Close to disable interrupt, open to enable.
System connector (at the upper edge, square marks pin 1)
JP2, 3, 4: square marks the "Vcc" pin.
(Of course, it's compiled and totally unoptimalized for now...)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:
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!
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:
- Signals RESET and READY are added to the application / system bus
- 10k pull-up resistor between READY and Vcc to drive this line with open collector drivers
- Removed the LED and 330R resistor. Three pins are added: SID, SOD and GND to enjoy a serial port.
- One place for 22pF capacitor was removed.Further plansTo Zilog, or not to Zilog?
The question is simple: Do you want a Zilog Z80 based simple computer kit, similar to the OMEN Alpha? Please vote here.Monitor v4
See GitHub page for news and downloadPCB
I can recommend Seeed Fusion PCB Assembly Service. It offers one-stop prototyping for PCB manufacture, PCB assembly and as a result they produce superior quality PCBs and Fast Turnkey PCBA from 7 working days. When you prototype with Seeed Fusion, they can definitely provide Free DFA and Free functional tests for you! Check out their website to know about their manufacturing capabilities and service.