SD_FOUNT/IOW_FONT
This trap sets the font for a window.
Call Parameters | Return Parameters |
D0.B | $25 | D0.L | Error code. |
D1.L | Unused. | D1.L | Corrupted. |
D2.L | 0 or "DEFF" | D2.L | Preserved. |
D3.W | Timeout. | D3.L | Preserved. |
A0.L | Channel ID. | A0.L | Preserved. |
A1.L | Base of 1st Font. | A1.L | Corrupted. |
A2.L | Base of 2nd Font. | A2.L | Preserved. |
Errors
ERR_NC | Not complete. |
ERR_NO | Channel not found. |
Notes
All registers not shown above are not used on entry and are preserved on exit.
The registers A1 and A2 each either point to a font or are zero in which case the relevant default font is set.
Each font must be stored in memory in a particular way as shown below.
The value in D2.L is ignored by QDOS, but if it is "DEFF" in SMSQ/E then any font set by this call is used in subsequently opened channels.
If a character sent to a window is a valid character in the first font it is printed otherwise if it is a valid character in the second font that will be printed. If no valid character is found in either font the first character in the second font will be printed.
Address | Length | Item |
$00 | Byte | 1st valid character |
$01 | Byte | Number of valid characters |
$02 | 9 bytes | 1st character |
$0B | 9 bytes | 2nd character |
.. | .. | .. |
Each character consists of a 5x9 array printed in a 6x10 rectangle and
is stored in bits 6 to 2 in each byte of a set of 9 representing the printable rows from top to bottom. The top row in the 6x10 rectangle is blank.