At line 2 changed 3 lines |
!!Copyright (C) 2014 Avery Lee, All Rights Reserved. |
!!Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. |
!!Atari Wiki is proud to have the license to publish Avery Lee's outstanding Altirra Basic. Avery has done a marvelous job in creating this Basic. Further, he has published the source code, too. :-) Avery, the Atari community say thank you so much for your contribution, we all appreciate very much. Please go ahead with your fantastic work. |
Copyright (C) 2014 Avery Lee, 2014 |
|
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. |
|
!Background |
Altirra BASIC is a completely new BASIC interpreter that is fully compatible with [Atari BASIC] while being completely different internally. It normally ships as part of the Altirra 8-bit emulation system, but can also be loaded into any Atari from disk, or in theory, burned to ROM. The main improvements in Altirra are a bottom-up parser that replaces the top-down system found in most interpreters, fixes for the notoriously slow line-lookups in Atari BASIC, and cleanups to the code throughout. |
|
The other main source of slowness in Atari BASIC was the floating point (FP) routines. [Turbo-BASIC XL] replaced these for a great improvement in performance. Altirra BASIC does not, it calls whatever FP routines are found in the machine's ROMs. However, the Altirra emulator contains a second set of FP ROMs that can be optionally turned on, addressing this issue. This FP package, unlike TURBOs, remains fully compatible with Atari's original version and is suitable for burning to ROM. Because it does not include its own FP library, Altirra has more free memory on startup. |
|
Atari Wiki is proud to have the license to publish Avery Lee's outstanding Altirra Basic. Avery has done a marvelous job in creating this Basic. Further, he has published the source code, too. :-) Avery, the Atari community say thank you so much for your contribution, we all appreciate very much. Please go ahead with your fantastic work. |
At line 18 added one line |
Altirra BASIC 1.54: [Additions.atr] ; plus additions from Avery's site. Thank you so much Avery! :-))) We really(!) need your work. :-))) |
At line 21 changed 8 lines |
Avery has given us the following infos:\\ |
a)\\ |
Added CP, HSTICK() and VSTICK() to ATBasic, then found a bunch of bugs to fix, like bitwise operators not listing properly and a regression in nested precedence handling. Extensions supported: $hhhh, %, !, &, HEX$(), DPEEK(), HSTICK(), VSTICK(), DPOKE, BPUT, BGET, CP, ERASE, PROTECT, UNPROTECT, DIR, RENAME, MOVE.\\ |
b)\\ |
From the tokens.inc-file we find:\\ |
; Altirra BASIC - Token definitions\\ |
Copyright (C) 2014 Avery Lee, All Rights Reserved.\\ |
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.\\ |
please stand by |
At line 30 removed 104 lines |
TOK_EOS = $14 ;end of statement\\ |
TOK_EOL = $16 ;end of line\\ |
\\ |
TOK_REM = $00\\ |
TOK_DATA = $01\\ |
TOK_INPUT = $02\\ |
TOK_COLOR = $03\\ |
TOK_LIST = $04\\ |
TOK_ENTER = $05\\ |
TOK_LET = $06\\ |
TOK_IF = $07\\ |
TOK_FOR = $08\\ |
TOK_NEXT = $09\\ |
TOK_GOTO = $0A\\ |
TOK_GOTO2 = $0B\\ |
TOK_GOSUB = $0C\\ |
TOK_TRAP = $0D\\ |
TOK_BYE = $0E\\ |
TOK_CONT = $0F\\ |
TOK_COM = $10\\ |
TOK_CLOSE = $11\\ |
TOK_CLR = $12\\ |
TOK_DEG = $13\\ |
TOK_DIM = $14\\ |
TOK_END = $15\\ |
TOK_NEW = $16\\ |
TOK_OPEN = $17\\ |
TOK_LOAD = $18\\ |
TOK_SAVE = $19\\ |
TOK_STATUS = $1A\\ |
TOK_NOTE = $1B\\ |
TOK_POINT = $1C\\ |
TOK_XIO = $1D\\ |
TOK_ON = $1E\\ |
TOK_POKE = $1F\\ |
TOK_PRINT = $20\\ |
TOK_RAD = $21\\ |
TOK_READ = $22\\ |
TOK_RESTORE = $23\\ |
TOK_RETURN = $24\\ |
TOK_RUN = $25\\ |
TOK_STOP = $26\\ |
TOK_POP = $27\\ |
TOK_QMARK = $28\\ |
TOK_GET = $29\\ |
TOK_PUT = $2A\\ |
TOK_GRAPHICS= $2B\\ |
TOK_PLOT = $2C\\ |
TOK_POSITION= $2D\\ |
TOK_DOS = $2E\\ |
TOK_DRAWTO = $2F\\ |
TOK_SETCOLOR= $30\\ |
TOK_LOCATE = $31\\ |
TOK_SOUND = $32\\ |
TOK_LPRINT = $33\\ |
TOK_CSAVE = $34\\ |
TOK_CLOAD = $35\\ |
TOK_ILET = $36\\ |
TOK_SXERROR = $37\\ |
\\ |
TOK_EXP_CNUM = $0E ;constant float number\\ |
TOK_EXP_CSTR = $0F ;constant string\\ |
TOK_EXP_COMMA = $12 ;comma\\ |
TOK_EXP_SEMI = $15 ;semicolon\\ |
TOK_EXP_GOTO = $17\\ |
TOK_EXP_GOSUB = $18\\ |
TOK_EXP_TO = $19\\ |
TOK_EXP_STEP = $1A\\ |
TOK_EXP_THEN = $1B\\ |
TOK_EXP_HASH = $1C\\ |
TOK_EXP_LE = $1D\\ |
TOK_EXP_NE = $1E\\ |
TOK_EXP_GE = $1F\\ |
TOK_EXP_LT = $20\\ |
TOK_EXP_GT = $21\\ |
TOK_EXP_EQUAL = $22\\ |
TOK_EXP_POWER = $23\\ |
TOK_EXP_MULTIPLY = $24\\ |
TOK_EXP_ADD = $25\\ |
TOK_EXP_SUBTRACT = $26\\ |
TOK_EXP_DIVIDE = $27\\ |
TOK_EXP_NOT = $28\\ |
TOK_EXP_OR = $29\\ |
TOK_EXP_AND = $2A\\ |
TOK_EXP_OPENPAREN = $2B\\ |
TOK_EXP_CLOSEPAREN = $2C\\ |
TOK_EXP_ASSIGNNUM = $2D\\ |
TOK_EXP_ASSIGNSTR = $2E\\ |
TOK_EXP_STR_LE = $2F\\ |
TOK_EXP_STR_NE = $30\\ |
TOK_EXP_STR_GE = $31\\ |
TOK_EXP_STR_LT = $32\\ |
TOK_EXP_STR_GT = $33\\ |
TOK_EXP_STR_EQ = $34\\ |
TOK_EXP_UNPLUS = $35 ;unary plus\\ |
TOK_EXP_UNMINUS = $36 ;unary minus\\ |
TOK_EXP_OPEN_STR = $37 ;open parens, string array\\ |
TOK_EXP_OPEN_ARY = $38 ;open parens, numerical array\\ |
TOK_EXP_OPEN_DIMARY = $39 ;open parens, dim numerical array\\ |
TOK_EXP_OPEN_FUN = $3A ;open parens, function\\ |
TOK_EXP_OPEN_DIMSTR = $3B ;open parens, dim string array\\ |
TOK_EXP_ARRAY_COMMA = $3C ;array subscript comma\\ |
\\ |
\\ |