-
Patch-level release 1.11.1
02/26/2025 at 04:23 • 0 commentsThis release:
- includes a new optional driver for SPI ST7789V-based displays with 8-bit graphics (internally converted to 16-bit graphics); for this there is a turtle graphics example illustrating the use of this driver
- fixes bugs in the line editor with respect to the handling of cases where the input line extends to the full width of the terminal
- fixes bugs in the RP2040 and RP2350 DMA drivers with regard to ring buffers
- includes changes to the RP2040 and RP2350 to partly revert the handling of descriptors to that found in release 1.9.1 and before, in an effort to solve problems found on some older macOS systems
-
Minor release 1.11.0
02/23/2025 at 04:22 • 0 commentsThis minor release:
- reworks
recurse
so when called within a quotation it calls the quotation it is within rather than the outermost word; this is a breaking change for any uses ofrecurse
within quotations (to provide the original functionality replace the use ofrecurse
with making the outermost word a deferred word and calling it by name from within the quotation in question) - increases the maximum system clock settable with
clocks::set-sysclk
on the RP2040 to 200 MHz, per the latest spec of the RP2040; the default system clock for the RP2040 is still 125 MHz, and changing the system clock may break applications dependent on peripheral clock rates (after changing the clock if one is using UART's, SPI, or I2C one needs to manually reset their baud rates, and PIO is dependent upon the set clock rate) - adds
clocks::set-sysclk-overclock
on the RP2040 and RP2350 if one does not want to be limited by a maximum system clock; note that you can brick your RP2040 or RP2350 by using this, so use this with care, and even speeds which the RP2040 or RP2350 can itself tolerate may still be too fast for the Quad SPI flash - changes the USB vendor ID and product ID on the RP2040 and RP2350 to
$2E8A
and$000A
respectively to match those used by USB output by the pico-sdk - fixes a bug on the RP2040 where calling
erase-all
would erase part of the zeptoforth kernel, preventing zeptoforth from booting and requiring manually reflashing the RP2040 with an image to recover - fixes a bug where the RAM dictionary could not be written to prior to loading
src/common/forth/basic.fs
without crashing zeptoforth due to overwriting kerneluser
variables at the base of the RAM dictionary; this bug prevented the use of things such as$FFFF_FFFF .
with the bare zeptoforth kernel installed
- reworks
-
Bug-fix release 1.10.1.1
02/15/2025 at 06:36 • 0 commentsThis patch-level release fixes bugs in RP2040 builds where, after disconnecting power after flashing an RP2040 board and then reapplying power, a subsequent software reboot or watchdog trigger would fail, resulting in the board hanging, requiring a power cycle to boot again. Only RP2040 binaries have been rebuilt for this release; non-RP2040 binaries, which are not impacted, are the same as in release 1.10.1.
-
Patch-level release 1.10.1
02/15/2025 at 02:51 • 0 commentsThis patch-level release:
- fixes bugs in
pin::input-pin
andpin::output-pin
that prevented them from functioning properly with high GPIO's (i.e. ones greater than 31) on the RP2350B - introduces the
task::wait-notify-set
andtask::wait-notify-update
word families, allowing atomic setting and updating of mailbox values when tasks are woken from waiting on task notifications - introduces words for conveniently setting font colors and effects on ANSI terminals in the
ansi-term
module
- fixes bugs in
-
Bug-fix release 1.10.0.1
02/10/2025 at 01:53 • 0 commentsThis bug-fix release fixes an issue where the line editor would crash upon attempting to exit mass upload mode by pressing F2.
-
Minor release 1.10.0
02/08/2025 at 22:02 • 0 commentsThis release:
- replaces the old, buggy USB CDC console stack for the RP2040 and RP2350 with a new, more reliable USB CDC console stack; one important note is that at some point in the future zeptocom.js will go back to using a larger, 65535 (or maybe 65536) byte buffer as the new USB CDC console stack eliminates the need for the hack of using a very small buffer in zeptocom.js to make it work at all with the RP2350
- replaces the CPU reset used by REBOOT/control-C on the RP2040 with a watchdog reset like that already used with the RP2350 to resolve issues with rebooting when code is executing on the second core
- replaces the frame queues used by zeptoIP and the CYW43439 driver with a new 'buffer queue' mechanism that allows much more efficient use of buffer space by packing frames in memory; with this change it is now feasible for the user to practically select a smaller memory footprint for the CYW43439 driver at compile time in order to save memory if so desired
- fixes a bug in zeptoIP and CYW43439 where an incorrect maximum frame size was used which was causing zeptoIP to die if it received a 1500 byte ICMP ping packet
- fixes a bug in the line editor which would cause it to crash on the RP2040 and behave incorrectly on other platforms
- optimizes zeptoIP to eliminate many cases of inefficient unaligned memory access words
- factors out the 'simple net' functionality from the 'simple CYW43439-net' functionality with a view towards simplifying support for network interface drivers other than that for the CYW43439
- adds loadable support for I2C LCD1602 16x2 character LCD displays
-
Patch-level release 1.9.1
12/08/2024 at 04:03 • 0 commentsThis patch-level release renames the
int-io
module toserial
(but retains the now-deprecatedint-io
name for the time being), includes a key fix to the CYW43439 driver for the new Raspberry Pi Pico 2 W, and fixes to the parsing of a number of different kinds of numeric literal. It also removes the source code for unsupported Nordic Semiconductor microcontrollers. Note that due to yet-unresolved issues with the USB CDC driver on the RP2350 is it is highly recommended one use the serial console when uploading the CYW43439 firmware, CYW43439 driver, and zeptoIP to the Raspberry Pi Pico 2 W; this can be accessed withinfull_usb
builds by callingserial::serial-console
. -
Minor release 1.9.0
11/15/2024 at 01:57 • 0 commentsThis release:
- adds hardware single-precision floating-point numerics support (except on the RP2040, due to lack of hardware floating point, and STM32F411, to save room of what little flash it has)
- reworks the multitasker to be based on deadlines
- optionally supports complex numbers on top of hardware single-precision floating-point numerics
- adds a current directory concept
- optionally supports FAT32 filesystems in PSRAM on RP2350 boards with PSRAM such as the Pimoroni Pico Plus 2
- supports conveniently compiling string constants to the dictionary and storing them in buffers and reading them therefrom without the limitations of traditional counted strings or null-delimited strings
- optimizes
of
/ofstr
...endof
to collect all end branches to the end ofcase
...endcase
/endcasestr
blocks (except on the RP2040 and STM32L476, due to the limitations of these platforms) - fixes a bug where double-cell local variables would not be properly updated with constants due to an issue with the code generator
- fixes a bug introduced in the last beta release 1.9.0-beta.3 where due to an issue with the multitasker zeptoforth would sometimes crash on boot and would not properly update the deadlines of tasks.
-
Beta release 1.9.0-beta.3
11/12/2024 at 03:50 • 0 commentsThis beta release adds
string,
,string@
, andstring!
for conveniently compiling string constants and reading and writing strings without the constraints of traditional counted strings, updatesendof
,endcase
, andendcasestr
on the RP2350, STM32F407, STM32F411, and STM32F746 for all branches at the ends ofof
...endof
blocks to point to the end of thecase
...endcase
/endcasestr
block (the RP2040 and STM32L476 are not so updated due to the platforms' limitations), addstask-deadline!
andtask-deadline@
in thetask
module to allow finer control over the deadline scheduler, and tunes zeptoIP to take advantage of the deadline scheduler. -
Beta release 1.9.0-beta.2
11/03/2024 at 22:39 • 0 commentsThis beta release updates the multitasker to use the new "deadline" scheduler and fixes a bug which would cause spawning tasks to crash.