Last update:
4 II 2024

== ELSA ==
* Information
* Change log
* Downloads
== 65C816 XL OS ==
* Information
* Change log
* Compatibility list
* Download
== Fixes ==
* Downloads
== IDE Plus ==
* Information
* Download
== Other stuff ==
* Downloads
== CPU boards ==
* Information
* Downloads
== SysInfo ==
* Information
* Download
== Let's Emu! ==
* Information
* Downloads
== U-BASIC ==
* Information
* Downloads
== CP/Emu ==
* Information
* Downloads
== MultiBASIC ==
* Information
* Change log
* Download


MultiBASIC change log


  • minor size optimizations.
  • if not GR.0, switch to GR.0 before exiting to DOS.
  • close all files and release all the malloced memory before calling reset in syscall 0 and syscall 1.
  • more internal adjustments for linear addressing past the first 64k.
  • fix of a possible stack problem in MALLOC().
  • requested amounts of memory passed to MALLOC() are now rounded up to the closest page boundary.


  • relocatable version, max. MEMLO is $3C00.


  • if the CPU is not 65C816 or the OS is not compatible, wait for a keypress after displaying the message and before exiting to DOS. Do this on any DOS except Sparta.
  • forgot to switch to emulation mode when calling user program from within USR() function, fixed now.
  • added source code for Charles' Marslett fast FP routines to satisfy the license.


  • "GET A" can be now interrupted using the Break key.
  • after CLOSE #0 any error/stop message first forces the IOCB #0 to be opened for the "E:" device before being displayed.
  • error messages made more detailed.
  • added separate error messages for the "R:" handler of the 850 interface.
  • the interpreter now runs fully in the native 65C816 mode.
  • fixed stack over- and underflows caused by TRAP.
  • time related functions now take properly into account the difference between PAL and NTSC.
  • the interpreter is now RESET-proof (it seems it is stable enough).
  • the zero page and the BASIC direct page are now separated.
  • a bug in command line parser is fixed.
  • fixed mul/div overflow crash (typo in the error handling routine).
  • incorporated Charles' Marslett fast FP routines, with all changes necessary for them to execute in native 65C816 mode and some speed optimizations.
  • implemented TBXL-style program line labels, and keyword GO#.
  • implemented keywords %GET and %PUT
  • implemented keywords PROC/EXEC/ENDPROC/ON ... EXEC
  • POKE and DPOKE can't now destroy the DOS, the interpreter or the BASIC program - the area taken by these is "protected" from poking into (Error 34 occurs).
  • numerous internal changes to make possible for the BASIC program to run outside the first 64k (not yet complete).
  • greatly improved the performance of conversion routines: 24-bit int to FP and FP to 24-bit int. BASIC instructions which use these are much faster now.
  • fixed a bug in 24-bit int to hex conversion routine that caused wrong behaviour when the middle byte was zero.
  • implemented BXE keywords INVERSE and NORMAL.
  • implemented new keywords allowing memory allocations: MATTRIB, MFREE and function MALLOC().
  • implemented BXE keywords ERASE, PROTECT, UNPROTECT as aliases to already existing TBXL commands DELETE, LOCK and UNLOCK, resp.
  • implemented TBXL command DUMP.
  • INPUT can be now given a text to be displayed before reading data (like TBXL and BXE).
  • MOVE/-MOVE reworked completely. It is now possible to move blocks bigger than 64k freely around the entire address space.
  • implemented keyword MEMSET.
  • fixed (I hope) wrong behaviour of nested IF/ENDIF statements.
  • 256 variables now allowed (like TBXL).
  • WAIT expanded the functionality known from Microsoft BASIC.
  • BXE keyword NUM added as an alias to already existing AUTO. Also both made work more like in the originals (BXE and MSB).


  • the syntax error when you wanted to declare two numeric tables in a row in DIM (10 DIM A(5),B(8)) is fixed.
  • ENDWHILE bug is fixed (didn't work)
  • XIO syntax bug is fixed.
  • INKEY$ is reworked, should be much better now.
  • LOAD had a bug that could result in memory corruption sometimes, fixed.
  • GET and PUT with multiple values are now implemented.
  • GET and PUT w/o channel number now works as in Turbo BASIC too.
  • DEL command is implemented.
  • SYSCALL command is implemented.
  • ARGC and ARGV$() functions are now interfacing a BASIC program to the command line.
  • command line parser is totally rewritten.
  • AUDCTL is implemented.
  • FILENAME command is implemented.
  • New SET/SYS controls:
    • 9 = 1, generate an error after ENTER command is completed.
    • 24/25, MultiBASIC major/minor version number
    • 26/27, underlying SpartaDOS version number (or 0 if not SpartaDOS).
    • 28, if 1, stereo Pokey is available.
  • GOTO/GOSUB/RESTORE etc should work faster now. Also loops are much faster, when they entirely fit in one program line.


  • Initial version. © KMK
free counters