Go Down

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

Budvar10

Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0

petersieg

#31
May 18, 2017, 09:57 am Last Edit: May 20, 2017, 03:25 pm by petersieg
Hmm. Just gave it a try with Arduino 1.0.6 (I know that it is very old).
1. Gives conflict with standard arduino SD library - better to rename your spinoff to something that does not give a conflict with the standard libs.
2. Resulting sketch ist to big for Nano/Mini Pro with atmega328:

Binäre Sketchgröße: 33.386 Bytes (von einem Maximum von 30.720 Bytes)
processing.app.debug.RunnerException: Sketch zu groß;

??

BTW: I assume the ps2 files are just there for future use and not yet used in the project?
Also some wiring information would be making it probably easier.
And where can I locate the ADA compiler for CP/M?

Also it would be a good idea, the let any somewhat stable version there as a release when you start working on a new/anhanced version.. so just have one bucket of code that is a work in progress ist not good.

Peter

FoxyLab

Hmm. Just gave it a try with Arduino 1.0.6 (I know that it is very old).
1. Gives conflict with standard arduino SD library - better to rename your spinoff to something that does not give a conflict with the standard libs.
2. Resulting sketch ist to big for Nano/Mini Pro with atmega328:

Binäre Sketchgröße: 33.386 Bytes (von einem Maximum von 30.720 Bytes)
processing.app.debug.RunnerException: Sketch zu groß;

??

BTW: I assume the ps2 files are just there for future use and not yet used in the project?
Also some wiring information would be making it probably easier.
And where can I locate the ADA compiler for CP/M?

Also it would be a good idea, the let any somewhat stable version there as a release when you start working on a new/anhanced version.. so just have one bucket of code that is a work in progress ist not good.

Peter
I compiled the project succesfully on Arduino 1.6.6 (on Arduino 1.8.x - fail with PROGMEM).  Required library files (some are slightly changed!) placed in project folder (Sd2Card.h, SD.h etc).
I upload on GitHub today last project version.
For this code:
"Sketch uses 30,436 bytes (99%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,465 bytes (71%) of dynamic memory, leaving 583 bytes for local variables. Maximum is 2,048 bytes."

Yes, PS/2 related files - for future use.

I'm working on a wiring drawing.

ADA compiler - i will upload later.

Best regards, Alexey



FoxyLab

Project news:
- connected two FRAM chips (32 KBytes each), and made auto-configuration of chips (they can be up to 8) on banks, so that these two chips filled zero bank RAM
- untied the hardware I2C from interrupts (by rejecting the use of Wire.h)
- untied work with UART from interrupts
- from interruptions I got off for good reason - timer 1 after these tweaks allowed to generate the horizontal line frequency for output on TV; I was able to select a set of assembler commands that would allow one pixel to be output in 7 cycles of the processor (where the characters are taken from the character generator - an array in flash memory, but not the screen buffer in RAM), and this at 56 μs of the active part of the line will give 128 pixels, e. Arduino Nano (one !!!) can both emulate and output to the screen through the composite TV input 24 chars in row with 5 x 8 font, although losing a few in performance (but still not to that the ZX80 of Sir Clive :-))
- rewrote emulation code, saving a few kilobytes of flash
To be continued (and a new version of the code on the GitHub, as well as a edited description (in russian) at https://acdc.foxylab.com/node/76)

FoxyLab

I will boast :-)
I taught my "nanocomputer" to display on TV screen without jitter (!) 20 lines of text on 40 columns in each.
The "screenshot" of the TV screen shows the results of the DIR command and the CPU tests:

Currently one (!) Arduino Nano (!) in my "cpm4nano" project:
- emulates the i8080 processor;
- loads the OS CP M and runs its programs;
- exchanges information on the serial port;
- displays the image on the TV screen.
P.S. Font, of course, i will correct, Spectrum compressed font looked better.

FoxyLab

Current project circuit:

The minimum configuration requires:
Arduino Nano 3.0;
SD card with adapter;
USB-UART converter.

FoxyLab

With the addition of the PS/2 interface for connecting the keyboard, my "nanocomputer" has become self-sufficient:


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

FoxyLab

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

FoxyLab

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

FoxyLab

"Hardware" underline cursor added:

FoxyLab

I tested the BASIC compiler on my "nanocomputer":

compilation


link


run :)

Go Up