Author Topic: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano  (Read 2906 times)

0 Members and 1 Guest are viewing this topic.

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« on: October 28, 2019, 04:30:25 pm »
Hello!!!
I want to present to you my vintage computing related 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 (all tests succesfully executed), 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. 




Chars appearance:
on LCD TV:

on CRT TV:


StarTrek game on CRT TV:


Ada compiler in action (on terminal program):


Some CPU tests (on terminal program):




Video (start, CP/M loading, CPU test, Tiny Basic) (on terminal program):
https://youtu.be/Yuq1yEH-WZ8

Project homepage https://acdc.foxylab.com/node/76 - on russian, but if you are interested, then I can tell you more about this project.
 
The following users thanked this post: I wanted a rude username

Online alpher

  • Frequent Contributor
  • **
  • Posts: 257
  • Country: ca
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #1 on: October 28, 2019, 04:54:16 pm »
Love the "case",  ;)
 
The following users thanked this post: FoxyLab

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #2 on: October 28, 2019, 05:08:25 pm »
Love the "case",  ;)
True handmade  :)
 

Offline rrinker

  • Super Contributor
  • ***
  • Posts: 2046
  • Country: us
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #3 on: October 28, 2019, 06:56:59 pm »
 Needs must - it's like this temporary control panel I had on my model railroad - which lasted until I tore it down to move.

 

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #4 on: October 28, 2019, 07:21:28 pm »
 :)
Sides of the case:
 
The following users thanked this post: mrz80

Offline worsthorse

  • Super Contributor
  • ***
  • Posts: 1232
  • Country: us
  • aina varma, usein väärin
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #5 on: October 28, 2019, 09:09:29 pm »
This is pretty awesome. Nice work! Are you going to post a project description somewhere?
specialization is for insects.
 
The following users thanked this post: FoxyLab

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #6 on: October 28, 2019, 09:36:29 pm »
This is pretty awesome. Nice work! Are you going to post a project description somewhere?
Thanks!
The most complete description is page https://acdc.foxylab.com/node/76 in my site (in Russian), but it is not relevant in everything because of frequent updates to the project.
I will make a separate project page in English.
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 18443
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #7 on: October 29, 2019, 02:23:26 am »
Hmm, is that emulating in real time?

I mean -- I'm thinking the AVR is quite a bit more powerful, so it should be able to run nearly real time, or faster.  Though probably not accurate down to the cycle.  Does look a bit slow in the video.

What about hardware, is that handled by BIOS, or is period-appropriate hardware being emulated too?  Guess I should just sit down and read the translation.. :)

Tim
« Last Edit: October 29, 2019, 02:25:20 am by T3sl4co1l »
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 
The following users thanked this post: FoxyLab

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #8 on: October 29, 2019, 06:27:56 am »
Hmm, is that emulating in real time?

I mean -- I'm thinking the AVR is quite a bit more powerful, so it should be able to run nearly real time, or faster.  Though probably not accurate down to the cycle.  Does look a bit slow in the video.

What about hardware, is that handled by BIOS, or is period-appropriate hardware being emulated too?  Guess I should just sit down and read the translation.. :)

Tim

Two factors influence the slowdown of the emulation speed:
* rather slow access to I2C FRAM - the selection of one byte takes 400 machine cycles of AVR (I accelerate this access using the instruction cache)
* a significant part of the processor time of the microcontroller is spent on generating a video signal - as in the good old ZX80 :-)

BDOS and CCP - CP/M-original, but I intercept BIOS function calls.
 

Offline wilfred

  • Super Contributor
  • ***
  • Posts: 1031
  • Country: au
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #9 on: October 29, 2019, 07:27:15 am »
Nice work.
Is there a link to the Arduino code somewhere? I tried looking and couldn't seem to find it.
 
The following users thanked this post: FoxyLab

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #10 on: October 29, 2019, 09:28:42 am »
Nice work.
Is there a link to the Arduino code somewhere? I tried looking and couldn't seem to find it.
Project is in active phase now, frequently updates. Later i will upload HEX and ELF files.
« Last Edit: October 29, 2019, 09:47:16 am by FoxyLab »
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 18443
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #11 on: October 29, 2019, 06:21:52 pm »
Oh, yuck!  Get an SPI or parallel FRAM, stat! :D

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline wilfred

  • Super Contributor
  • ***
  • Posts: 1031
  • Country: au
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #12 on: October 29, 2019, 11:33:23 pm »
Nice work.
Is there a link to the Arduino code somewhere? I tried looking and couldn't seem to find it.
Project is in active phase now, frequently updates. Later i will upload HEX and ELF files.
If you aren't sharing the source code you will eliminate people who want to use different hardware or make their own changes. One example is the external RAM and using a Z80 emulation.

But it is up to you.
 

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #13 on: October 30, 2019, 02:19:47 am »
Oh, yuck!  Get an SPI or parallel FRAM, stat! :D

Tim
I have 23K256 SPI RAM, but i want to try use this chip as VideoRAM in sequential mode.
 

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #14 on: November 09, 2019, 04:11:46 pm »
PS/2-UART converter circuit for connecting a PS/2 keyboard:

Additional options -
page mode (scroll lock) - controlled by the Scroll Lock key with LED indication;
russian letters input in KOI-8R encoding - switching the language with the Alt-Shift keys combination with an LED indication;
hardware reboot with Ctrl-Alt-Del keys combination
 

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #15 on: November 13, 2019, 10:16:07 pm »
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
 

Offline FoxyLab

  • Contributor
  • Posts: 10
  • Country: by
Re: CP/M system with PS/2 keyboard, TV Out powered by Arduino Nano
« Reply #16 on: October 11, 2021, 07:35:52 am »
My homebrew Arduino Nano-based CP/M computer in action (recording with TV tuner):
  • power on
  • memory test
  • CP/M loading
  • DIR command
  • virtual screens toggle
  • CPU test
  • BASIC
https://youtu.be/NxQ2Omf0swM
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf