newRPL fully supports font customization: each part of the display interface uses its own font, as well as selected environments such as the command line or the forms engine.
Since text support in newRPL is based on Unicode 10.0, fonts support up to 65536 different glyphs and represent up to 1048576 different code points. Fonts can be any size and be fixed-width or proportional.
A font object is represented on the stack as FONTDATA xx yyy…
, where yyy…
is a string of characters (A
-Z
, a
-z
, $
and #
) encoding the glyphs and the translation table that associates glyphs to Unicode code points while xx
is the length (padded to a multiple of 4 bytes) of the aforementioned block, expressed in nibbles.
The installation of a font on the system is performed by storing the font object into a special variable, whose name will become the name of the font. The command FNTSTO
executes this operation. A font object can be recalled to the stack by the FNTRCL
command and uninstalled using the FNTPG
command.
newRPL already provides 11 system fonts which are always available and can't be uninstalled. Smaller sizes are suited for soft keys, while larger sizes are preferable for stack display; however nothing prevents using large sizes for soft keys and small sizes for stack display.
Size | Name | Notes |
---|---|---|
5 pixels | Font5A | |
Font5B | ||
Font5C | ||
6 pixels | Font6A | Default for Menu, Status Area and Plots |
Font6B | ||
7 pixels | Font7A | |
8 pixels | Font8A | |
Font8B | ||
Font8C | Default for Stack (1st level), Stack (other levels), Forms and Command Line | |
Font8D | ||
10 pixels | Font10A | Based on HP48 font |
These are the independent areas and environments that can be customized with fonts:
Command | Short Description | |
---|---|---|
FNTSTO | Install a user font for system use | NEW |
FNTRCL | Recall a system font | NEW |
FNTPG | Purge a user-installed system font | NEW |
FNTSTK | Recall name of current font for stack area | NEW |
FNT1STK | Recall name of current font for stack level 1 | NEW |
FNTMENU | Recall name of current font for menu area | NEW |
FNTCMDL | Recall name of current font for command line area | NEW |
FNTSTAT | Recall name of current font for status area | NEW |
FNTPLOT | Recall name of current font for plot objects | NEW |
FNTFORM | Recall name of current font for forms | NEW |
→FNTSTK | Change current font for stack area | NEW |
→FNT1STK | Change current font for stack level 1 | NEW |
→FNTMENU | Change current font for menu area | NEW |
→FNTCMDL | Change current font for command line area | NEW |
→FNTSTAT | Change current font for status area | NEW |
→FNTPLOT | Change current font for plot objects | NEW |
→FNTFORM | Change current font for forms | NEW |
FNTHELP | Recall name of current font for help | NEW |
FNTHLPT | Recall name of current font for help title | NEW |
→FNTHELP | Change current font for help text | NEW |
→FNTHLPT | Change current font for help title | NEW |