Change logs of ugBASIC language

Branch main

  • v1.16.4 [rev. 20241119] COLDFIX


    commit: a3a7c03f5 (on github)
    • Fixed ppq and tick timing on MIDI>IMF decoding
    • Fixed extra jiffies on IMF decoding (sid)
    • Fixed conflict on zero page for keyboard detection under cia
    • DIV command unsupported on FLOAT type #1034
    • Added END STORAGE token
    • Artefacts on low res scrolling under coco #1037
    • DIV command unsupported on FLOAT type #1034
    • Wrong DISTANCE result on z80 #1033
    • Fixed UBOUND maximum limit to base 0
    • Fixed n-bits copy for 6502


  • v1.16.4 [rev. 20241117] COLDFIX


    commit: d43cbd51c (on github)
    • Wrong color value for purple on cpc #1029
    • Wrong byte order under COMBINE NIBBLE (z80) #1030
    • DATA seems not to put correct data inside code (cpc) #1032
    • Fixed MIDI decoding to IMF on sid implementation
    • Fixed drums decoding on sid
    • Fixed sid instruments BANJO and alike
    • Fixed MIDI instrument decoding on multiple tracks


  • v1.16.4 [rev. 20241113] COLDFIX


    commit: a6ff91042 (on github)
    • PUT KEY issue (cpc) #994
    • ASTERISK problem (cpc) #1018
    • AT instruction (cpc) #1019
    • BAR issues (cpc) #1020
    • BIG ENDIAN / <LITTLE ENDIAN (code>cpc) #1021
    • BIN issue (cpc) #1022
    • PUT KEY issue (cpc) #994
    • AFTER...CALL does not wait for triggering #1015


  • v1.16.4 [rev. 20241113] COLDFIX


    commit: e98d1cfa7 (on github)
    • Added precision to WAIT MS
    • Wrong duration of SOUND command on cpc #1002
    • Refactorized audio duration
    • Added support for division using constants
    • Added cpu division with const.
    • Unwinding stack on retrieving values on z80 #1014


  • v1.16.4 [rev. 20241111] COLDFIX


    commit: 1d1994fb6 (on github)
    • BEGIN STORAGE seems not working #1013
    • Wrong duration of SOUND command on cpc #1002
    • Conflict between F4 key and F4 note #1004
    • Missing PLAY syntax as documented #1007
    • Added support for volume encoding in midi>imf converter (cpc)
    • VOLUME does not work under cpc #1005
    • MUSIC does not work under cpc #1009


  • v1.16.4 [rev. 20241109] COLDFIX


    commit: d993cbff0 (on github)
    • SOUND problem (cpc) #999
    • ASCIICODE problem (cpc) #998
    • Fixed PUT KEY under all targets
    • Fixed PRINT under zx
    • PUT KEY issue (cpc) #994
    • CAPS LOCK issue (cpc) #992


  • v1.16.4 [rev. 20241109] COLDFIX


    commit: 2ae802ca4 (on github)
    • Fixed register deallocation during expr evaluation for BLIT IMAGE
    • Fixed blit register allocation under 6809, 6502 and z80
    • Fixed PLOT and CLS under plus4
    • Fixed bitmap mode on plus4
    • Fixed text mode under plus4
    • Fixed PRINT under ted
    • Fixed RESPAWN when thread is dead
    • BLIT IMAGE problem (cpc) #990
    • error with AT command on cpc #972
    • CONSOLE command again (cpc) #979


  • v1.16.4 [rev. 20241107] COLDFIX


    commit: a576dee29 (on github)
    • Fixed RESPAWN when thread is dead
    • BLIT IMAGE problem (cpc) #990


  • v1.16.4 [rev. 20241103] COLDFIX


    commit: c3f7be627 (on github)
    • 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


  • v1.16.4 [rev. 20241101] COLDFIX


    commit: 81f3d5aa2 (on github)
    • 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)


  • v1.16.4 [rev. 20241030] COLDFIX


    commit: 712010994 (on github)
    • SGN issue (cpc) #965
    • MAX and MIN error (cpc) #964
    • copying arrays compilation error (cpc) #963


  • v1.16.4 [rev. 20241029] COLDFIX


    commit: 0c46ce141 (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
    • PAPER/PAPER$ functions don't work as intended on CPC #954
    • Fixed TAB parsing on cpc


  • v1.16.4 [rev. 20241027] COLDFIX


    commit: 35805c7dc (on github)
    • 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 SCREEN COLORS under ted and vic2


  • v1.16.4 [rev. 20241026] COLDFIX


    commit: 7ae04ad40 (on github)
    • Fixed filling color and irq management for ef936x scrolling
    • Fixed reset YCURSYS on scrolling on 6809 (DP register)
    • Fixed output for debugging on coco and coco3


  • v1.16.4 [rev. 20241024] COLDFIX


    commit: 40f5ea399 (on github)
    • Fixed PRINT at the end of the screen (vic20)
    • Fixed PRINT at the end of the screen (plus4)
    • Fixed IRQ management under plus4 (still testing)
    • Fixed PRINT at the end of the screen (mo5,pc128op,to8)
    • Fixed PRINT at the end of the screen (coleco,msx1,sc3000,sg1000)
    • Fixed console start address and scrolling in text mode under tms9918 (coleco,msx1,sc3000,sg1000)
    • Fixed PRINT at the end of the screen (coco3)
    • Fixed PRINT at the end of the screen (coco,d32,d64)
    • Fixed PRINT at the end of the screen (c128z)
    • Fixed PRINT at the end of the screen (c128,c64,c64reu)
    • Fixed PRINT at the end of the screen (atari,atarixl)
    • Fixed PRINT at the end of the screen (cpc)
    • Fixed safe move when filenames matches
    • Fixed PRINT at the end of the screen (zx)
    • Refactorized NOP instruction for all processors
    • Fixed optimization on pc128op
    • Removed obsolete DEBUG command


  • v1.16.4 [rev. 20241019] COLDFIX


    commit: db0794028 (on github)
    • Extend precision of trigonometric functions #756
    • Fixed PI value on floating point
    • Fixed constant initialization of FLOAT on MOS 6502
    • Fixed POW using FLOAT
    • Fixed check constraints of loading images under ef936x (pc128op, to8, mo5)
    • Removed unused DONE keyword
    • Fixed RASTER AT / NEXT RASTER AT


  • v1.16.4 [rev. 20241016] COLDFIX


    commit: 065df43a5 (on github)
    • Fixed d011 register under vic-2 (c64, c64reu, c128).
    • Added support for FOR BANK READ in place of BANKED.
    • Contextual optimization on integer division with power of 2 divisor.
    • Fixed pragma EXEC AS GOSUB as default.


  • v1.16.4 [rev. 20241011] COLDFIX


    commit: 5be780371 (on github)
    • Fixed n-dimensional array access.


  • v1.16.4 [rev. 20241009] COLDFIX


    commit: af50c96a1 (on github)
    • 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
    • Fixed floating point multiplication under z80
    • 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)
    • 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)
    • 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
    • Fixed optimization on 6809 code generation (A->B)
    • Fixed optimization on 6809 code generation (B->A)


  • v1.16.4 [rev. 20241004] COLDFIX


    commit: 3dff4d9a9 (on github)
    • c128z and zx rename issue #953
    • Fixed startup code on sc3000 / sg1000
    • Fixed bankAssigned passing for ATLAS / SEQUENCE
    • Fixed cpu_indirect_call on z80 to preserve HL


  • v1.16.3 [rev. 20240907] COLDFIX


    commit: 06124ebba (on github)
    • Fixed zero paged registers for gtia.


  • v1.16.3 [rev. 20240906] COLDFIX


    commit: 23a0a080d (on github)
    • Fixed unsigned power of two division under 6809
    • Fixed LOWER under z80
    • Fixed power of 2 division on z80


  • v1.16.3 [rev. 20240904] COLDFIX


    commit: db2c7b648 (on github)
    • Refactorized disk generation for coco (from beta).
    • Retro compatible hack: cocon_1163
    • Fixed SOUND to use audio chipset timer under coleco, c64reu, c64, c128, atari, atarixl
    • Fixed optimization routines for c64reu
    • Fixed default -R value for c64reu
    • Fixed optimization rule under 6502
    • Fixed c64reu/c64 interrupt services routines.
    • Fixed starting / stop sound generation under sid (c64, c64reu, c128)
    • Fixed start video buffer in atarixl
    • Fixed division by power by 2 on z80
    • Fixed non scrolling PRINT in graphic mode under vic2 / ted
    • Fixed LOWER under vic20, c643reu
    • Fixed d64 disk image creation under c64reu
    • Fixed string tranpilation (memory allocation).
    • Fixed DATA generation for binary strings under cpc, c128, atari, atarixl.
    • Fixed path separator decoding for LOAD instructions
    • Fixed error messages on INCLUDE FILE and IMPORT DECLARES
    • Fixed RESTORE with label
    • Fixed LOWER under atari
    • Fixed utf8 support on INCLUDE


  • v1.16.3 [rev. 20240827] COLDFIX


    commit: 1171bdfc9 (on github)
    • Increased available memory for parsing on compilers (10x factor)
    • Fixed star star (mul2) operator with variables
    • Fixed READ dynamic strings
    • Fixed RESTORE under 6809
    • Fixed string garbage collection under 6502
    • Fixed INK / PEN / COLOR for coco/d32/d64 (graphic modes)


  • v1.16.3 [rev. 20240825] COLDFIX


    commit: ef4741a8e (on github)
    • 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 disruptive optimization rule under 6809
    • Fixed vic2 graphical mode 2 COLUMNS
    • Fixed PRINT under graphical mode 3 (vic2)


  • v1.16.3 [rev. 20240805] COLDFIX


    commit: 846e26072 (on github)
    • Fixed XOR opcode on 6809 code generation
    • Fixed 6809 instruction for sn-76489
    • Inconsistent IF behavior #920
    • Fixed abbreviation for WAIT


  • v1.16.3 [rev. 20240801] COLDFIX


    commit: e438e8a70 (on github)
    • BELL instruction hangs coco3 target #916
    • Improving CLS color for CoCo #917
    • Fixed storage of char under 6502
    • Fixed disruptive optimization rule under MOS 6502


  • v1.16.3 [rev. 20240728] COLDFIX


    commit: 846693ccf (on github)
    • 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


  • v1.16.3 [rev. 20240725] COLDFIX


    commit: 2fbb61e61 (on github)
    • Check correctness of temporary path #902
    • Fixed switch to text mode under vic2
    • PROCEDURE cannot return FLOAT #901
    • Fixed c128 PAPER command
    • Fixed vic2 set paper color


  • v1.16.2 [rev. 20240717] COLDFIX


    commit: ad212359d (on github)
    • Fixed PLOT color under zx
    • Fixed PLOT under tms9918 (coleco,msx1,sg1000,sc3000)
    • Fix TEXTMAP AT / BITMAP AT under 6847 #800


  • v1.16.2 [rev. 20240715] COLDFIX


    commit: 8a8924d45 (on github)
    • 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


  • v1.16.2 [rev. 20240714] COLDFIX


    commit: f147a7a81 (on github)
    • 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 (d32, d64, coco, coco3, pc128op)
    • Fixed FOR...NEXT step


  • v1.16.2 [rev. 20240711] COLDFIX


    commit: f7645b137 (on github)
    • Fixed FOR...NEXT on multithread
    • Refactorized resident variables to match temporary one
    • Fixed starting number of threads
    • Fixed FOR...NEXT
    • STEP not working for the Dragon target #802


  • v1.16.2 [rev. 20240710] COLDFIX


    commit: 9bf166708 (on github)
    • Fixed FOR...NEXT backward
    • STEP not working for the Dragon target #802
    • Fixed PROCEDURE / ON PROC if procedure name is a reserved word.


  • v1.16.2 [rev. 20240702] COLDFIX


    commit: 58d1b91f7 (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
    • 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


  • v1.16.2 [rev. 20240628] COLDFIX


    commit: 85537fd03 (on github)
    • Fixed (not) support for keyboard on sg1000
    • 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


  • v1.16.2 [rev. 20240627] COLDFIX


    commit: 5e857f0be (on github)
    • 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


  • v1.16.2 [rev. 20240625] COLDFIX


    commit: 5889c4083 (on github)
    • Fixed joystick support con coco3
    • Fixed FREE_STRING under z80
    • Fixed KEY STATE on atari/atarixl
    • Fixed scancode on atari/atarixl


  • v1.16.2 [rev. 20240623b] COLDFIX


    commit: d96cd402a (on github)
    • Fixed z80_move_8bit_indirect under z80
    • Fixed image conversion on mode 1 on cpc
    • Fixed image color decoding on cpc chipset


  • v1.16.2 [rev. 20240623] COLDFIX


    commit: 85197a056 (on github)
    • SCREEN COLUMNS returns wrong value #792
    • PRINT @ not working #791
    • Fixed BANK READ on pc128op, mo5 and to8
    • Fixed FLIP command - disabled IRQ on flip execution (ef936x, pc128op, to8, mo5)
    • Fixed FREE STRING variable on 6502
    • Fixed CONSOLE print under vic2 graphic mode


  • v1.16.2 [rev. 20240617] COLDFIX


    commit: 84c844fe8 (on github)
    • Fixed optimizer for 6502
    • Initialized to zero variables should be not reinitialized #788
    • BANKED arrays do not work under pc128op #789
    • Fixed image size asserts referred to frame width / height
    • Fix random number generator under z80
    • Fixed SCANCODE / INKEY under c128


  • v1.16.2 [rev. 20240601] COLDFIX


    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.


  • v1.16.1 [rev. 20240524] COLDFIX


    commit: 9f1fce25d (on github)
    • Fixed PRINT on vic2 (foreground color)


  • v1.16.1 [rev. 20240523] COLDFIX


    commit: 0b54112f2 (on github)
    • Fixed SWAP variable usage


  • v1.16.1 [rev. 20240520] COLDFIX


    commit: cd09d1bc1 (on github)
    • Fixed disruptive optimization rule on 6809
    • Fixed FP constant calculation on 6502
    • Fixed array definition under cpc


  • v1.16.1 [rev. 20240505.0915] COLDFIX


    commit: ff5706865 (on github)
    • fixed DWORD to FLOAT conversion (signed)
    • fixed RND() on 32 bit values


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!