@Lucifer, there are some misunderstanding, i suppose.
eRISC can not have more, than 64k RAM & ROM.
SWCC (WDCC) can have up to 4Gb RAM and up to 65534 devices (0-Always general CPU/core, 0xFFFF - broadcast), so 1 can be display, 2 - keyboard, 3 - mouse, other - disks :)
Now lets see you suggest...
1. Does that model of arduino that you are working on have ARM cpu? if so we could potentially make small linux distro specialized for it and it will be semi-graphic (search TUI or CLI terminal apps for pictures just to give you idea)
- My architecture is completley different of anything is existed in world... So
install Linux
is not option until someone make GRUB for it... Also the device talking (CPU & each other) methods too different from used in almost any CPU (right now is IRQ with DMA. I not use IRQ, and DMA is... not really DMA, for any device can use any RAM space in any time... Even codespace).
So Idea is too different (maked to be easy to understand & use, and for fast work as possible without sync issues IRQ provide & fixed with mostrous solutions)...
So answer is: My model does not contain ARM at all. Self Linux distro is real, but for SWCC (WDCC), not SWCC-8e (eRISC), because it is not designed to have any graphic output (except special device it will talk to).
2. Can it's ROM be upgraded? if so we could make more ram;we will use sd cards partition like 256k for ram and rest as disk
On SWCC-8e ROM is limited by 64k (2x 8bit register to address, programm pointer 8 bit - so any page can contain only 256 bytes), so using SD is not solution, but downgrade (it has lower read speed, than 64LC chips).
Second: SD for RAM? SD is too slow for ROM and have too limited read-write cycles - using it as RAM will kill it too soon (while you experience too slow overall work until its die & you start use RAM solutions for RAM)...
3. As for graphic libs we could port/use sixel or termbox or ncurses i have also written some libs for linux as well that can be ported... That libs include 3d in terminal in pure C
- I focused on easy way to use & manipulate it. Main point is - any object is the same object (window is same as button, but have different functions to process (as window) and different draw function (so it looks like window, not button). So you can create object (just rectangle with not drawing, it has X, Y & width/height. It belongs to some 'layer', have some 'parent' & have self
id
and group
(for operations with group of objects, like making it visible/invisible or active/inactive). To be window this object also need new drawing function, boolean folded
flag, 3 childs (fold & close buttons, + main form
), it needs also color variables (for active/inactive main, front & back colors + header color), it also need string with window name (not ID) to show in header, also window can have icon (image or vector)... All of these can be inserted in object as static (all-in-one always), but what if programmer want to add some, say, timer & angle variables to draw some kind of gauge, like analog clock? It must be extern vars then, not really neat... How about function? When it should be called? How & then draw this gauge? If it all 'inside' object - no problems, but if we use c++ what not allowed dynamically change object (adding vars/changing vars types/adding or change functions), so we in some trouble here... Not nice...
If you mean to make these libs on SWCC (WDCC) self-printed Linux - i have solution more interested: hardware-processed. That means that you can just say videocard: Hey pal, make me window (let it ID be 'W1') this size over there & image [here it is] over there
- and it will do. Then you say Pal, i moving window 'W1' to new X,Y - do it
- and it will do. Main idea is that videocard not just output its RAM and making some simple calcs with amount of cores, but get entire image-forming to itself (include 3D) and you can just tell it to make something and while it make this - CPU be free to other tasks (so i divide drawing from calculations, CPU make calculations & transfering tasks, drawing do only videocard! Also calculations can be delegated to EALU - extarnal ALU, so CPU is more free to do more tasks, and all this is pure parallel without collapses!).
But is has a lot of work to make it real (not virtual), device talking core is same for all devices, but it complex.
Also any device must have some CPU to do its dutys, some devices can have only simple controller (even on 74xx series), like keyboard, but some should have something more like SWCC CPU itself (with some external hardware, like LCD display on video device).
4. We could also combine ANSI with color coded escape sequences for simple graphics with this way i accomplished printing png images on terminal also custom fonts are magic if u can change them interactivly
- Thats idea is was made almost first when i make video device :) 1024 characters (4 pages by 256 chars), each can have fore & back color (like DOS, colors same: 4 bit as LRGB EGA standart).
Custom fonts is also maded - by changing video device codepage data (ROM for characters lookout, right now 8x8 each), so any programm can make sprites, and then after finish send command to retrieve original charset.
As for microscript via network goes we will need to have client app running on arduino how to start and make such app without OS running on arduino i have no idea...
Network is for eRISC to change its parameters & read-write ROM. Only.
If you need to 'draw' something on eRISC - you need to make it video device (with designing codes) and then write program to send codes.
Its not like 'buy x86, buy motherboard, buy videocard, combine & run => Ok'. As arduino not have display by default (only SPI, analog/digital interfaces etc) eRISC have no video as so... Its just idea of more fast semi-CPU (RISC architecture) with much of abilities (most for automation, not gaming. Like CNC or smart house).
As for SWCC (full version) - it also designed for CNC, educations, 'big toys for big humans' and stuff. Theoretically it can challenge some x86, but I have not want to make challenge to Intel, just make fast, simple, easy to use & understand CPU with lots of abilities. Thats all.
Most important note about eRISC (SWCC-8e): on Arduino i make only Virtual machine! So, if Arduino can handle display + SD card + Ethernet its not mean that eRISC can have it due to limitation of architecture itself (its virtualization of some real device, maded on 74xx logic series chips or even transistors + resistors!).
So theoretically i can add instructions to magically work with devices
(also making processor word bigger), but in real life it is not how it work. To magic
workout in CPU you need make monster of monsters from transistors, so CPU can do some unusual task... But good CPU have not futures like this, only things it can handle in single tick, without abstract magic & stuff.