QDOS Internals

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

User Tools

Site Tools


Application Sub-Windows

The size of the definition of an application sub-window depends on its use. It is not practical therefore to have a list of the definitions. Instead there is a list of long word pointers to the definitions. This list is terminated by a zero long word.

The smallest definition consists of a window definition followed by two control definitions.

Application Window Basic Definition

Name     Off Size Description
wwa_xsiz $00 word width in pixels
wwa_ysiz $02 word height in pixels
wwa_xorg $04 word x origin
wwa_yorg $06 word y origin
wwa_watt $08      sub-window attributes (See Note)
wwa_pspr $10 long pointer to sprite for this sub-window
wwa_draw $1c long pointer to draw routine
wwa_hit  $18 long pointer to hit routine
wwa_ctrl $1c long pointer to control routine (or 0)
wwa_nxsc $20 word maximum number of x control sections
wwa_nysc $22 word maximum number of y control sections
wwa_skey $24 byte selection key
wwa.blen $28      length of basic definition


Two control definitions follow. The first is for pannable sub-windows and the second for scrollable sub-windows. If there is no panning or scrolling the appropriate definition is filled with zeros.

The first definition starts at offset $28 and the second wwa.clen bytes later at offset $48.

Control Definition

Name     Off Size Description
wwa_part $28 long pointer to control block (or 0)
         $2c      20 unused bytes
wwa_psac $40 word pan or scroll arrow colour
wwa_psbc $42 word pan or scroll bar colour
wwa_pssc $44 word pan or scroll bar section colour
wwa.clen $1e      control definition length

Control Block

The operation of pannable or scrollable windows is governed by the relevant control block. Such a window can be divided into sections by a DO on the pan or scroll bar. The maximum number of possible sections is given in wwa_nxsc and wwa_nysc for panning and scrolling.


  • The number of sections (wss_nsec) can vary between 1 and nxsc/nysc.
  • There must be nxsc or nysc records in the control block as appropriate.
  • The start column or row (wss_stt) is the number from the full grid. Thus a split scrolling section could start at row 20 for example.
qdosmsq/pe/struct/appw.txt · Last modified: 2011/11/09 16:28 by george.gwilt