sburrow wrote:
So, what do YOU use your 6502 for? Give me some ideas!
Chad
Retro fun/nostalgia.
I started out as a sort of anniversary of my 40th year of first using the 6502 (Hence the name Ruby). I had no real goal other than to make a 6502 system and see where it went, but I sort of had a notion of "How would it turn out knowing what I know now vs. what I knew then" if that makes sense. Wondering if I could improve on what we did back then, and what was done back then.
The reality was that the answer was actually nope. Can't overly improve on it and the BBC Micro was the pinnacle of my own 6502 life. It had a usable operating system, supported paged ROMs, filing systems, network, colour graphics and the fastest BASIC around that also supported modern things like local variables and recursion.
My system started as a sort of nod to the Apple II I first used in 6502 land - with a sort of WozMon like "monitor". Graphics was PAL composite video - 320x240 monochrome resolution which I quickly gave-up on and while I used genuine 65C02, I also used modern "glue" logic to make the build easier - an ATmega initially for video, subsequently for serial, filing system and math accelerator, and a GAL.
I quickly kicked myself many times for writing a somewhat crude "monitor" which would run Applesoft and EhBASIC when I'd used the BBC Micro a few years later - no hex monitor there, but a comprehensive operating system that took the chores of graphics, keyboard, network and filing systems away from the language/application, so my system migrated to that and I ran BBC Basic and BCPL on it.
I'd used BCPL back in the 80's on BBC Micros, so the next step was to look at a better BCPL - again with the idea of what can I do today that I couldn't back then - and stupidly went down the "if an 8-bit Beeb at 2Mhz can run 16-bit BCPL well, then surely a the 16-bit 65816 can run 32-bit BCPL better"... So I built a 65816 system.
The reality isn't quite so but it runs it well enough and I implemented a multi-tasking OS written in 65816 assembler and BCPL which can compile code and run an editor and various utilities.
And that's where it's at today - graphics are via a serial line to a "smart" terminal running on my desktop but it's not the fastest thing in the world, however it did get me back in BCPL, an almost forgotten language which I do think is very well suited to old (and new!) 8-bit systems looking for something else. Of-course C has made great leaps and bounds too, so it's too easy (and lazy) for people to just use C now.
I've ported my BCPL system to a RISC-V platform and it runs on that more or less identically to the '816 system, although much much faster - 2-8x faster clock for clock Hz... As a challenge to this, and to learn RISC-V assembler, I started by writing a RISC-V emulator in BCPL directly on my '816 system. I was able to use it to initially run some simple test C programs and latterly to write the bytecode interpreter that BCPL needs to run and with it I can run my BCPL OS on my emulated RISC-V system running on my '816 BCPL system... It's not fast, but a good proof of concept. I get the equivalent of a 2Khz clocked RISC--V 32IM system which isn't bad for something written in BCPL compiled to a bytecode interpreted by '816 assembler running at 16Mhz...
Fun times!
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/