Version 1.18.1 of ugBASIC and UGBASIC-IDE has just been released.
In addition to numerous fixes and optimizations, it has increased available memory under the Olivetti Prodest PC 128 (pc128op) and it added preliminary support for USBDRIVE, allowing for the creation of games that load quickly and that can be distributed directly to a USB stick. For MSX (msx1) computers, support has been added for ASCII8 ROMs with up to 2 MB of space for graphics and sound resources, as well as program data. For Dragon 32/64 (d32,d64) and Coco 1/2 computers (coco), support for the SG4 semi-graphic mode has been added, including when loading images. For the Commodore 128 (c128), support for GeoRAM up to 4 MB has been added.
For the AY8910, POKEY, and SN76489 audio chipsets, new tempered scale calibrations have been implemented to achieve a more faithful reconstruction of audio tracks when converted from a MIDI track or when played programmatically with the PLAY command. The ZX Spectrum 48k (zx) also now has audio support, limited to the BOOM, BELL, and PLAY commands, as well as support for the WAIT VBL command. Regarding video, color resolutions now prevail over high-resolution ones, and a specific DEFINE has been added to optimize the space occupied by redefined fonts, 2 MHz sprite multiplexing on the Commodore 128, and general support for horizontal scrolling.
At the compiler level, extensive work has been done to reorganize the parser, resulting in a review of the syntax trees. This has enabled the addition of dynamic strings in user-defined types, and the introduction of specific DEFINEs to specify the stack position and size, as well as characterizing loaded resources (images, audio, data) with the "read-only" flag or not based on the type of media used (ROM/RAM). It will still be possible to specify, during loading, whether resources should be considered read-only (READ ONLY) where they are loaded into RAM. It is now possible to use BIT as primitive data, thus making the sources more efficient, and to define virtual ATLASes using the STRIP command in LOAD ATLAS. Finally, it is now possible to write on the screen using a "custom" font, defined as an a separate ATLAS.
New instructions: CPUSPEED, ENCRYPT, DECRYPT, DESERIALIZE, FAST, GR PRINT, GPRINT, SERIALIZE, SLOW, STRIG, STRIP,
For more information:
https://ugbasic.iwashere.eu/install
https://ugbasic.iwashere.eu/ide
https://sandbox.ugbasic.iwashere.eu