Hi guys.
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 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!!!
Changes, enhancements and fixes in v1.4.2:
Added escape sequence \\ for inverse bar inside strings.
Limited numeric escape sequences to 3 digits.
Added SCREEN ENABLE/DISABLE for enabling/disabling video.
Generated metavariable jlp wasn't 3 when using FLASH.
Clarifications in manual (maximum number of GRAM that can be defined per video frame).
Changes, enhancements and fixes in v1.4.1:
Added BITMAP NORMAL, BITMAP INVERSE and BITMAP MIRROR_X to ease reusing BITMAP statements in Color Stack mode.
Optimizes POKE to direct address with a single MVO.
Solved bug in local labels preceded with comma, it required a space.
Solved bug compiling nn = (varptr sfx2_v(0)-varptr sfx2_n(0))-sfxstep
Solved bug in MUSIC.PLAYING (relative to new music format)
Solved bug in music player because new _ntsc interpretation.
Solved crash bug in drums for ECS side of music player.
Other changes, enhancements and fixes in v1.4.0:
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)
Enjoy it!
intybasic_compiler_v1.4.0.zip
intybasic_compiler_v1.4.1.zip
intybasic_compiler_v1.4.2.zip