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  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 .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