-
Notifications
You must be signed in to change notification settings - Fork 6
Home
nanochess edited this page Aug 26, 2015
·
2 revisions
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)