SuperBASIC 64, overview

Feel free to talk about any other retro stuff here including Commodore, Sinclair, Atari, Amstrad, Apple... the list goes on!
Post Reply
rje
Posts: 1263
Joined: Mon Apr 27, 2020 10:00 pm
Location: Dallas Area

SuperBASIC 64, overview

Post by rje »


This is a mention of a BASIC 2.0 extension by Martin Kees back in December 1983 or so.

It added 41 commands for sound, sprites, hi-res graphics, and memory management in a 3K wedge... and it looks like an "error wedge", meaning it doesn't slow down BASIC execution. 

It also tweaked some existing commands -- for example, it allowed a variable in GOTO and GOSUB statements, so you could say


100 L = 100
110 ? "HELLO WORLD"
120 GOTO L


Consider the power and chaos of that!

It also allows RESTORE to target from a specific line of data, which is interesting from a Turing point of view perhaps.

And ASC returns 0 for null strings(!).  Yes, I've been bitten by that when reading SEQ files.

The ASM file, the 64 PRG file, and documentation are attached for your amusement.


SUPERBASIC.PRG
SuperBASIC64.txt
SUPERBASIC.asm
TomXP411
Posts: 1762
Joined: Tue May 19, 2020 8:49 pm

SuperBASIC 64, overview

Post by TomXP411 »


3K wedge? That's pretty impressive. Most of the BASIC extenders I have used end up eating the 8K cartridge space and reducing the RAM available to programs by that amount. 

Does this load into the 4K free memory at C000, or does it sit at the top of BASIC RAM?  (Never mind. That's in the manual. It uses the RAM under BASIC ROM and occupies some of the $C000 block.)

RESTORE looks especially useful for writing text adventure games. By making each room a line number, you can RESTORE straight to a specific room by simply selecting the desired line. 

 

rje
Posts: 1263
Joined: Mon Apr 27, 2020 10:00 pm
Location: Dallas Area

SuperBASIC 64, overview

Post by rje »


I think most of the commands are essentially shortcuts.  Also, since every command is 4 characters long, there's probably some optimization of the scanning logic.

I used the sound and sprite commands extensively in the mid 80s and loved it.  They were USEFUL.


Quote




RESTORE looks especially useful for writing text adventure games. By making each room a line number, you can RESTORE straight to a specific room by simply selecting the desired line. 



Huh, that's a very clever use of a selective RESTORE!    Using DATA lines as a slow array of structured data.

 

TomXP411
Posts: 1762
Joined: Tue May 19, 2020 8:49 pm

SuperBASIC 64, overview

Post by TomXP411 »



4 hours ago, rje said:




Huh, that's a very clever use of a selective RESTORE!    Using DATA lines as a slow array of structured data.



Yeah, that's actually a standard feature of later Microsoft BASIC implementations. I'm pretty sure it's in the TRS-80 Model 100, and it's definitely in Advanced BASIC (aka BASICA or GWBASIC on the PC.)

That was the first thing I tried to do when I was writing a simple template for someone... and it totally didn't work. So i ended up putting that project on the shelf for now. I'll come back to it when we have BASIC tools to manipulate banked memory... something to load and save strings, floats, and integers to banked RAM are key to being able to exploit all that memory for anything other than assembly programs.

 

EMwhite
Posts: 220
Joined: Mon Sep 07, 2020 1:02 pm

SuperBASIC 64, overview

Post by EMwhite »


Wasn't there a BASIC expander (cart) for the c64 that added mundane but useful utilities such as renumber lines, the dos wedge, maybe a 'find' (maybe I made that last one up).

I read the readme; was this scanned?  I saw reference to MIX and iirc that was MLX (LOL).

If he is copying ROM to RAM and modifying, is the aforementioned 3K just the additional RAM needed after possibly optimizing code in other parts?  I remember countless routines that leveraged the tape routes/buffer area but obviously, they are just 'routines' not full blown utilities or programming aids.

I tried double clicking on this for use in X64 of VICE, did that work for others?

 

Post Reply