qdosmsq:traps:trap_3:font

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

qdosmsq:traps:trap_3:font [2010/11/17 17:19] (current)
george.gwilt created
Line 1: Line 1:
 +====== 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.
 +===== Font Format =====
 +
 +
 +^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.
 +
  
  • qdosmsq/traps/trap_3/font.txt
  • Last modified: 2010/11/17 17:19
  • by george.gwilt