From 16675213b0191b76956b04d70ef37b4e00a94ed9 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Sun, 11 Feb 2024 15:07:15 -0800 Subject: [PATCH] Added letter hinting --- gui/shaviankb/assets.tal | 257 +++++++++++++++++++++++++----------- gui/shaviankb/shaviankb.tal | 29 +++- 2 files changed, 204 insertions(+), 82 deletions(-) diff --git a/gui/shaviankb/assets.tal b/gui/shaviankb/assets.tal index 28dbd86..e5aa2b1 100644 --- a/gui/shaviankb/assets.tal +++ b/gui/shaviankb/assets.tal @@ -68,86 +68,183 @@ fcfc fcfc fcf8 0000 0202 0202 0204 f800 ] @keys -&peep 0000 0060 1008 0808 0808 0808 0000 0000 ={ f090 9190 } -&tot 0000 0008 1868 0808 0808 0808 0000 0000 ={ f090 9191 } -&kick 0000 0004 0404 3c40 4040 403c 0000 0000 ={ f090 9192 } -&fee 0000 0008 0808 0808 0808 1060 0000 0000 ={ f090 9193 } -&thigh 0000 0060 1008 3844 8484 8870 0000 0000 ={ f090 9194 } -&so 0000 0038 4440 2010 0804 4438 0000 0000 ={ f090 9195 } -&sure 0000 0008 1020 2040 4040 4438 0000 0000 ={ f090 9196 } -&church 0000 0008 10e0 2040 4040 4438 0000 0000 ={ f090 9197 } -&yea 0000 0040 4020 2010 1008 0804 0000 0000 ={ f090 9198 } -&hung 0000 0030 4848 4848 4848 30cc 0000 0000 ={ f090 9199 } -&bib 0000 0000 0000 2020 2020 2020 2010 0c00 ={ f090 919a } -&dead 0000 0000 0000 4040 4040 4040 5860 4000 ={ f090 919b } -&gag 0000 0000 0000 7804 0404 0478 4040 4000 ={ f090 919c } -&vow 0000 0000 0000 1820 4040 4040 4040 4000 ={ f090 919d } -&they 0000 0000 0000 3844 8484 8870 4020 1800 ={ f090 919e } -&zoo 0000 0000 0000 3844 0408 1020 4044 3800 ={ f090 919f } -&measure 0000 0000 0000 3844 0404 0408 0810 2000 ={ f090 91a0 } -&judge 0000 0000 0000 3844 0404 0408 0e10 2000 ={ f090 91a1 } -&woe 0000 0000 0000 0408 0810 1020 2040 4000 ={ f090 91a2 } -&haha 0000 0000 0000 cc30 4848 4848 4848 3000 ={ f090 91a3 } -&loll 0000 0000 0000 3840 4040 4038 0000 0000 ={ f090 91a4 } -&mime 0000 0000 0000 0c10 1010 1060 0000 0000 ={ f090 91a5 } -&if 0000 0000 0000 1010 1010 1010 0000 0000 ={ f090 91a6 } -&egg 0000 0000 0000 4040 4040 201c 0000 0000 ={ f090 91a7 } -&ash 0000 0000 0000 0404 0404 0870 0000 0000 ={ f090 91a8 } -&ado 0000 0000 0000 1c20 4040 4040 0000 0000 ={ f090 91a9 } -&on 0000 0000 0000 7008 0404 0404 0000 0000 ={ f090 91aa } -&wool 0000 0000 0000 4444 2828 1010 0000 0000 ={ f090 91ab } -&out 0000 0000 0000 0810 6010 1008 0000 0000 ={ f090 91ac } -&ah 0000 0000 0000 1c20 2018 0870 0000 0000 ={ f090 91ad } -&roar 0000 0000 0000 3804 0404 0438 0000 0000 ={ f090 91ae } -&nun 0000 0000 0000 6010 1010 100c 0000 0000 ={ f090 91af } -&eat 0000 0000 0000 404c 5464 0404 0000 0000 ={ f090 91b0 } -&age 0000 0000 0000 7c40 4040 201c 0000 0000 ={ f090 91b1 } -&ice 0000 0000 0000 7c04 0404 0870 0000 0000 ={ f090 91b2 } -&up 0000 0000 0000 7c08 1010 2020 0000 0000 ={ f090 91b3 } -&oak 0000 0000 0000 3844 4444 4438 0000 0000 ={ f090 91b4 } -&ooze 0000 0000 0000 1010 2828 4444 0000 0000 ={ f090 91b5 } -&oil 0000 0000 0000 2010 0c10 1020 0000 0000 ={ f090 91b6 } -&awe 0000 0000 0000 7008 0830 201c 0000 0000 ={ f090 91b7 } -&are 0000 0000 0000 3c42 4232 12e4 0000 0000 ={ f090 91b8 } -&or 0000 0000 0000 cc22 22c2 8478 0000 0000 ={ f090 91b9 } -&air 0000 0000 0000 1c22 2272 8264 0000 0000 ={ f090 91ba } -&err 0000 0000 0000 6482 7222 221c 0000 0000 ={ f090 91bb } -&array 0000 0000 0000 3c42 8282 828c 0000 0000 ={ f090 91bc } -&ear 0000 0000 0000 bcc2 8282 829c 0000 0000 ={ f090 91bd } -&ian 0000 0000 0000 4e50 6040 4040 0000 0000 ={ f090 91be } -&yew 0000 0080 8080 4848 5454 2222 0000 0000 ={ f090 91bf } +&peep 0000 0060 1008 0808 0808 0808 0000 0000 ={ f090 9190 } "peep $1 +&tot 0000 0008 1868 0808 0808 0808 0000 0000 ={ f090 9191 } "tot $1 +&kick 0000 0004 0404 3c40 4040 403c 0000 0000 ={ f090 9192 } "kick $1 +&fee 0000 0008 0808 0808 0808 1060 0000 0000 ={ f090 9193 } "fee $1 +&thigh 0000 0060 1008 3844 8484 8870 0000 0000 ={ f090 9194 } "thigh $1 +&so 0000 0038 4440 2010 0804 4438 0000 0000 ={ f090 9195 } "so $1 +&sure 0000 0008 1020 2040 4040 4438 0000 0000 ={ f090 9196 } "sure $1 +&church 0000 0008 10e0 2040 4040 4438 0000 0000 ={ f090 9197 } "church $1 +&yea 0000 0040 4020 2010 1008 0804 0000 0000 ={ f090 9198 } "yea $1 +&hung 0000 0030 4848 4848 4848 30cc 0000 0000 ={ f090 9199 } "hung $1 +&bib 0000 0000 0000 2020 2020 2020 2010 0c00 ={ f090 919a } "bib $1 +&dead 0000 0000 0000 4040 4040 4040 5860 4000 ={ f090 919b } "dead $1 +&gag 0000 0000 0000 7804 0404 0478 4040 4000 ={ f090 919c } "gag $1 +&vow 0000 0000 0000 1820 4040 4040 4040 4000 ={ f090 919d } "vow $1 +&they 0000 0000 0000 3844 8484 8870 4020 1800 ={ f090 919e } "they $1 +&zoo 0000 0000 0000 3844 0408 1020 4044 3800 ={ f090 919f } "zoo $1 +&measure 0000 0000 0000 3844 0404 0408 0810 2000 ={ f090 91a0 } "measure $1 +&judge 0000 0000 0000 3844 0404 0408 0e10 2000 ={ f090 91a1 } "judge $1 +&woe 0000 0000 0000 0408 0810 1020 2040 4000 ={ f090 91a2 } "woe $1 +&haha 0000 0000 0000 cc30 4848 4848 4848 3000 ={ f090 91a3 } "haha $1 +&loll 0000 0000 0000 3840 4040 4038 0000 0000 ={ f090 91a4 } "loll $1 +&mime 0000 0000 0000 0c10 1010 1060 0000 0000 ={ f090 91a5 } "mime $1 +&if 0000 0000 0000 1010 1010 1010 0000 0000 ={ f090 91a6 } "if $1 +&egg 0000 0000 0000 4040 4040 201c 0000 0000 ={ f090 91a7 } "egg $1 +&ash 0000 0000 0000 0404 0404 0870 0000 0000 ={ f090 91a8 } "ash $1 +&ado 0000 0000 0000 1c20 4040 4040 0000 0000 ={ f090 91a9 } "ado $1 +&on 0000 0000 0000 7008 0404 0404 0000 0000 ={ f090 91aa } "on $1 +&wool 0000 0000 0000 4444 2828 1010 0000 0000 ={ f090 91ab } "wool $1 +&out 0000 0000 0000 0810 6010 1008 0000 0000 ={ f090 91ac } "out $1 +&ah 0000 0000 0000 1c20 2018 0870 0000 0000 ={ f090 91ad } "ah $1 +&roar 0000 0000 0000 3804 0404 0438 0000 0000 ={ f090 91ae } "roar $1 +&nun 0000 0000 0000 6010 1010 100c 0000 0000 ={ f090 91af } "nun $1 +&eat 0000 0000 0000 404c 5464 0404 0000 0000 ={ f090 91b0 } "eat $1 +&age 0000 0000 0000 7c40 4040 201c 0000 0000 ={ f090 91b1 } "age $1 +&ice 0000 0000 0000 7c04 0404 0870 0000 0000 ={ f090 91b2 } "ice $1 +&up 0000 0000 0000 7c08 1010 2020 0000 0000 ={ f090 91b3 } "up $1 +&oak 0000 0000 0000 3844 4444 4438 0000 0000 ={ f090 91b4 } "oak $1 +&ooze 0000 0000 0000 1010 2828 4444 0000 0000 ={ f090 91b5 } "ooze $1 +&oil 0000 0000 0000 2010 0c10 1020 0000 0000 ={ f090 91b6 } "oil $1 +&awe 0000 0000 0000 7008 0830 201c 0000 0000 ={ f090 91b7 } "awe $1 +&are 0000 0000 0000 3c42 4232 12e4 0000 0000 ={ f090 91b8 } "are $1 +&or 0000 0000 0000 cc22 22c2 8478 0000 0000 ={ f090 91b9 } "or $1 +&air 0000 0000 0000 1c22 2272 8264 0000 0000 ={ f090 91ba } "air $1 +&err 0000 0000 0000 6482 7222 221c 0000 0000 ={ f090 91bb } "err $1 +&array 0000 0000 0000 3c42 8282 828c 0000 0000 ={ f090 91bc } "array $1 +&ear 0000 0000 0000 bcc2 8282 829c 0000 0000 ={ f090 91bd } "ear $1 +&ian 0000 0000 0000 4e50 6040 4040 0000 0000 ={ f090 91be } "ian $1 +&yew 0000 0080 8080 4848 5454 2222 0000 0000 ={ f090 91bf } "yew $1 -&zero 0000 0078 8484 8484 8484 8478 0000 0000 ={ "0 } -&one 0000 0010 3010 1010 1010 1010 0000 0000 ={ "1 } -&two 0000 0078 8404 0418 6080 80fc 0000 0000 ={ "2 } -&three 0000 00fc 0408 1804 0404 8478 0000 0000 ={ "3 } -&four 0000 0018 2828 4848 88fc 0808 0000 0000 ={ "4 } -&five 0000 00fc 8080 f804 0404 8478 0000 0000 ={ "5 } -&six 0000 0038 4080 f884 8484 8478 0000 0000 ={ "6 } -&seven 0000 00fc 0404 0808 1010 2020 0000 0000 ={ "7 } -&eight 0000 0078 8484 7884 8484 8478 0000 0000 ={ "8 } -&nine 0000 0078 8484 8484 7c04 0870 0000 0000 ={ "9 } +&zero 0000 0078 8484 8484 8484 8478 0000 0000 ={ "0 } 20 $1 +&one 0000 0010 3010 1010 1010 1010 0000 0000 ={ "1 } 20 $1 +&two 0000 0078 8404 0418 6080 80fc 0000 0000 ={ "2 } 20 $1 +&three 0000 00fc 0408 1804 0404 8478 0000 0000 ={ "3 } 20 $1 +&four 0000 0018 2828 4848 88fc 0808 0000 0000 ={ "4 } 20 $1 +&five 0000 00fc 8080 f804 0404 8478 0000 0000 ={ "5 } 20 $1 +&six 0000 0038 4080 f884 8484 8478 0000 0000 ={ "6 } 20 $1 +&seven 0000 00fc 0404 0808 1010 2020 0000 0000 ={ "7 } 20 $1 +&eight 0000 0078 8484 7884 8484 8478 0000 0000 ={ "8 } 20 $1 +&nine 0000 0078 8484 8484 7c04 0870 0000 0000 ={ "9 } 20 $1 -&at 0000 0000 3c42 99a5 a5a5 ad96 4030 0000 ={ "@ } -&colon 0000 0000 0010 0000 0010 0000 0000 0000 ={ ": } -&dot 0000 0000 0000 1038 1000 0000 0000 0000 ={ c2b7 } -&undersc 0000 0000 0000 0000 0000 00fe 0000 0000 ={ "_ } -&star 0000 0000 1054 38ee 3854 1000 0000 0000 ={ "* } -&apos 0000 0030 3010 0000 0000 0000 0000 0000 ={ "' } -&semi 0000 0000 0010 0000 0010 1020 0000 0000 ={ "; } -&em 0000 0000 0000 0000 0000 0000 0000 0000 ={ e2 80 94 } -&hyphen 0000 0000 0000 007c 0000 0000 0000 0000 ={ "- } -&questio 0000 0078 8484 0408 1020 0020 0000 0000 ={ "? } -&excl 0000 0020 2020 2020 2020 0020 0000 0000 ={ "! } -&paren-a 0000 1020 2040 4040 4040 4020 2010 0000 ={ "( } -&paren-b 0000 4020 2010 1010 1010 1020 2040 0000 ={ ") } -&left 0000 0000 1020 40fe 4020 1000 0000 0000 ={ 1b "[D } -&right 0000 0000 1008 04fe 0408 1000 0000 0000 ={ 1b "[C } -&backspa 0000 0000 1f21 5589 5521 1f00 0000 0000 ={ 08 } -&mode 0000 0000 1038 7cfe 7c38 1000 0000 0000 ={ $1 } -&comma 0000 0000 0000 0000 0010 1020 0000 0000 ={ ", } -&space 0000 0000 0000 0000 0084 fc00 0000 0000 ={ 20 } -&period 0000 0000 0000 0000 0000 0010 0000 0000 ={ ". } -&enter 0000 0000 1232 528c 5030 1000 0000 0000 ={ 0a } +&at 0000 0000 3c42 99a5 a5a5 ad96 4030 0000 ={ "@ } 20 $1 +&colon 0000 0000 0010 0000 0010 0000 0000 0000 ={ ": } 20 $1 +&dot 0000 0000 0000 1038 1000 0000 0000 0000 ={ c2b7 } 20 $1 +&undersc 0000 0000 0000 0000 0000 00fe 0000 0000 ={ "_ } 20 $1 +&star 0000 0000 1054 38ee 3854 1000 0000 0000 ={ "* } 20 $1 +&apos 0000 0030 3010 0000 0000 0000 0000 0000 ={ "' } 20 $1 +&semi 0000 0000 0010 0000 0010 1020 0000 0000 ={ "; } 20 $1 +&em 0000 0000 0000 0000 0000 0000 0000 0000 ={ e2 80 94 } 20 $1 +&hyphen 0000 0000 0000 007c 0000 0000 0000 0000 ={ "- } 20 $1 +&questio 0000 0078 8484 0408 1020 0020 0000 0000 ={ "? } 20 $1 +&excl 0000 0020 2020 2020 2020 0020 0000 0000 ={ "! } 20 $1 +&paren-a 0000 1020 2040 4040 4040 4020 2010 0000 ={ "( } 20 $1 +&paren-b 0000 4020 2010 1010 1010 1020 2040 0000 ={ ") } 20 $1 +&left 0000 0000 1020 40fe 4020 1000 0000 0000 ={ 1b "[D } 20 $1 +&right 0000 0000 1008 04fe 0408 1000 0000 0000 ={ 1b "[C } 20 $1 +&backspa 0000 0000 1f21 5589 5521 1f00 0000 0000 ={ 08 } 20 $1 +&mode 0000 0000 1038 7cfe 7c38 1000 0000 0000 ={ $1 } 20 $1 +&comma 0000 0000 0000 0000 0010 1020 0000 0000 ={ ", } 20 $1 +&space 0000 0000 0000 0000 0084 fc00 0000 0000 ={ 20 } 20 $1 +&period 0000 0000 0000 0000 0000 0010 0000 0000 ={ ". } 20 $1 +&enter 0000 0000 1232 528c 5030 1000 0000 0000 ={ 0a } 20 $1 -&none 0000 0000 0000 0000 0000 0000 0000 0000 ={ 00 } +&none 0000 0000 0000 0000 0000 0000 0000 0000 ={ 00 } 20 $1 + +@font-mono ( monaco12 ) +0000 0000 0000 0000 0000 0000 0000 0000 +0000 0010 1010 1010 1000 1010 0000 0000 +0000 0028 2828 0000 0000 0000 0000 0000 +0000 0028 7c28 287c 2800 0000 0000 0000 +0000 1038 5450 3018 1414 5438 1000 0000 +0000 0024 5458 3810 2834 5448 0000 0000 +0000 0060 9090 a040 a094 8874 0000 0000 +0000 0010 1010 0000 0000 0000 0000 0000 +0000 0810 1020 2020 2020 1010 0800 0000 +0000 2010 1008 0808 0808 1010 2000 0000 +0000 0010 5438 3854 1000 0000 0000 0000 +0000 0000 0010 107c 1010 0000 0000 0000 +0000 0000 0000 0000 0000 1010 1020 0000 +0000 0000 0000 007c 0000 0000 0000 0000 +0000 0000 0000 0000 0000 1010 0000 0000 +0000 0004 0408 0810 1020 2040 4000 0000 +0000 0038 4444 4444 4444 4438 0000 0000 +0000 0010 3010 1010 1010 1010 0000 0000 +0000 0038 4404 0408 1020 407c 0000 0000 +0000 0038 4404 1804 0404 4438 0000 0000 +0000 0008 1828 487c 0808 0808 0000 0000 +0000 007c 4040 7804 0404 4438 0000 0000 +0000 0018 2040 7844 4444 4438 0000 0000 +0000 007c 0404 0810 1010 1010 0000 0000 +0000 0038 4444 3844 4444 4438 0000 0000 +0000 0038 4444 4444 3c04 0830 0000 0000 +0000 0000 0000 1010 0000 1010 0000 0000 +0000 0000 0000 1010 0000 1010 1020 0000 +0000 0000 0810 2040 2010 0800 0000 0000 +0000 0000 0000 7c00 7c00 0000 0000 0000 +0000 0000 2010 0804 0810 2000 0000 0000 +0000 0038 4404 0810 1000 1010 0000 0000 +0000 0000 0078 84b4 b4bc 8078 0000 0000 +0000 0038 4444 447c 4444 4444 0000 0000 +0000 0078 4444 7844 4444 4478 0000 0000 +0000 0038 4444 4040 4040 4438 0000 0000 +0000 0078 4444 4444 4444 4478 0000 0000 +0000 007c 4040 4078 4040 407c 0000 0000 +0000 007c 4040 4078 4040 4040 0000 0000 +0000 0038 4440 404c 4444 4438 0000 0000 +0000 0044 4444 447c 4444 4444 0000 0000 +0000 0010 1010 1010 1010 1010 0000 0000 +0000 0004 0404 0404 0444 4438 0000 0000 +0000 0044 4850 6040 6050 4844 0000 0000 +0000 0040 4040 4040 4040 407c 0000 0000 +0000 0044 6c54 4444 4444 4444 0000 0000 +0000 0044 4464 544c 4444 4444 0000 0000 +0000 0038 4444 4444 4444 4438 0000 0000 +0000 0078 4444 4478 4040 4040 0000 0000 +0000 0038 4444 4444 4444 4438 1008 0000 +0000 0078 4444 4478 4444 4444 0000 0000 +0000 0038 4440 4038 0404 4438 0000 0000 +0000 007c 1010 1010 1010 1010 0000 0000 +0000 0044 4444 4444 4444 4438 0000 0000 +0000 0044 4444 4444 4444 2810 0000 0000 +0000 0044 4444 4444 4454 6c44 0000 0000 +0000 0044 4444 2810 2844 4444 0000 0000 +0000 0044 4444 4428 1010 1010 0000 0000 +0000 007c 0404 0810 2040 407c 0000 0000 +0000 3820 2020 2020 2020 2020 3800 0000 +0000 0040 4020 2010 1008 0804 0400 0000 +0000 3808 0808 0808 0808 0808 3800 0000 +0000 0010 2844 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 00fe 0000 0000 +0000 0010 0800 0000 0000 0000 0000 0000 +0000 0000 0000 3c44 4444 4c34 0000 0000 +0000 0040 4040 7844 4444 4478 0000 0000 +0000 0000 0000 3844 4040 4438 0000 0000 +0000 0004 0404 3c44 4444 443c 0000 0000 +0000 0000 0000 3844 7c40 4438 0000 0000 +0000 000c 1010 3810 1010 1010 0000 0000 +0000 0000 0000 3c44 4444 443c 0444 3800 +0000 0040 4040 7844 4444 4444 0000 0000 +0000 0010 1000 1010 1010 1010 0000 0000 +0000 0010 1000 1010 1010 1010 1010 6000 +0000 0040 4040 4850 6050 4844 0000 0000 +0000 0010 1010 1010 1010 1010 0000 0000 +0000 0000 0000 7854 5454 5454 0000 0000 +0000 0000 0000 7844 4444 4444 0000 0000 +0000 0000 0000 3844 4444 4438 0000 0000 +0000 0000 0000 7844 4444 4478 4040 0000 +0000 0000 0000 3c44 4444 443c 0404 0000 +0000 0000 0000 5864 4440 4040 0000 0000 +0000 0000 0000 3844 3804 4438 0000 0000 +0000 0000 2020 7020 2020 2018 0000 0000 +0000 0000 0000 4444 4444 4c34 0000 0000 +0000 0000 0000 4444 4444 2810 0000 0000 +0000 0000 0000 5454 5454 5428 0000 0000 +0000 0000 0000 4428 1010 2844 0000 0000 +0000 0000 0000 4444 4444 443c 0444 3800 +0000 0000 0000 7c08 1020 407c 0000 0000 +0000 0810 1010 1020 1010 1010 0800 0000 +0000 1010 1010 1010 1010 1010 1000 0000 +0000 2010 1010 1008 1010 1010 2000 0000 +0000 0034 5800 0000 0000 0000 0000 0000 diff --git a/gui/shaviankb/shaviankb.tal b/gui/shaviankb/shaviankb.tal index 116959c..639573d 100644 --- a/gui/shaviankb/shaviankb.tal +++ b/gui/shaviankb/shaviankb.tal @@ -156,7 +156,7 @@ .hover LDZ2 ;btn-chr DUP2 ;btn-hover-chr .hover STZ2 - JMP2r } + ! } POP2 JMP2r @ ( id* -- ) @@ -223,8 +223,33 @@ .Screen/x DEI2k #0008 SUB2 ROT DEO2 .Screen/y DEI2k #0016 ADD2 ROT DEO2 ;keys/space #05 + ( | draw hint ) + JMP2r +@ ( -- ) + ( | clear ) + #0050 .Screen/x DEO2 + #00b2 .Screen/y DEO2 + [ LIT2 f2 -Screen/auto ] DEO + ;fill-icn .Screen/addr DEO2 + [ LIT2 0f -Screen/sprite ] DEOk DEO + ( | draw ) + #0050 .Screen/x DEO2 + #00b2 .Screen/y DEO2 + .hover LDZ2 STH2k + ( key ) #0006 MUL2 ;layout ADD2 + ( layer ) STH2r get-layer #10 SFT2 ADD2 LDA2 + ( length ) #0010 ADD2 LDA2 ! + +@ ( addr* -- ) + [ LIT2 15 -Screen/auto ] DEO + &w ( -- ) + LDAk #20 SUB #00 SWP #40 SFT2 ;font-mono ADD2 .Screen/addr DEO2 + [ LIT2 0c -Screen/sprite ] DEO + INC2 LDAk ?&w + POP2 JMP2r + @ ( frame* -- ) DUP2 ;btn-press-chr NEQ2 #10 SFT INC ,&color STR STH2 @@ -304,6 +329,6 @@ &c ( -- ) #0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO JMP2r - + ~assets.tal