this post was submitted on 23 Oct 2023
72 points (90.9% liked)
retrocomputing
4122 readers
1 users here now
Discussions on vintage and retrocomputing
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Though I really like the concept of building a new device which incorporates the inherent ease of programmability of the computers of yore, I think the 6502 is just too weird and limited for doing so. For example, in order to cram a halfway decent amount of memory into the thing they had to resort to bank switching. At the least they should've gone with a 65816 (apparently they tried but they initially had some problems with the '816 address bus multiplexing).
Also, how would that 'weirdness' impact using the device in a teaching context?
People would learn bad habits.
For example, due to parameter passing often being done via the zero page, recursion is unnecessarily hard on the 6502, whereas one could argue that recursion is one of the major skills to master for any programmer.
@irdc @feoh All programmers need to learn recursion and fully understand it so when they encounter it in the wild they can properly analyze what it is doing and replace it with non-recursive code.
A non-recursive recursive descent parser isn’t any easier to reason about.
One could, but I would argue that this idea pre-supposed a very ascetic class of programmer, and that depending on one's goals in learning how to program, recursion can be a useful concept but saying it should be the one litmus test for any learning platforms seems highly questionable to me.
They learn how to program in a more efficient way that makes better use of limited memory and CPU cycles. Which frankly is something modern programmers and game designers could very much benefit from considering how bloated and unoptimized much of modern software is, probably because they didn't need to think about whether computers can actually run it.
Bro you can't say that "the 6502 is too weird" without providing more context. Too weird for today's standards maybe?
Because the 6502 was everywhere back in the day.
It's like saying that sony walkmans are too weird.
The 6502 was weird back in the day as well, just weird in an ubiquitous way. It’s registers are too small, it’s stack is too small, it’s address space is too small. Argument passing often had to be done using the zero page, and since none of its registers can hold a respectable portion of its address space it requires hacks to implement such obscurities as C-style pointers. No current ABI can trace its origin to the 6502 (not even ARM).
Sure, back in the day the alternatives at the price point were worse, but that doesn’t make the 6502 good.
If you want a good CPU design with a 16-bit address space, take a look at the PDP-11.
Which was used in home computers, just not in the west
I agree with you, though. I'm kind of the prime market for this from an educational standpoint. My oldest kid has just learned to read and write (kind of). She's fascinated by computers. She's only played retrogames (happily) thus far, so she wouldn't be put off by the 8-bit era's graphics or sound.
But even so...what would I be hoping to teach her with this? How to work around the quirks of the 6502 that are not applicable to literally anything else? That life is full of unnecessary obstacles and frustration? That she could have learned more interesting programming in an easier way if I'd got her a computer with a flat memory model? I'm kind of meh on it.
Exactly. Something in the spirit of an Amiga 500 (I never had one, so this is not nostalgia speaking) is much more suitable to beginning programmers. Something with a flat address space, an easily memorisable instruction set and rich collection of hardware (blitter, DMA controller, sound generator) to play with. And something that has modern interfaces (HDMI & USB) so the not-so-well-equipped hacker-in-training can also jump in right away.
The Commander X16 isn’t it.
I never said that the 6502 was good. I was questioning you calling it weird as if it was uncommon, when it wasn't, because it was one of the most popular chips in its era.
Many say that the x86 architecture is awful. But to say that it's weird would be quite the stretch.
It's weird in the sense that software development has moved in other directions. A tagged-architecture stack machine like the Burroughs Large System is weird as well, even though it's been highly successful and very influential on later designs (eg. Forth, SmallTalk).
If we'd still be using bank switching and overlays I'd say learning to code assembly on a 6502 is a great introduction to modern computers, but we're not so it's not.
Yeah I see the Commander X16 as a bit of a folly, a hobby project by some serious retro computer nerds. I don't think it has any viability as a platform, even as a gaming platform, as it's a strange implementation of a weird architecture.
That said, yeah there really isn't something that is as imminently accessible as a C64 was, where the machine itself plugs into a monitor and keyboard, and you program the device using itself.
Arduino requires a PC or other device to compile and run code, most of them are very low power devices that must have compiled binaries, so they're programmed in C++.
Maximite is another guy's attempt to have a standalone BASIC machine. Uses fairly modern hardware but it's still some guy's project, and runs BASIC rather than anything remotely modern.
Raspberry Pi and other Linux SBCs are surprisingly powerful, but also very complicated to run. You can do a college degree in Linux sysadmin.
Meanwhile, I've played with the MicroPython language a bit, and as cool as it is, it can be a pain in the ass to manage because it runs on a microcontroller meant to be programmed from a PC, so there's a pile (not a stack, not a heap, a pile) of software you have to manage. So it's cool, but sorta supported on a bunch of platforms none of which are amazing to use and it's got almost every problem that Arduino does.
I had been thinking about doing something akin to the X16 but more modern, but realised that the main challenge with launching a product like this lies not in doing the design, but in coordinating all the people that are involved in producing the hardware, software and documentation (and hype, don't forget hype). And you've gotta hand it to David Murray (the 8-bit guy): he's knows how to do this, and has demonstrated this before with Planet X3.
What would you like to see instead? Z80? Something else?
There’s plenty of choices. If you want that retro vibe go for a 68k, if you want something neat but obscure (and are willing to use an FPGA) choose the pdp-11, if you want to go with the flow then use risc-v.
But please pick something that’s not actively fighting modern (that is, not 1970’s) programming techniques.