chiark / gitweb /
Initial revision
[ssr] / StraySrc / Libraries / Sapphire / csapph / h / tms
1 pendent extension colours.
2            R8=Window block to read from / 0 for default (!Config) settings.
3         \X R0=colour value read / old value if writing it. This is of the
4               form &BBGGRRZZ as above.
5
6 Zap_FindInput
7 This call works out the current position of the 'input focus' in a window. If
8 the input caret is in this window then it returns it's offset. Otherwise it
9 returns the 'point' position (usually marked by an empty square).
10         \E R8/R9
11         \X R0=most suitable offset to insert data.
12
13 Zap_ClipCache
14 This call moves the cache reference point (w_cline/coff/clogl etc) to a given
15 point (using e_clnoff).
16         \E R0=Offset in line to move the cache reference point to. R8/R9
17
18 Zap_ModeData
19 This call reads or write the mode dependant options that Zap handles
20 automatically for you. See also Zap_ModeColour. Currently there is only one
21 word per mode storing the width and things like whether auto-indent is on or
22 not. You should use this call with R8=0 to write sensible default values if
23 your mode starts up and finds its mode word is zero. If you don't then the
24 default Text mode values will be used.
25         \E R0=value to write / -1 to read
26            R1=mode number
27            R2=variable number to read write
28            R8=window concerned / 0 for the default (!Config) settings.
29         \X R0=variable value if read / old value if written
30         Variables num:  0       b0-b15  stores the "width" for this mode
31                                 b16     auto indent bit (b16 of w_format)
32                                 b17     auto width bit (b6 of w_flags)
33                                 b18     strip spaces bit (b18 of w_format)
34                                 b19-b21 tab mode bits (b9-b11 of w_flags)
35                                         b19-b20 0=Unix 1=Edit 2=Coltab
36                                         b21=insert tabs as spaces
37                                 b22     hex entry mode bit (b5 of w_flags)
38                                 b23     overwrite bit (b1 of w_flags)
39                                 b24-b31 display bits (b8-b15 of w_format)
40                                         b24=line numbers shown
41                                         b25=line numbers as lines (not addr)
42                                         b26=line numbers in hex
43                                         b27=logical line nums (not physical)
44                                         b28-29 0=no tabs 1=spaces 2=> 3=->
45                                         b30=line edit paradigm
46                                         b31=non standard editing
47                         1       b0-b2   Line number width
48                                 b3      Line number colons
49                                 b4      Internal use : font sub-styles off
50                                 b5      Infinite window wrap
51                                 b6      Use line selection paradigm
52                                 b7      Spell-as-you-type
53                                 b8      Big endian          (b17 of w_format)
54                                 b9      Reserved
55                                 b10     Reserved
56                                 b11     Reserved
57                                 b12     Set if linewrap mode on (b26 w_flags)
58                                 b13     Set if wordwrap mode on (b13 w_flags)
59                                 b14     Reserved
60                                 b15     Reserved
61                                 b21     Free mouse clicks   (b21 of w_format)
62                                 b22     Auto soft wrap      (b22 of w_format)
63                                 b23     Confined cursor U/D (b23 of w_format)
64                                 b24     Confined cursor ->  (b24 of w_format)
65                                 b25     Smart shift-cursor  (b25 of w_format)
66                                 b26     Window-wrap         (b26 of w_format)
67                                 b27     Soft-wrap           (b27 of w_format)
68                                 ...other bits reserved...
69                         2+      reserved.
70
71 Zap_WhichMode
72 This call decides which mode a given file should be displayed in.
73         \E R0=load address of file (containing the filetype)
74            R1=filename pointer / 0 if not known
75               b31=flag to determine the meaning of R10 on exit
76         \X R0=address of a data block of info about this file mode. 
77            R10=If b31 of R1 was clear on entry then this is the mode number
78                of the default mode the file is loaded into (the mode is
79                loaded if necessary). If is was set then this is a pointer
80                to the mode name (mode not necessarily loaded).
81
82 Zap_ModeNumber
83 This calls turns a mode name (given by a string) into a mode number. The mode
84 is loaded if not already resident in memory.
85         \E R0=mode name string terminated by <= space (&20)
86         \X R0=mode number or -1 if not found.
87
88 Zap_SendDataSave
89 This call initiates the save protocol, saving data to another window or
90 application via RAM transfer or WimpScrap. It sends the data_save message and
91 all replies are handled automatically.
92         \E R2=proposed file/leaf name of the data (or 0 to use the file's)
93            R3=destination window handle or task handle
94            R4=destination icon handle (if R3=-2)
95            R5/R6=destination mouse coords (if applicable)
96            R7=routine to call after save finished (or 0 if none).
97            R8/R9=R8<>0 => Save whole file R8=window block R9=file block
98                  R8=0  => Save currently selected region.
99                  (or set b1 of R10 to save an arbitrary region).
100            R10=b0-b15 flags:
101                b0 set => External edit flag. In this case R3=ext edit
102                          job handle and R4=ext edit task handle and
103                          external edit message sent instead.
104                b1 set => R8=start address of data to save
105                          R9=size of the data to save
106                          b16-b31 of R10=filetype of data to save.
107                b16-b31 = extra data (see b1)
108            R11=data to pass to routine in R7 (if used).
109         \X Data transfer protocol initiated.
110         Sub pointed to by R7 is called with R11 as passed above and should
111         preserve R1+ as usual.
112
113 Zap_Warning
114 Warns the user without generating an error. This opens a window with the
115 given message and pauses for the message to be seen before returning. Wimp
116 Poll is not called.
117         \E R0=warning message
118            R1=time to leave message open in cs (0 for default delay)
119               + flags:
120                 b31 => Don't beep when opening the window
121            R8/R9=window in which to show the warning.
122
123 Zap_AllWindow
124 Calls a given subroutine once for each valid Zap window. See also
125 Zap_EachWindow.
126         \E R0-R7=arguments to pass to the sub
127            R10=address of the sub to call (which must preserve all registers
128                except R0, and is called once for each window with R8/R9
129                set up to be that window).
130
131 Zap_ReadMenu
132 Converts a text file of the same format of Zap's 'Menu' file into a Zap menu
133 structure.
134         \E R0=start of a zero terminated menu text file (stored in memory)
135         \X R0=pointer to heap block containing the following information
136                 #0 Number of valid menu handles for this file (first
137                    number appearing in the file)
138                 #4 Pointer to the menu structure (in Zap-Wimp format) for
139                    handle 0 (or 0 if handle 0 not used)
140                 #8 Pointer to structure for handle 1
141                 #12 Pointer to structure for handle 2 etc.
142
143 Zap_LoadMenu
144 Converts a text menu file to a Zap menu structure.
145         \E R0=pointer to filename of the menu file
146         \X R0=list of menu handles as for Zap_ReadMenu
147
148 Zap_OpenMenu
149 Opens a menu on the screen. The menu structure is handled automatically once
150 it has been opened.
151         \E R1=pointer to Zap-Wimp menu structure
152            R2=mouse x to open at
153            R3=mouse y to open at
154            R8/R9=window the menu is being opened on or 0's for none (eg the
155                  iconbar menu).
156
157 Zap_CallBack
158 Schedules a subroutine to be called again at a certain time but using wimp
159 null events.
160         \E R1=(earliest) monotonic time to call back at (>0)
161               or -(smallest delay before calling back) =< 0.
162            R2=address of routine to call.
163            R3=data to pass to the routine in R11.
164         The routine pointed to by R2 has conditions:
165          \E R1=current time R11=value passed in R3
166          \X (must save R1+ as usual)
167
168 Zap_DragBox
169 Starts a wimp drag box making sure you get called when it's finished.
170         \E R0=b0 set if you wish to be called repeatedly during the drag
171               b1+ reserved (set to 0)
172            R1=drag box block to be passed to Wimp_DragBox
173            R2=address of routine to call.
174            R3=data to pass to the routine in R11.
175         The routine pointed to by R2 has conditions:
176          \E R0=reason code 1=drag in progress 2=drag has just finished
177             R1=drag box posn as returned by wimp if R0=2
178             R11=value passed in R3
179          \X (must save R1+ as usual)
180
181 Zap_SendMessage
182 Sends a wimp message and logs the message number (my_ref) so that any reply
183 can be forwarded to you. The message reference is held for at least a minute
184 and only deleted on a null event.
185  E R0=b0-b27 message action number (to go in R1,#16)
186       b28    set if you are interested in the reply.
187       b29    set if you want to be called when message deleted
188       b30-31 00 => Just send the message (with code 17)
189              01 => Just acknowledge the message (with code 19)
190              10 => Send the message recorded (with code 18) and call the
191                    reply code if the message replied to.
192              11 => Send the message recorded (with code 18) and call the
193                    reply code if the message replied to or bounces.
194    R1=message block
195    R2=dest task handle/window handle
196    R3=b31 clear => This is the message length (is rounded up to next word)
197       b31 set   => This is the offset of a string ending the message.
198    R4=icon handle if R2=-2 (iconbar) [not used otherwise]
199    R5=address of routine to call when message replied to [if b28 of R0]
200       (zero as a value means that you want any replies to be dealt with
201        as if they were normal messages and not a reply)
202    R6=private word to pass to routine on a reply [if b28 of R0]
203  X The message is sent as an original message. Hence the my_ref, length
204    and message action fields are filled in for you. R0=task handle of the
205    dest task (R2 on exit from Wimp_SendMessage)
206         Routine in R5 called with:
207                 ;E R0=message type
208                         0 => message being removed from log list (see b29)
209                         17 => message replied to as normal
210                         19 => message bounced
211                    R1=message block
212                    R2=message number (R1!16) R11=private word R12=Zap's etc
213                 ;X You can corrupt R0-R11 if R0=17,19
214                    You should save R1-R11 if R0=0
215
216 Zap_Reply
217 Replies to a message. It copies my_ref to your_ref for you can reads the task
218 handle of the task to reply to from the message block. The length word is
219 assumed to be unchanged.
220  E R0=message action number (as for SendMessage)
221    R1=message block (with ref etc)
222    R5/R6=routine to handle the reply if b28 of R0 (as for SendMessage)
223
224 Zap_Extend
225 Changes the size of a heap block, making it smaller or bigger as for OS_Heap
226 with the extend action code.
227  \E R0=pointer to the heap block R1=signed change in the size
228  \X R0=new heap block pointer (it may have moved)
229
230 Zap_ModeColourNum
231 Reads/writes the size of the colour palette used by a given mode. Maximum
232 size of a palette is currently 256 colours. Use R8=0 to read the default
233 values. NB If you enlarge the palette then please write some sensible values
234 for the new entries!
235  \E R0=new size of palette (in number of colours) / -1 to read
236     R1=mode number R8/R9=window or R8=0 for the default options.
237  \X R0=old size / read size.
238
239 Zap_CreateThrowback
240 Creates a throwback buffer ready for lines being inserted by Zap_Throwback.
241  ;E R0=suggested width of window / 0 to use default width
242  ;X R0=window offset of window R8/R9=newly created throwback window
243
244 Zap_Throwback
245 Inserts a line in a throwback file for you.
246  \E R0=file offset or line number of line with info on it
247        set b31 to suppress this being printed automatically.
248     R1=filename (of the file that R0 is an offset in)
249     R2=information string to print after the line number (eg "Bad syntax")
250     R3=string to precede filename  (eg "Errors in file:")
251     R4=file offset of linked file / -1 if may not be loaded
252     R5=flags to use for the new entry (see f_links,#12)
253     R6=string to precede new info block (eg "Line num  Error")
254     R7=string to go after filename (eg 10,"Search string: fred")
255     R8/R9=throwback window to add entry to
256  \X Throwback entry added and new title block given if file (or flags)
257     have changed KB #
258     The line number field is 10 characters wide if not suppressed.
259
260 Zap_TestModeName
261 This calls determines whether or not a given mode is loaded. It returns
262 the mode number of the given mode or -1 if the mode is not loaded.
263         \E R0=mode name string terminated by <= space (&20)
264         \X R0=mode number or -1 if not loaded.
265
266 Zap_UpdateArea
267 Forces an immediate redraw of a window area. The area in given in x,y
268 character col, row coordinates.
269         \E R1=redraw block (as for Wimp but in character coords -
270               ie window handle, min x col, min y row, max x col, max y row)
271            R8/R9 = window
272         \X Coordinates in R1 changed to OS coords and window updated
273
274 Zap_UpdateWindow
275 Forces an immediate redraw of a window area. Entry and exit as for
276 Zap_UpdateArea except that coordinates are given in Window work area
277 OS coords. (Internally UpdateArea calls UpdateWindow after coordinate
278 conversion).
279
280 Zap_UpdateWholeWindow
281 Force immediate redraw of the whole window
282         \E R8/R9 = window
283
284 Zap_AllFiles
285 Calls a given subroutine once for each valid Zap file. See also
286 Zap_AllWindows and Zap_EachWindow.
287         \E R0-R7=arguments to pass to the sub
288            R10=address of the sub to call (which must preserve all registers
289                except R0, and is called once for each file with R9 set up
290                and R8 = 0.
291
292 Zap_ReadValidateCommand
293 Translates a string into an executable block of command information.
294          E R10=pointer to string terminated by <&20
295          X R0=-1 => args invalid (only tested if command loaded)
296               0  => all ok
297               1  => args valid for keymaps only (uses n form)
298            R1=parameter
299            R6=parameter type 0=none 1=num 2=usekeynum 3=stringblock 4=data
300            R7=command address
301            R10 updated to next non-white space which is not a ':'
302            CS if an external module has been loaded as a consequence
303            CC otherwise.
304            Error is generated if the command cannot be found.
305            (String of commands concatenated to a single Multicommand)
306            (:<return> skipped so can have multiple lines)
307
308 Zap_ProcessKeyCommand
309 Calls a command using the same routine as used when a command is bound to a
310 key.  For use mainly with Zap_ReadValidateCommand.
311          \E R0=data => The byte/word if mode 1/2 and ptr to data if mode 3+
312             R2=call type with learn flag (usually 0)
313             R7=command address
314             R8-R10=window/file/cursor or 0
315 \X Command called once with R1=1
316
317 Zap_ReturnWord
318 Calls the text mode e_returnword entry with given delimiters. This is mostly
319 of use to commands such as SelectUntil.
320         \E R0=flags
321               b0 => list are non-delimiters not delimiters
322               b1 => control characters form an implicit list
323               b2 => control characters are non-delimiters not delimiters
324            R1=list
325         \X R0=file offset
326            R1=length
327
328 Zap_DoReplaceArea
329 Acts like Zap_ReplaceArea, only does not involve the mode, i.e. it uses
330 Zap_DoCommand, rather than Zap_Command.
331         \E R1=file offset of original data
332            R2=length of original data
333            R3=address of replacement data
334            R4=length of replacement data R9
335 Calls Zap_ReplaceArea with R8=0
336
337 Zap_LogicalLine
338 Replaces e_clnlog in a manner which allows processing of the returned
339 parameters.  Entry and exit conditions are exactly as for e_clnlog:
340         \E R0=logical line number R8/R9
341         \X R0=file offset of line start
342            R1=physical line number
343
344 Zap_PhysicalLine
345 Replaces e_clnphy in a manner which allows processing of the returned
346 parameters.  Entry and exit conditions are exactly as for e_clnphy:
347         \E R0=physical line number R8/R9
348         \X R0=file offset of line start
349            R1=logical line number
350
351 Zap_OffsetLine
352 Replaces e_clnoff in a manner which allows processing of the returned
353 parameters.  Entry and exit conditions are exactly as for e_clnoff:
354         \E R0=file offset R8/R9
355         \X R0=physical line number
356            R1=file offset of physical line start
357            R2=logical line number
358
359 Zap_NextLine
360 Replaces e_nextline in a manner which allows processing of the returned
361 parameters.  Entry and exit conditions are exactly as for e_nextline:
362         \E R0=file offset of first 'shiftable' character
363            R1=signed change in file offset of this character R8/R9
364         \X R0=file offset of first 'shiftable' line
365            R1=physical line number of this line #
366            You must preserve the split offset and split size of the file.
367
368 Note that in the above four calls, the mode called is the mode specified by
369 the window block in R8.  Calling the entry points of arbitrary modes is
370 currently only possible with this mechanism by manually poking the mode
371 number in temporarily.
372 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 5\eÀ\83Øÿ\1f\8bó\8bú]Ë\0U\8bì\8b×\8bÞ\1eÅv
373 \8bþ\8cØ\8eÀ3À¹ÿÿò®÷ÑÄ~\ 6\8bÇt\ 4¥Ië\ 6¨\ 1t\ 2¤IÑéó¥\13Éó¤\8bó\8bú\1f\8cÂ]ËU\8bì\8b×\8bÞ\1eÄ~\ 63À¹ÿÿò®\8duÿÄ~
374 ¹ÿÿò®÷Ñt\ 3+ùA+ù\8cÀ\8eØ\8eF\b\87þ\8bF\ 6\vÉu\ 5¥IIë\b÷Æ\ 1\0t\ 2¤IÑéó¥\13Éó¤\8bó\8bú\1f\8cÂ]ËU\8bì\8bN\fã8WÄ~\ 6\8b×÷Út\f\eÛ#Ó\ 3Ñ\87Ñ+Ñ\8bF
375 \8aàÑéó«\13Éóª\87Ñã\10\8cÃ\81ï\ 3\8eÃÑéó«\13Éóª_\8bF\ 6\8bV\b]ËU\8bì\83ì VW\16\a¹\10\0\8d~àó«\1e\aÅv
376 ¬
377 Àt\14\8bø\8bȰ\ 1\80á\aÒà±\ 3Óï\bCàëçÅv\ 6\8cØ\vÆu\ 5&Å6\94_¬%ÿ\0u\ fN&\896\94_&\8c\1e\96_\8eØëH\8bø\8bȰ\ 1\80á\aÒà±\ 3Óï"Càu×\8dDÿ&£\94_&\8c\1e\96_¬%ÿ\0u\ 5\8dDÿë\18\8bø\8bȰ\ 1\80á\aÒà±\ 3Óï"Càtá\88dÿ\96&\87\ 6\94_\8cÚ\ 6\1f_^\8bå]Ë\0U\8bì\83ì\ 2VW\1eÄ~
378 \ 6\1f3À¹ÿÿò®÷Ñu\ 1Iã>I\89NþÄ~\ 6\8bß3À¹ÿÿò®÷Ñu\ 1I\8bÑ+Vþv)\8bû\8bv
379 ¬\8bû\8bÊò®u\e\8bÑ\8bß\8bNþã\ 4ó¦uç\8dGÿ\8cÂë
380 ÄF\ 6\8cÂë\ 3\99\1f_^\8bå]Ë\0U\8bì\8bN\ e