QDOS Internals

Anything you never knew you wanted to know about the Sinclair QL.

User Tools

Site Tools


qdosmsq:traps:trap_3:font

SD_FOUNT/IOW_FONT

This trap sets the font for a window.

Call ParametersReturn Parameters
D0.B$25D0.LError code.
D1.LUnused.D1.LCorrupted.
D2.L0 or "DEFF"D2.LPreserved.
D3.WTimeout.D3.LPreserved.
A0.LChannel ID.A0.LPreserved.
A1.LBase of 1st Font.A1.LCorrupted.
A2.LBase of 2nd Font.A2.LPreserved.

Errors

ERR_NCNot complete.
ERR_NOChannel 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.

Font Format

AddressLengthItem
$00Byte1st valid character
$01ByteNumber of valid characters
$029 bytes1st character
$0B9 bytes2nd 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.

qdosmsq/traps/trap_3/font.txt · Last modified: 2010/11/17 17:19 by george.gwilt