Thanks for the feedback, BigEd. There's a vast wealth of experience here and while I consider myself relatively au fait with the 6502, there's always more to learn and I think there's something to learn from everyone who's posted here, or at least given me pause for thought.
One thing you mentioned- PCBs - so ~30 years ago I was playing with simple CAD programs, letraset, laser printers, acetate sheets, photo-resist boards, caustic soda and ferric chloride... And when I left that environment I stuck to strip-board, but about 6 years ago I decided to see what the state of the art was ... And was completely blown away. So now while I still like using strip-board, I'll also make a PCB up and it's back from China in a reasonable time and at a very good price - and I'm sure I'm like a lot of people and would like to buy local, but UK/European prices for PCBs are just way OTT.
So... (my) The Story so-far...
A relative newbie here - looks like I'm just over one year here now, although I lurked for a long while before registering, so it seems much longer...
Last year saw my 40th year as a programmer of things - with the 6502 being the first microprocessor system I used on an Apple II at school in Edinburgh in 1978. Experiences since then have seen me doing a lot of interfacing and building SBC type systems (mostly 6502), robotics, factory-automation, and a multitude of things including the weird world of supercomputing and The Internet... In recent years doing lots of stuff with the Raspberry Pi and Arduino type things - mostly to do with interfacing but I also achieved another personal project which was to write what I considered my "ideal" BASIC interpreter (which I've even sold and continue to sell programs written in it)
Now I just want to play with the old stuff again, so to that end I created my little Ruby (40th anniversary) board with no real aim for what it might do, but I've had a lot of fun with it - it falls into the "microcontroller supported" board - in that it's ROMless and uses the microcontroller (ATmega1284p) as an IO processor that handles serial keyboard, video, filesystem (SD card and on-board RAM and EEPROM) and it's gone from barely working on breadboard to stripboard to a PCB. I don't want to dabble with FPGAs, CPLDs (for now), but since a lot of the stuff I worked on back in the 80/90's used PALs, I've used a GAL on my Ruby board and I'm holding out to through-hole as long as I can...
And going back to my BASIC interpreter, I probably know more now about the BBC Basic 'envelope' command that I did back in the day as I made it emulate the BBC Sound - and curse that BBC, because although I tend to cite the Apple II as my "heritage", my Ruby is, more by accident than design, quite BBC compatible from a "Language ROM" point of view in that it will (should) run most Beeb ROMs that use the standard
Acorn MOS interface. This includes a filing system - when I finish it.
However it does run Applesoft, and my low-level "monitor" is a bit wozmon like, so not completely alien to the old Apple II and the filing system isn't a million miles from Apple ProDOS. On my desk right now is the original Apple II Red Book, as well as a copy of the Advanced User Guide for the BBC Micro....
One idea I did have some time ago was to "re-imagine" old systems with a modern approach - I started a couple of years ago with the PDP-8, although a couple of PiDP8's later and a real PDP-8 later and I doubt I could really do anything that looked and felt like something familiar today (that was sufficiently difference from OS8 to make a difference) - there are limits. I used a PDP11 in the past and have a PiDP11, but could I improve on Unix? I don't think so, so will give that a miss...
...and then there is the 6502 - there was never (to my knowledge) a CP/M type of operating system for it (not in the 80's, anyway - I do know about the DOS65 project though) so I thought I might do something along those lines, however - that old
Acorn MOS (Machine Operation System) keeps on lurking there, gloating and smirking at me to do more with it... And one of these days I might post about it on the stardot forums, but I fear they may burn me at the stake as some sort of witchcraft wielding heretic!!!
The non-UK people may be wondering what all the BBC thing is about by now - it's sad that it never really made it over the waters in a big way, but ah well. Lurking underneath the machine that went durrr Beep and landed you in a very fast and modern (for 1982) BASIC when you turned it on was actually a very clever operating system - not intended to be command-line driven, although there was a CLI interface, (the "star" commands) but to be used as a super BIOS with a set of well-defined entry points and vectors, and if you used it correctly, your code would run transparently in the BBC Micro or over the "
Tube" in another, faster, 6502 plugged into it. And that's just the tip of the MOS iceberg. Graphics, sound, printers, disks, tapes, network all did their thing, all controlled by the MOS which allowed for multiple "Language ROMs" (e.g. Basic, BCPL, Pascal, Word processor, Editors, etc. ) and multiple filing system ROMs (disk, network, etc) and many other utilities.
My plans for my little Ruby board are to tidy up the IO facilities - the next revision will use a Raspberry Pi for the graphics, but I'm going to keep the ATmega on there for the bootstrap and filing system interface as it's quite handy - also without that doing the video I have a couple of spare pins for I2C - or something. Also going to stick an '816 on Mk 2 too. Hopefully nothing will notice, but it then opens up all the 16-bit stuff and more RAM. I'm also going to use the ATmega as a floating point co-pro too. Not working by bus snooping, but simple poking values into the shared memory page with a command and telling the ATmega to do it, then read the results back. Some might be quicker on the 6502 (simple add, subtract) but that's a benchmark for another day...
From front to back it's ATmega1284P, 64K RAM (2 x 32Kx8 piggybacked), WDC65C02, WDC65C22, Blinkenlights, with the vertical chip being a Lattice GAL22V10. The SD card is 8GB, but the filing system can only use 32MB devices, (16-bit block pointers of 512 bytes) however it's using a standard MBR partition table, so 4 'drives' of 32MB each. That's enough for now. The 2 small LEDs at the front are connected to the 2 x 32K bank select lines into the RAM - the yellow wire is the one going to the top bank (not intentionally unplugged here, but I'd moved it and it popped out) The blue one means the 6502 has the shared memory. These were really for early on debugging and I carried them over to the PCB as I had spare outputs on the GAL. the ICSP connector to the ATmega is under the SD-card adapter (they both use SPI)
Cheers,
-Gordon