mrdoornbos 43 Posted December 21, 2020 I renamed the Joplin notebook I have for X16 stuff to "The feature creep was too strong to resist". Quote Share this post Link to post Share on other sites
rje 162 Posted December 21, 2020 (edited) 10 minutes ago, paulscottrobson said: Depends. You could probably chuck all the floating point stuff in its entirety ; it's only there really because MS Basic comes from Dartmouth Basic. No-one's going to do their accounts on an X16. Whether 16 or 32 bit integers, it's questionable. Heresy! Ok, my initial knee-jerk reaction is over, so I can think about that. Integer BASIC, eh? Hmmmmm. And "yes" to structured BASIC, of course. I was aiming for the lowerbound, but yes, removing line numbers already means "different animal entirely", so... I'd love to geek out over a structured syntax. This is probably not the thread for it. On the other hand, it's probably ok. Quote The nice thing about STOS is the bank/task switching design, so you can have multiple programs running at once ; a sprite editor in one block, tile editor in another, music editor in a third, and so on. Wow. I barely have a concept for that on an 8-bit system. Doesn't Acheron do that? Quote Might as well add in REPEAT/WHILE/Block IF/ELSE/ENDIF and named Procedures ; doesn't take up much space, nor do locals. I was thinking about the "C-Lox" implementation I'd been beating my head against on the X16, and thinking that instead of parentheses in its if statement, I'd rather use a colon (as a shorthand for "then" I guess). Even though it resembles Python in a superficial way... if foo < bar: do things, please endif # or whatever serves to end a block politely while foo < bar: do other things, please end # endwhile is awfully bulky Edited December 21, 2020 by rje Quote Share this post Link to post Share on other sites
paulscottrobson 19 Posted December 21, 2020 1 hour ago, TomXP411 said: While I mostly think we've moved on from the need for line numbered BASIC in Computer Science, I don't see a lot of replacements that can fill the shoes of Advanced BASIC as a first language Two things - the immediacy - if you type CIRCLE 100,100,80 you get a Circle. The other thing is the abandonment of the state machine that you get in most of these systems. FSMs are very flexible but complicated to grasp. In a language like BASIC you can have directly acting code rather than a layer. Most of the downsides of BASIC are down to specific BASICs - GOSUB, line numbers, two character identifiers and so on. There's no reason why you can't have all of them ; an emulator on a modern PC, one on a Raspi, one in Javascript and a physical machine. The thing I don't like about Maximite is it's not a real computer - it's a BASIC interpreter running on a MCU. So you can't really program it in Assembler. There is one issue, which is some things are difficult to emulate at speed, the most obvious in X16 is pixel level collisions. Sometimes you have to make some compromises in the design. Quote Share this post Link to post Share on other sites
paulscottrobson 19 Posted December 21, 2020 2 minutes ago, rje said: Heresy! Ok, my initial knee-jerk reaction is over, so I can think about that. Integer BASIC, eh? Hmmmmm. And "yes" to structured BASIC, of course. I was aiming for the lowerbound, but yes, removing line numbers already means "different animal entirely", so... If you're doing multiple platform designs you can keep but not use the line numbers. If you have a proper editor, just hide them, if you are running in a TTY situation they can be quite handy. The thing is you want a language where their sole function is ordering the code. Also makes it much easier to compile it. 1 Quote Share this post Link to post Share on other sites
rje 162 Posted December 21, 2020 (edited) 2 hours ago, TomXP411 said: While I mostly think we've moved on from the need for line numbered BASIC in Computer Science, I don't see a lot of replacements that can fill the shoes of Advanced BASIC as a first language... Add to that the likelihood that a programming language on the X16 "should" fit in 16K. In other words, a subset of Algol 68 that (strongly) resembles a structured BASIC. Paul's suggestion, that line numbers are hidden entities which only maintain program order and aid in debugging, is a good idea. I've already figured, in a very loosey goosey fashion, that any imperative language stripped down to fit into 16K is going to essentially resemble a BASIC subset of Algol 68. What I mean is that one could call it "Retro Python" for marketing hype and maybe a tiny bit of syntactic sugar, but it will be just as far away from Python as it will be from C, Perl, Pascal, Swift, Dart, Go... ah maybe farther, but the error measurements here are large. * * * I've been coding shell-like scripts for decades now, and I still appreciate sigils. Although in the Unix world, the sigils are at the front of the variable, not the back. I suspect that was done to make parsing easier: a dollar sign plus an alpha equals the start of a variable. Edited December 21, 2020 by rje Quote Share this post Link to post Share on other sites
TomXP411 215 Posted December 22, 2020 3 hours ago, paulscottrobson said: Two things - the immediacy - if you type CIRCLE 100,100,80 you get a Circle. The other thing is the abandonment of the state machine that you get in most of these systems. FSMs are very flexible but complicated to grasp. In a language like BASIC you can have directly acting code rather than a layer. Most of the downsides of BASIC are down to specific BASICs - GOSUB, line numbers, two character identifiers and so on. There's no reason why you can't have all of them ; an emulator on a modern PC, one on a Raspi, one in Javascript and a physical machine. The thing I don't like about Maximite is it's not a real computer - it's a BASIC interpreter running on a MCU. So you can't really program it in Assembler. There is one issue, which is some things are difficult to emulate at speed, the most obvious in X16 is pixel level collisions. Sometimes you have to make some compromises in the design. There's no reason you can't add the ability to load and run machine code binaries on the Maximite, although loading it down with assembly and C++ toolchains kind of ruins its simplicity. Quote Share this post Link to post Share on other sites
PadreHomer 4 Posted December 22, 2020 As a novice the X16 appeals to me because it is kept simple so that I feel I can still learn to understand the inner workings. It’s close to a c64 which I had as a child so it checks that nostalgia box, and it pushes the envelope a bit by having a higher clock speed and some other features that make it superior in specs to a c64 which makes it a new thing. Also keeping it at a lower price point makes it accessible. Sent from my iPhone using Tapatalk 3 Quote Share this post Link to post Share on other sites
Cyber 78 Posted December 22, 2020 7 hours ago, paulscottrobson said: The thing I don't like about Maximite is it's not a real computer - it's a BASIC interpreter running on a MCU. So you can't really program it in Assembler. Not entirely it's not a real computer. While its BASIC interpreter is written in 32-bit C, you can't call it an emulation, because the real hardware is actually used. So BASIC here is more like a firmware ROM, and while running it uses real CPU and real memory inside MCU. And while you don't have Assembler, you have PEEK and POKE to interact with memory directly. Pretty good for exploration and education. Quote Share this post Link to post Share on other sites
paulscottrobson 19 Posted December 22, 2020 (edited) 8 hours ago, TomXP411 said: There's no reason you can't add the ability to load and run machine code binaries on the Maximite, although loading it down with assembly and C++ toolchains kind of ruins its simplicity. I was always a big fan of the BBC Basic Assembler. Allowed you to tinker without being a full bore system. I wrote a lot of ARM code that way I'm a big fan of the idea - I've actually got one though I haven't done much with it yet. It fulfils the #1 criteria I think a system designed for learning should have, which is that the built in programming system, whatever it is, should be fast enough to produce 1980s type games without struggling. Someone wrote a very nice Boulderdash type game in BASIC, but you can see the limitations in the code to make it quick enough. Edited December 22, 2020 by paulscottrobson Added stuff Quote Share this post Link to post Share on other sites
paulscottrobson 19 Posted December 22, 2020 4 hours ago, Cyber said: Not entirely it's not a real computer. While its BASIC interpreter is written in 32-bit C, you can't call it an emulation, because the real hardware is actually used. So BASIC here is more like a firmware ROM, and while running it uses real CPU and real memory inside MCU. And while you don't have Assembler, you have PEEK and POKE to interact with memory directly. Pretty good for exploration and education. Well, in that sense, yes it is, but it doesn't have the accessible layer below. And ARM RISC is way too complex for a beginner. 2 Quote Share this post Link to post Share on other sites
hth313 6 Posted December 28, 2020 To be honest, for me the main advantage of the Commander X16 over the Mega 65 is the simplicity. It is a standard 6502 (well 65C02) with a simple memory model. However, I think that I will actually just get a new Commodore 64 over any of these machines as it does everything I want. I would just go and buy an Ultimate-64 if I could get a new keyboard for it, but I can't. Thus, I wait and see if the Mega 65 comes out and if the price is not over the top, then I will probably get one and basically see it as a variant of the Ultimate-64. The limitations of the C64 is actually a benefit as if I want to do something myself, as I have to work inside the constraints. It is probably just as fun and also avoids feature creep, making it more likely that I actually have time to finish something. If I wanted something more, then I think I would just do like I did 1987 when I sold my C128D and replaced it with an Amiga. The Vampire Standalone is not that over the top in price and offers a lot more. I prefer that over the Mega 65 when it comes to the extra abilities. 1 Quote Share this post Link to post Share on other sites
mrdoornbos 43 Posted December 28, 2020 4 minutes ago, hth313 said: To be honest, for me the main advantage of the Commander X16 over the Mega 65 is the simplicity. It is a standard 6502 (well 65C02) with a simple memory model. However, I think that I will actually just get a new Commodore 64 over any of these machines as it does everything I want. I would just go and buy an Ultimate-64 if I could get a new keyboard for it, but I can't. Thus, I wait and see if the Mega 65 comes out and if the price is not over the top, then I will probably get one and basically see it as a variant of the Ultimate-64. The limitations of the C64 is actually a benefit as if I want to do something myself, as I have to work inside the constraints. It is probably just as fun and also avoids feature creep, making it more likely that I actually have time to finish something. If I wanted something more, then I think I would just do like I did 1987 when I sold my C128D and replaced it with an Amiga. The Vampire Standalone is not that over the top in price and offers a lot more. I prefer that over the Mega 65 when it comes to the extra abilities. Yeah, this is interesting to think about. It's a "what is this for". I agree with you here, I've still got years left of C64 discovery left in me and I already own several of them so I'm not sure what I'd do with this. I WANT to think of something, don't get me wrong. I think there's room for a project like this if the community can find a "why". Quote Share this post Link to post Share on other sites
rje 162 Posted December 28, 2020 37 minutes ago, mrdoornbos said: Yeah, this is interesting to think about. It's a "what is this for". I agree with you here, I've still got years left of C64 discovery left in me and I already own several of them so I'm not sure what I'd do with this. I WANT to think of something, don't get me wrong. I think there's room for a project like this if the community can find a "why". I donated my 64 to a friend several years ago, and I haven't picked up The64 or similar, though I do use VICE. So I guess I'm not as attached to it as I used to be. The C64 has several things about it that I never liked, and some things I didn't know I didn't like until I saw the X16. 1. Only 8 sprites, unless I do the multiplexing thing which feels painful, and I never fully got the hang of. 2. The 1980s TV-friendly 40 column display. I didn't know it at the time, but I always wanted at least 64, and preferably 80 columns. 3. Easy RAM banking. Maybe this is easy on the C64, and maybe not -- but it sounds painful. 4. 1MHz. I know I know, speed is addictive and never satisfies. But still. Rather than feeding feature creep, these preferences are more about Ease Of Use. That said, I think some of the VERA bitfields required to use its sprite engine make those lovely sprites Harder To Use, which bothers me. I haven't played with the sound generator in VERA yet, so I don't know how it compares with the SID. I didn't really have complaints about the SID -- especially when Compute! magazine's SuperBASIC came along and packaged many sprite and sound commands into convenience statements in a BASIC wedge. Quote Share this post Link to post Share on other sites
hth313 6 Posted December 29, 2020 (edited) I should add that I appreciate having the computer in a separate box. I never liked the computer in a keyboard design (having owned C64 breadbin and Amiga 500). The thing with less memory and slower computer is that you have to work with what you have. That can give a lot of satisfaction getting it to work within constraints. But, yes, you have good points. The 40 column display is annoying and the VERA may be interesting to have. I see myself as mostly using it for remote debugging. If I ever sit down to do things it would be using Forth and in such case I would surely appreciate having 64 or 80 columns. I wish there was a 6551 serial port included, or least a socket for one, but I suppose it would not handle 8MHz anyway. It would be very useful for remote debugging. I will definitely follow the Commander X16 and the alternatives to see how it goes, no decisions on my side yet. Well, I already have an Amiga that gathers dust most of the time, so I do not think I will get the Vampire in the near future at least. Edited December 29, 2020 by hth313 Grammar 2 Quote Share this post Link to post Share on other sites