After being slowly updated in the background while I do other things, finally I considered that enough changes have been made to make it worthwhile of another release.
So I proudly present IntyBASIC compiler v1.4.0 with more optimization in code generation.
If you're updating your development environment, remember to not only copy the compiler but also the prologue and epilogue files because changes in music format.
This release is rather special for me because it marks 5 years since the publishing of the first IntyBASIC compiler and still there are things that I would like to implement!!!
Other changes, enhancements and fixes in v1.4:
- Tracker allows playing 8 channels of music (using ECS PSG)
- Now detects failure of flow control when using GOTO to jump wrongly between procedures.
- Detects wrong flow of control (GOTO to PROCEDURE or GOSUB to non-PROCEDURE)
- Name mangling for assembler now uses original names, easing assembler interface.
- Support for local labels (using period character before a label, uses last global label as prefix)
- Added MUSIC GOSUB, MUSIC RETURN, MUSIC VOLUME and MUSIC SPEED.
- Added contrib/accel.bas it shows how to move sprites by fractions of pixel (contributed by intvnut)
- Added samples/rain.bas to show animate rain and moving trees.
- Added samples/pumpkin_master.bas as another example of a fully working game.
- VOICE INIT now "shuts up" the Intellivision (contributed by intvnut) and the initialization is done in automatic form at start of program.
- FLASH INIT SIZE to choose Flash memory size.
- Allows constants in DATA PACKED.
- Added ON expr FAST to avoid two instructions.
- Generates warnings for AND/OR/XOR and small operators non-parenthesized.
- Now direct CONT1, CONT2, CONT3 and CONT4 generate 8-bit results.
- Solved bug where IF CONT.B0 THEN wouldn't work, also ABS and SGN.
- Compatibility with Tutorvision consoles.
- Solved bug in PLAY SIMPLE (always was processed as NO DRUMS)
- Added new IntyColor flags to select the block size of GRAM definition per frame, and to process 8x16 bitmaps for sprites.
- Added ECS.AVAILABLE flag.
- Allows --cc3 option to change address of RAM memory (for Keyboard Component compatibility)