Quote:
Quote:
How much much processing power is needed? Probably more than one 65816 [...] the multi-threaded / multi-processor thing is where I specialise.
Okay, I get the multi-threaded thing, and hats off to you -- it's a provocative goal to pursue. But multiple threads don't necessarily require multiple processors. And in this case unclear how much of a performance boost multiple processors would provide.
Expectations...
It's an interesting idea that we might be able to replace a modern desktop system with a "retro-new" build. I have thought about it many times but I was also "back there in the day" - well at least from '78 onwards.
What can I do today with my 16Mhz '816 system with 512KB of RAM...
I can edit, compile and run high level language programs locally. It's no-where near as fast or slick as I can on my Linux desktop but the principle is the same - on my desktop I use a text editor (vim), Makefiles and compilers. (C, also a BASIC desktop environment I wrote myself).
On RubyOS I can edit with my own nano-like editor, compile and run BCPL programs. I'm working on the BASIC... I could cross-compile C but I'm not that interested in that. I currently do have to cross-assemble native '816 code, but I'm also working on an assembler in BCPL.
On my Linux desktop I can access filing systems - and under RubyOS I have the same, but not everything is supported yet (no random access files, no pipes).
Graphics - yes to both, but it's old-school under RubyOS - graphics are actually serialised to a "smart" terminal. Think Textronix 4014 although it's actually more like a BBC Micro. A local display of 640x480x8bpp would be great, but memory bandwidth & size:- 300KB of RAM is a limitation. (and hardware to derive a video signal) Taking it down to 1bpp then 38KB of RAM which is manageable plus associated local hardware and software. (Or I have a separate graphics processor - e.g. something like the "VERA" in the X16 project or the "Blit" which was a separate "smart" graphics terminal c1982. My own "smart terminal" is a Linux application using the SDL library and I aim to make it a bit Blit-like eventually. Blit, Tek 4014 and RubyTerm all use async. serial the only difference is the codes and ability of the terminal.
The missing thing ... Speed. It's slow. Would a multi processor '816 system speed it up? Who knows - the limitation right now is that all my OS is written in BCPL and that's compiled to a bytecode that's interpreted on the '816. Linux is C compiled to native. What could we do on a multi processor system to speed things up? (And having worked for and been involved in parallel processing myself for some time, I'm still struggling to work out how it could help unless someone writes a lot of code to make it work) One processor per peripheral might be a start - then it's down to comms. Shared memory, message passing, etc. but making an editor use more than one core? A multi-pass compiler may benefit if you can get enough overlap. Anything doing searches - spell checkers, etc. could benefit a lot if written well.
(and on the spell chequer note, see:
https://prog21.dadgum.com/29.html )
The obvious missing things might be network and a web browser. A modern web browser is an operating system in itself now.
And we're obviously not going to be doing high level data analysis, image processing, etc. at least not in a sensible time span... However VisiCalc was a thing on the Apple II in '79 and that spewed forth a whole new raft of computation methods - and computation needs! Same for AppleWorks and WordStar? A ROFF-like program is workable, but would you use that or prefer MS Office (or Libreoffice) I'm a LaTeX person myself and I do remember running that on old Sun3's with a 16Mhz 68030 and just 4MB of RAM in the late 80's, but it wasn't fast then...
I do enjoy dabbling with my RubyOS - muti-threading, single user - it reminds me of the old PDP11/40 I first ran Unix on in 1980 (although RubyOS is slower) and I'm slowly writing similar utilities and features (it's hard to not make anything look like Unix these days though) but could I move my entire work-flow over to it? Unlikely....
But a great project though!
Cheers,
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/