From 6186c1e63946336dd4375766dd418e8dc773296e Mon Sep 17 00:00:00 2001 From: Rob McMullen Date: Mon, 23 Jul 2018 23:29:16 -0700 Subject: [PATCH] Updated PDF --- transposed_font_description.pdf | Bin 96820 -> 96202 bytes transposed_font_description.svg | 829 +++++++++++++++----------------- 2 files changed, 394 insertions(+), 435 deletions(-) diff --git a/transposed_font_description.pdf b/transposed_font_description.pdf index 46169ec5025d9fcb405fb7f3f9712c46540e5c2f..7dc8be4554ca4142ea99572208d278eb08c1acf0 100644 GIT binary patch delta 24948 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 delta 25529 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 z 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 VBq`V(B!mq|K(JX@WK?Cb{|9Qb%BcVV diff --git a/transposed_font_description.svg b/transposed_font_description.svg index 58810c6..47350ca 100644 --- a/transposed_font_description.svg +++ b/transposed_font_description.svg @@ -16,7 +16,10 @@ version="1.1" id="svg8" inkscape:version="0.91 r13725" - sodipodi:docname="transposed_font_description.svg"> + sodipodi:docname="transposed_font_description.svg" + inkscape:export-filename="/home/rob/src/asmgen/transposed_font_description.svg.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> image/svg+xml - + @@ -188,8 +191,8 @@ inkscape:groupmode="layer" id="layer1"> Compiled font rendering: glyph data embedded in code * jump table to find definition of glyph, column in Yregister* one entry in jump table for each glyph; each entry can writeglyph to any column or row* immediate mode data for each scan line of glyph* indirect indexed addressing to store on screen, must incrementaddress by $400 to move to next scan line* requires tool to generate code* each font requires separate jump table and glyph definitions* can write to either hi-res page * indexed addressing to read glyph, font data address set through* indexed addressing to read glyph; address set using self-modifying codeself-modifying code (boilerplate code not shown here)* indirect indexed addressing to write to screen; must increment by $400* indirect indexed addressing to write to screen; must increment by $400each lineeach line* works with any font in memory* works with any font in memory* can write to either hi-res page @@ -434,35 +432,37 @@ id="rect3962" width="22.061142" height="2.2475212" - x="15.900266" - y="93.454956" /> + x="15.093917" + y="91.439079" /> + x="15.071065" + y="91.608154" /> + x="15.080609" + y="94.35421" /> + x="15.075387" + y="96.925323" /> + width="24.40538" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + width="42.975891" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> 8 rows of 128 bytes each. First row of 128 bytes contains topmost\ 8 rows of 128 bytes each. First row of 128 bytes contains topmost* can write to only one hi-res page; must have separate block to write* need second jump table and new entries for each row to write toto second hi-res page.second hi-res page. + height="90.334724" + width="9.0107517" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + rx="3.0735984" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + sodipodi:nodetypes="ccccc" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + rx="1.4699824" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + rx="1.4699824" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + rx="3.0735984" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + sodipodi:nodetypes="ccccc" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> Speed comparison: Source code available! See:Code generator now available! See:https://github.com/robmcmullen/asmgenRequires: Python 3.6Requires Python 3.6 to generate code;target assembler is configurable. + * includes built-in 1024 byte font; others can use any font in memory + height="29.35111" + width="113.73556" />