Files
akbasic/assets/fonts/PROVENANCE.md
Andrew Kesterson eb5374d212 Check the reference corpus in, so the build stops needing the Go submodule
All 41 .bas/.txt pairs copied byte for byte from basicinterpreter@d76162c into
tests/reference/, plus the Commodore font into assets/fonts/ -- the two things
that tied the build to deps/basicinterpret. Both were verified cmp-identical
to the submodule copies.

This reverses a decision that was deliberate and correct at the time: the
corpus was driven in place because copying a submodule's corpus guarantees
drift. Overruled on purpose -- the Go dependency is being deprecated, and a
build that cannot run its acceptance suite without cloning the implementation
it replaced is not finished. tests/reference/README.md records what the drift
now costs and that those expectations are never edited.

Checked rather than assumed: both configurations configure, build and pass
from scratch with deps/basicinterpret moved out of the tree entirely.

The submodule is kept as the behavioural spec, which is a real use. The font
came with an open licence question; assets/fonts/PROVENANCE.md states it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 12:35:40 -04:00

42 lines
2.2 KiB
Markdown

# C64_Pro_Mono-STYLE.ttf
| | |
|---|---|
| Font | C64 Pro Mono, by STYLE — <https://style64.org/c64-truetype> |
| Copied from | `basicinterpreter@d76162c`, `fonts/C64_Pro_Mono-STYLE.ttf` |
| Copied on | 2026-07-31 |
| Verified | `cmp`-identical to the submodule copy |
## Why it is here
It is the font `deps/basicinterpret/main.go` opens, at the size it opens it, and reproducing
that is part of what the SDL frontend is for. It was reached for inside the submodule until the
Go dependency started being deprecated; the build now has no reason to clone that repository,
and this was the last thing tying it to one.
Two things use it, both through compile definitions in `CMakeLists.txt`:
- `AKBASIC_FONT_PATH` — what an `-DAKBASIC_WITH_AKGL=ON` build of `basic` opens. Overridable at
runtime with the `AKBASIC_FONT` environment variable, which is what an installed copy or a
different font wants.
- `AKBASIC_TEST_C64_FONT` — what `tests/akgl_frontend.c` opens, because `TODO.md` §3's
acceptance asks the drawn text to be proved in *this* font rather than any monospaced one.
## The licence question, which is open
**STYLE's C64 TrueType fonts are not public domain and this repository does not carry their
licence.** Neither did `basicinterpreter`, which is where the file came from. The terms at
<https://style64.org/c64-truetype/license> permit free personal and non-commercial use and
require the licence to accompany redistribution; commercial redistribution needs their
permission.
Copying it here changes nothing legally — the same file was already being redistributed from
the same owner's other public repository — but it does move the question into a project that
is meant to be embeddable in other people's games, which is where it starts to matter.
**Before this is shipped in anything commercial, or vendored into a game that is:** either
obtain STYLE's permission and include their licence file beside this one, or replace the font.
Replacing it is cheap — the frontend measures whatever font it is handed
(`akbasic_sink_init_akgl` derives the character grid from `akgl_text_measure`), so any
monospaced TTF works and only the two compile definitions above would change.