I've some months working in a new code generator backend for IntyBASIC, and after so much struggling finally it's working with a new optimizer that speeds up your programs without any hassle. As always Windows, Mac and Linux versions are included.
Also included some nice features requested by developers, some are performance enhancements (multiplication operation) and others are very powerful, like the new inline functions (macro-style)
intvnut helped me to find also some nasty bugs that have been solved and gave me great ideas for optimization. Freewheel provided help testing the multiplication code.
Also tarzilla, catsfolly, DZ-Jay and GroovyBee have made great suggestions and they surprised me contributing to put together an IntyBASIC Development Kit for Windows, it can be downloaded from here http://atariage.com/...-intybasic-sdk/ with my official seal of approval
Here are the main new features:
- New RANDOM() function that increases automatically the seed (no more WAIT)
- New DEF FN statement that allows for macro expressions (like inline functions)
- Experimental CONT3 and CONT4 support, no keypad decoding (ECS)
- INCLUDE now allows quotes and searches also in library path.
- New constants.bas file with useful constants and macros to ease programming.
- Generates warnings for assigned but non-read variables and also for read but non-assigned variables. (atari2600land needed it to find a bug)
- Multiplication algorithm speed up (no more successive addition that could take 2 seconds)
- New #MOBSHADOW array.
- New fast division/remainder algorithm if you use only variables as arguments.
- Now optimizes multiplication by constants $0200, $0400 and $0800.
- More optimization at code generation when the right operand is the most complex.
- More optimization for FOR..TO
- Advanced peephole optimizer.
- Avoids reloading register with constant if still available
- Avoids reading memory in register if just written
- Combines pairs of instructions in more optimum ways.
- Array reading array(const) is more optimum
- Common subexpression removal for simple index into array.
- Optimization for multiple substraction.
- Optimization for comparisons.
- Optimization for IF expr THEN GOTO.
- New contributions: keypad (GroovyBee), intro (Tarzilla) and Hello (DZ-Jay)
- Multiplication by zero could take a long time.
- ECS code was always included.
- Some divisions were signed.
- FOR with TO 0 or 255 with 8-bit variable.
IntyColor also got some enhancements:
- Support for generating PRINT statements instead of SCREEN (useful for fast animation of small images)
- Processing small images had a bug of an extra comma in output. (reported by atari2600land)
- Support for 256 color BMP files. (requested by GroovyBee and Tarzilla)
- Adds command usage, date and version in output file. (suggested by GroovyBee)
- Solves bug in initial card offset argument. (reported by Tarzilla)
BTW, some people has old versions of Windows XP (no service pack) these require the Visual C++ 2008 runtime, available from here http://www.microsoft...ails.aspx?id=29