This page (revision-4) was last changed on 03-Feb-2023 15:21 by Maury Markowitz 

This page was created on 20-Oct-2017 23:09 by Roland B. Wassenberg

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
4 03-Feb-2023 15:21 2 KB Maury Markowitz to previous
3 14-May-2018 14:01 2 KB Maury Markowitz to previous | to last
2 20-Oct-2017 23:21 973 bytes Roland B. Wassenberg to previous | to last
1 20-Oct-2017 23:09 19 bytes Roland B. Wassenberg to last Ultimate Basic

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed 9 lines
!!!Ultimate Basic ; derived from all available basic source codes for the Atari and nowadays techniques
We should be able to build the Atari Ultimate Basic, up to a 64 KiB cartridge or even 128 KiB like SpartaDOS X, which uses just 8 K from the best of all versions.\\
\\
The main content should be:\\
- complete compatible with Atari Basic version A, B and C
- ultra fast
- with compiler and runtime
- fixed floating point math routines
- including enhanced math functions like TAN(X), SINH(X) etc.
!!!The Ultimate Basic
!Background
There are many versions of BASIC for the Atari platform, each of which corrects some of the problems in the original. Perhaps we should build The One BASIC to Rule Them All that includes every feature from the variety and represents the one BASIC to use for the future.
Some of the main features would include:
- completely compatible with Atari BASIC
- LEFT/MID/RIGHT string handling to make porting of MS BASIC programs easier
- caching of line numbers and loops from BASIC XL/TURBO which makes most programs much faster
- a new floating point library that fixes the performance problems and produces correct output
- additional graphics commands from practically everywhere
- performance improvements in the OS drawing routines like Alitrra
- additional memory management like BASIC XE
Some of the nice-to-haves would include:
- enhanced math functions like TAN(X), SINH(X) etc.
- integer variables! these can save lots of memory in almost any program
- an integer math pack, which builds on top of the item above for vastly improved performance
- a new full-screen editor that allows scrolling instead of the constant LISTing now required
- perhaps a new E: driver that goes with that editor
- a FILL command instead of the XIO call
- CIRCLE and ARC commands
- a compiler
At line 11 removed 5 lines
- should have an editor like ACTION!
- should be open source with most of wishes from the users
- the bug list should be zero
- should be availabe for all
- ...
At line 26 added 10 lines
And some of the more esoteric concepts:
- end-of-line loop constructs like those in BASIC-PLUS, one of the few features MS did not copy from that language. These simplify many common tasks and can improve both memory and performance.
- BYTE variables, perhaps using a A! syntax. These would be useful in so many contexts.
- LINE variables, perhaps A@, which are stored as integers but automatically pushed on the loop stack
!Issues
There are two solutions to the floating point problems in Atari BASIC. One, used by FastChip, Atari++ and Altirra, are fully compatible with the original implementation, and could be burned into a ROM replacement. The solution in TURBO-BASIC goes a step further; by "unwinding loops" it provides even faster speed for multiplication and division, but no longer fits in the original 2k ROM space. TURBO is faster, but has to include that code in the language itself.
Another question is how far do we want to extend it? With modern bank-switching there's really no limit to the size of the language, while still using only 8k of memory at a time.