Close
0%
0%

cpm4nano - CP/M computer powered by Arduino Nano

CP/M computer with TV Out and PS/2 keyboard powered by Arduino Nano

Similar projects worth following
I want to tell you about my project "cpm4nano" - a complete CP/M system based on Arduino Nano 3.0.

Currently one (!) Arduino Nano (!) in my project:
- emulates the Intel 8080 processor, 64 KBytes RAM (with two FRAM chips) + 4 FDD (with SDHC card);
- with the help of the PS/2-UART converter on STM8 allows you to enter information from the keyboard;
- displays text information on the TV screen (20 rows with 45 cols) without jitter (with duplication of information to the PC through serial channel);
- receives data from the PC through serial channel (and uploads files from the PC using the XMODEM protocol);
- loads the OS CP/M and runs its programs.

Stay tuned for updates!

Current project shematic:

Current project appearance:


Chars of font:

on LCD TV:

on CRT TV:


Schematics:

TV Out:


FRAM:


PS/2-UART converter:


Results of successfully passed tests:

DIAGNOSTICS II V1.2 - CPU TEST by SUPERSOFT ASSOCIATES:

CPU Test by Ian Bartholomew:

Kelly Smith Test:

UMPIRE RAM test:


Successfully launched compilers and interpreters of programming languages:

TinyBASIC

CBASIC

compilation:

linking:

running:

Ada

compilation + linking:

running:

Star Trek (wrritten in Ada):

Forth-83

FORTRAN

compilation + linking:

running:


BDS C

compilation + linking:


running:

Videos:


Stay tuned for updates!

  • 1 × Arduino Nano 3.0
  • 1 × STM8S103F3P6 Microprocessors, Microcontrollers, DSPs / Microcontrollers (MCUs)
  • 2 × FM24C256-G Memory ICs / Other Memory ICs

  • Virtual screens

    Alexey Voronin5 days ago 0 comments

    I overcame the limitation of the physical resolution of the video output of my "nanocomputer" (45 columns) in the style of the Osborne 1 portable microcomputer - using two virtual screens.
    The contents of the current virtual screen are stored in video memory (microcontroller RAM), and the contents of another virtual screen are stored in the main memory (I2C chips).
    Screens are located horizontally, the resolution of the virtual screen is 40 columns and 19 lines + 1 status line:


    Thus, virtual screens emulate a physical screen with 80 columns (Osborne emulated a physical screen with 128 columns through overlapping virtual screens with a width of 56 columns).
    Switching modes (physical screen / virtual screens) is carried out from the monitor program.
    Switching between virtual screens is done by the CTRL-O key combination.
    Example:
    left virtual screen


    right virtual screen

  • Memory dump from monitor

    Alexey Voronin11/06/2019 at 06:29 0 comments

    Screenshot from CRT TV:

  • Sides of the case

    Alexey Voronin10/28/2019 at 19:24 0 comments

  • StarTrek

    Alexey Voronin10/26/2019 at 02:30 0 comments

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

  • Othello game

    Alexey Voronin10/23/2019 at 02:51 0 comments

    I vs "nanocomputer":


View all 5 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates