- Font.getFont()
- returns the string path to the current font.
- The default font would be in the rom directory somewhere - perhaps "rom/font"?
- Font.setFont(string path, boolean blocking)
- sets the current font on the current computer to the font file at path, returning a boolean representing if the font load was successful.
- This is only allowed to be executed once per second - additional calls will either return false (if not blocking), or sleep until the delay time is up (if blocking is true or nil).
- When it is executed, (either of these - dunno which would be better) {the screen will be cleared} {existing characters will be redrawn with the current font}.
A font file is a flat 1-bit bitmap, of size 16wx14h characters, or 128wx112h pixels, stored in row-major L-R T-B order. This allows for every non-control character to be represented. Each font file is thus 1792 bytes, or 1.75kb. Ones represent the foreground color (white on normal computers), and zeroes represent the background color (black on normal computers). The character index starts at character 32 at the top-left, and extends in reading order (L-R then T-B)/>.
Note that this would allow basic 2x4 sub-pixel rendering while leaving room for the standard characters, assuming one had the proper font file and rendering code.
It wouldn't have issues with either rendering or data transfer, as (assuming font changes are limited to 1/s) there would be a maximum of 1.75kb/s/computer (+ packet overhead) of extra data transfer.