guidol70 / runcpm_vga32 Goto Github PK
View Code? Open in Web Editor NEWA fork of RunCPM for the TTGO VGA32 v1.4
A fork of RunCPM for the TTGO VGA32 v1.4
In README.md this filename is wrong: ./RunCPM_VGA32_v6_1_24072023_0x8000_0x8000.bin
I flashed it on Raspberry Pi using (as one line):
python3 /home/pi/esptool/esptool.py --chip esp32 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 ./boot_app0_0xe000.bin 0x1000 ./bootloader_qio_80m_0x1000.bin 0x10000 ./RunCPM_VGA32_v6_1_24072023_0x10000.bin 0x8000 ./RunCPM_VGA32_v6_1_24072023_0x8000.bin
Hello,
I use your project with TTGO VGA32. And it's work great!
I had made some enhancement with it.
Add timer BDOS function, test it and it's work fine.
Code very simple. In file cpm.h at line 1362 add:
case 240:
{
unsigned long tmp;
tmp = millis();
HL = tmp & 0xFFFF;
DE = (tmp >> 16) & 0xFFFF;
break;
}
BDOS function 240. Return milliseconds from last turn on in DE HL.
May be it's need some #ifdef for other boards.... May be assign to another BDOS function.
Please include this in next version
WBR
Hello,
Testing this project on TTGO VGA32, I had mentioned
that all file operation in CPM very slow.
After code checking found that for each operation with file
host make "open file", "read/write operation" and "close file"
CPM can make file operations with 128 bytes block only.
So such algorithm become dramatically slow.
For ex. MBASIC has size 24k. So simply load it in memory take 24k /128b = 192 operation.
192 time it's open and close file MBASIC.COM during loads in memory.
And, as a result, MBASIC loads 3.6 sec.
The same situation with write files...
I suppose such strategy also not good for SD cards...
So, there are need some cashing for removing additional open and close file operation.
Really CPM very rear use more than 3 file simultaneously and cashing for 10 opened file pointers
I think would be enough.
It boots on the Agon Light but crashes when attempting to access the SDCard. It boots from the ESP32 with MOS running on the eZ80 in the background (though MOS only runs it's OS loop as VDP is not loaded or running)
Broadly speaking the ESP32 would need to trigger interrupts in the eZ80 to access the FATFS routines.
A modified MOS would be needed where the ESP32 is running as the master.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.