Megalextoria - RDF feed
https://www.megalextoria.com/forum2/
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.Extending C64 BASIC
https://www.megalextoria.com/forum2/index.php?t=rview&goto=247354&th=78929#msg_247354
Please see my write-up here:
This is simply the starting-point. I wanted to get it out there to make it easier for other experimenters could start working on their own extensions.]]>lawless.jim2014-03-17T01:24:09-00:00Re: Extending C64 BASIC
https://www.megalextoria.com/forum2/index.php?t=rview&goto=247360&th=78929#msg_247360
lawle...@gmail.com wrote:
> After recent discussions about extending BASIC, I tinkered a bit and came up with a simple ML kernel that will allow one to add single-letter command extensions to C64 BASIC.
>
>
>
> Please see my write-up here:
>
>
>
> http://lawlessguy.wordpress.com/2014/03/16/extending-commodo re-64-basic/
>
>
>
> This is simply the starting-point. I wanted to get it out there to make it easier for other experimenters could start working on their own extensions.
Interesting. My old TI-99 had some nice linking abilities built in. The TI-99/4 had CALL statements which, in themselves, were extensions to the language... and in Extended Basic, you could write BASIC subprograms to be called by the language by name (with local variables). In GPL (Graphics Programming Language, which BASIC was written in) you could add subprograms... this is where all the usual BASIC CALLs are stored, such as CALL CLEAR, CALL SOUND, etc.
In assembly, which required either the Editor Assembler module or the TI Mini Memory, or Extended Basic modules (the former to write and execute, the last to merely execute or poke (CALL LOAD) programs into memory), there were linkage facilities.
CALL INIT - initialize memory for assembly use, loaded some pre-defined routines into memory, setup pointers, etc.
CALL LOAD - Usually just a POKE routine (ex: CALL LOAD(-31871,256,20) would poke 256 & 20 starting at CPU location -31871), but if you passed it a device.filename, it would load assembly code into memory.
CALL PEEK - the standard PEEK utility
CALL LINK - Given the entry point of an assembly routine (a name, up to 6 characters in length), control is passed to that routine. Up to 16 parameters, string or numeric, could be passed to the program (I believe that the cartridge used might vary the number of parameters...)
The Mini Memory added a few CALLs, including...
CALL POKEV, PEEKV (poke and peek directly to the video memory inside the TMS9918(A)
(Sources besides my old & feeble memory: http://www.mainbyte.com/ti99/software/s_carts/mini.html )]]>winston19842005@yahoo2014-03-17T06:11:58-00:00Re: Extending C64 BASIC
https://www.megalextoria.com/forum2/index.php?t=rview&goto=247368&th=78929#msg_247368
lawless.jim@gmail.com> wrote in message
news:2fa1d2e8-0d17-4e93-89db-c7b24cf4044e@googlegroups.com...
> After recent discussions about extending BASIC, I tinkered a bit and came
> up with a simple ML kernel that will allow one to add single-letter
> command extensions to C64 BASIC.
>
> Please see my write-up here:
>
> http://lawlessguy.wordpress.com/2014/03/16/extending-commodo re-64-basic/
>
> This is simply the starting-point. I wanted to get it out there to make
> it easier for other experimenters could start working on their own
> extensions.