Go Down

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

FoxyLab

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

FoxyLab

Memory dump from monitor (CRT TV screenshot):

FoxyLab

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

FoxyLab

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

FoxyLab

#64
Nov 20, 2019, 07:31 pm Last Edit: Nov 20, 2019, 07:32 pm by FoxyLab
Launched on the "nanocomputer" LISP/80 interpreter version 1.1 from Thomas W. Yonkman:


Here is a note about this interpreter in BYTE magazine:



FoxyLab

Interpreter FOCAL running on my "nanocomputer":

FoxyLab

Microchess program made by Peter R. Jennings in 1977 successfully launched on my "nanocomputer":

FoxyLab

I added to the "nanocomputer" the possibility of input-output via an audio file or magnetic tape.
Board for matching voltage levels (classic solution):


Formats:

Bits in Audacity:

Functionality was checked for the linear input and output of a "large" computer with a speed deviation of up to 20%.
Example (WAV-file with three blocks):
CAUTION! HIGH VOLUME!
tape.wav

FoxyLab

#69
Dec 23, 2019, 02:48 pm Last Edit: Dec 23, 2019, 02:51 pm by FoxyLab
I started a chess duel between my "nanocomputer" running Microchess (playing white) and the "big" computer with the chess engine Sunfish  (written in Python, written by Thomas Dybdahl Ahle) .
After 22 moves the situation is as follows:


As it turned out, the Spanish party was played in the opening, then Black used the Berlin Defense, and White used anti-Berlin.
All moves and pictures are recorded  here (comments - on russian).

The game continues :-)

FoxyLab

A companion project has begun - an i8080-based system emulator on Rust - me select from the list of binary files in the program directory the desired one (for example, BASIC, Minol or chess) and run:


The emulator successfully passed the famous "exerciser" test:

Go Up