font.4th: default system font-set capsule, 113 glyphs (item 4.3.6c)

Punch list §25 item 4.3.6c complete. Digits, upper/lowercase, ASCII
punctuation, Latin-1 Supplement, and General Punctuation, each a
stroke-drawing word in the 4.3.6 em-square convention.

Corrected mid-build: the first pass used G-LINE only, missing that
CIRCLE/ARC/ELLIPSE already existed (4.3.3b). Reworked all round shapes
to use them via new em-square-aware wrappers (G-CIRCLE/G-ARC/G-ELLIPSE/
EM-R, fabric.4th 5000-5002), bounded to quarter/half/three-quarter/
full sweeps to avoid unbounded per-glyph angle tuning. font.4th also
redefines DISPATCH-GLYPH/DRAW-GLYPH themselves, not just the six
DISPATCH-* bucket words, since fabric.4th's originals were compiled
early against the 4.3.6b placeholders (CASE early-binding, §27.6.5).

Three-arch acceptance boot clean, Stadium conservation unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-09 20:26:14 -04:00
co-authored by Claude Sonnet 5
parent 4427986c96
commit 5d2e1c2184
14 changed files with 55314 additions and 114 deletions
+30
View File
@@ -287,3 +287,33 @@ Block 4924
: DRAW-GLYPH ( codepoint x y size color -- adv )
GCOLOR ! GSIZE ! GOY ! GOX !
DISPATCH-GLYPH ;
Block 5000
( EM-R/G-CIRCLE: route CIRCLE (4.3.3b) through the em-square )
( convention (4.3.6), same as G-LINE. EM-R scales a magnitude )
( (radius) with no GOX/GOY translation. Added for item 4.3.6c.)
: EM-R ( em-r -- cart-r ) GSIZE @ EM-UNITS */ ;
VARIABLE GCX VARIABLE GCY VARIABLE GR
: G-CIRCLE ( gcx gcy gr -- )
GR ! GCY ! GCX !
GCX @ EM-X GCY @ EM-Y 0 GR @ EM-R GCOLOR @
CIRCLE ;
Block 5001
( G-ELLIPSE: route ELLIPSE (4.3.3b) through em-square coords.)
VARIABLE GRX VARIABLE GRY
: G-ELLIPSE ( gcx gcy grx gry -- )
GRY ! GRX ! GCY ! GCX !
GCX @ EM-X GCY @ EM-Y 0
GRX @ EM-R GRY @ EM-R GCOLOR @
ELLIPSE ;
Block 5002
( G-ARC: route ARC (4.3.3b) through em-square coords. Angles )
( (ga0 ga1) are Q48.16 radians, passed through unscaled. )
VARIABLE GA0 VARIABLE GA1
: G-ARC ( gcx gcy gr ga0 ga1 -- )
GA1 ! GA0 ! GR ! GCY ! GCX !
GCX @ EM-X GCY @ EM-Y 0 GR @ EM-R
GA0 @ GA1 @ GCOLOR @
ARC ;