Jump to content
rje

CommanderX16 and "What is my dream computer?"

Recommended Posts

4 hours ago, rje said:

Regarding sound.  I know many people want and know how to use the YM synth -- 8BG included -- but even without it, the PSG + PCM fits the "sound of some kind" requirement.

 

Meanwhile, I understand Paul's points:

 

I would like Paul to start a new thread with his Dream Computer.  For the moment, though, we have enough information to make some starting assumptions.

His balance favors the programmer, with a flat memory, memory-mapped I/O model. 

1. The W65C816S fits the Apple IIgs world, still solidly in 1986.  $1 more than the 65C02.

2. You get speed (efficiency) and memory addressing space.   Same memory costs.

3. VERA can sit right on the memory bus.  Same VERA costs.

I suppose VERA and the CPU would have to split the clock for memory access.  Assuming VERA can run fast enough, then that's probably not a problem.  (I suppose things would run at about 7Mhz?)

4. An upgraded "immediate mode" programming environment.  The Structured BASIC that's being built for the X16 would probably be the solution.   Development time with QA.

5. Scrapping the current prototypes and starting over would be daunting.

 

I admit that the 16 bit CPU has all sorts of elbow room.  I can see the appeal.  It would solve some of MY programming problems.

What you're describing are some of the things available in the C256, though in other parts it is very different (lots of SMD parts for instance). I find the 65C816 actually more daunting though having seen some of that code. Maybe not by a lot but I like that my first real adventure in to assembly is on a simple 8-bit platform. Yes having flat memory (and allowing for a much phat'er pipe to video) is nice but there's the need to contend with modes and certainly from the hardware side, the dual-nature of the pins is a lot more complicated to explain.

I can show my kiddo the X16 and, for the most part, things aren't much more complicated than Ben Eater's breadboard computer and I don't think the 816 fits that.

The banked memory is perhaps a small complication but I really like it. It actually made it really easy to implement my tracker stuff since i just use the banks (which is wildly wasteful, I'll admit). In my case, the pattern #'s are the bank #'s. It couldn't be easier (though loading and storing those patterns to/from song files is something I still need to do and that may indeed be less trivial). So I think some things could be easier with banks. Game assets could be nicely organized into pages for instance and in this way I find it easier to work with than having to track flat locations in memory.

So to me I think the X16 is still very much an approachable platform and I'm actually rather glad it's 8-bit by design. It does offer up a lot of learning opportunities that might get masked behind 16-bit addressing.

That's not taking away anything from either the X16 or C256. C256 is one crazy powerhouse (and is available today). Though I'm glad I'm not writing a tracker for the C256 - it has so many sound chips I'm not sure how to even begin to organize all that into a nice tracker UI 🙂

Share this post


Link to post
Share on other sites
5 hours ago, rje said:

His balance favors the programmer, with a flat memory, memory-mapped I/O model. 

1. The W65C816S fits the Apple IIgs world, still solidly in 1986.  $1 more than the 65C02.

2. You get speed (efficiency) and memory addressing space.   Same memory costs.

3. VERA can sit right on the memory bus.  Same VERA costs.

I suppose VERA and the CPU would have to split the clock for memory access.  Assuming VERA can run fast enough, then that's probably not a problem.  (I suppose things would run at about 7Mhz?)

4. An upgraded "immediate mode" programming environment.  The Structured BASIC that's being built for the X16 would probably be the solution.   Development time with QA.

5. Scrapping the current prototypes and starting over would be daunting.

I admit that the 16 bit CPU has all sorts of elbow room.  I can see the appeal.  It would solve some of MY programming problems.

Well. I'd go for one of two models. Either what you have here, or a 6502 with a much faster 65C02, like Mega65 speed, which is 48Mhz I think. But the 65816 on a bus is simpler. But it's not going to happen.

Rewriting the BASIC is in some ways easier than patching the current one. There was an absolutely horrible bug in there, connected with a bodge to make the DATA statement work (by Microsoft, not Michael Steil) that stopped VPOKE or VPEEK working. The more changes are made the more risks there are of this sort of thing. Doing things that should be done - long variable names, long procedure names, locals, parameters, structures, is almost impossible.

The structured BASIC is, as I understand, a transpiler. I wrote one professionally about 35 years ago that did much the same thing, quite well, it had a miniature FORTH in it and could generate quite complex code. But it's asking quite a lot of an 8Mhz 65C02 to do this (offline it's relatively trivial) and you lose the immediacy of programming.

I did my own a year or two back https://projecteris.blogspot.com which is a bit slow (it had to all work on an ESP32) but is probably in practice maybe 40% quicker than the X16. Though it is not a real CPU, probably closest to the IMP16/CP1600 style.

Share this post


Link to post
Share on other sites
5 hours ago, rje said:

I admit that the 16 bit CPU has all sorts of elbow room.  I can see the appeal.  It would solve some of MY programming problems.

Although the 16-bit nature of the 65816 does make some things much more convenient, especially for programming using a high level language (hello decent stack size!), I think the 24-bit address space is almost if not more useful.  The CX16 looks like it will be a great platform for retro games, learning programming, and doing low-level hardware stuff. I'm having fun messing around with it in the emulator.

However, a 24 bit address space and floating point capability would actually let me do (in C, perhaps) much of what I'm messing around with in C# on my home computer.  I could have accomplished it with a little pain with a mid-80's PC or Mac, or maybe a IIgs, though with some workarounds.  I'm starting to understand why the concept of a so-called 3M computer was such the rage in the early 80's.

OTOH, C and the original UNIX were developed on a PDP-11, a 16-bit machine with 64 KB.

Share this post


Link to post
Share on other sites
1 hour ago, m00dawg said:

Maybe not by a lot but I like that my first real adventure in to assembly is on a simple 8-bit platform. Yes having flat memory (and allowing for a much phat'er pipe to video) is nice but there's the need to contend with modes and certainly from the hardware side, the dual-nature of the pins is a lot more complicated to explain.

I can show my kiddo the X16 and, for the most part, things aren't much more complicated than Ben Eater's breadboard computer and I don't think the 816 fits that.

The banked memory is perhaps a small complication but I really like it. It actually made it really easy to implement my tracker stuff since i just use the banks (which is wildly wasteful, I'll admit). In my case, the pattern #'s are the bank #'s. It couldn't be easier (though loading and storing those patterns to/from song files is something I still need to do and that may indeed be less trivial).

The C256 is very heavily engineered. It's a nice design but it's over complicated IMO. This sort of design you want flexibility and comprehensibility.

The trick with the 65816 is to dump most of the complexity. No compatibility mode, no weird programming modes, pretty much permanently in 16 bit mode unless you are doing 8 bit I/O or character level manipulation. Dump the weird things like MVP and MVN that are messy. Pretty much treat it like a 16 bit 6502, with 16 bit registers always with a 24 bit memory space - you add on the 24 bit address modes and .... that's it. It's easier because you don't endlessly write 6 or 7 instructions to do 1 or 2 16 bit operations.  I think they tried to make it all things to all men, hence the stack relative modes.

Banking works if it is fast enough (and you have a system for allocating them, loading into them and so on, designating some for code, some for data, some for graphics).

Though to be honest even an 8Mhz 65816 isn't that quick.

The question is not what should it be, but what do you want to do with it ? Is it for your children to learn for example - a great idea, but why then stick with the truly horrible Microsoft BASIC ?

  • Like 1

Share this post


Link to post
Share on other sites

I'm looking at it as sort of an entryway to understanding computing at more fundamental levels (but with the ability to do something useful with it). In college I had to learn to program assembly using a fake CPU that didn't exist (LC2) and I hated it because I had no reason to write any code to do something more than college assignments. 6502 seems like a great introduction to that level, and it's easy-ish to go down one step lower and really see how things actually work at the electrical level. That's really obfuscated on modern machines.

The kiddo is perhaps too young for assembly, and not sure he'd be all that interested in it when he gets older, but as a tool for folks interested in computing in general, having some idea of the fundamentals, I think, it's incredibly important.

That's for the learning aspect of it, but there's also a lot of other things I like about the X16. And C256 too though I don't think I'm quite ready for that platform yet - and I agree it is quite decadent like biting into super rich chocolate you weren't prepared for haha. Whole different set of problems to solve on that system (like how to manage all those FM channels for composing music in a tracker or some other in-system music program). In some ways C256 sort of sits a bit in the uncanny valley of having so much stuff that it kinda has 'the problem of choice' like modern PCs too (as in I find having too many choices, with respect to creating music, can sometimes be overwhelming and kill my creativity).

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Sean said:

However, a 24 bit address space and floating point capability would actually let me do (in C, perhaps) much of what I'm messing around with in C# on my home computer.  I could have accomplished it with a little pain with a mid-80's PC or Mac, or maybe a IIgs, though with some workarounds.  I'm starting to understand why the concept of a so-called 3M computer was such the rage in the early 80's.

As an experiment, I'm working on a 16-bit instruction set with a pure orthogonal instruction set (ie: all instructions can use any addressing mode or register.) My long term goal would be to create an FPGA core and a BASIC and assembly programming environment for it. I eventually want to build this into a fantasy computer and turn that into an FPGA core.

I'm also pondering the idea of turning this into sort of a meta assembly langauge, where the orthogonal instructions get compiled into native instructions on 6502 and Z80 systems. It should be fairly straightforward, since nearly everything I'm thinking about can be mapped down to a small number of machine code steps. 


 

 

Share this post


Link to post
Share on other sites
37 minutes ago, TomXP411 said:

As an experiment, I'm working on a 16-bit instruction set with a pure orthogonal instruction set (ie: all instructions can use any addressing mode or register.) My long term goal would be to create an FPGA core and a BASIC and assembly programming environment for it. I eventually want to build this into a fantasy computer and turn that into an FPGA core.

 

Did not the PDP-11 do this 50 years ago?

Share this post


Link to post
Share on other sites
23 minutes ago, hth313 said:

Did not the PDP-11 do this 50 years ago?

Probably. But I don't want a PDP-11... I want MY dream computer. 😉 (I mean, I have a PiDP-11... and have not done anything with it other than watch the blinkies.)

 

 

Edited by TomXP411
  • Haha 1

Share this post


Link to post
Share on other sites

I'll have to describe my personal dream computer in the general retro-computing forum but I hope that it isn't too much of a hijack to post a few comments to second guess Mr. Murray's chip selection a bit.

Personally, the way Mr. Murray and his team, in terms of remaining true to the vision and ideals they have set themselves up for the Commander X16, have done as perfect a job as could be expected without commissioning masks for VERA (and separating it from the Geometry Synthesis/PCM sound engine) with Samsung, TSMC, or Global Foundries, or gone to some FPGA to ASIC pathway specialist.  Still, I would have chosen as my CPU either the Hudson Hu6280 or the Nintendo SA-1, assuming I could find some means of assuring a steady supply that did not involve cannibalizing them from classic consoles and game cartridges.  I know, they're surface-mount chips, and IBM's patent on it didn't expire until 1987, not to mention the hassle integrating them on a mostly DIP socket motherboard, but you get demultiplexed address and data pins and full 16-bit data busses, with no need for external bank switching.  In fact, you get three, at least one of them full-duplex if my interpretations of the pinouts are accurate, not to mention the Hu6280's six wavetable sound channels and mass-move instructions or the SA-1's two extra registers and hardware multiply and divide instructions in 16-bit mode.  I would have also possibly added in a Super Nintendo cartridge add-in DSP or two (Their cores date to 1982), with the cover story being that this computer is released in 1987-88, with Hi-Toro Labs having been bought out by someone else, as competition for the Amiga, Sharp X68000, Acorn Archimedes, MSX 3/Turbo R machines, and VGA and Ad-Lib/Sound Blaster era PC Clones.

But that's just me.  Personally, in Mr. Murray's shoes, and without his example, my first effort at this sort of thing would have been much kludgier.

  • Like 2

Share this post


Link to post
Share on other sites
On 1/21/2021 at 11:26 PM, picosecond said:

2/10: OFF THE SHELF COMPONENTS

Gray market YM2151/3012 do not meet the criteria.  I am quite certain others will disagree with this opinion.

Yeah, but David commented that he wouldn't mind YM2151, so 10/10.

Share this post


Link to post
Share on other sites
16 minutes ago, xanthrou said:

Yeah, but David commented that he wouldn't mind YM2151, so 10/10.

While it's subjective how BIG the steps should be on an ordinal scale, you do have to HAVE steps for situations that are "clearly better" and "clearly worse". And you aren't giving it headroom ... while he said he wouldn't mind a Yamaha FM chip, in the context of the off-the-shelf criteria, a YM2151 in production would have to be superior to a YM2151 from pulls, and then if "wouldn't mind" sounds like less than ideal, if an in production YM2151 is part of a 9/10 score, then a grey market one would be 8/10 at most.

In tail room, you'd have to leave room for the processor, I/O chips, decode circuitry being new-old, grey market or CPLD/FPGA simulated stock, so I can't see enough tail room on the scoring if the score is set any lower than 5/10.

Where that score is between 5/10 and 8/10 ... I dunno, I gave it a 7/10 as a C, but I wouldn't don boxing gloves to defend that spot within that range.

  • Like 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Please review our Terms of Use