Z88 Developers' Notes
Contents   Contents of System Calls

GN_Win, Standard window create with banner and bottom line (OZ 4.2 and newer)

RST 20H, DEFW $7A09

IN:
        DE = (optional) "dynamic" pointer to banner (if banner pointer in definition block is 0)
       BHL = pointer to 7 byte window definition block (if B=0, then local pointer)

           Window Defintion Block offsets:            0:  A = window ID (bits 0-3). The ID is in range 1-8                bit 7=1, 6=1: Draw left & right bars, shelf brackets, banner text, bottom line                bit 7=1, 6=0: Draw left & right bars, shelf brackets, banner text                bit 7=0, 6=1: Draw left & right bars                bit 7=0, 6=0: Just create window space (no visible borders)                bit 5=1: 8 pixel inverted top banner (only evaluated with bit 7=1)                bit 5=0: 7 pixel inverted top banner (only evaluated with bit 7=1)                bit 4=1: For all windows: grey screen, then draw window to get a pop-up effect.            1:  X coordinate (upper left corner) of Window            2:  Y coordinate (upper left corner) of Window            3:  WIDTH of Window (inclusive banner & bottom line)            4:  HEIGHT of Window (inclusive banner & bottom line)            5:  low byte, high byte address of window banner text                Only specified if bit 7 of window ID is enabled.                Set pointer to 0, if using a dynamic banner (window with different banner each time)
OUT, if call successful: (always)      Fc = 0 Registers changed after return:      A.BCDEHL/IXIY same
     .F....../.... different
Notes:
Example of window definition block with extended window "2" having 8 pixel banner and bottom line:
           DEFB @11100000 | 2
           DEFW $0000
           DEFW $0811
           DEFW bannerptr ; this points to a banner text.
Bugs:

Related calls:

GN_Soe, write string at extended address to standard output
GN_Sop, write string to standard output, local memory
OS_Bout, write null-terminated string block at (B)HL to standard output
OS_Out,  write character to standard output
OS_Poutwrite embedded null-terminated string at caller (PC) to standard output