Home » Archimedes archive » Archimedes World » AW-1994-06-Disc2.adf » Disk2Jun94 » !AWJune94/Goodies/Zap/!Zap/Docs/E-Vars

!AWJune94/Goodies/Zap/!Zap/Docs/E-Vars

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1994-06-Disc2.adf » Disk2Jun94
Filename: !AWJune94/Goodies/Zap/!Zap/Docs/E-Vars
Read OK:
File size: 18A4 bytes
Load address: 0000
Exec address: 0000
File contents
*************************************************************************
* >E-Vars	Documents the variable numbers used by Zap_ReadVar	*
*************************************************************************

This documents the variable numbers used by the Zap_ReadVar and Zap_WriteVar
calls. Please note that the variables with names beginning 'opt_' are stored
in the !Config file and thus saved when the user clicks 'Options.Save'.

The options for a given mode are also stored in the !Config file. See below.

Number:	Variable name:	Contents:

0	scn_xos		Screen horizontal size (in os coords)
1	scn_yos		Screen vertical size (in os coords)
2	opt_flags	Config file flags word  (see E-Flags)
3	opt_format	Config file format word (see E-Format)
4	wimp_task	Zaps task handle
5	car_cursor	Cursor caret block pointer (see E-Cursors)
6	car_input	Input caret block pointer (see E-Cursors)
7	car_selection	Selection caret block pointer (see E-Cursors)
8	wind_num	Number of window blocks (see E-Windows)
9	file_num	Number of file blocks (see E-File)
10	car_mode	Current cursor editing mode (see E-Cursors)
11	wimp_version	Version number Zaps logged on as (200/300)
12	key_default	Default key map number
13	key_basemap	Basemap number
14	key_last	Zap key code of last key processed
15	key_lastcom	Address of last key command executed
16	mini_ptr	Address of minibuffer
17	mini_bufl	Size of minibuffer
18	mini_len	Size of data in minibuffer
19	mini_off	Offset of cursor in minibuffer
20	mini_mark	Offset of mark in minibuffer (see Zap_MiniWrite)
21	yank_ptr	Address of kill ring buffer
22	yank_len	Size of data in kill ring buffer
23	key_current	Current keymap number
24	opt_chars	Character set used for control characters (0-3)
25	opt_tab		Default column tab for windows.
26	opt_addr	Default address of first byte of file.
27	opt_stline	Default number of first line of file.
28	opt_linesp	Default line spacing in 1/8ths char.
29	env_start	Bottom of Zaps stack (&8000 except in test modes)
30	env_top		Start of free memory.
31	wimp_iconbar	Handle of iconbar icon.
32	wimp_timeformat	Standard time format string.
33	wimp_dateformat	Standard date format string.

Setting & Reading default mode options
--------------------------------------

Each mode has a word of workspace in a window block called w_moden (see
E-Windows). When a window is created, the default settings (stored in the
!Config file) for that mode is used. These default settings are stored in
memory, and saved when the user clicks on the 'save options' menu entry.
The variable number &100+n accesses the default mode word for mode numbered
n. Ie,

&100	opt_mode0	Text mode word
&101	opt_mode1	Byte mode word
&102	opt_mode2	Word mode word
... etc ...

If there was no information about the mode in the !Config file then the mode
word is set to 0. In this case, the mode should note this on startup (see
e_init with R1=2) and write some sensible default values to it. If the mode
has b10 set in it's e_mode word, then the mode word points to a block of
data, the first word in the block giving the total length of the block. The
mode can resize this block at any time using the standard heap calls. If the
mode word was 0 then the mode should claim a block at startup and set it up
with default values (and save the address of it's block in the mode word via
Zap_WriteVar).

If your mode word is zero when you start up then you should also define
sensible colours for your mode using Zap_ModeColours and a sensible width etc
using Zap_ModeData.

!Config file format
-------------------

The first word must be the bytes for the letters "Conf". Then the !Config
file consists of a list of blocks, terminated by a zero word. Each block has
the following format:

 #0	Block type:	0	End of list.
 			1	Zap global options storage block.
 			2	Mode dependant storage block.
 			3+	Undefined.
 #4	Total block length (offset from start of block to next block).
 #8 ...	Block data
 
Block type 1 is version dependent (see below).

If the block type is 2 then the block data has the following format

	#0	Mode name, zero terminated then align to next word.
		Length of Zap handled data for this mode (see below)
		Zap handled data for this mode (version dependant)
		Length of Mode handled data for this mode (0 if none).
		Mode handled data for the mode (mode dependant).

(NB If b10 of e_mode is set then the last two entries are written into a heap
block whose address is stored in opt_moden where n is the mode number which
is assigned to the mode. If not, the the first word of the data is put
in opt_moden)

Version 1.10
------------

The format of the Zap handled bits for version 1.1 is:

Block type 1 data: (total block length 8+&54=&5C)

		#&00	Reserved (set to 0)
                #&04	Reserved
                #&08	Reserved
                #&0C	Reserved
                #&10	Reserved
                #&14	character set to use for control characters (0-3)
		#&18	column tab width
		#&1C	opt_flags value (see E-Flags)
		#&20	opt_format value (see E-Flags)
		#&24	address of first byte of file (for line numbers)
		#&28	line number of first line of file
		#&2C	line spaceing
		#&30	margin width
		#&34	cursor types byte0=normal cursor byte1=split1 cursor
			byte2=split2 cursor byte3=mark position cursor.
			0=block 1=square 2=underscore 3=bar 4=none 5+=undefined
		#&38	Code of end of line x4 (eg &0a0a0a0a)
		#&3C	Code of tab character x4 (eg &09090909)
		#&40	Wordwrap width
		#&44	Minibuffer colours byte0=background wimp col
			byte1=foreground wimp colour
		#&48	Switches flags word:
			b0 set for flashing cursor
			b1 must be 0
			b2 set for date checking on file saving
			b3 set for clear search window automatically
			b4 must be 0
			b5 must be 0
			b6 set for confine cursor to window
			b7 must be 0
			b8-b31 reserved - must be 0
		#&4C	Reserved
		#&50	Reserved
		
Block type 2 data:

The Zap handled bit of it is 12 bytes long and documented below. The format
may change with future versions and should be read via Zap calls
Zap_ModeColour and Zap_ModeData if you are a Zap extension mode.

	#0	Mode data variable 0 - see Zap_ModeData call.
	#4 &#8	The current palette for this mode. The 16 nibbles give
		the wimp colours of the 16 colours with nibble0=background
		colour 1, nibble1=background colour 2 etc.
		See Zap_ModeColour.

00000000  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000040  2a 2a 2a 2a 2a 2a 2a 2a  2a 0a 2a 20 3e 45 2d 56  |*********.* >E-V|
00000050  61 72 73 09 44 6f 63 75  6d 65 6e 74 73 20 74 68  |ars.Documents th|
00000060  65 20 76 61 72 69 61 62  6c 65 20 6e 75 6d 62 65  |e variable numbe|
00000070  72 73 20 75 73 65 64 20  62 79 20 5a 61 70 5f 52  |rs used by Zap_R|
00000080  65 61 64 56 61 72 09 2a  0a 2a 2a 2a 2a 2a 2a 2a  |eadVar.*.*******|
00000090  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000000d0  2a 2a 0a 0a 54 68 69 73  20 64 6f 63 75 6d 65 6e  |**..This documen|
000000e0  74 73 20 74 68 65 20 76  61 72 69 61 62 6c 65 20  |ts the variable |
000000f0  6e 75 6d 62 65 72 73 20  75 73 65 64 20 62 79 20  |numbers used by |
00000100  74 68 65 20 5a 61 70 5f  52 65 61 64 56 61 72 20  |the Zap_ReadVar |
00000110  61 6e 64 20 5a 61 70 5f  57 72 69 74 65 56 61 72  |and Zap_WriteVar|
00000120  0a 63 61 6c 6c 73 2e 20  50 6c 65 61 73 65 20 6e  |.calls. Please n|
00000130  6f 74 65 20 74 68 61 74  20 74 68 65 20 76 61 72  |ote that the var|
00000140  69 61 62 6c 65 73 20 77  69 74 68 20 6e 61 6d 65  |iables with name|
00000150  73 20 62 65 67 69 6e 6e  69 6e 67 20 27 6f 70 74  |s beginning 'opt|
00000160  5f 27 20 61 72 65 20 73  74 6f 72 65 64 0a 69 6e  |_' are stored.in|
00000170  20 74 68 65 20 21 43 6f  6e 66 69 67 20 66 69 6c  | the !Config fil|
00000180  65 20 61 6e 64 20 74 68  75 73 20 73 61 76 65 64  |e and thus saved|
00000190  20 77 68 65 6e 20 74 68  65 20 75 73 65 72 20 63  | when the user c|
000001a0  6c 69 63 6b 73 20 27 4f  70 74 69 6f 6e 73 2e 53  |licks 'Options.S|
000001b0  61 76 65 27 2e 0a 0a 54  68 65 20 6f 70 74 69 6f  |ave'...The optio|
000001c0  6e 73 20 66 6f 72 20 61  20 67 69 76 65 6e 20 6d  |ns for a given m|
000001d0  6f 64 65 20 61 72 65 20  61 6c 73 6f 20 73 74 6f  |ode are also sto|
000001e0  72 65 64 20 69 6e 20 74  68 65 20 21 43 6f 6e 66  |red in the !Conf|
000001f0  69 67 20 66 69 6c 65 2e  20 53 65 65 20 62 65 6c  |ig file. See bel|
00000200  6f 77 2e 0a 0a 4e 75 6d  62 65 72 3a 09 56 61 72  |ow...Number:.Var|
00000210  69 61 62 6c 65 20 6e 61  6d 65 3a 09 43 6f 6e 74  |iable name:.Cont|
00000220  65 6e 74 73 3a 0a 0a 30  09 73 63 6e 5f 78 6f 73  |ents:..0.scn_xos|
00000230  09 09 53 63 72 65 65 6e  20 68 6f 72 69 7a 6f 6e  |..Screen horizon|
00000240  74 61 6c 20 73 69 7a 65  20 28 69 6e 20 6f 73 20  |tal size (in os |
00000250  63 6f 6f 72 64 73 29 0a  31 09 73 63 6e 5f 79 6f  |coords).1.scn_yo|
00000260  73 09 09 53 63 72 65 65  6e 20 76 65 72 74 69 63  |s..Screen vertic|
00000270  61 6c 20 73 69 7a 65 20  28 69 6e 20 6f 73 20 63  |al size (in os c|
00000280  6f 6f 72 64 73 29 0a 32  09 6f 70 74 5f 66 6c 61  |oords).2.opt_fla|
00000290  67 73 09 43 6f 6e 66 69  67 20 66 69 6c 65 20 66  |gs.Config file f|
000002a0  6c 61 67 73 20 77 6f 72  64 20 20 28 73 65 65 20  |lags word  (see |
000002b0  45 2d 46 6c 61 67 73 29  0a 33 09 6f 70 74 5f 66  |E-Flags).3.opt_f|
000002c0  6f 72 6d 61 74 09 43 6f  6e 66 69 67 20 66 69 6c  |ormat.Config fil|
000002d0  65 20 66 6f 72 6d 61 74  20 77 6f 72 64 20 28 73  |e format word (s|
000002e0  65 65 20 45 2d 46 6f 72  6d 61 74 29 0a 34 09 77  |ee E-Format).4.w|
000002f0  69 6d 70 5f 74 61 73 6b  09 5a 61 70 73 20 74 61  |imp_task.Zaps ta|
00000300  73 6b 20 68 61 6e 64 6c  65 0a 35 09 63 61 72 5f  |sk handle.5.car_|
00000310  63 75 72 73 6f 72 09 43  75 72 73 6f 72 20 63 61  |cursor.Cursor ca|
00000320  72 65 74 20 62 6c 6f 63  6b 20 70 6f 69 6e 74 65  |ret block pointe|
00000330  72 20 28 73 65 65 20 45  2d 43 75 72 73 6f 72 73  |r (see E-Cursors|
00000340  29 0a 36 09 63 61 72 5f  69 6e 70 75 74 09 49 6e  |).6.car_input.In|
00000350  70 75 74 20 63 61 72 65  74 20 62 6c 6f 63 6b 20  |put caret block |
00000360  70 6f 69 6e 74 65 72 20  28 73 65 65 20 45 2d 43  |pointer (see E-C|
00000370  75 72 73 6f 72 73 29 0a  37 09 63 61 72 5f 73 65  |ursors).7.car_se|
00000380  6c 65 63 74 69 6f 6e 09  53 65 6c 65 63 74 69 6f  |lection.Selectio|
00000390  6e 20 63 61 72 65 74 20  62 6c 6f 63 6b 20 70 6f  |n caret block po|
000003a0  69 6e 74 65 72 20 28 73  65 65 20 45 2d 43 75 72  |inter (see E-Cur|
000003b0  73 6f 72 73 29 0a 38 09  77 69 6e 64 5f 6e 75 6d  |sors).8.wind_num|
000003c0  09 4e 75 6d 62 65 72 20  6f 66 20 77 69 6e 64 6f  |.Number of windo|
000003d0  77 20 62 6c 6f 63 6b 73  20 28 73 65 65 20 45 2d  |w blocks (see E-|
000003e0  57 69 6e 64 6f 77 73 29  0a 39 09 66 69 6c 65 5f  |Windows).9.file_|
000003f0  6e 75 6d 09 4e 75 6d 62  65 72 20 6f 66 20 66 69  |num.Number of fi|
00000400  6c 65 20 62 6c 6f 63 6b  73 20 28 73 65 65 20 45  |le blocks (see E|
00000410  2d 46 69 6c 65 29 0a 31  30 09 63 61 72 5f 6d 6f  |-File).10.car_mo|
00000420  64 65 09 43 75 72 72 65  6e 74 20 63 75 72 73 6f  |de.Current curso|
00000430  72 20 65 64 69 74 69 6e  67 20 6d 6f 64 65 20 28  |r editing mode (|
00000440  73 65 65 20 45 2d 43 75  72 73 6f 72 73 29 0a 31  |see E-Cursors).1|
00000450  31 09 77 69 6d 70 5f 76  65 72 73 69 6f 6e 09 56  |1.wimp_version.V|
00000460  65 72 73 69 6f 6e 20 6e  75 6d 62 65 72 20 5a 61  |ersion number Za|
00000470  70 73 20 6c 6f 67 67 65  64 20 6f 6e 20 61 73 20  |ps logged on as |
00000480  28 32 30 30 2f 33 30 30  29 0a 31 32 09 6b 65 79  |(200/300).12.key|
00000490  5f 64 65 66 61 75 6c 74  09 44 65 66 61 75 6c 74  |_default.Default|
000004a0  20 6b 65 79 20 6d 61 70  20 6e 75 6d 62 65 72 0a  | key map number.|
000004b0  31 33 09 6b 65 79 5f 62  61 73 65 6d 61 70 09 42  |13.key_basemap.B|
000004c0  61 73 65 6d 61 70 20 6e  75 6d 62 65 72 0a 31 34  |asemap number.14|
000004d0  09 6b 65 79 5f 6c 61 73  74 09 5a 61 70 20 6b 65  |.key_last.Zap ke|
000004e0  79 20 63 6f 64 65 20 6f  66 20 6c 61 73 74 20 6b  |y code of last k|
000004f0  65 79 20 70 72 6f 63 65  73 73 65 64 0a 31 35 09  |ey processed.15.|
00000500  6b 65 79 5f 6c 61 73 74  63 6f 6d 09 41 64 64 72  |key_lastcom.Addr|
00000510  65 73 73 20 6f 66 20 6c  61 73 74 20 6b 65 79 20  |ess of last key |
00000520  63 6f 6d 6d 61 6e 64 20  65 78 65 63 75 74 65 64  |command executed|
00000530  0a 31 36 09 6d 69 6e 69  5f 70 74 72 09 41 64 64  |.16.mini_ptr.Add|
00000540  72 65 73 73 20 6f 66 20  6d 69 6e 69 62 75 66 66  |ress of minibuff|
00000550  65 72 0a 31 37 09 6d 69  6e 69 5f 62 75 66 6c 09  |er.17.mini_bufl.|
00000560  53 69 7a 65 20 6f 66 20  6d 69 6e 69 62 75 66 66  |Size of minibuff|
00000570  65 72 0a 31 38 09 6d 69  6e 69 5f 6c 65 6e 09 53  |er.18.mini_len.S|
00000580  69 7a 65 20 6f 66 20 64  61 74 61 20 69 6e 20 6d  |ize of data in m|
00000590  69 6e 69 62 75 66 66 65  72 0a 31 39 09 6d 69 6e  |inibuffer.19.min|
000005a0  69 5f 6f 66 66 09 4f 66  66 73 65 74 20 6f 66 20  |i_off.Offset of |
000005b0  63 75 72 73 6f 72 20 69  6e 20 6d 69 6e 69 62 75  |cursor in minibu|
000005c0  66 66 65 72 0a 32 30 09  6d 69 6e 69 5f 6d 61 72  |ffer.20.mini_mar|
000005d0  6b 09 4f 66 66 73 65 74  20 6f 66 20 6d 61 72 6b  |k.Offset of mark|
000005e0  20 69 6e 20 6d 69 6e 69  62 75 66 66 65 72 20 28  | in minibuffer (|
000005f0  73 65 65 20 5a 61 70 5f  4d 69 6e 69 57 72 69 74  |see Zap_MiniWrit|
00000600  65 29 0a 32 31 09 79 61  6e 6b 5f 70 74 72 09 41  |e).21.yank_ptr.A|
00000610  64 64 72 65 73 73 20 6f  66 20 6b 69 6c 6c 20 72  |ddress of kill r|
00000620  69 6e 67 20 62 75 66 66  65 72 0a 32 32 09 79 61  |ing buffer.22.ya|
00000630  6e 6b 5f 6c 65 6e 09 53  69 7a 65 20 6f 66 20 64  |nk_len.Size of d|
00000640  61 74 61 20 69 6e 20 6b  69 6c 6c 20 72 69 6e 67  |ata in kill ring|
00000650  20 62 75 66 66 65 72 0a  32 33 09 6b 65 79 5f 63  | buffer.23.key_c|
00000660  75 72 72 65 6e 74 09 43  75 72 72 65 6e 74 20 6b  |urrent.Current k|
00000670  65 79 6d 61 70 20 6e 75  6d 62 65 72 0a 32 34 09  |eymap number.24.|
00000680  6f 70 74 5f 63 68 61 72  73 09 43 68 61 72 61 63  |opt_chars.Charac|
00000690  74 65 72 20 73 65 74 20  75 73 65 64 20 66 6f 72  |ter set used for|
000006a0  20 63 6f 6e 74 72 6f 6c  20 63 68 61 72 61 63 74  | control charact|
000006b0  65 72 73 20 28 30 2d 33  29 0a 32 35 09 6f 70 74  |ers (0-3).25.opt|
000006c0  5f 74 61 62 09 09 44 65  66 61 75 6c 74 20 63 6f  |_tab..Default co|
000006d0  6c 75 6d 6e 20 74 61 62  20 66 6f 72 20 77 69 6e  |lumn tab for win|
000006e0  64 6f 77 73 2e 0a 32 36  09 6f 70 74 5f 61 64 64  |dows..26.opt_add|
000006f0  72 09 44 65 66 61 75 6c  74 20 61 64 64 72 65 73  |r.Default addres|
00000700  73 20 6f 66 20 66 69 72  73 74 20 62 79 74 65 20  |s of first byte |
00000710  6f 66 20 66 69 6c 65 2e  0a 32 37 09 6f 70 74 5f  |of file..27.opt_|
00000720  73 74 6c 69 6e 65 09 44  65 66 61 75 6c 74 20 6e  |stline.Default n|
00000730  75 6d 62 65 72 20 6f 66  20 66 69 72 73 74 20 6c  |umber of first l|
00000740  69 6e 65 20 6f 66 20 66  69 6c 65 2e 0a 32 38 09  |ine of file..28.|
00000750  6f 70 74 5f 6c 69 6e 65  73 70 09 44 65 66 61 75  |opt_linesp.Defau|
00000760  6c 74 20 6c 69 6e 65 20  73 70 61 63 69 6e 67 20  |lt line spacing |
00000770  69 6e 20 31 2f 38 74 68  73 20 63 68 61 72 2e 0a  |in 1/8ths char..|
00000780  32 39 09 65 6e 76 5f 73  74 61 72 74 09 42 6f 74  |29.env_start.Bot|
00000790  74 6f 6d 20 6f 66 20 5a  61 70 73 20 73 74 61 63  |tom of Zaps stac|
000007a0  6b 20 28 26 38 30 30 30  20 65 78 63 65 70 74 20  |k (&8000 except |
000007b0  69 6e 20 74 65 73 74 20  6d 6f 64 65 73 29 0a 33  |in test modes).3|
000007c0  30 09 65 6e 76 5f 74 6f  70 09 09 53 74 61 72 74  |0.env_top..Start|
000007d0  20 6f 66 20 66 72 65 65  20 6d 65 6d 6f 72 79 2e  | of free memory.|
000007e0  0a 33 31 09 77 69 6d 70  5f 69 63 6f 6e 62 61 72  |.31.wimp_iconbar|
000007f0  09 48 61 6e 64 6c 65 20  6f 66 20 69 63 6f 6e 62  |.Handle of iconb|
00000800  61 72 20 69 63 6f 6e 2e  0a 33 32 09 77 69 6d 70  |ar icon..32.wimp|
00000810  5f 74 69 6d 65 66 6f 72  6d 61 74 09 53 74 61 6e  |_timeformat.Stan|
00000820  64 61 72 64 20 74 69 6d  65 20 66 6f 72 6d 61 74  |dard time format|
00000830  20 73 74 72 69 6e 67 2e  0a 33 33 09 77 69 6d 70  | string..33.wimp|
00000840  5f 64 61 74 65 66 6f 72  6d 61 74 09 53 74 61 6e  |_dateformat.Stan|
00000850  64 61 72 64 20 64 61 74  65 20 66 6f 72 6d 61 74  |dard date format|
00000860  20 73 74 72 69 6e 67 2e  0a 0a 53 65 74 74 69 6e  | string...Settin|
00000870  67 20 26 20 52 65 61 64  69 6e 67 20 64 65 66 61  |g & Reading defa|
00000880  75 6c 74 20 6d 6f 64 65  20 6f 70 74 69 6f 6e 73  |ult mode options|
00000890  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
000008a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000008b0  2d 2d 2d 2d 2d 2d 2d 0a  0a 45 61 63 68 20 6d 6f  |-------..Each mo|
000008c0  64 65 20 68 61 73 20 61  20 77 6f 72 64 20 6f 66  |de has a word of|
000008d0  20 77 6f 72 6b 73 70 61  63 65 20 69 6e 20 61 20  | workspace in a |
000008e0  77 69 6e 64 6f 77 20 62  6c 6f 63 6b 20 63 61 6c  |window block cal|
000008f0  6c 65 64 20 77 5f 6d 6f  64 65 6e 20 28 73 65 65  |led w_moden (see|
00000900  0a 45 2d 57 69 6e 64 6f  77 73 29 2e 20 57 68 65  |.E-Windows). Whe|
00000910  6e 20 61 20 77 69 6e 64  6f 77 20 69 73 20 63 72  |n a window is cr|
00000920  65 61 74 65 64 2c 20 74  68 65 20 64 65 66 61 75  |eated, the defau|
00000930  6c 74 20 73 65 74 74 69  6e 67 73 20 28 73 74 6f  |lt settings (sto|
00000940  72 65 64 20 69 6e 20 74  68 65 0a 21 43 6f 6e 66  |red in the.!Conf|
00000950  69 67 20 66 69 6c 65 29  20 66 6f 72 20 74 68 61  |ig file) for tha|
00000960  74 20 6d 6f 64 65 20 69  73 20 75 73 65 64 2e 20  |t mode is used. |
00000970  54 68 65 73 65 20 64 65  66 61 75 6c 74 20 73 65  |These default se|
00000980  74 74 69 6e 67 73 20 61  72 65 20 73 74 6f 72 65  |ttings are store|
00000990  64 20 69 6e 0a 6d 65 6d  6f 72 79 2c 20 61 6e 64  |d in.memory, and|
000009a0  20 73 61 76 65 64 20 77  68 65 6e 20 74 68 65 20  | saved when the |
000009b0  75 73 65 72 20 63 6c 69  63 6b 73 20 6f 6e 20 74  |user clicks on t|
000009c0  68 65 20 27 73 61 76 65  20 6f 70 74 69 6f 6e 73  |he 'save options|
000009d0  27 20 6d 65 6e 75 20 65  6e 74 72 79 2e 0a 54 68  |' menu entry..Th|
000009e0  65 20 76 61 72 69 61 62  6c 65 20 6e 75 6d 62 65  |e variable numbe|
000009f0  72 20 26 31 30 30 2b 6e  20 61 63 63 65 73 73 65  |r &100+n accesse|
00000a00  73 20 74 68 65 20 64 65  66 61 75 6c 74 20 6d 6f  |s the default mo|
00000a10  64 65 20 77 6f 72 64 20  66 6f 72 20 6d 6f 64 65  |de word for mode|
00000a20  20 6e 75 6d 62 65 72 65  64 0a 6e 2e 20 49 65 2c  | numbered.n. Ie,|
00000a30  0a 0a 26 31 30 30 09 6f  70 74 5f 6d 6f 64 65 30  |..&100.opt_mode0|
00000a40  09 54 65 78 74 20 6d 6f  64 65 20 77 6f 72 64 0a  |.Text mode word.|
00000a50  26 31 30 31 09 6f 70 74  5f 6d 6f 64 65 31 09 42  |&101.opt_mode1.B|
00000a60  79 74 65 20 6d 6f 64 65  20 77 6f 72 64 0a 26 31  |yte mode word.&1|
00000a70  30 32 09 6f 70 74 5f 6d  6f 64 65 32 09 57 6f 72  |02.opt_mode2.Wor|
00000a80  64 20 6d 6f 64 65 20 77  6f 72 64 0a 2e 2e 2e 20  |d mode word.... |
00000a90  65 74 63 20 2e 2e 2e 0a  0a 49 66 20 74 68 65 72  |etc .....If ther|
00000aa0  65 20 77 61 73 20 6e 6f  20 69 6e 66 6f 72 6d 61  |e was no informa|
00000ab0  74 69 6f 6e 20 61 62 6f  75 74 20 74 68 65 20 6d  |tion about the m|
00000ac0  6f 64 65 20 69 6e 20 74  68 65 20 21 43 6f 6e 66  |ode in the !Conf|
00000ad0  69 67 20 66 69 6c 65 20  74 68 65 6e 20 74 68 65  |ig file then the|
00000ae0  20 6d 6f 64 65 0a 77 6f  72 64 20 69 73 20 73 65  | mode.word is se|
00000af0  74 20 74 6f 20 30 2e 20  49 6e 20 74 68 69 73 20  |t to 0. In this |
00000b00  63 61 73 65 2c 20 74 68  65 20 6d 6f 64 65 20 73  |case, the mode s|
00000b10  68 6f 75 6c 64 20 6e 6f  74 65 20 74 68 69 73 20  |hould note this |
00000b20  6f 6e 20 73 74 61 72 74  75 70 20 28 73 65 65 0a  |on startup (see.|
00000b30  65 5f 69 6e 69 74 20 77  69 74 68 20 52 31 3d 32  |e_init with R1=2|
00000b40  29 20 61 6e 64 20 77 72  69 74 65 20 73 6f 6d 65  |) and write some|
00000b50  20 73 65 6e 73 69 62 6c  65 20 64 65 66 61 75 6c  | sensible defaul|
00000b60  74 20 76 61 6c 75 65 73  20 74 6f 20 69 74 2e 20  |t values to it. |
00000b70  49 66 20 74 68 65 20 6d  6f 64 65 0a 68 61 73 20  |If the mode.has |
00000b80  62 31 30 20 73 65 74 20  69 6e 20 69 74 27 73 20  |b10 set in it's |
00000b90  65 5f 6d 6f 64 65 20 77  6f 72 64 2c 20 74 68 65  |e_mode word, the|
00000ba0  6e 20 74 68 65 20 6d 6f  64 65 20 77 6f 72 64 20  |n the mode word |
00000bb0  70 6f 69 6e 74 73 20 74  6f 20 61 20 62 6c 6f 63  |points to a bloc|
00000bc0  6b 20 6f 66 0a 64 61 74  61 2c 20 74 68 65 20 66  |k of.data, the f|
00000bd0  69 72 73 74 20 77 6f 72  64 20 69 6e 20 74 68 65  |irst word in the|
00000be0  20 62 6c 6f 63 6b 20 67  69 76 69 6e 67 20 74 68  | block giving th|
00000bf0  65 20 74 6f 74 61 6c 20  6c 65 6e 67 74 68 20 6f  |e total length o|
00000c00  66 20 74 68 65 20 62 6c  6f 63 6b 2e 20 54 68 65  |f the block. The|
00000c10  0a 6d 6f 64 65 20 63 61  6e 20 72 65 73 69 7a 65  |.mode can resize|
00000c20  20 74 68 69 73 20 62 6c  6f 63 6b 20 61 74 20 61  | this block at a|
00000c30  6e 79 20 74 69 6d 65 20  75 73 69 6e 67 20 74 68  |ny time using th|
00000c40  65 20 73 74 61 6e 64 61  72 64 20 68 65 61 70 20  |e standard heap |
00000c50  63 61 6c 6c 73 2e 20 49  66 20 74 68 65 0a 6d 6f  |calls. If the.mo|
00000c60  64 65 20 77 6f 72 64 20  77 61 73 20 30 20 74 68  |de word was 0 th|
00000c70  65 6e 20 74 68 65 20 6d  6f 64 65 20 73 68 6f 75  |en the mode shou|
00000c80  6c 64 20 63 6c 61 69 6d  20 61 20 62 6c 6f 63 6b  |ld claim a block|
00000c90  20 61 74 20 73 74 61 72  74 75 70 20 61 6e 64 20  | at startup and |
00000ca0  73 65 74 20 69 74 20 75  70 0a 77 69 74 68 20 64  |set it up.with d|
00000cb0  65 66 61 75 6c 74 20 76  61 6c 75 65 73 20 28 61  |efault values (a|
00000cc0  6e 64 20 73 61 76 65 20  74 68 65 20 61 64 64 72  |nd save the addr|
00000cd0  65 73 73 20 6f 66 20 69  74 27 73 20 62 6c 6f 63  |ess of it's bloc|
00000ce0  6b 20 69 6e 20 74 68 65  20 6d 6f 64 65 20 77 6f  |k in the mode wo|
00000cf0  72 64 20 76 69 61 0a 5a  61 70 5f 57 72 69 74 65  |rd via.Zap_Write|
00000d00  56 61 72 29 2e 0a 0a 49  66 20 79 6f 75 72 20 6d  |Var)...If your m|
00000d10  6f 64 65 20 77 6f 72 64  20 69 73 20 7a 65 72 6f  |ode word is zero|
00000d20  20 77 68 65 6e 20 79 6f  75 20 73 74 61 72 74 20  | when you start |
00000d30  75 70 20 74 68 65 6e 20  79 6f 75 20 73 68 6f 75  |up then you shou|
00000d40  6c 64 20 61 6c 73 6f 20  64 65 66 69 6e 65 0a 73  |ld also define.s|
00000d50  65 6e 73 69 62 6c 65 20  63 6f 6c 6f 75 72 73 20  |ensible colours |
00000d60  66 6f 72 20 79 6f 75 72  20 6d 6f 64 65 20 75 73  |for your mode us|
00000d70  69 6e 67 20 5a 61 70 5f  4d 6f 64 65 43 6f 6c 6f  |ing Zap_ModeColo|
00000d80  75 72 73 20 61 6e 64 20  61 20 73 65 6e 73 69 62  |urs and a sensib|
00000d90  6c 65 20 77 69 64 74 68  20 65 74 63 0a 75 73 69  |le width etc.usi|
00000da0  6e 67 20 5a 61 70 5f 4d  6f 64 65 44 61 74 61 2e  |ng Zap_ModeData.|
00000db0  0a 0a 21 43 6f 6e 66 69  67 20 66 69 6c 65 20 66  |..!Config file f|
00000dc0  6f 72 6d 61 74 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |ormat.----------|
00000dd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 0a 54 68 65 20 66  |---------..The f|
00000de0  69 72 73 74 20 77 6f 72  64 20 6d 75 73 74 20 62  |irst word must b|
00000df0  65 20 74 68 65 20 62 79  74 65 73 20 66 6f 72 20  |e the bytes for |
00000e00  74 68 65 20 6c 65 74 74  65 72 73 20 22 43 6f 6e  |the letters "Con|
00000e10  66 22 2e 20 54 68 65 6e  20 74 68 65 20 21 43 6f  |f". Then the !Co|
00000e20  6e 66 69 67 0a 66 69 6c  65 20 63 6f 6e 73 69 73  |nfig.file consis|
00000e30  74 73 20 6f 66 20 61 20  6c 69 73 74 20 6f 66 20  |ts of a list of |
00000e40  62 6c 6f 63 6b 73 2c 20  74 65 72 6d 69 6e 61 74  |blocks, terminat|
00000e50  65 64 20 62 79 20 61 20  7a 65 72 6f 20 77 6f 72  |ed by a zero wor|
00000e60  64 2e 20 45 61 63 68 20  62 6c 6f 63 6b 20 68 61  |d. Each block ha|
00000e70  73 0a 74 68 65 20 66 6f  6c 6c 6f 77 69 6e 67 20  |s.the following |
00000e80  66 6f 72 6d 61 74 3a 0a  0a 20 23 30 09 42 6c 6f  |format:.. #0.Blo|
00000e90  63 6b 20 74 79 70 65 3a  09 30 09 45 6e 64 20 6f  |ck type:.0.End o|
00000ea0  66 20 6c 69 73 74 2e 0a  20 09 09 09 31 09 5a 61  |f list.. ...1.Za|
00000eb0  70 20 67 6c 6f 62 61 6c  20 6f 70 74 69 6f 6e 73  |p global options|
00000ec0  20 73 74 6f 72 61 67 65  20 62 6c 6f 63 6b 2e 0a  | storage block..|
00000ed0  20 09 09 09 32 09 4d 6f  64 65 20 64 65 70 65 6e  | ...2.Mode depen|
00000ee0  64 61 6e 74 20 73 74 6f  72 61 67 65 20 62 6c 6f  |dant storage blo|
00000ef0  63 6b 2e 0a 20 09 09 09  33 2b 09 55 6e 64 65 66  |ck.. ...3+.Undef|
00000f00  69 6e 65 64 2e 0a 20 23  34 09 54 6f 74 61 6c 20  |ined.. #4.Total |
00000f10  62 6c 6f 63 6b 20 6c 65  6e 67 74 68 20 28 6f 66  |block length (of|
00000f20  66 73 65 74 20 66 72 6f  6d 20 73 74 61 72 74 20  |fset from start |
00000f30  6f 66 20 62 6c 6f 63 6b  20 74 6f 20 6e 65 78 74  |of block to next|
00000f40  20 62 6c 6f 63 6b 29 2e  0a 20 23 38 20 2e 2e 2e  | block).. #8 ...|
00000f50  09 42 6c 6f 63 6b 20 64  61 74 61 0a 20 0a 42 6c  |.Block data. .Bl|
00000f60  6f 63 6b 20 74 79 70 65  20 31 20 69 73 20 76 65  |ock type 1 is ve|
00000f70  72 73 69 6f 6e 20 64 65  70 65 6e 64 65 6e 74 20  |rsion dependent |
00000f80  28 73 65 65 20 62 65 6c  6f 77 29 2e 0a 0a 49 66  |(see below)...If|
00000f90  20 74 68 65 20 62 6c 6f  63 6b 20 74 79 70 65 20  | the block type |
00000fa0  69 73 20 32 20 74 68 65  6e 20 74 68 65 20 62 6c  |is 2 then the bl|
00000fb0  6f 63 6b 20 64 61 74 61  20 68 61 73 20 74 68 65  |ock data has the|
00000fc0  20 66 6f 6c 6c 6f 77 69  6e 67 20 66 6f 72 6d 61  | following forma|
00000fd0  74 0a 0a 09 23 30 09 4d  6f 64 65 20 6e 61 6d 65  |t...#0.Mode name|
00000fe0  2c 20 7a 65 72 6f 20 74  65 72 6d 69 6e 61 74 65  |, zero terminate|
00000ff0  64 20 74 68 65 6e 20 61  6c 69 67 6e 20 74 6f 20  |d then align to |
00001000  6e 65 78 74 20 77 6f 72  64 2e 0a 09 09 4c 65 6e  |next word....Len|
00001010  67 74 68 20 6f 66 20 5a  61 70 20 68 61 6e 64 6c  |gth of Zap handl|
00001020  65 64 20 64 61 74 61 20  66 6f 72 20 74 68 69 73  |ed data for this|
00001030  20 6d 6f 64 65 20 28 73  65 65 20 62 65 6c 6f 77  | mode (see below|
00001040  29 0a 09 09 5a 61 70 20  68 61 6e 64 6c 65 64 20  |)...Zap handled |
00001050  64 61 74 61 20 66 6f 72  20 74 68 69 73 20 6d 6f  |data for this mo|
00001060  64 65 20 28 76 65 72 73  69 6f 6e 20 64 65 70 65  |de (version depe|
00001070  6e 64 61 6e 74 29 0a 09  09 4c 65 6e 67 74 68 20  |ndant)...Length |
00001080  6f 66 20 4d 6f 64 65 20  68 61 6e 64 6c 65 64 20  |of Mode handled |
00001090  64 61 74 61 20 66 6f 72  20 74 68 69 73 20 6d 6f  |data for this mo|
000010a0  64 65 20 28 30 20 69 66  20 6e 6f 6e 65 29 2e 0a  |de (0 if none)..|
000010b0  09 09 4d 6f 64 65 20 68  61 6e 64 6c 65 64 20 64  |..Mode handled d|
000010c0  61 74 61 20 66 6f 72 20  74 68 65 20 6d 6f 64 65  |ata for the mode|
000010d0  20 28 6d 6f 64 65 20 64  65 70 65 6e 64 61 6e 74  | (mode dependant|
000010e0  29 2e 0a 0a 28 4e 42 20  49 66 20 62 31 30 20 6f  |)...(NB If b10 o|
000010f0  66 20 65 5f 6d 6f 64 65  20 69 73 20 73 65 74 20  |f e_mode is set |
00001100  74 68 65 6e 20 74 68 65  20 6c 61 73 74 20 74 77  |then the last tw|
00001110  6f 20 65 6e 74 72 69 65  73 20 61 72 65 20 77 72  |o entries are wr|
00001120  69 74 74 65 6e 20 69 6e  74 6f 20 61 20 68 65 61  |itten into a hea|
00001130  70 0a 62 6c 6f 63 6b 20  77 68 6f 73 65 20 61 64  |p.block whose ad|
00001140  64 72 65 73 73 20 69 73  20 73 74 6f 72 65 64 20  |dress is stored |
00001150  69 6e 20 6f 70 74 5f 6d  6f 64 65 6e 20 77 68 65  |in opt_moden whe|
00001160  72 65 20 6e 20 69 73 20  74 68 65 20 6d 6f 64 65  |re n is the mode|
00001170  20 6e 75 6d 62 65 72 20  77 68 69 63 68 0a 69 73  | number which.is|
00001180  20 61 73 73 69 67 6e 65  64 20 74 6f 20 74 68 65  | assigned to the|
00001190  20 6d 6f 64 65 2e 20 49  66 20 6e 6f 74 2c 20 74  | mode. If not, t|
000011a0  68 65 20 74 68 65 20 66  69 72 73 74 20 77 6f 72  |he the first wor|
000011b0  64 20 6f 66 20 74 68 65  20 64 61 74 61 20 69 73  |d of the data is|
000011c0  20 70 75 74 0a 69 6e 20  6f 70 74 5f 6d 6f 64 65  | put.in opt_mode|
000011d0  6e 29 0a 0a 56 65 72 73  69 6f 6e 20 31 2e 31 30  |n)..Version 1.10|
000011e0  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 54  |.------------..T|
000011f0  68 65 20 66 6f 72 6d 61  74 20 6f 66 20 74 68 65  |he format of the|
00001200  20 5a 61 70 20 68 61 6e  64 6c 65 64 20 62 69 74  | Zap handled bit|
00001210  73 20 66 6f 72 20 76 65  72 73 69 6f 6e 20 31 2e  |s for version 1.|
00001220  31 20 69 73 3a 0a 0a 42  6c 6f 63 6b 20 74 79 70  |1 is:..Block typ|
00001230  65 20 31 20 64 61 74 61  3a 20 28 74 6f 74 61 6c  |e 1 data: (total|
00001240  20 62 6c 6f 63 6b 20 6c  65 6e 67 74 68 20 38 2b  | block length 8+|
00001250  26 35 34 3d 26 35 43 29  0a 0a 09 09 23 26 30 30  |&54=&5C)....#&00|
00001260  09 52 65 73 65 72 76 65  64 20 28 73 65 74 20 74  |.Reserved (set t|
00001270  6f 20 30 29 0a 20 20 20  20 20 20 20 20 20 20 20  |o 0).           |
00001280  20 20 20 20 20 23 26 30  34 09 52 65 73 65 72 76  |     #&04.Reserv|
00001290  65 64 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |ed.             |
000012a0  20 20 20 23 26 30 38 09  52 65 73 65 72 76 65 64  |   #&08.Reserved|
000012b0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000012c0  20 23 26 30 43 09 52 65  73 65 72 76 65 64 0a 20  | #&0C.Reserved. |
000012d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 23  |               #|
000012e0  26 31 30 09 52 65 73 65  72 76 65 64 0a 20 20 20  |&10.Reserved.   |
000012f0  20 20 20 20 20 20 20 20  20 20 20 20 20 23 26 31  |             #&1|
00001300  34 09 63 68 61 72 61 63  74 65 72 20 73 65 74 20  |4.character set |
00001310  74 6f 20 75 73 65 20 66  6f 72 20 63 6f 6e 74 72  |to use for contr|
00001320  6f 6c 20 63 68 61 72 61  63 74 65 72 73 20 28 30  |ol characters (0|
00001330  2d 33 29 0a 09 09 23 26  31 38 09 63 6f 6c 75 6d  |-3)...#&18.colum|
00001340  6e 20 74 61 62 20 77 69  64 74 68 0a 09 09 23 26  |n tab width...#&|
00001350  31 43 09 6f 70 74 5f 66  6c 61 67 73 20 76 61 6c  |1C.opt_flags val|
00001360  75 65 20 28 73 65 65 20  45 2d 46 6c 61 67 73 29  |ue (see E-Flags)|
00001370  0a 09 09 23 26 32 30 09  6f 70 74 5f 66 6f 72 6d  |...#&20.opt_form|
00001380  61 74 20 76 61 6c 75 65  20 28 73 65 65 20 45 2d  |at value (see E-|
00001390  46 6c 61 67 73 29 0a 09  09 23 26 32 34 09 61 64  |Flags)...#&24.ad|
000013a0  64 72 65 73 73 20 6f 66  20 66 69 72 73 74 20 62  |dress of first b|
000013b0  79 74 65 20 6f 66 20 66  69 6c 65 20 28 66 6f 72  |yte of file (for|
000013c0  20 6c 69 6e 65 20 6e 75  6d 62 65 72 73 29 0a 09  | line numbers)..|
000013d0  09 23 26 32 38 09 6c 69  6e 65 20 6e 75 6d 62 65  |.#&28.line numbe|
000013e0  72 20 6f 66 20 66 69 72  73 74 20 6c 69 6e 65 20  |r of first line |
000013f0  6f 66 20 66 69 6c 65 0a  09 09 23 26 32 43 09 6c  |of file...#&2C.l|
00001400  69 6e 65 20 73 70 61 63  65 69 6e 67 0a 09 09 23  |ine spaceing...#|
00001410  26 33 30 09 6d 61 72 67  69 6e 20 77 69 64 74 68  |&30.margin width|
00001420  0a 09 09 23 26 33 34 09  63 75 72 73 6f 72 20 74  |...#&34.cursor t|
00001430  79 70 65 73 20 62 79 74  65 30 3d 6e 6f 72 6d 61  |ypes byte0=norma|
00001440  6c 20 63 75 72 73 6f 72  20 62 79 74 65 31 3d 73  |l cursor byte1=s|
00001450  70 6c 69 74 31 20 63 75  72 73 6f 72 0a 09 09 09  |plit1 cursor....|
00001460  62 79 74 65 32 3d 73 70  6c 69 74 32 20 63 75 72  |byte2=split2 cur|
00001470  73 6f 72 20 62 79 74 65  33 3d 6d 61 72 6b 20 70  |sor byte3=mark p|
00001480  6f 73 69 74 69 6f 6e 20  63 75 72 73 6f 72 2e 0a  |osition cursor..|
00001490  09 09 09 30 3d 62 6c 6f  63 6b 20 31 3d 73 71 75  |...0=block 1=squ|
000014a0  61 72 65 20 32 3d 75 6e  64 65 72 73 63 6f 72 65  |are 2=underscore|
000014b0  20 33 3d 62 61 72 20 34  3d 6e 6f 6e 65 20 35 2b  | 3=bar 4=none 5+|
000014c0  3d 75 6e 64 65 66 69 6e  65 64 0a 09 09 23 26 33  |=undefined...#&3|
000014d0  38 09 43 6f 64 65 20 6f  66 20 65 6e 64 20 6f 66  |8.Code of end of|
000014e0  20 6c 69 6e 65 20 78 34  20 28 65 67 20 26 30 61  | line x4 (eg &0a|
000014f0  30 61 30 61 30 61 29 0a  09 09 23 26 33 43 09 43  |0a0a0a)...#&3C.C|
00001500  6f 64 65 20 6f 66 20 74  61 62 20 63 68 61 72 61  |ode of tab chara|
00001510  63 74 65 72 20 78 34 20  28 65 67 20 26 30 39 30  |cter x4 (eg &090|
00001520  39 30 39 30 39 29 0a 09  09 23 26 34 30 09 57 6f  |90909)...#&40.Wo|
00001530  72 64 77 72 61 70 20 77  69 64 74 68 0a 09 09 23  |rdwrap width...#|
00001540  26 34 34 09 4d 69 6e 69  62 75 66 66 65 72 20 63  |&44.Minibuffer c|
00001550  6f 6c 6f 75 72 73 20 62  79 74 65 30 3d 62 61 63  |olours byte0=bac|
00001560  6b 67 72 6f 75 6e 64 20  77 69 6d 70 20 63 6f 6c  |kground wimp col|
00001570  0a 09 09 09 62 79 74 65  31 3d 66 6f 72 65 67 72  |....byte1=foregr|
00001580  6f 75 6e 64 20 77 69 6d  70 20 63 6f 6c 6f 75 72  |ound wimp colour|
00001590  0a 09 09 23 26 34 38 09  53 77 69 74 63 68 65 73  |...#&48.Switches|
000015a0  20 66 6c 61 67 73 20 77  6f 72 64 3a 0a 09 09 09  | flags word:....|
000015b0  62 30 20 73 65 74 20 66  6f 72 20 66 6c 61 73 68  |b0 set for flash|
000015c0  69 6e 67 20 63 75 72 73  6f 72 0a 09 09 09 62 31  |ing cursor....b1|
000015d0  20 6d 75 73 74 20 62 65  20 30 0a 09 09 09 62 32  | must be 0....b2|
000015e0  20 73 65 74 20 66 6f 72  20 64 61 74 65 20 63 68  | set for date ch|
000015f0  65 63 6b 69 6e 67 20 6f  6e 20 66 69 6c 65 20 73  |ecking on file s|
00001600  61 76 69 6e 67 0a 09 09  09 62 33 20 73 65 74 20  |aving....b3 set |
00001610  66 6f 72 20 63 6c 65 61  72 20 73 65 61 72 63 68  |for clear search|
00001620  20 77 69 6e 64 6f 77 20  61 75 74 6f 6d 61 74 69  | window automati|
00001630  63 61 6c 6c 79 0a 09 09  09 62 34 20 6d 75 73 74  |cally....b4 must|
00001640  20 62 65 20 30 0a 09 09  09 62 35 20 6d 75 73 74  | be 0....b5 must|
00001650  20 62 65 20 30 0a 09 09  09 62 36 20 73 65 74 20  | be 0....b6 set |
00001660  66 6f 72 20 63 6f 6e 66  69 6e 65 20 63 75 72 73  |for confine curs|
00001670  6f 72 20 74 6f 20 77 69  6e 64 6f 77 0a 09 09 09  |or to window....|
00001680  62 37 20 6d 75 73 74 20  62 65 20 30 0a 09 09 09  |b7 must be 0....|
00001690  62 38 2d 62 33 31 20 72  65 73 65 72 76 65 64 20  |b8-b31 reserved |
000016a0  2d 20 6d 75 73 74 20 62  65 20 30 0a 09 09 23 26  |- must be 0...#&|
000016b0  34 43 09 52 65 73 65 72  76 65 64 0a 09 09 23 26  |4C.Reserved...#&|
000016c0  35 30 09 52 65 73 65 72  76 65 64 0a 09 09 0a 42  |50.Reserved....B|
000016d0  6c 6f 63 6b 20 74 79 70  65 20 32 20 64 61 74 61  |lock type 2 data|
000016e0  3a 0a 0a 54 68 65 20 5a  61 70 20 68 61 6e 64 6c  |:..The Zap handl|
000016f0  65 64 20 62 69 74 20 6f  66 20 69 74 20 69 73 20  |ed bit of it is |
00001700  31 32 20 62 79 74 65 73  20 6c 6f 6e 67 20 61 6e  |12 bytes long an|
00001710  64 20 64 6f 63 75 6d 65  6e 74 65 64 20 62 65 6c  |d documented bel|
00001720  6f 77 2e 20 54 68 65 20  66 6f 72 6d 61 74 0a 6d  |ow. The format.m|
00001730  61 79 20 63 68 61 6e 67  65 20 77 69 74 68 20 66  |ay change with f|
00001740  75 74 75 72 65 20 76 65  72 73 69 6f 6e 73 20 61  |uture versions a|
00001750  6e 64 20 73 68 6f 75 6c  64 20 62 65 20 72 65 61  |nd should be rea|
00001760  64 20 76 69 61 20 5a 61  70 20 63 61 6c 6c 73 0a  |d via Zap calls.|
00001770  5a 61 70 5f 4d 6f 64 65  43 6f 6c 6f 75 72 20 61  |Zap_ModeColour a|
00001780  6e 64 20 5a 61 70 5f 4d  6f 64 65 44 61 74 61 20  |nd Zap_ModeData |
00001790  69 66 20 79 6f 75 20 61  72 65 20 61 20 5a 61 70  |if you are a Zap|
000017a0  20 65 78 74 65 6e 73 69  6f 6e 20 6d 6f 64 65 2e  | extension mode.|
000017b0  0a 0a 09 23 30 09 4d 6f  64 65 20 64 61 74 61 20  |...#0.Mode data |
000017c0  76 61 72 69 61 62 6c 65  20 30 20 2d 20 73 65 65  |variable 0 - see|
000017d0  20 5a 61 70 5f 4d 6f 64  65 44 61 74 61 20 63 61  | Zap_ModeData ca|
000017e0  6c 6c 2e 0a 09 23 34 20  26 23 38 09 54 68 65 20  |ll...#4 &#8.The |
000017f0  63 75 72 72 65 6e 74 20  70 61 6c 65 74 74 65 20  |current palette |
00001800  66 6f 72 20 74 68 69 73  20 6d 6f 64 65 2e 20 54  |for this mode. T|
00001810  68 65 20 31 36 20 6e 69  62 62 6c 65 73 20 67 69  |he 16 nibbles gi|
00001820  76 65 0a 09 09 74 68 65  20 77 69 6d 70 20 63 6f  |ve...the wimp co|
00001830  6c 6f 75 72 73 20 6f 66  20 74 68 65 20 31 36 20  |lours of the 16 |
00001840  63 6f 6c 6f 75 72 73 20  77 69 74 68 20 6e 69 62  |colours with nib|
00001850  62 6c 65 30 3d 62 61 63  6b 67 72 6f 75 6e 64 0a  |ble0=background.|
00001860  09 09 63 6f 6c 6f 75 72  20 31 2c 20 6e 69 62 62  |..colour 1, nibb|
00001870  6c 65 31 3d 62 61 63 6b  67 72 6f 75 6e 64 20 63  |le1=background c|
00001880  6f 6c 6f 75 72 20 32 20  65 74 63 2e 0a 09 09 53  |olour 2 etc....S|
00001890  65 65 20 5a 61 70 5f 4d  6f 64 65 43 6f 6c 6f 75  |ee Zap_ModeColou|
000018a0  72 2e 0a 0a                                       |r...|
000018a4