Skip to content
nanochess edited this page Aug 26, 2015 · 2 revisions

Welcome to the IntyBASIC wiki!

The rules for adding anything to the IntyBASIC compiler are:

  • It should be useful, no esoteric features.
  • It should be easy to understand.
  • It should be expandable.

The IntyBASIC compiler is structured in four classes:

  • compiler, for main syntax process
  • node, for expression trees
  • code, for peephole optimization
  • microcode, for keeping sequences of instructions.

The current TODO list: (it could happen or not)

  • Automatic distribution of program over segments. (suggested by DZ-Jay)
  • Page-flipped memory using LTO Flash (suggested by intvnut)
  • Short-circuit evaluation of AND/OR (suggested by freewheel)
  • PLAY VOLUME for changing music volume (suggested by First Spear)
  • SCREEN with support for parameter containing width of origin screen (useful for big maps)
  • Optimize programs that use only CONT so KEY process everything in one loop and one variable.
  • BCD addition and visualization (suggested by GroovyBee)
  • IntyColor: avoid to use GROM $5F in Color Stack mode.
  • Adjust error "TO value 5 is larger than the size of the variable 'x'" (GroovyBee)
  • Local variables in procedures.
  • Procedures as functions.
  • Make possible to use ASM inside DEF FN
  • Add a jump at start of program to fall in first executable instruction.
  • New statement INCBIN
  • Support for strings in CONST.
  • Extra AT syntax for DIM to select memory address (for example, screen) (suggested by artrag)
  • Reduce loops for zero initialization in intybasic_prologue.asm
  • Avoid using magic constants in intybasic_prologue.asm/intybasic_epilogue.asm (adding EQU)
  • Compilation option for unrolling loops. (possible only when statements are saved in memory)
  • 16-bits PRNG for RAND (suggested by DZ-Jay), there is a problem here that lots of programs depend on RAND 8 bits and the modulus operator is slow on big numbers.
  • Boolean access to variables (one bit for reading/assignment)
  • Number of sprite in SPRITE as expression (suggested by freewheel)
  • var++ var-- (too C like)
Clone this wiki locally