Change logs of ugBASIC language

Branch beta

  • UPDATE [rev. 20241130] BETA


    commit: 93d5189f2 (on github)
    • FREE function seems not working #1049
    • Compilation error and nothing seems happen using HSCROLL #1051
    • IF function seems unrecognized #1052
    • IMAGE function problem (CPC) #1053
    • Added support for OPTION FINAL RETURN
    • Completed less_than_8bit (under pc1403)


  • UPDATE [rev. 20241128] BETA


    commit: fecae327b (on github)
    • Added support for MSPRITE duplication (reduce graphic resources) under vic2
    • Fixed multiplexed sprites under c64reu
    • Fixed multiplexed sprites under c64
    • Add support for Sharp PC 1403(H) #951 - fixed PLOT
    • Add support for Sharp PC 1403(H) #951 - enlarged prologue


  • UPDATE [rev. 20241127] BETA


    commit: f21ee9d6b (on github)
    • Add support for Sharp PC 1403(H) #951 - prologue and epilogue
    • Optimization code for 6502 (temporary variables removed)
    • rchack_4gravity_1164: replacement of heading numbered
    • Fixed BIT access inside array (after AND with const fix)
    • Fixed startup on sid
    • Corrected and aligned instruments on sid
    • Aligned instruments on sid
    • Using GLOCKENSPIEL as default instrument for SOUND (on c64)
    • Fixed interference between INKEY and PRINT under cia/vic2


  • UPDATE [rev. 20241125] BETA


    commit: 6751c831b (on github)
    • Fixed IMAGEREF abbreviation
    • Corrected WAIT MS refactorization
    • Fixed DATA management under c128
    • Fixed TIMER under to8
    • Fixed PRINT under to8 and mo5
    • Fixed pc1403 target
    • Added support for 32 bit division under 6809
    • Fixed WAIT MS max 65535 milliseconds
    • Fixed 16 bit subctraction under z80
    • Fixed array access under z80
    • Fixed PRINT graphic under gtia
    • Fixed cpu div 16 bit const under 6502


  • UPDATE [rev. 20241124] BETA


    commit: 87795f106 (on github)
    • Added preliminary support for ANIMATION, ANIMATE and ANIMATING
    • Added support for FREEZE / UNFREEZE animations
    • Added support for get address of threads for all cpus
    • Added support for MOVE, MOVEMENT and MOVING
    • Added support for NEXT ANIMATION
    • Added support for REVERSE under ANIMATION
    • Added support for STOP MOVEMENT / STOP ANIMATION
    • Added support for SUSPEND and RESUME of threads
    • Added support for SYNC on MOVE(MENT)
    • Addeds support for RUNNING on specific procedures and REVERSE on ANIMATION
    • Addeds support for RUNNING on specific procedures
    • Corrected TRAVEL PATH backward
    • Fixed AND with const
    • Fixed character variable emission
    • Fixed initialization values of variables at startup
    • Fixed interference keyboard / music under atari/atarixl
    • Fixed MIDI program replacement if instrument is missing on score
    • Fixed MUSIC under pokey (atari/atarixl)
    • Fixed PARALLEL PROCEDURE first yield
    • Fixed READ ONLY by default for LOAD MUSIC
    • Fixed refactoring of WAIT MS
    • Fixed sn76489 support under coco
    • Fixed sync keyboard support under pia (d32,d64,coco,coco3)
    • Fixed TIMER usage under sc3000


  • UPDATE [rev. 20241121] BETA


    commit: 616754143 (on github)
    • Fixed TIMER usage under sc3000
    • Refactorized WAIT MS for multithread use
    • Fixed TIMER under plus4
    • Fixed embedded wait timer under mo5
    • Fixed WAIT VBL under plus4
    • Fixed automatic read only images on specific targets (like coleco)
    • Fixed WAIT VBL under vic2
    • Fixed KILL setting corrent thread statup on removing it
    • Added support for conditional compilation with SPRITE availability


  • UPDATE [rev. 20241119] BETA


    commit: a4303f67d (on github)
    • Add support for long jumps under PUT IMAGE (c64reu)
    • Add support for Sharp PC 1403(H) #951
    • Added cpu division with const under all cpus
    • Added END STORAGE token.
    • Added precision to WAIT MS under all targets
    • Added support for array storage of IMAGEREF
    • Added support for division using constants
    • Added support for RUNNING function
    • Added support for volume encoding in midi>imf converter
    • AFTER...CALL does not wait for triggering #1015
    • ARROW LEFT issue (cpc) #1016
    • Artefacts on low res scrolling under coco #1037
    • ASCIICODE problem (cpc) #998
    • ASTERISK problem (cpc) #1018
    • AT instruction (cpc) #1019
    • BAR issues (cpc) #1020
    • BEGIN STORAGE seems not working #1013
    • BIG ENDIAN / LITTLE ENDIAN (cpc) #1021
    • BIN issue (cpc) #1022
    • BLIT IMAGE problem (cpc) #990
    • CAPS LOCK issue (cpc) #992
    • Clear seems not clearing variables correctly #1027
    • Conflict between F4 key and F4 note #1004
    • DATA cannot have empty strings #1024
    • DATA seems not to put correct data inside code (cpc) #1032
    • DIV command unsupported on FLOAT type #1034
    • Fixed bitmap mode on plus4
    • Fixed blit register allocation under all cpus
    • Fixed conflict on zero page for keyboard detection under cia
    • Fixed drums decoding on sid
    • Fixed extra jiffies on IMF decoding (sid)
    • Fixed glockenspiel instrument under sid
    • Fixed IMAGEREF when used with reu banks
    • Fixed MIDI decoding to IMF on sid implementation
    • Fixed MIDI instrument decoding on multiple tracks
    • Fixed MUSIC under msx1
    • Fixed n-bits copy for 6502
    • Fixed PLOT and CLS under plus4
    • Fixed ppq and tick timing on MIDI>IMF decoding
    • Fixed PRINT under ted and zx
    • Fixed PUT IMAGE using IMAGEREF under vic2+reu
    • Fixed PUT KEY under all targets on unsync readings
    • Fixed register deallocation during expr evaluation for BLIT IMAGE
    • Fixed RESPAWN when thread is dead
    • Fixed sid instruments BANJO and alike
    • Fixed startup sid routine
    • Fixed text mode under plus4
    • Fixed UBOUND maximum limit to base 0
    • Fixed UPPERCASE on 6502 cpu
    • Force static binding
    • Ghost keys with ASCIICODE on cpc #1017
    • Issues on ellipse algorithm #986
    • Missing PLAY syntax as documented #1007
    • MUSIC does not work under cpc #1009
    • PUT KEY issue (cpc) #994
    • Refactorized audio duration under all targets
    • SOUND problem (cpc) #999
    • Unwinding stack on retrieving values on z80 #1014
    • Various sid fixes
    • VOLUME does not work under cpc #1005
    • Wrong byte order under COMBINE NIBBLE (z80) #1030
    • Wrong color value for purple on cpc #1029
    • Wrong DISTANCE result on z80 #1033
    • Wrong duration of SOUND command on cpc #1002


  • UPDATE [rev. 20241107] BETA


    commit: 330a1d233 (on github)
    • Added support for RUNNING function
    • Fixed RESPAWN when thread is dead.
    • BLIT IMAGE problem (cpc) #990


  • UPDATE [rev. 20241106] BETA


    commit: 330a1d233 (on github)
    • Add support for Sharp PC 1403(H) #951
    • error with AT command on cpc #972
    • CONSOLE command again (cpc) #979


  • UPDATE [rev. 20241103] BETA


    commit: 87c889293 (on github)
    • Fixed typo
    • Preliminary support to PATH and TRAVEL
    • Added support for CPU AND instruction with constant
    • Added support for CPU OR instruction with constant
    • Wrong color selection for cpc target #985
    • Side effect on complement calculation #982
    • Unrespected left bound on clipping (cpc) #983
    • Issues on printing on mode 1 (cpc) #980
    • Refactorized PRINT under vic2
    • Refactorized PRINT under gtia
    • Fixed PRINT under gtia (text mode)
    • Fixed PRINT under vic2
    • Fixed dynamic string under 6809, 6502 and z80
    • Error with CUP$ on cpc #974
    • CONSOLE command (cpc) #978
    • CONSOLE command again (cpc) #979
    • CLINE error (cpc) #976
    • Problem with MEMORIZE or REMEMBER (cpc) #977
    • Fixed typo on cpu name for CMOVE()
    • Error with CDOWN$ on cpc #973
    • Strange behaviour with CMOVE on cpc #970
    • CMOVE documentation unclear (cpc) #971


  • UPDATE [rev. 20241101] BETA


    commit: a06a57b9b (on github)
    • Add support for PRINT RAW #677
    • EVERY does not disable after calling #968
    • Removed disruptive optimization rule on 6502
    • Fixed PRINT under all video chipsets.
    • Fixed graphical position calculation under 6847
    • Fixed PEEK decoding of address (unsigned)
    • Add support for Sharp PC 1403(H) #951


  • UPDATE [rev. 20241030] BETA


    commit: bd0375cca (on github)
    • Add SUBSTRING instruction #723
    • Add support for direct comparison INT vs FLOAT #777
    • SGN issue (cpc) #965
    • MAX and MIN error (cpc) #964
    • copying arrays compilation error (cpc) #963
    • Add support for Sharp PC 1403(H) #951


  • UPDATE [rev. 20241029] BETA


    commit: 04358e58e (on github)
    • initialising a vector with no dimension (cpc) #961
    • issue with floats on cpc #955
    • BYTE type conversion on cpc #956
    • INSTR error #959
    • Add support for Sharp PC 1403(H) #951
    • Add support for aliasing PEN with location 646 #349


  • UPDATE [rev. 20241028] BETA


    commit: 6eeb1ba85 (on github)
    • Add support for Sharp PC 1403(H) #951
    • PAPER/PAPER$ functions don't work as intended on CPC #954
    • Correct implementation for BITMAP / TILEMAP DISABLE #319
    • Add support for CLR instruction #289
    • Fixed TAB parsing on c128z
    • Fixed TAB parsing on cpc
    • Add option to avoid peephole optimizer / comment erasing #257


  • UPDATE [rev. 20241027] BETA


    commit: f7c75af33 (on github)
    • Census of all errors with a unique code #217
    • Add option to avoid peephole optimizer / comment erasing #257
    • Add support for CLR instruction #289
    • Fixed CR+LF in strings when printing
    • Fixed array assignment of dynamic strings.
    • Fixed PRINT at the end of the screen
    • Fixed floating point conversion under 6809
    • Fixed error messages for command line options
    • Fixed SCREEN COLORS under ted and vic2
    • Add support for Sharp PC 1403(H) #951
    • Fixed filling color and irq management for ef936x scrolling
    • Fixed output for debugging on coco and coco3
    • Fixed unused variable optimizer under 6809
    • Fixed filling color and irq management for ef936x scrolling
    • Fixed reset YCURSYS on scrolling on 6809 (DP register)


  • UPDATE [rev. 20241026] BETA


    commit: df94cfb63 (on github)
    • Fixed SYS under 6809
    • Fixed label emitting on 6502 cpu processors
    • Fixed output for debugging on coco and coco3
    • Fixed PRINT at the end of the screen
    • Fixed IRQ management under plus4 (still testing)
    • Fixed console start address and scrolling in text mode under tms9918 (coleco,msx1,sc3000,sg1000)
    • Fixed safe move when filenames matches
    • Refactorized NOP instruction for all processors


  • UPDATE [rev. 20241016] BETA


    commit: 5ef091707 (on github)
    • Disable resident detection on PUT IMAGE with IMAGEREF (pc128op)
    • Fixed offset calculation in GET IMAGE (pc128op)
    • Fixed 6809 optimization of POKE
    • Fixed 6809 optimization of array assignment
    • Moved resident banked images on page 0 with mode 3 (pc128op)
    • Various optimization on unused variables and useless copies
    • Added support for light keyboard handling (optimization) (pc128op)
    • Optimization of temporary variable usages
    • Avoid casting for UNTIL condition if variable exists
    • Added support for multipass optimizer of unused temporary
    • Added support for escaped asterisks on peephole optimizer
    • Optimization to avoid useless recasting during array acccess
    • Added support for FOR BANK READ in place of BANKED
    • Contextual optimization on integer division with power of 2
    • Fixed optimization on 6809 code generation (main>beta)
    • Fixed PUT IMAGE with IMAGEREF under pc128op, mo5 and to8
    • Fixed pragma EXEC AS GOSUB as default


  • UPDATE [rev. 20241011] BETA


    commit: 5be780371 (on github)
    • Fixed n-dimensional array access
    • Fixed BANKREAD / BANKUNCOMPRESS dependency on PUTIMAGE (mo5)
    • Fixed BANKREAD / BANKUNCOMPRESS dependency on presence of precalculated banks (pc128op, to8, mo5)
    • Fixed resident detection on copy operator
    • Fixed support for (S)DWORD on PUT IMAGE on ef946x (pc128op, to8, mo5)
    • Fixed PUT IMAGE under pc128op
    • Fixed error messages if wrongly called multithreaded instructions
    • Add support for Sharp PC 1403(H) #951
    • Fixed floating point multiplication under z80


  • UPDATE [rev. 20241008] BETA


    commit: dc6abc94d (on github)
    • Add support for Sharp PC 1403(H) #951
    • Optimized array access on writing (offset calculation)
    • Added CPU instruction cpu_store_8bit_with_offset2
    • GET IMAGE optimizations (SEQUENCE/IMAGES offset precalculation) (pc128op, to8, mo5)
    • GET IMAGE optimizations (direct coordinates and banking)
    • Added support for DEFINE RESIDENT DETECTION ON / OFF (pc128op)
    • PUT IMAGE optimization under ef936 using bank and compression (pc128op)
    • PUT IMAGE optimization under ef936 prefetch frame / sequence (pc128op)
    • PUT IMAGE optimization under ef936 using banks (pc128op, mo5, to8)
    • PUT IMAGE optimization under ef936 using banks (pc128op, mo5, to8)
    • Optimization in PUT IMAGE call (smaller data types) under ef936x (pc128op, to8, mo5)
    • PUT IMAGE optimizations (direct coordinates and banking)
    • Fix D register on BANK READ / UNCOMPRESS on ef936x (pc128op, to8, mo5)


  • UPDATE [rev. 20241007] BETA


    commit: b01778a64 (on github)
    • Add support for Sharp PC 1403(H) #951
    • Added support for inplace XOR
    • Added support fot cpu_xor_const CPU instruction
    • Optimization: direct constant values passing on procedure calls
    • Fixed unread optimization rules for relative constants
    • Optimized access to limited monodimensional 1-byte arrays
    • Fixed unread optimization rules for relative constants
    • Optimized ABS() by using direct jump on compar
    • Added cpu_less_than_and_branch_8bit_const CPU instruction
    • Optimized ABS() by using high byte direct comparison


  • UPDATE [rev. 20241006] BETA


    commit: 283b1d427 (on github)
    • Refactorized SYS with constants
    • Add support for Sharp PC 1403(H) #951
    • Refactorized makefile
    • Bug fix in PUT IMAGE (original implementation) after IMAGEREF
    • Fixed optimization on 6809 code generation (A->B)
    • Fixed optimization on 6809 code generation (B->A)
    • Added support for cocobin2ram module
    • Optimized long jumps under z80


  • UPDATE [rev. 20241004] BETA


    commit: 1fe8ce170 (on github)
    • c128z and zx rename issue #953
    • Added support for IMAGEREF on zx
    • Added support for IMAGEREF on vic1 (vic20)
    • Fixed startup code on sc3000 / sg1000
    • bankAssigned passing for ATLAS / SEQUENCE
    • Added support for IMAGEREF on tms9918 (coleco, msx1, sc3000, sg1000)
    • Fixed cpu_indirect_call on z80 to preserve HL
    • Added support for IMAGEREF on ted (plus4)
    • Added support for IMAGEREF on gime (coco3)
    • Added support for IMAGEREF on ef936x (mo5, pc128op, to8)
    • Added support for IMAGEREF on cpc
    • Added support for IMAGEREF on 6847 (coco, d32, d64)
    • Added support for IMAGEREF on vic2 (c64, c64reu, c128)
    • Added support for IMAGEREF on atari/atarixl
    • Added preliminary support for IMAGEREF (keyword and data type)
    • Fix CLS under DEFINE DOUBLE BUFFER ON (pc128op)


  • UPDATE [rev. 20241002] BETA


    commit: 5f2949a42 (on github)


  • UPDATE [rev. 20240925] BETA


    commit: 84bd7898d (on github)
    • Fixed D64TIMER / D32TIMER
    • Added support for cpu prepare/execute multiple times comparison on 6809
    • Fixed optimizer under c64reu
    • Added support for PALETTE PRESERVE under cpc
    • Retro compatible hack: pick_the_star_1163 for cpc
    • Little optimization on multithread dispatching
    • Added support for cpu prepare/execute multiple times comparison on 6502
    • Added support for cpu prepare/execute multiple times comparison on 6809
    • Added support for cpu prepare/execute multiple times comparison on z80
    • Made keyboard sync by default under cpc
    • Fixed coco3 timer
    • Fixed removing unused variables for 6809 optimizer
    • Fixed removing unused variables for z80 optimizer
    • Fixed removing unused variables for 6502 optimizer
    • Fixed d64 image generation (c64reu)
    • Fixed d64 image generation (c64, c64reu, c128)
    • Fixed PUT IMAGE under c64reu
    • Fixed loading banks from d64 on c64reu
    • Fixed PUT IMAGE routines for multicolor mode under vic2
    • Fixed color detection for multicolor images under vic2


  • UPDATE [rev. 20240921] BETA


    commit: 1b2030be7 (on github)
    • Fixed SYNC / ASYNC constants
    • Added support for DEFINE KEYBOARD SYNC / ASYNC
    • Fixed colors on 6847
    • Fixed WAIT under coco, coco3, d32, d64
    • Addeds support for DEFINE JOYSTICK SYNC / ASYNC
    • Fixed console y2 on PRINT graphics under 6847 (coco, d32, d64)
    • Fixed WAIT KEY OR FIRE
    • Fixed shifted space under c64
    • Retro compatible hack: 4gravity_1163
    • Fixed WAIT MILLISECONDS under c64reu, c64, c128
    • Isolate RLE compression PUT IMAGE under c128
    • Fixed DEFINE SCREEN UNIQUE using vic2
    • Fixed start frame buffer address on gtia (atarixl)
    • Retro compatible hack: pick_the_star_1163
    • Fixed cpu_fill_indirect
    • Fixed DRAW string with pow2 division
    • Fixed bit storage
    • Fixed abbreviation for UNBANKED
    • Fixed color implicit
    • Fixed z80 table lookup for z80
    • Fixed disruptive optimizations rules on 6502
    • Fixed color interpolation on image conversion under zx
    • Fixed coco3 disk image generation
    • Differentiated mul2/div2 with sr/sl
    • Added support for empty procedures using TILE commands
    • Fixed resident bank size if compression is missing
    • Added support for implicit / explicit banking on different resources
    • Replaced sort algorithm under MSC1 compression method
    • Fixed MUSIC under coleco
    • Fixed input support under coco3
    • Fixed DOUBLE BUFFER ON vs DEFINE DOUBLE BUFFER
    • Fixed SOUND under c64reu, c64, c128
    • Fixed SCREEN SWAP under c64reu, c64, c128
    • Fixed printable buffer generation
    • Fixed optimizer under 6502
    • Fixed gtia preproc


  • UPDATE [rev. 20240906] BETA


    commit: bcb416b38 (on github)
    • Added DEFINE LOAD BANKED ON/OFF for pc128op and to8 target (default: ON)
    • Fixed IMAGE WIDTH / IMAGE HEIGHT on BANKED images (to8, pc128op, mo5)
    • Fixed PLOT under pc128op
    • Fixed audio support for pc128op
    • Fixed unsigned power of two division under 6809
    • Fixed IMAGE WIDTH / IMAGE HEIGHT on images
    • Fixed absolute jump in keyboard support under atari
    • Fixed zero paged registers for gtia
    • Fixed LOWER under z80
    • Fixed power of 2 division on z80


  • UPDATE [rev. 20240904] BETA


    commit: 0e59244eb (on github)
    • Fixed byte / multibyte on coco / coco3
    • Fixed variable generation under c64/c64reu
    • Fixed optimization rule under 6502
    • Retro compatible hack: cocon_1163
    • Retro compatible hack: acme_1163
    • Separated version
    • Better loader for coco dsk image
    • Fixed SOUND to use vic1 timer under vic20
    • Fixed SOUND to use ay9810 timer under sc3000/sg1000
    • Fixed SOUND to use ted timer under plus4 (untested)
    • Fixed SOUND to use sn76489 timer under pc128op
    • Moved ay8910 timer manager into startup module
    • Added support for KEYBOARDMANAGER under msx1
    • Fixed SOUND to use ay8910 timer under msx1
    • Fixed SOUND to use ay8910 timer under cpc
    • Fixed SOUND to use ay8910 timer under coleco
    • Fixed SOUND to use sid timer under c64reu
    • Fixed optimization routines for c64reu
    • Fixed default -R value for c128
    • Fixed c64reu interrupt services routines
    • Moved used variables inside vic2
    • Fixed SOUND to use sid timer under c64
    • Fixed startup routines under c64
    • Fixed starting sound generation under sid (c64)
    • Fixed SOUND to use sid timer under c128z (stub)
    • Fixed SOUND to use sid timer under c128
    • Fixed start video buffer in atarixl
    • Fixed SOUND to use pokey timer under atari/atarixl
    • Fixed division by power by 2 on z80
    • Fixed audio stop under sid (c64, c64reu, c128)
    • Moved inside sid startup irq service for sid timers
    • Fixed non scrolling PRINT in graphic mode under vic2 / ted
    • Added check dimensions on image loading under zx
    • Added preliminary support for RLE encoding on PUT IMAGE (vic2 only, c128 only, mode 3 only)
    • Fixed multiplication on power of 2
    • Removed spurious space occupied (6502 targets)
    • Increased performance of 6502 optimizer
    • Moved dynamic string parameters on page 0 on c64, c128 and c64reu
    • Implemented SCREEN MODE UNIQUE on variables (vic2)
    • Implemented SCREEN MODE UNIQUE on PLOT (vic2)
    • Increase space optimization on missing SET LINE on DRAW
    • Moved dynamic INSTRUMENT inside the MUSIC library on sid
    • Promoted irq service on atari/atarixl


  • UPDATE [rev. 20240831] BETA


    commit: 2a8018908 (on github)
    • Removed distruptive optimization rule under 6502
    • Increased and fixed performance of 6502 optimizer
    • Fixed lowecase for vic20 and c65reu support
    • Added conditional compilation for SYSCALL
    • Added conditional compilation for READ, DATA and related
    • Promoted irq service routine on pc128op
    • Promoted irq service routine on coco
    • Moved to compile time the msprite address (vic2)
    • Fixed d64 image creation under c64reu
    • Changed position for jump table generation under c64reu
    • Fixed string tranpilation (memory allocation)
    • Added conditional compilation for SCANCODE and related
    • Fixed missing re-enabling interrupt under c64
    • Fixed keyboard driver's optimization
    • Fixed gtia preprocessor
    • Fixed code generation on variable definition (6502)
    • Added conditional compilation for sid support
    • Factorized MSPRITE under vic2
    • Added conditional compilation for SCANCODE and related
    • Added conditional compilation for JOY and related
    • Removed duplicate VARINIT
    • Added conditional compilation for MUSIC
    • Added conditional compilation for EVERY
    • Added conditional compilation for CONSOLE on vic2
    • Added conditional compilation for vic2 DOUBLE BUFFER
    • Added conditional compilation for vic2 WAIT VBL
    • Removed unused EVERYSTATUS variable
    • Removed unused keyboard variables from c128z target
    • Makes INPUT RATE complement of INPUT DELAY
    • Removed unused keyboard variables from d32/d64 target
    • Removed unused keyboard variables from mo5 target
    • Removed unused keyboard variables from to8 target
    • Removed scancode library from cpc target
    • Removed unused keyboard variables from pc128op target
    • Removed scancode library from msx1 target
    • Removed useles KBDRATE on d32/d64 target
    • Fixed DATA generation for binary strings under cpc
    • Removed scancode library from cpc target
    • Removed useles KBDRATE on coco target
    • Removed scancode variables from c128z
    • Removed scancode library from c128z
    • Fixed DATA generation for binary strings under c128z
    • Removed KBDCHAR and scancode asm library on c128
    • Removed KBDCHAR and scancode asm library on atari
    • Fixed DATA generation for binary strings under c128
    • Fixed path separator decoding for LOAD instructions
    • Fixed error messages on INCLUDE FILE and IMPORT DECLARES
    • Refactorized disk image generation under coco
    • Fixed RESTORE with label
    • Fixed LOWER under atari
    • Fixed current mode under atari (gtia)
    • Fixed DATA generation for binary strings under atari
    • Fixed utf8 support on INCLUDE
    • Fixed LOWER under atari


  • UPDATE [rev. 20240827] BETA


    commit: d357d9ec4 (on github)
    • Increased available memory for parsing on compilers (10x factor)
    • Variable management alignment on coco/coco3
    • Refactorized disk image generation under coco3
    • Refactorized disk image generation under coco
    • Fixed star star (mul2) operator with variables
    • Fixed alignment for 6809 code generation
    • Fixed READ dynamic strings
    • Fixed RESTORE under 6809
    • Fixed string garbage collection under 6502
    • Fixed INK / PEN / COLOR for coco/d32/d64 (graphic modes)


  • UPDATE [rev. 20240825] BETA


    commit: 9637a554e (on github)
    • Fixed DUP instruction
    • Fixed WAIT KEY under cpc
    • Fixed memory exhausting re-using static strings (z80)
    • Fixed memory exhausting re-using static strings (6502)
    • Fixed memory exhausting re-using static strings (6809)
    • Fixed wrong IRQ usage in BELL command (coco / coco3)
    • Fixed add with 32 bit constants under 6809
    • Fixed MID function under 6809
    • Fixed disruptive optimization rule under 6809
    • Fixed vic2 graphical mode 2 COLUMNS
    • Fixed PRINT under graphical mode 3 (vic2)
    • Fixed note selection on PLAY
    • Fixed default duration and octave for PLAY command
    • Fixed error messages


  • UPDATE [rev. 20240823] BETA


    commit: 97e950000 (on github)
    • Implement DOJO protocol #942
    • Stub for DOJO protocol on remaining targets
    • Preliminary support for DOJO protocol on c64reu target
    • Preliminary support for DOJO protocol on coco/coco3 target
    • Preliminary support for DOJO protocol on c64 target
    • Added support for cpu_ztoa on z80
    • Added support for cpu_ztoa on 6809
    • Added support for cpu_ztoa on 6502


  • UPDATE [rev. 20240814] BETA


    commit: c30862cfd (on github)
    • Add support for keyword PLACE (function) (TSB only+SB) #883
    • Add support for keyword CMOB (SB) #821
    • Add support for keyword MOB ON/OFF (SB) #871
    • Add support for LOOP ... EXIT IF ... END LOOP (SB) #838
    • Add support for keyword CHECK (command) (TSB only) #818


  • UPDATE [rev. 20240813] BETA


    commit: 53ca6e273 (on github)
    • Added support for KEY PRESSED ASYNC pragma on new keyboard drivers
    • Added support for keyboard driver under atari, atarixl, c64, c64reu, c128, c128z, coco, coco3, cpc, d32/d64, mo5, msx1, pc128op, zx (KEY SHIFT, PUT KEY, KEY STATE, CLEAR KEY, and so on)
    • Added (stub) support for keyboard driver under coleco, plus4, sc3000/sg1000, to8, vic20
    • Fixed CMOVE to support console limits
    • Fixed BIN function under 6502
    • Added support for KEY SPEED
    • Added support for LINE INPUT
    • Better support for datatype on INPUT
    • Added missing symbol for FLOAT
    • Added cpu_ctoa on 6502, 6809 and z80
    • Added support for IRQ under c128z
    • Added support for native RELEASE on WAIT KEY
    • Add support for keyword ROT (SB) #890
    • Add support for keyword DRAW (SB) #834
    • Removed reduce reduce conflict on HALTED, IMAGES, TICKS, FRAME, SPAWN
    • Removed wrong LINE string command
    • Add support for keyword CSET (SB+TSB only) #825
    • Add support for keyword CGOTO (SB) #816
    • Fixed 6809 instruction for sn-76489
    • Add support for keyword HIRES (SB) #849
    • Add support for pragma CLS #898
    • Fixed XOR opcode on 6809 code generation
    • Already present keyword JOY (SB+TSB only) #854
    • Add support for keyword MULTI (SB+TSB only) #875
    • Add support for keyword MOD (command) (SB+TSB only) #873
    • Add support for keyword COLOR (TSB only) #823
    • Added support for OPTION DIALECT
    • Add support for keyword WAVE (SB+TSB only) #896
    • Fixed abbreviation for WAIT


  • UPDATE [rev. 20240802] BETA


    commit: 46603073f (on github)
    • Add support for keyword PAUSE (SB+TSB only) #881
    • Add support for keyword ENVELOPE (SB) #839
    • Add support for keyword DUP (SB+TSB only) #836
    • Add support for keyword CGOTO (SB) #816
    • Added cpu_jump_indirect under z80
    • Added cpu_jump_indirect under 6809
    • Added cpu_jump_indirect under 6502
    • Add support for keyword INST (function) (SB+TSB only) #852


  • UPDATE [rev. 20240801] BETA


    commit: c8b373a43 (on github)
    • Add support for keyword FILL (SB) #845
    • Added support for print function with NULL
    • Add support for keyword INSERT (command) (TSB only) #850
    • Add support for keyword CIRCLE (SB) #820
    • BELL instruction hangs coco3 target #916
    • Fixed storage of char under 6502
    • Improving CLS color for CoCo #917
    • Added DEFINE COLOR IMPLICIT EXPLICIT pragma and DRAW TO #835
    • Fixed disruptive optimization rule under MOS 6502
    • Add support for keyword INSERT (function) (SB) #851


  • UPDATE [rev. 20240730] BETA


    commit: 5a584a210 (on github)
    • Removed NO_ERROR dependency on d64 (output)
    • Already present keyword JOY (SB+TSB only) #854
    • Add support for pragma OPTION EXEC (TSB only) #841
    • Add support for keyword %% (TSB only) #806
    • Fixes on array definition
    • Add support for keyword $$ (TSB only) #805
    • Add support for keyword CENTER AT (TSB only) #814
    • INPUT on Spectrum leaves cursor #914
    • Possible screen misalignment on C64? #915
    • Compiler crash for CoCo target #912
    • Scrolling broken for CPC target #913
    • PRINT introduces spaces in Dragon target #906
    • CLS does not reset cursor position #911
    • INPUT not working on C64 #909
    • INPUT not working on Spectrum target #908
    • Scroll causes weird chars to appear on Spectrum target #907
    • Removed floating point debug print under 6502
    • Added preliminary support for troubleshooting and '-w' parameter
    • unexpected Float compilation error with simple FLOAT math #904
    • Renamed VT_ARRAY to avoid conflicts with windows.h
    • Added preliminary support for troubleshooting
    • [BETA] IdentifierSpaced compilation error when declaring variable #903
    • Add support for keyword CHAR (SB) #817


  • UPDATE [rev. 20240726] BETA


    commit: 11125b383 (on github)
    • Check correctness of temporary path #902
    • Fixed switch to text mode under vic2
    • Add support for pragma NEWLINE ON CENTER (TSB) #815
    • Add support for keyword PROC (SB) #885
    • Add support for keyword NRM (command) (SB+TSB only) #879
    • Add support for keyword AT (string swap) (TSB) #809
    • Added support for SWAPping strings
    • Add support for pragma OPTION CALL (SB+TSB) #813
    • PROCEDURE cannot return FLOAT #901
    • Fixed c128 PAPER command
    • Fixed vic2 set paper color


  • UPDATE [rev. 20240725] BETA


    commit: 4912cdf65 (on github)
    • Aliasing of keyword PAINT (SB+TSB only) #900
    • Add support for keyword KEYGET (TSB only) #855 #899
    • Implicit type casting upgrade
    • PROCEDURE cannot return FLOAT #901
    • Fixed c128 PAPER command
    • Fixed vic2 set paper color
    • Add support for keyword DO NULL (TSB only) #832
    • Add support for pragma CLS #898


  • UPDATE [rev. 20240723] BETA


    commit: 5004c2713 (on github)
    • Add support for keyword D!POKE (TSB only) #828
    • Add support for keyword D!PEEK (TSB only) #827
    • Add support for pragma CLS #898
    • Add support for keyword HIRES (SB) #849
    • Fixed c128 PAPER command.
    • Fixed vic2 PLOT based on paper color.
    • Fixed vic2 set paper color.
    • Add support for keyword REC (SB) #887
    • Add support for keyword BLOCK (SB) #812
    • Fixed PLOT on vic2 to clear the pixel is PEN is equal to background.
    • Allow PRINT under double buffer mode #730


  • UPDATE [rev. 20240717] BETA


    commit: c5dfd0405 (on github)
    • Fixed PLOT color under zx
    • Fixed PLOT under tms9918 (coleco,msx1,sg1000,sc3000)
    • Fix TEXTMAP AT / BITMAP AT under 6847 #800
    • Fixed image used flag on assignment-by-copy under vic2
    • Fixed PRINT with image used under vic2
    • Fixed NEW IMAGE with image used under vic2
    • Fixed GET IMAGE with image used under vic2
    • Fixed SPRITE under vic2
    • Fixed constant emission in empty procedures
    • Fixed CONSOLE under atari/atarixl text mode
    • Fixed PALETTE / COLOR under atari/atarixl
    • Fixed FOR...NEXT multithreaded
    • Fixed FOR...NEXT if variable is named
    • Fixed EVERY CALL calling procedure name
    • Fixed dynamic vars on atari/atarixl
    • Fixed PALETTE / COLOR under atari/atarixl
    • Fixed dynamic implicit variable definition (variable_export)
    • Fixed IMAGE STORAGE
    • Fixed FOR...NEXT if variable is named
    • Fixed dynamic vars on atari/atarixl


  • UPDATE [rev. 20240714] BETA


    commit: d4973b613 (on github)
    • Add pragma for start address (DEFINE PROGRAM START) #801
    • Add pragma for analogic joystick samples count #787
    • Add support for analogic joystick #786
    • Fixed FOR...NEXT on index variable undefined
    • Fixed BIT instruction under 6809
    • Fixed PLOT on 4 colors resolution on gime
    • Fixed bit check extended on little endian targets (coco3 and so)
    • Refactorized buffered (deferred) output
    • Fixed FOR...NEXT step
    • Fixed FOR...NEXT on multithread
    • Fixed starting number of threads
    • Fixed FOR...NEXT
    • STEP not working for the Dragon target #802
    • Fixed FOR...NEXT backward
    • Fixed SCANCODE under atari/atarixl
    • Fixed signed conversion of float from constant under 6502
    • Fixed SIGNED BYTE to FLOAT conversion under 6502
    • Fixed CONSOLE under atari/atarixl text mode
    • Added support for SPRITE ON / SPRITE OFF / SPRITE ENABLE / SPRITE DISABLE on all targets
    • Fixed PROCEDURE / ON PROC if procedure name is a reserved word
    • Fixed horizontal offset on MSPRITE on vic2
    • Fixed MSPRITE conversion on vic2
    • Fixed calling sequence for multiplexed sprite on vic2
    • Added check for datatype on direct assignment
    • Fixed REM decoding using CR on Windows systems


  • UPDATE [rev. 20240702] BETA


    commit: 09b4c59c2 (on github)
    • Fixed REM decoding using CR on Windows systems
    • Fixed inversion joystick detection (up/down) on coco3
    • Fix joystick count under to8
    • Fixed WAIT MILLISECONDS on msx1
    • Fixed interrupt service on msx1 - avoid to double increment timer
    • Implemented CLINE on zx
    • Fixed tms9918 source code for 32 bit compilation
    • Fixed 6847 source code for 32 bit compilation
    • Fixed array write for BIT datatype
    • Fixed array definition inside memory area for c64
    • Fixed vic2 source code for 32 bit compilation
    • Fixed dynamic string garbage collection on z80


  • UPDATE [rev. 20240629] BETA


    commit: 1f7751fa5 (on github)
    • Added JOY COUNT and JOYCOUNT as constant factors.


  • UPDATE [rev. 20240628] BETA


    commit: e1c231b4d (on github)
    • Fixed (not) support for keyboard on sg1000
    • Added support for ON JOYSTICK [NOT] AVAILABLE
    • Avoid emit code for RETURN if inside an empty procedure
    • Emit error if CASE ELSE is already used
    • BITMAP ENABLE without parameters is SCREEN #3 under pc128op/to8
    • BITMAP ENABLE without parameters is SCREEN #0 under cpc
    • Fixed JOY COUNT when no joystick is available (c128z, mo5, pc128op)
    • Fixed CLINE under cpc
    • On Commodore targets missing label crashes IDE #798
    • Fixed JOY under zx (returns always 0)
    • Fixed KEY STATE / KEY PRESS code for key cursors under zx
    • Added value on negative constant error (E071)
    • Fixed CONSOLE support under zx
    • Fixed keyboard codes for sc3000
    • Fixed CLINE on pc128op
    • Fixed KEY STATE and KEY PRESS under msx1
    • Fixed (not) supporting JOY on mo5
    • Fixed KEY STATE under mo5
    • Fixed garbage collection under mo5, pc128op and to8
    • Fixed joystick support con d32/d64
    • Fixed joystick support con coco3
    • Space optimization: removed variables if timers are not used
    • Fixed FREE_STRING under z80
    • Added default palette on tms9918
    • Space optimization: removed variables if timers are not used (coleco)
    • Fixed KEY STATE on atari/atarixl
    • Fixed scancode on atari/atarixl
    • Fixed z80_move_8bit_indirect under z80
    • Fixed move_8bit_with_offset under z80
    • Fixed image conversion on mode 1 on cpc
    • Fixed z80_move_8bit_indirect under z80
    • Fixed image color decoding on cpc chipset


  • UPDATE [rev. 20240623] BETA


    commit: 8485a613c (on github)
    • SCREEN COLUMNS returns wrong value #792
    • PRINT @ not working #791
    • Fixed BANK READ on pc128op, mo5 and to8.


  • UPDATE [rev. 20240622] BETA


    commit: e6c1a8c8a (on github)
    • Fixed cpu_move_8bit_with_offset2 on 6809
    • Space optimization with multidimensional array under 256 bytes
    • Fixed PEN color on PRINT on vic2 graphics mode
    • Fixed PUT IMAGE under vic2 with constant usage
    • Space optimization avoid calculation if ORIGIN / RESOLUTION is unused
    • Space optimization for GR LOCATE
    • Space optimization in calling PUT IMAGE under vic2 (c64, c64reu, c128)
    • Space optimization removed unused variables
    • Space optimization: add rule to 6502 optimizer


  • UPDATE [rev. 20240621] BETA


    commit: 8980f1848 (on github)
    • Space optimization: remove save / restore page 0 (c64, c128, c64reu)
    • Moved MEMORIZE / REMEMBER support on actual CONSOLE
    • Space optimization and removed vestigial code
    • Space optimization if PLAY is not called (6502, 6809)
    • Space optimization if DRAW is not called (6502, 6809)
    • Fixed MAX STRINGS variable on 6502
    • Fixed FREE STRING variable on 6502
    • Space optimization if timers are not used (6502, 6809)
    • Fixed CONSOLE print under vic2 graphic mode
    • Fixed atlas cut size of frames
    • Check presence of line numbers
    • Initialized to zero variables should be not reinitialized #788
    • Fixed starting vertical scroll position under vic2


  • UPDATE [rev. 20240617] BETA


    commit: 47ff89d96 (on github)
    • Fixed variable generation under c128, c64, c64reu
    • Implemented await for done on MSPRITE UPDATE
    • Fixed optimizer for 6502
    • Added support for margin and spacing in TSX files
    • Added preliminary support for image and atlas descriptors
    • Refactorized file_get_size
    • Error if (C)SPRITE is mixed with MSPRITE
    • Removed (useless) support for multicolor and doubling sprites (vic2)
    • Optimized image usage under vic2
    • Added support for OFFSET and ORIGIN on IMAGES / SEQUENCE LOAD and STORAGE
    • Fixed image size asserts referred to frame width / height
    • Added support for MSPRITE SYNC / ASYNC pragma
    • Fixed PRINT color PEN under vic2 graphic mode
    • Reset MSPRITE update flag on startup (vic2)
    • Added support for SPRITE ENABLE / DISABLE on multiplexed sprites
    • Fixed MSPRITE init (vic2)
    • Fixed MSPRITE decoding on vic2


  • UPDATE [rev. 20240609] BETA


    commit: f5be006d1 (on github)
    • Fixed PEN under c128
    • Fixed protothreading under 6502 after MSPRITE base zero register refactoring
    • Fixed IRQ management under c64reu after MSPRITE refactoring
    • Fixed dynamic string under 6502 after MSPRITE base zero register refactoring


  • UPDATE [rev. 20240604] BETA


    commit: 9012efd09 (on github)
    • Added support for IGNORE COLOR on CSPRITE/MSPRITE definition
    • Added preliminary support for sprite multiplexing under vic2 (c64, c64reu, c128)
    • Fixed SCANCODE / INKEY under c128
    • Refactorized SPRITE code on vic2


  • UPDATE [rev. 20240601] BETA


    commit: 7cdc4b714 (on github)
    • Fixed palette detection on vic2 using pepto values
    • Fixed PRINT under vic2 and graphic modes
    • Fixed CENTER instruction for CONSOLE support
    • Fixed LOCATE instruction for CONSOLE support


  • UPDATE [rev. 20240524] BETA


    commit: 38a69c681 (on github)
    • Add CONSOLE to delimit video surface #366
    • CLINE should support graphical modes #145
    • Added support for ENABLE INTERRUPT / DISABLE INTERRUPT
    • EI/DI implementation for mc6809 #185
    • Fixed PRINT on vic2 (foreground color)


  • UPDATE [rev. 20240523] BETA


    commit: 1141d9dfa (on github)
    • Refactorized setup_embedded for cpu type
    • Migrate inline code to library call on demand #134 #135 #136 - swap
    • Fixed SWAP variable usage
    • Added support for COMBINE NIBBLE instruction
    • Migrate inline code to library call on demand #134 #135 #136 - combine nibbles
    • Migrate inline code to library call on demand #134 #135 #136 - string flip
    • Migrate inline code to library call on demand #134 #135 #136 - bit manipulation


  • UPDATE [rev. 20240520] BETA


    commit: d5955613d (on github)
    • Migrate inline code to library call on demand #134 #135 #136 - bit manipulation
    • Fixed disruptive optimization rule on 6809
    • Fixed z80_bit_inplace_8bit_extended_indirect under z80
    • Removed unused ML instruction cpu_is_negative
    • Fixed FP constant calculation on 6502
    • Fixed array definition under cpc
    • Added LINE syntax without color
    • Fixed expansionBanks decoding in embedded language
    • Add support for CONSOLE command #165 - fix gtia
    • Separated DRAW and LINE syntax
    • Added support for data type suffix on FOR / NEXT instructions
    • Allow support for not expanded mo5


  • UPDATE [rev. 20240518] BETA


    commit: ca11dba44 (on github)
    • Implement scanline in WAIT VBL for ef936x #772


Any problem?

If you have found a problem, if you think there is a bug or, more simply, you would like something to be improved, write a topic on the official forum, or open an issue on GitHub.
Thank you!