CP/M computer on Arduino Nano 3.0

thank you for this post. I am 16yrs old and im just in love with assembly language and old simple microprocessors and IC. when I get a little bit more experience i will definetly give it a try I dont like newer higher level languages and it would be awesome to learn things on something I already have like an arduino. If you have any suggestions where I could learn more and how to get started I would appreciate your suggestions

CyberCube37: thank you for this post. I am 16yrs old and im just in love with assembly language and old simple microprocessors and IC. when I get a little bit more experience i will definetly give it a try I dont like newer higher level languages and it would be awesome to learn things on something I already have like an arduino. If you have any suggestions where I could learn more and how to get started I would appreciate your suggestions

Thanks! I started programming on such a Soviet programmable micro calculator - https://en.wikipedia.org/wiki/Elektronika_MK-61 Then there was ZX Spectrum... This project brings me back to my youth :-) But enthusiasts do much more incredible things - a processor on TTL logic or even electromagnetic relays ("homebrew relay computers").

Displaying the font on the TV screen after the redesign and adding symbols of the pseudographics and Russian letters in the KOI-8 encoding: |500x86

"Hardware" underline cursor added:

I tested the BASIC compiler on my "nanocomputer":

compilation

link

run :)

Huzza! My simulator passed the test DIAGNOSTICS II V1.2 - CPU TEST by SUPERSOFT ASSOCIATES:

Epic game "Star Trek" running in my "nanocomputer":

I'm going to try this on:

https://www.adafruit.com/product/2795

I would like to make a compact portable CP/M computer.

Thank you for your work.

It is a really cool project.

The project is unfrozen :-)

Successful tests of connection the PS/2-keyboard via the STM8 adapter made my "nanocomputer" autonomous. So cpm4nano Mk V: Arduino Nano 3.0 - emulates the i8080, provides work with memory and disks, performs video output and serial communication RAM - 2 x 32 KB FM24C256-G I2C-chips FDD - SD-card input - PS/2-keyboard via STM8S103F3P6 adapter output - in parallel to the video output (20 lines x 45 columns, font 4 x 8) and serial port (USB-UART converter) |488x500 P.S. I tested the connection to the tube TV (the clarity of the image is worse than on the LCD, but the synchronization is not broken and the font is readable).

|500x307

"Handmade" case for "nanocomputer": |434x500

Added the ability to enable the "turbo" mode "on the fly" using the jumper - disabling the rendering of pixels in the TV frame, an analog of FAST MODE in ZX81. The BASIC test execution time is reduced in this mode from 120 to 70 seconds.

Adding a read-ahead/write-through instruction cache (single-line, 16 bytes) between the emulation core and I2C-memory accelerated the work of CP/M, for example, the time it took to complete DIR on a floppy disk with system files and tests was reduced by one and a half times.

Very nice! I love seeing emulator projects on AVR. But aren't you going to wear out the SD very quickly by using it as RAM?

You should take a look at the Teensy line of boards if you are interested in more memory and speed. They are compatible with the Arduino environment. The T4.0 is especially nice (600 MHz Cortex-M7, 1 MB RAM), and only $20!

I did a similar project recently, but with 8086 on a Mega2560.

EDIT: Nevermind, I see you stopped using SD for RAM. (Or I misunderstood the original post)

miker00lz: Very nice! I love seeing emulator projects on AVR.

Thanks!

miker00lz: EDIT: Nevermind, I see you stopped using SD for RAM. (Or I misunderstood the original post)

Yes, in Mk V version FRAM is RAM :-)

miker00lz: You should take a look at the Teensy line of boards if you are interested in more memory and speed. They are compatible with the Arduino environment. The T4.0 is especially nice (600 MHz Cortex-M7, 1 MB RAM), and only $20! I did a similar project recently, but with 8086 on a Mega2560.

It's my accepted challenge: :) single Arduino Nano emulates i8080, acts with RAM & SD card, generates videosignal for TV Out, sends/receives data to/from serial (or from PS/2 keyboard with STM8 powered adapter).

My "nanocomputer" in action: YouTube

FoxyLab:
It’s my accepted challenge: :slight_smile:
single Arduino Nano emulates i8080, acts with RAM & SD card, generates videosignal for TV Out, sends/receives data to/from serial (or from PS/2 keyboard with STM8 powered adapter).

My “nanocomputer” in action:
YouTube

Very impressive! The speed is really good considering that it also has to generate a TV signal.

I know how much fun it is to try to get everything you can out of a simple AVR. :slight_smile:

miker00lz: Very impressive! The speed is really good considering that it also has to generate a TV signal. I know how much fun it is to try to get everything you can out of a simple AVR. :)

Chars of font: on LCD TV: |500x73 on CRT TV: |500x110

Othello game

I vs "nanocomputer":

StarTrek (running by my "nanocomputer") on CRT TV: |500x320

I just looked at the video... Harks back to the 80s when computing was somewhat simpler !