Go Down

Topic: CP/M computer on Arduino Nano 3.0 (Read 16381 times) previous topic - next topic

FoxyLab

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

FoxyLab

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


brandonpcguy

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.

FoxyLab

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)

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


FoxyLab

"Handmade" case for "nanocomputer":

FoxyLab

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.

FoxyLab

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.

miker00lz

#53
Oct 16, 2019, 09:58 pm Last Edit: Oct 16, 2019, 10:07 pm by miker00lz
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)

FoxyLab

Very nice! I love seeing emulator projects on AVR.
Thanks!


EDIT: Nevermind, I see you stopped using SD for RAM. (Or I misunderstood the original post)
Yes, in Mk V version FRAM is 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.
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

miker00lz

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
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.  :)

FoxyLab

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:

on CRT TV:

FoxyLab

Othello game

I vs "nanocomputer":


FoxyLab

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

lastchancename

I just looked at the video...
Harks back to the 80s when computing was somewhat simpler !
Experienced responders have a nose for laziness, (they were beginners once)... Sure, there are trolls, chest-beaters, and pretenders - but the help you'll get here is about as good as it gets - if you try to help youself!.

Go Up