What is the difference between OpenSE BASIC and SE Basic?
SE Basic is a replacement 16K ROM for the ZX Spectrum and compatibles. It fixes all the bugs in the original ROM, adds support for later hardware such as the AY sound chip, and ULAplus video chip, provides useful new commands and a much enhanced BASIC editor. It also maintains compatibility with the majority of commercial Spectrum software. OpenSE BASIC is a ground-up rewrite based on the GPLed ZX81 ROM, using open source code and legal reverse engineering.
What hardware is supported?
OpenSE BASIC is compatible with the following hardware and clones thereof:
ZX Printer requires software driver which will not run on a 16K machine
In multi-ROM machines the image should be stored in each ROM
No disk support unless using ResiDOS
Limited cartridge support
Should I switch to OpenSE BASIC?
If you do any BASIC programming on the Spectrum or if you are planning on using any custom hardware with a real machine then it might be a good idea to switch to OpenSE BASIC. If you mainly use your Spectrum to play games or view demos you should probably stick with the original ROM. However, if you're using a clone then it is illegal to use the original ROM and OpenSE BASIC is your only legal option.
What advantages does OpenSE BASIC have over other versions of Basic?
It is the only complete replacement for the original ROM that can legal be distributed with clones. After that, the main advantage is the editor. It is faster and easier to use than the original and additional commands are provided which make programming easier; EDIT, DELETE, RENUM and ON ERR. And since it is a ROM, you have the same amount of RAM left for your BASIC program.
What are the user-facing changes from the original ROM?
Do any emulators have built-in support for OpenSE BASIC?
Yes. Both vbSpec and ZX Spin enable SE Basic support to be switched on and off directly from the emulator. An older version of SE Basic is supplied with these emulators but you can use OpenSE BASIC by copying it to the emulator's folder and renaming it sebasic.rom.
Was the ZX Spectrum +4 ROM a predecessor of SE Basic?
Yes. This was an early attempt to fix all the bugs in Sinclair Basic and provide an enhanced editor. Some of its code survives in SE Basic 2.21, but not in OpenSE BASIC.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What is the difference between OpenSE BASIC and SE Basic?
SE Basic is a replacement 16K ROM for the ZX Spectrum and compatibles. It fixes all the bugs in the original ROM, adds support for later hardware such as the AY sound chip, and ULAplus video chip, provides useful new commands and a much enhanced BASIC editor. It also maintains compatibility with the majority of commercial Spectrum software. OpenSE BASIC is a ground-up rewrite based on the GPLed ZX81 ROM, using open source code and legal reverse engineering.
What hardware is supported?
OpenSE BASIC is compatible with the following hardware and clones thereof:
* Sinclair ZX Spectrum (16K/48K)
* Sinclair ZX Spectrum+ (48K/128K)
* Sinclair ZX Spectrum+2 (grey/black)
* Sinclair ZX Spectrum+3 ,
* Timex Computer TC2048
* Timex Computer TC2068
* Timex Sinclair TS2068
ZX Printer requires software driver which will not run on a 16K machine
In multi-ROM machines the image should be stored in each ROM
No disk support unless using ResiDOS
Limited cartridge support
Should I switch to OpenSE BASIC?
If you do any BASIC programming on the Spectrum or if you are planning on using any custom hardware with a real machine then it might be a good idea to switch to OpenSE BASIC. If you mainly use your Spectrum to play games or view demos you should probably stick with the original ROM. However, if you're using a clone then it is illegal to use the original ROM and OpenSE BASIC is your only legal option.
What advantages does OpenSE BASIC have over other versions of Basic?
It is the only complete replacement for the original ROM that can legal be distributed with clones. After that, the main advantage is the editor. It is faster and easier to use than the original and additional commands are provided which make programming easier; EDIT, DELETE, RENUM and ON ERR. And since it is a ROM, you have the same amount of RAM left for your BASIC program.
What are the user-facing changes from the original ROM?
* None of the bugs in the original are present
* Ten new commands; EDIT, DELETE, RENUM, PALETTE, ON ERR, CAT, MOVE, FORMAT, COPY
* ULAplus support; a default 64 colour palette is set and can be activated with PALETTE 64, 1
* 'K' mode has been replaced with a tokenizer; keywords may be typed in full, in upper or lower case, or abbreviated with a '.', for example 10 Pr. "Hello"
* You can move the cursor up and down in an edit line; when the cursor is at the very start of the line up and down changes the selected line
* The current line cursor is inverted for better visibility
* The mode cursor is inverted to show up on 512x192 displays
* Line numbers 1 to 16383 are now accepted (and work on the orignal ROM too)
* The ZX81 floating point library has been speeded up with unpacked constants and Newton-Raphson square roots
* The screen printing routines are faster because there is no ZX Printer support
* Cursor down in an INPUT line generates a STOP character
* 'E' mode is not present, except for control codes
* All symbols are entered with a two-key combinaiton, e.g. Symbol Shift + 'I' = ©
* CLEAR performs RESTORE
* Scroll? is now in sentence case
* And extended range of printable characters from 96 to 104; ASCII characters 24-31 are now printable
* SCREEN$(x,y) can detect UDGs as well as ASCII 32 to 127
* Hexadecimal numbers can be entered using '&' just as binary numbers are entered using BIN, for example 10 PRINT &FFFF
* Octal numbers can be entered using '\', for example 10 PRINT \177777
* Decimal numbers in the range 0-65535 can be converted to a hex string with '~', for example 10 PRINT ~65535
* The NMI button provides a warm reset routine unless an IF1 is connected, or the NMIADD system variable is set to 0x0000; you can call your own routines instead by changing the value of NMIADD
* Instead of a RAM test there is a RAM wipe for faster initialization
* The COPY command has been overloaded to operate as a CALL command; entering COPY without a parameter or with 0 will have no effect but any other value will be called directly
* CIRCLEs and arcs are faster
* The FORMAT command has been overloaded to operate as an ATTRIBUTE command; entering a value from 0 to 255 will set the permanent attributes; this is particularly useful with octal, for example 10 FORMAT \070 will set CLUT 0, PAPER 7, and PEN 0
* Error numbers are not used in report messages, consistent with the IF1
* The error cursor jumps to the error, as in the 128 editor
Do any emulators have built-in support for OpenSE BASIC?
Yes. Both vbSpec and ZX Spin enable SE Basic support to be switched on and off directly from the emulator. An older version of SE Basic is supplied with these emulators but you can use OpenSE BASIC by copying it to the emulator's folder and renaming it sebasic.rom.
Was the ZX Spectrum +4 ROM a predecessor of SE Basic?
Yes. This was an early attempt to fix all the bugs in Sinclair Basic and provide an enhanced editor. Some of its code survives in SE Basic 2.21, but not in OpenSE BASIC.