====== Releases ====== ^ Current stable ^ | version 2.3.11 [ [[https://github.com/neilsf/XC-BASIC/releases/tag/v2.3.11|Release page]] ]| ^ Older releases ^ | version 2.2.05 [ [[https://github.com/neilsf/XC-BASIC/archive/v2.2.05.zip|download .zip]] ]| | version 2.102 [ [[https://github.com/neilsf/XC-BASIC/archive/v2.1.02.zip|download .zip]] ]| | version 2.0 [ [[https://github.com/neilsf/XC-BASIC/archive/v2.0.zip|download .zip]] ] | | version 1.1 [ [[https://github.com/neilsf/XC-BASIC/archive/v1.1.zip|download .zip]] ] | | version 1.0 [ [[https://github.com/neilsf/XC-BASIC/archive/v1.0.zip|download .zip]] ] | | version 0.9.1 [ [[https://github.com/neilsf/XC-BASIC/archive/v0.9.1.zip|download .zip]] ] | ==== What's new in version 2.3? ==== (1) New GitHub action for automatic build (2) Removed binaries from source repository (3) The executable now calls DASM - no more bash scripts (4) Added command line options for debugging purpose (5) FOR now supports STEP and became a little faster (6) Bug fixes ==== What's new in version 2.2? ==== (1) Define implicit address for variables (2) User defined functions with FUN ... ENDFUN (3) The CALL keyword may be omitted when calling procedures (4) Joystick and sprite extensions (5) Use ; to suppress NL in PRINT (6) New compiler options: basic_loader and start_address (7) Bugfixes ==== What's new in version 2.1? ==== (1) Improved optimizer (2) Multiline IF .. ELSE .. ENDIF statement (3) WHILE .. ENDWHILE statement (4) REPEAT .. UNTIL statement (5) Fast variables (6) PRAGMA statement to set compiler options (7) LSHIFT and RSHIFT functions (8) MEMCPY, MEMSET, MEMSHIFT commands (9) WATCH and WAIT commands (10) Semicolon and single quote are now aliases for REM (11) PETSCII literals (12) Character literals (13) Support for arrays of strings (14) ENABLEIRQ and DISABLEIRQ commands (15) XCB Invaders - a new game is added (16) Bugfixes as always ==== What's new in version 2.0? ==== (1) Loads of bugfixes (2) New type: byte (3) New type: float (4) New type: string pointer (5) Support for binary and hexadecimal numeric literals (6) Inline assembly through the ASM directive (7) Floating point functions like SIN(), COS() etc. (8) String functions and commands (9) CAST() function (10) DEEK() function and DOKE command (11) Support for source inclusion through the INCLUDE directive (12) Direct recursion (13) Better documentation (14) Keywords are now case-insensitive (15) CURPOS command (16) A full-feature game, Puralax! is added to the examples (17) Code optimizer ==== What's new in version 1.2-beta? ==== (1) Multiple statements can be written in one line using the statement separator character (:) (2) Added ORIGIN statement (3) Added INCBIN statement ==== What's new in version 1.1 ==== (1) Line concatenation character (~) (2) New PETSCII escape sequences (3) Fixed parenthesis support and many parser bugfixes (4) New example program: Maze Generator (5) New LOAD statement (6) New SAVE statement (7) New FERR function (8) New bitwise operators: & | ^ (9) New unary operator: @ (address of) (10) Memory information is displayed after successful compilation ==== Whats new in version 1.0 ==== (1) Bugifx: programs with DATA statements now compile fine (2) Bugfix: compiler errors now go to stdout (3) The DASM binaries are now included in the project + batch/sh scripts are added in order to compile XC-BASIC source to machine code in a single command. (4) IF ... THEN now supports simple logical expressions (5) The LET keyword can now be omitted (6) Parser errors are truncated to a single line instead of dumping the whole AST. (5) New statements: SYS command and USR function