Repository navigation
v1.0.0
1.0.0 - 2026-10-31
First release. One add-in, five tools, settings and an About screen.
Added
- Shell: home screen with six tiles in the Bauhaus palette, title bar,
softkey bar, lists, fields, modals, a progress bar and an on-screen keyboard.
src/platform/{screen,input,store,mem}are the only files that call gint;
src/apps/app_menu.croutes,src/main.cruns the loop. - Pacer (
src/apps/app_pacer.c): setup, plan with the checkpoint table,
run with clock, marks, target, gap line and next checkpoint, done screen with
the final gap. - Uncertainty (
src/apps/app_uncert.c): six operations, chain mode, value
and absolute and percentage uncertainty on the result screen. - Cards (
src/apps/app_cards.c): deck list, deck report with problem lines,
session with reveal, summary, box statistics; progress file written once at
the end of a session. - Notes (
src/apps/app_notes.c): file list, Markdown and plain text
rendering, scroll by line and page, search with wrap, heading list, per-line
span drawing with the Phase A style (colour and underline). - Number theory (
src/apps/app_numtheory.c): nine functions, forms,
results with steps for gcd and ext gcd, a progress bar for factorisation that
EXIT cancels. - Settings (
src/apps/app_settings.c,src/core/settings.c): uncertainty
figures, pacer checkpoint size, note width; the file is written only when a
value changes. - About (
src/apps/app_about.c): version, build date, target, framebuffer
and window sizes, largest free block, limits, and the Exam Mode note. - Brand:
assets-cg/icon-uns.pngandicon-sel.png(92x64, neobrutalist
B with a red square and three bars), a wordmark SVG and a 1200x630 card, all
drawn bytools/brand/make_brand.py. No bitmap fonts, no external assets. - Host preview:
tools/sim/(a gint stand-in, key scripts and a tour) and
make sim,make shots, which render every screen todocs/images. - CI:
.github/workflows/build.ymlruns the native tests, the Python
tests, the preview, and buildsBench-<version>.g3awith the real fxSDK,
attaching it to the release on av*tag. - Docs:
README.md,docs/STATUS.md,docs/toolchain.md,docs/spike.md,
site/(the landing page: React 18 + Vite + Tailwind, deployed on Vercel).
Storage layout (new)
Bench/notes/*.md|*.txt notes (Notes)
Bench/cards/*.txt decks, "question | answer" a line (Cards)
Bench/state/cards.sav "# Bench cards state v1", "session N", "<hash> <box>"
Bench/state/settings.cfg "key value" lines, written on change only
The folder tree is created on first run. Files are written once and renamed
into place; the calculator's filesystem needs even-sized writes, so an
odd-length text file is padded with a newline.
Notes
- Screen geometry: 396x224 framebuffer, the OS shows the middle 384x216, so
every drawing call goes throughsrc/platform/screen.cand itsSCR_X,
SCR_Yoffset. No app knows the offset exists. - Colours are raw RGB565 words rather than
C_RGB(): gint's macro shifts green
by six while its own constants put green at bits 5..10, so the macro would
move green one bit. The three palette colours are written out intheme.h
with the hex they came from. - Text entry never relies on ALPHA: the search field uses the on-screen
keyboard, so a wrong ALPHA mapping cannot break input.
Test log
make test NATIVE TESTS PASSED (11 test programs)
cards 95, leitner 126, md_layout 95, md_parse 203, numfmt 182,
numparse 62, numtheory 1027, pacer 114, settings 659,
textsearch 84, uncert 144 -> 2791 checks, 0 failed
make py-test 28 tests, OK
make sim ok
make shots 26 screens rendered
Calculator side: not run by the agent (no fxSDK and no hardware here, see
docs/STATUS.md), so this version is 1.0.0 of the code, not a hardware-tested
release.