Files
open-roms/doc/Extended-BASIC-TODO.md

3.2 KiB

Planned BASIC features, when V2 compatibility is reached

Ideas for the future, most of them suitable for MEGA65 or other power machines only

  • sound support
  • 2D graphics support
  • turtle graphics
  • sprite support, including collision callback
  • custom character set support
  • sprite/character design within program, in a way similar to Simons BASIC
  • joystick/mouse/lightpen/paddle commands/functions
  • matrix operations
  • DISPOSE with variable/array as parameter should remove the variable/array from memory
  • BLOAD, BVERIFY and BSAVE should have syntax compatible with BASIC V7/V10
  • it should be possible to intercept Kernal errors from BASIC (prevent ?FILE NOT FOUND ERROR IN ..., etc.); ON ERROR GOTO ?
  • support for numbers in hexadecimal and binary formats
  • CGOTO and CGOSUB - computatiuonal versions, should accept expressions
  • LABEL, LGOTO and LGOSUB - jump to label
  • some kind of subroutines with local variable namespace, possibly loaded from disc (like in Warsaw Basic 3.2)
  • for MEGA65 mode, move variables to a separate memory area, consider extending variable name length
  • ←V (verify from tape) - if Kernal is extended to offer this feature
  • modulo function or opeerator
  • DPEEK, DPOKE, QPEEK, QPOKE - 2/4 byte PEEK and POKE variants
  • all the functions/commands accepting memory addresses should be able to access the whole MEGA65 memory
  • ability to limit memory used by basic to standard 38K or to 46K (memory model switch)
  • XOR operator
  • AUTO - line auto numbering
  • RENUMBER for chanign the line numbers
  • consider BOOT command
  • possibly some commands for creating menus and dialog boxes
  • more configurable INPUT
  • PRINT USING, ability to position cursor, ability to print result in the center of the screen
  • CURSOR command from BASIC V10
  • RESTORE should accept lline number as argument
  • hex/dec conversion functions
  • DELETE command to delete several BASIC lines, as in BASIC V10
  • FOR loop should accept integer variable as index
  • FETCH, STASH, SWAP - REU support
  • DMA command for MEGA65
  • geoRAM support
  • DO ... LOOP, DO ... UNTIL, DO ... WHILE, EXIT
  • SEEK# to read-and-forget n bytes
  • RECORD# command from BASIC V10
  • GETKEY from BASIC V10
  • HELP command from BASIC V7/V10
  • function to find substring position
  • WINDOW command from BASIC V7
  • functions to return cursor position
  • TRAP and RESUME
  • SET DEF and SET DISK from BASIC V10
  • SLEEP from BASIC V10
  • TRON / TROFF - program tracing
  • TYPE command from BASIC V10
  • RUN should be able to run program from device, as in BASIC V10
  • PAGE and DELAY commands from Simons BASIC, or something similar
  • DUMP command from Simons BASIC, or something similar
  • it should be possbile to assign to TI special variable
  • function to insert a substring starting from given position
  • function to generate string of n duplicated characters
  • function to retrieve fractional part of a number
  • command to fill text screen area with a character, inverse screen area, scroll, or change fg/bg color of screen area

Features not planned

  • ELSE - it would have slown down the execution, can be easily substituted
  • BEGIN ... BEND - similarly, using these would hurt the performance