Joined: 04 Mar 2006 Age: 27 Posts: 518 Location: Export, PA - USA
Posted: Wed Apr 18, 2012 12:58 am Post subject: Ultimate Basic Extension for the C64
I’ve been dreaming about the ultimate basic extension for the C64 for a few years. I've mentioned before about doing a project similar to this.
There was many basic extensions for the C64 made in the 80’s – but there are a few problems with them
• No support for newer hardware like the 1581, mice, etc
• No support for newer routines and things like fast loaders, tracker music, IFLI graphics, etc
• Take up too much memory – leaving little free Basic space for your code
• Some do not feature run time modules - so you need the basic extension cart or disk to run your program
So here is my idea… Create a new basic extension for the C64 that would be the ultimate Basic Extension. The thing about basic extensions is that they may have lot of new commands – but each command takes up precious memory space. So here is my idea – would it be possible to create a library of new commands and then come up with a way for the programmer to choose which commands that he wants to use for his program? For example, if I am designing a game that will be on the text screen – I don’t need 30+ graphic mode commands such as circle, line, fill, etc to be in memory – since I’m not using the graphic mode in the first place. By just having the commands that I need – I could save RAM space – and that would give me more space to use for my BASIC program.
This library of commands could either be stored on a disk – or could all be loaded into an REU unit and each command could be brought into the C64 memory as needed. But a runtime module with only the commands needed for the program could be created so the program could be run a stock C64 without the need for special hardware. Also in this way – more commands could be created as time goes on.
Also with a REU – it would be possible to create a programming studio of sorts – that would be preloaded into the REU. Maybe kind of like the way SEUCK is laid out. The user could press a key combo and then the studio menu would pop up – kind of like a freezer on a cartridge. The basic code in the C64 could be stored in the REU ram and then another program could be swapped in. There could be a sprite editor, character editor, paint program, etc. - all at the programmer’s disposal – this would allow for easy editing of the elements of the program instead of having to save the BASIC program to disk – and then load each program - do the editing – save it – and then reload the BASIC program.
So is this a crazy idea or is it actually a possible project that could be done? Any takers out there? _________________
Joined: 12 Jan 2012 Posts: 561 Location: United Kingdom
Posted: Wed Apr 18, 2012 7:35 am Post subject:
As much as I love my 64, there is no excuse for the basic being so poor. I have messed with a few of these extensions over the years - simons basic being one of the better ones (I can't believe how young he was when he wrote that), but all of them still have quite serious limitations. I'd love to see a modern take on this, especially in Cart/easy flash format. _________________
Joined: 29 Jun 2009 Age: 40 Posts: 2615 Location: Baltimore, MD Favorite Games: Ultima ][, Wasteland
Posted: Wed Apr 18, 2012 1:20 pm Post subject:
@gumpy
The problem being is that there are so many out right now, they just get bloated. I know the next two items I am about to say are kernels and not extensions you load afterwards but I just wanted to show what is already out there. You got S-JiffyDOS that can turn JiffyDOS function keys on and off as well as the wedge. You have PiffyDOS that can bank your memory into an REU and retrieve it for later. Good for programmers since they can save what they have quickly and try out a new routine. If they don't like it then they can bring back the memory snapshot. Very helpful. Both of these are overlays to JiffyDOS so you'll have to make sure you have a license if you plan to use these. I just brought them up as examples.
Also, you have the new extension for the RR-Nets guys. I remember someone making a program that you load that has some extra extensions for networking. Making it easy to call instead of having to write a lot of code.
All good ideas, but the main purpose I use for my 64 is to play games and listen to stereo SIDs.
However, with all that being said. By using a REU, you could possibly load a huge assortment of extensions in there. Like the RR-Net one and others combined. Have it as an EasyFlash.crt that would put itself into the REU and drop to a ready prompt awaiting you import.
Just thing with my fingers. LOL! _________________
I first programmed in Sinclair basic on Spectrum and later worked in basic 2.0 on C-64. It was much less comfortable but also allowed me to understand how the HW works better, because of all those POKEs I had to use.
The question is, in 2012, on such a slow machine, does it make sence to build such an avanced Basic interpreter? Who really needs that in 2012? Definitely not demo / game coders. Who else writes things for C-64 today?
Take a look at Batari Basic for Atari 2600. Whereas it allows nerds to create games, a product is never a top class one, because precise game design and timing (assembly langugae) is required to squeeze out the maximum performance.
Basic is a launch pad to more advanced programming languages. Some early commercial C64 games were written in Basic but eventually the vast were pure ML because no basic on the C64 can take full advantage of speed or other resources. Many of those commercial Basic programs had guess what - ML subroutines.
Basic is a pig - once you learn it you move on to ML. Time to take the training wheels off. If you don't want to ride a bike without training wheels you probably shouldn't be on a bike.
Groepez is right.
No one who has the talent to write 'Ultimate Basic extensions' is going to waste their time on such a pointless endeavor unless there are significant financial incentives.
Conversely those who want 'Ultimate Basic extensions' lack the programming abilities to make it happen. _________________
Hmmm... I am kinda' on the fence in regards. groepaz and Isepic are correct. If you really want to program properly for the C64 ML is the way to go.
However, one thing that the 64 had going for that the MACs, Windows, and Linux does not have is that you are already in BASIC once you turn on your computer (without cartridges, etc...) Unlike the other operating systems where you had to have separate program to write in or run with. It is ready to go. I looked and saw a program that did a simple task in BASIC. Very simple and to the point. Could of it have been done in ML? Sure it could of and ML could do a lot more then the restrictions and slow speeds brought on by BASIC. The reason I brought this program up is that it has no graphics or game play. Just simple instructions to do something. It would be nice if there were some more that you could do to improve things. Such as BASIC 8 were it gave easy ways to do plotting versus lengthy coding.
Imagine loading a SID into memory and saying PLAYSID"<START ADDRESS>:<STOP ADDRESS>:<PLAYER ADDRESS>" from BASIC and you start hearing a SID playing without the need to load an other program in that someone wrote. The commands do not have to be just for programming games or demos, but shortcuts for getting around and doing tasks that used to take hours of programming just a few seconds of typing. Or someone wanting to program quick instructional program that quick prints a graph or does a task.
Why am I on the fence about it? Back in the day, I believe it had its use. However, who is the audience today? A select few collectors of the 64 and some others who showed interest? A pretty big undertaking for not a big return. Just the education you get for programming it and knowing you did it. Would be nice if someone done this for a college course or something.
Reminds me of these software companies putting out graphical games engineered to the hilt with different music per area, graphics, etc... Then came a couple of kids that all they did is write BASIC programs and put them in the back of a magazine for people to type it in their selves and banked the cash. _________________
A decent port of BBC BASIC to the 64 would be superb, with its structured programming constructs, inline assembler and fast execution speed. Pity that this effort
Basic is a pig - once you learn it you move on to ML. Time to take the training wheels off. If you don't want to ride a bike without training wheels you probably shouldn't be on a bike.
More like going from a fully assembled and tested bike to building your own bike from scratch. Sure, you have more flexibility and can customize it to do exactly what you want, once you learn how to weld the frame together, work out the gear ratios, mold your own tubes and tires, etc.
Joined: 09 Apr 2008 Posts: 341 Location: Hartlepool, UK
Posted: Wed Apr 18, 2012 9:42 pm Post subject:
So what if there's a limited audience and little or no financial incentive, if you enjoy working on it and you learn from the experience then I say do it!
If a few other people show an interest in your project then that's a bonus. Don't listen to the nay sayers! (Though in all honesty I did and I abandoned my basic compiler project )
As much as I love my 64, there is no excuse for the basic being so poor.
I'll disagree with you here... I think Commodore had the best BASIC around. I felt it was way better than what was offered on the Apple II machines. Now granted, much of my love for Commodore BASIC has less to do with the commands and the language and more to do with those things that are inherently "Commodore."
For example, I love the screen editor. It was so easy to list a program, and cursor up to a line and change one piece of code. I also loved how easy it was to change colors and use little graphics characters. I loved how you had the "quotes" mode that would allow you to store things like cursor movements and color changes inside a variable or print statement.
In my opinion, the only thing the C64 lacked was graphics and sound commands, and maybe some basic disk commands. I never cared for the way you were required to "LOAD" the directory, erasing whatever program you had in RAM. I never cared for BASIC 7 on the C128 because it just seemed overly bloated and slow. However, I loved the BASIC 3.5 on the Plus/4.
Of course.. I'm trying to keep things in context for the time-frame that it was being sold. Obviously somebody today could create a much better high-level language for the C64. But for its time, I think its BASIC was great.
Joined: 12 Jan 2012 Posts: 561 Location: United Kingdom
Posted: Thu Apr 19, 2012 6:39 am Post subject:
For me almost every contemporary machine had a better basic language. The lack of direct graphic and sound commands was a real pain especially given the capabilities of the hardware in the Vic20 and the 64. It was slow too compared to a lot of its peers. _________________
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
Tip: Get C64 Forever for super-comfy C64 emulation with pre-installed games, demos and other goodies!